i

Eine weitere Vereinfachung

Bei den Aufgaben im vorhergehenden Abschnitt hast Du gesehen, dass man für eine bestimmte Zuordnung der Eingangswerte zu den Ausgangswerten sowohl den Gewichten $w_i$ als auch dem Schwellenwert $s$ geeignete Werte geben muss.

Würde man z.B. den Schwellenwert immer auf den Wert 0 setzen, könnten manche Zuordnungen nicht mehr alleine über die Belegung der Gewichte $w_i$ erreicht werden.

Trotzdem wäre es elegant, wenn das Zuordnungsverhalten eines Neurons nur über die synaptischen Gewichte $w_i$ alleine festgelegt werden könnte und man sich nicht immer noch gesondert um den Schwellenwert $s$ kümmern müsste. Hierfür haben sich die Informatiker einen Trick ausgedacht:

Man setzt den Schwellenwert tatsächlich auf $s=0$, so dass sich die Ausgabefunktion nochmal vereinfacht: \begin{eqnarray} y = f(a)=\left\{\begin{array}{ll} 1 & \textrm{wenn }a > 0 \\ 0 & \textrm{sonst} \end{array}\right. \nonumber \end{eqnarray}

Um trotzdem wieder alle Zuordnungen zu ermöglichen, die mit dem Schwellenwert möglich waren, fügt man dem Neuron jedoch noch einen weiteren Eingang $x_3$ und ein zugehöriges synaptisches Gewicht $w_3$ hinzu. Den Eingang setzt man konstant auf den Wert $x_3=1$, so dass in der Summe \begin{equation} a = w_1 \cdot x_1 + w_2 \cdot x_2 + ... + w_n \cdot x_n + \mathbf{w_{n+1} \cdot 1} \end{equation} nun noch der Wert $w_{n+1} \cdot 1$ hinzukommt.

Perzeptron mit konstantem Eingang[1]

Man kann sich leicht überlegen, dass ein solches Neuron mit dem zusätzlichen 0-ten Eingang sich genauso wie ein Neuron aus dem letzten Abschnitt mit Schwellenwert $s$ verhält, wenn man \begin{equation} w_{n+1} = -s \end{equation} setzt.

Aufgabe 1

Begründe, weshalb ein Neuron mit dem zusätzlichen 0-ten Eingang sich genauso verhält wie ein Neuron aus dem letzten Abschnitt mit Schwellenwert $s$, wenn man \begin{equation} w_{n+1} = -s \end{equation} setzt.

Aufgabe 2: Berechnen eines Ausgangswertes

Berechne per Hand die Ausgangswerte eines Neurons mit zwei Eingängen für alle Kombinationen $(x_1=0; x_2=0); (x_1=0; x_2=1); (x_1=1; x_2=0); (x_1=1; x_2=1)$ bei bei folgenden Werten. \begin{eqnarray} w_1 & = & 2.5 \\ w_2 & = & 3.7 \\ w_3 & = & - 1.2 \\ \end{eqnarray} Falls Du im Unterricht schon logische Schaltungen kennen gelernt hast: Bestimme, welcher logischen Grundschaltung diese Zuordnung der Eingänge zum Ausgangswert entspricht.

Aufgabe 3: Festlegen von Gewichten per Hand

Betrachte ein Neuron mit zwei Eingängen $x_1$ und $x_2$, die beide die Werte 0 oder 1 annehmen können (und dem konstanten Eingang $x_3=1$). Lege die Werte für die drei $w_i$ so fest, dass der Wert von $y$ dann und nur dann 1 ist, wenn beide Eingänge den Wert $1$ haben (entsprechend einer UND-Schaltung).

Aufgabe 4: Gewichte für einen etwas komplizierteren Zusammenhang

Betrachte ein Neuron mit zwei Eingängen $x_1$ und $x_2$, die beide die Werte 0 oder 1 annehmen können (und dem konstanten Eingang $x_3=1$). Lege die Werte für die drei $w_i$ so fest, dass der Wert von $y$ dann und nur dann 1 ist, wenn $x_1$ den Wert $1$ hat und $x_2$ den Wert 0.

Aufgabe 5: Ein extrem einfacher Zusammenhang

Betrachte ein Neuron mit zwei Eingängen $x_1$ und $x_2$, die beide die Werte 0 oder 1 annehmen können (und dem konstanten Eingang $x_3=1$) . Lege die Werte für die drei $w_i$ so fest, dass der Wert von $y$ bei jeder der vier möglichen Eingangskombinationen den Wert 1 hat.

Aufgabe 6: Ein sehr problematischer Zusammenhang

Betrachte ein Neuron mit zwei Eingängen $x_1$ und $x_2$, die beide die Werte 0 oder 1 annehmen können (und dem konstanten Eingang $x_3=1$) . Versuche zunächst, die Werte für die drei $w_i$ so festzulegen, dass der Wert von $y$ immer dann und nur dann 1 ist, wenn die beiden $x$-Werte verschiedene Werte haben.
Beschreibe dann, warum eine passende Festlegung der Gewichte bei noch so viel Anstrengung nicht gelingen kann.

Aufgabe 7: Ein Computer-Programm für ein Perzeptron mit festen Gewichten

Schreibe ein Computer-Programm (z.B. in Python) für ein Perzeptron mit zwei Eingängen (und einem zusätzlichen konstanten Eingang). Lege die Gewichte im Programmcode fest und ermögliche es, dass der Benutzer die Eingangswerte über die Tastatur eingibt. Der Ausgangswert des Neurons soll dann auf dem Bildschirm angezeigt werden. Überprüfe mit Hilfe dieses Programms, ob Du die Aufgaben 2-4 richtig gelöst hast.

Aufgabe 8: Perzeptron mit Gewichten zum Eingeben

Schreibe ein Computer-Programm (z.B. in Python) für ein Perzeptron mit beliebig vielen Eingängen (und einem zusätzlichen konstanten Eingang). Zunächst soll die Anzahl der Eingänge ($n$) über die Tastatur eingegeben werden. Dann sollen die $n$ Eingangswerte eingegeben werden. Zuletzt sollen die $n+1$ synaptischen Gewichte eingegeben werden. Danach soll das Programm den Ausgangswert des Neurons berechnen.
Tipp: Es empfiehlt sich, für die Zahlenwerte von Eingängen und synaptischen Gewichten Listen (bzw. Arrays) zu verwenden.

Quellen

Suche

v
16.5.5.3
dev.inf-schule.de/lehrkraefte/archiv/deeplearning_ohne_numpy/weitere_vereinfachung
dev.inf-schule.de/16.5.5.3
dev.inf-schule.de/@/page/jT3t2cbVlJLDRasZ

Rückmeldung geben