Title: Neuronale Netze und Matrixmultiplikation
Course: Neue Aufgaben zum Thema Künstliche Intelligenz > Section: Mathematik, Q-Phase

Einführung in neuronale Netze

Das menschliche Nervensystem hat die Aufgabe, Reize aus der äußeren Umwelt und aus dem Körperinneren als Signale aufzunehmen, aufeinander zu beziehen und mit früheren zu vergleichen. Es besteht aus einer Vielzahl an einzelnen Nervenzellen, den sogenannten Neuronen, die zu einem neuronalen Netz verbunden sind.
Diesem biologischen Vorbild folgend, wurden künstliche neuronale Netze entwickelt, die Lernprozesse imitieren und so in vielfältigen Technologien durch maschinelles Lernen und weitere Aspekte der künstlichen Intelligenz Anwendung finden.

Ein künstliches neuronales Netzwerk besteht aus einzelnen künstlichen Neuronen, die auch als Knoten bezeichnet werden. Die Knoten sind miteinander verbunden und beeinflussen sich auf diese Weise wechselseitig.

Abb. 1: Veranschaulichung eines künstlichen neuronalen Netzwerks. Die Knoten sind entlang der einzelnen Schichten jeweils miteinander verbunden. (in Anl. an Dontsov, 2021)

Die erste Schicht des neuronalen Netzes erhält äußere Informationen; im menschlichen Nervensystem zum Beispiel durch Sinnesreize von Augen oder Ohren. Im künstlichen neuronalen Netz sind dies Parameter in Form von reellen Zahlen, die dann in den Knoten weiterverarbeitet werden. Das vereinfachte Modell in Abb. 1 ist dabei von links nach rechts zu verstehen. Von links kommen die Eingangssignale, die dann in der ersten Schicht verarbeitet werden und ein Ausgangssignal erzeugen. Das Ausgangssignal eines solchen Knotens hat dabei wiederum die Funktion des Eingangssignals in einem Knoten der darauffolgenden Schicht. Allerdings gibt es in der sog. „verborgenen“ Schicht nicht nur ein einzelnes Eingangssignal. Stattdessen erhält es Signale von allen Knoten aus der jeweils davorliegenden Schicht. Je größer das neuronale Netz, desto mehr Daten müssen verarbeitet werden. In Abb. 1 ist der Übersichtlichkeit halber ein recht kleines neuronales Netz dargestellt, in dem pro Schicht lediglich drei Knoten liegen. Für künstliche Intelligenz genutzte neuronale Netze haben eine weitaus höhere Anzahl an Knoten von teilweise mehreren Milliarden.

Die eingehenden Signale in Form von reellen Zahlen werden dabei zunächst addiert^1 und ergeben in Summe das neue auszugebende Signal:  \( b_1 \) (vgl. Abb. 2).

Abb. 2: Detaillierte Darstellung der Verknüpfungen eines künstlichen neuronalen Netzwerks. Die Werte ( ) der Eingangsschicht werden unterschiedlich gewichtet ( ), um die Werte der nächsten Schicht ( ) zu berechnen. (gemäß Rashid, 2017)

Allerdings würde sich auf diese Weise die gleiche Summe auch für und ergeben, was eine Unterscheidung der Knoten überflüssig werden ließe. Daher werden nicht alle Eingangssignale gleich berücksichtigt – auch im menschlichen Nervensystem werden die Signale unterschiedlich stark weitergeleitet. Im künstlichen neuronalen Netz wird dies mithilfe von sogenannten Gewichtungsfaktoren berücksichtigt: Je stärker die Verbindung zwischen den Neuronen, desto größer die Gewichtungsfaktoren. Die eingehenden Parameter , bzw. werden jeweils noch mit einem solchen Gewichtungsfaktor , bzw. multipliziert. Auf diese Weise kommt es zur Formel , die für jeden Knoten in jeder Schicht ausgerechnet werden muss^2.

^1 In einem weiteren sehr wichtigen Schritt durchlaufen die resultierenden Summen anschließend eine sog. Aktivierungsfunktion, die im Rahmen dieses Arbeitsblattes nicht weiter thematisiert wird.

^2 Im neuronalen Netzwerk kommt in dieser Formel auch noch ein zusätzlicher sog. Bias-Term vor, der im Rahmen dieses Arbeitsblatt nicht weiter thematisiert wird.

Quellenangaben:

Dontsov, A. (14. Dezember 2021). Was sind neuronale Netze und warum sind sie so wichtig?. Abgerufen am 13.04.2023 von https://nativdigital.com/neuronale-netze/

Rashid, T. (2017). Neuronale Netze selbst programmieren. O’Reilly, Heidelberg.

Aufgabe 1: Werte für Knotenpunkte berechnen

a) Geben Sie die Formeln für und an.

b) Bestimmen Sie konkret für die folgenden Werte:

Tragen Sie das Ergebnis für als Antwort unten ein.

- 3.1
Feedback: Super, dieses Ergebnis ist richtig. Für die weiteren Formeln müssen lediglich die Gewichtungsfaktoren passend verändert werden:
- @#wronganswer#@
Feedback: Dieses Ergebnis stimmt leider nicht. Es gilt: Für die weiteren Formeln müssen lediglich die Gewichtungsfaktoren passend verändert werden:

Aufgabe 2: Übergang zur Matrixmultiplikation

Im vorherigen kleinen Beispiel mag das Erstellen der Formeln und deren Berechnung vielleicht noch eine schaffbare Aufgabe sein, doch mit einer wachsenden Zahl an Knoten und Schichten (teilweise mehrere Milliarden innerhalb eines neuronalen Netzes) wird es immer komplizierter. Dies führt irgendwann zu Rechnungen, die kaum noch mit überschaubarem Aufwand zu bewältigen sind – oder doch?

Computer sind äußerst effiziente Rechenmaschinen, die fest vorgegebene Rechenstrukturen und wiederkehrende Rechenprinzipien schnell und fehlerfrei berechnen können. Ein weiterer Vorteil ist, dass sich die hier vorgenommenen Rechnungen über einen einzigen Rechenschritt zusammenfassen lassen, der von fast allen Computersprachen bereits beherrscht wird, ohne dass eine neue Rechenvorschrift vorgegeben werden muss: Die Matrixmultiplikation.

Die von der ersten Schicht a ausgehenden Werte lassen sich als Vektor zusammenfassen, wobei . Die Gewichtungsfaktoren hingegen lassen sich als Matrix darstellen:

Multipliziert man eine Matrix mit einem Vektor ( ), so wird jeweils eine Zeile der Matrix mit den Einträgen des Vektors multipliziert und die Ergebnisse addiert. Es ergibt sich also der folgende Ergebnisvektor:

Aufgabe 2
Stellen Sie einen Bezug zwischen den Zeilen des Vektors und Ihren Ergebnissen aus Aufgabe 1 her.

Lösung zu Aufgabe 2

Die jeweiligen Zeilen des Vektors entsprechen exakt den gesuchten Knotensummen der Schicht b (vgl. Formeln für , und ).

Aufgabe 3: Berechnung mithilfe einer Gewichtungsmatrix

Aufgabe 3

Berechnen Sie die einzelnen Einträge des Vektors mit folgender Gewichtungsmatrix und dem Eingangssignal .

Geben Sie das Ergebnis des Vektors in der Form (2;3;4) [beispielhaft für den Vektor a des Eingangssignals] an. (keine Leerzeichen verwenden)

- (3,1;5,4;4,7)
Feedback: Super, dieses Ergebnis ist richtig.
- @#wronganswer#@
Feedback: Dieses Ergebnis stimmt leider nicht. Es gilt:

Aufgabe 4: maschinelle Berechnung

An dieser Stelle kann die Rechenarbeit also getrost dem Computer überlassen werden, der die für ihn simple Matrixmultiplikation berechnet. Auch die nächste Schicht kann nun genauso berechnet werden mit neuen Gewichtungsfaktoren, also , , usw.

Aufgabe 4
Informieren Sie sich, wie Sie im GTR oder CAS Matrizen und/oder Vektoren eingeben und multiplizieren. Kontrollieren Sie Ihre Ergebnisse für .

Die Gewichtungsfaktoren sowie auch die Eingangssignale sind in den Beispielen bisher willkürlich gewählt worden. Allerdings ist nun deren Bestimmung genau der Wesenszug der künstlichen neuronalen Netze. Durch sogenannte Trainingsbeispiele, bei denen das Endergebnis bereits bekannt ist, werden die Gewichtungsfaktoren durch Ausprobieren und Optimieren bestimmt. Dieser Schritt verwendet seinerseits wieder Matrixmultiplikation sowie lokale Extremstellen zur Minimierung von Abweichungen zum Endergebnis.

Tempoaufgabe: weitere Schichtvektoren berechnen

Zur weiteren Übung und zur Motivation, sich auf den GTR bzw. CAS zu verlassen, können nun weitere Schichten des neuronalen Netzes konstruiert werden. Die Eingabe in den Computer mag zwar ebenfalls als großer Aufwand wahrgenommen werden, dies lässt sich aber mit etwas Programmierarbeit automatisieren, sodass die Vorteile der Computergestützten Rechnung noch mehr überwiegen.

Tempoaufgabe

Bestimmen Sie die weiteren Schichtvektoren und mithilfe der Gewichtungsmatrizen und .

Geben Sie das Ergebnis für beide Vektoren in der Form (2;3;4);(5,1;6,2;7,3) an. (keine Leerzeichen verwenden)

- (6,29;5,88;5,83);(8,918;5,548;9,691)
Feedback: Super, dieses Ergebnis ist richtig.
- @#wronganswer#@
Feedback: Dieses Ergebnis stimmt leider nicht. Es gilt: