lernalgorithmus
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
lernalgorithmus [2025/01/23 09:38] – torsten.roehl | lernalgorithmus [2025/01/29 10:58] (aktuell) – [Netzeingabe $net$] torsten.roehl | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Perzeptron Lernalgorithmus ====== | ====== Perzeptron Lernalgorithmus ====== | ||
- | //Im Folgenden wird der Lernalgorithmus für das einfache Perzeptron beschrieben. Um das Prinzip zu verstehen, werden lediglich zwei Eingangsneuronen und ein Ausgangsneuron verwendet. Mithilfe des Lernalgorithmus kann dann (z. B. in Java) gezeigt werden, dass einfache Probleme wie das UND-Problem gelernt werden können.// | + | //Im Folgenden wird der Lernalgorithmus für das **einfache Perzeptron** beschrieben. Um das Prinzip zu verstehen, werden lediglich zwei Eingangsneuronen und ein Ausgangsneuron verwendet. Mithilfe des Lernalgorithmus kann dann (z. B. in Java) gezeigt werden, dass einfache Probleme wie das UND-Problem gelernt werden können.// |
===== Topologie ===== | ===== Topologie ===== | ||
Zeile 7: | Zeile 7: | ||
* **Ausgabeneuron** $y_1$ oder $o$ für **O**utput. | * **Ausgabeneuron** $y_1$ oder $o$ für **O**utput. | ||
* **Gewichte** $w_{11}$ , $w_{21}$ und $w_{31}$ | * **Gewichte** $w_{11}$ , $w_{21}$ und $w_{31}$ | ||
- | * Das Gewicht $w_{31}$ hat immer den Wert< | + | * Das Gewicht $w_{31}$ hat (in unserem Beispiel) |
{{ : | {{ : | ||
<WRAP center round tip 90%> | <WRAP center round tip 90%> | ||
- | Die Schwelle θ wird durch ein konstantes Gewicht $w_{31}=−0.1$ festgelegt. Nur die Gewichte $w_{11}$ und $w_{21}$ werden gelernt, um alle Trainingsmuster wiedergeben zu können. | + | Die Schwelle θ wird durch ein konstantes Gewicht |
Zeile 27: | Zeile 27: | ||
\begin{equation} net_j = \sum w_{ij} \cdot x_i \end{equation} | \begin{equation} net_j = \sum w_{ij} \cdot x_i \end{equation} | ||
Da wir nur ein Ausgabeneuron haben ist $net_j=net_1=net$ also folgt für drei Eingabeneuronen: | Da wir nur ein Ausgabeneuron haben ist $net_j=net_1=net$ also folgt für drei Eingabeneuronen: | ||
- | \begin{equation} net = \sum_1^3 w_{1j} \cdot x_i = w_{11} | + | \begin{equation} net = \sum_{i=1}^3 w_{i1} \cdot x_i = w_{11} |
+ | Dabei wird verwendet, dass $x_3=1$ gesetzt worden ist. | ||
==== Aktivierungsfunktion ==== | ==== Aktivierungsfunktion ==== | ||
- | Die Aktivierungsfunktion für // | + | Die Aktivierungsfunktion für das // |
Zeile 61: | Zeile 61: | ||
==== Algorithmus ==== | ==== Algorithmus ==== | ||
<WRAP center round box 100%> | <WRAP center round box 100%> | ||
+ | // | ||
Zeile 72: | Zeile 72: | ||
</ | </ | ||
- | ===== Aufgabe & Test ===== | + | ===== Test & Aufgaben |
- Implementieren Sie den Perzeptron-Lernalgorithmus für das UND-Problem. | - Implementieren Sie den Perzeptron-Lernalgorithmus für das UND-Problem. | ||
- Überprüfen Sie, ob das UND-Problem korrekt gelernt wurde, indem Sie für alle Inputvektoren $(x_1,x_2)$ die Ausgaben berechnen. | - Überprüfen Sie, ob das UND-Problem korrekt gelernt wurde, indem Sie für alle Inputvektoren $(x_1,x_2)$ die Ausgaben berechnen. | ||
- Ändern Sie die Implementierung um auch das ODER-Problem zu lernen. | - Ändern Sie die Implementierung um auch das ODER-Problem zu lernen. | ||
- | | + | |
+ | - Untersuchen Sie die Abhängigkeit der Lernrate von der Anzahl der Iterationen, | ||
+ | - Erstellen Sie hierfür einen aussagekräftigen Graphen. | ||
+ | - Beschäftigen Sie sich nun mit dem <color # | ||
+ | - Ändern Sie den Code um auch dieses Problem | ||
<WRAP center round tip 90%> | <WRAP center round tip 90%> | ||
Passen Sie gegebenenfalls die Lernrate oder die Anzahl der Iterationen an, damit das Problem erfolgreich gelernt werden kann. | Passen Sie gegebenenfalls die Lernrate oder die Anzahl der Iterationen an, damit das Problem erfolgreich gelernt werden kann. | ||
</ | </ |
lernalgorithmus.1737625130.txt.gz · Zuletzt geändert: 2025/01/23 09:38 von torsten.roehl