Was sind künstliche neuronale Netze?
Künstliche neuronale Netze (KNN) haben sich in den vergangenen Jahren als überaus leistungstarke und anpassbare Strukturen des maschinellen Lernens erwiesen. So kommen die KNN in unterschiedlichsten Anwendungsgebieten zum Einsatz.
Ob als Sprachassistenzsysteme in den bekannten Ausprägungen kommerzieller Anbieter oder als Assistenzsysteme zur Klassifizierung von u.a. Bildern und Dokumenten liefern KNN mittlerweise erstaunliche Ergebnisse.
Als biologisches Vorbild für die künstlichen neuronalen Netze dienen die natürlichen neuronalen Netze und hier insbesondere das Neuronalnetz, durch das wir in der Lage sind, diese Zeilen zu lesen und zu verstehen.
Auch wenn die Funktionsweise der künstlichen, vielschichtigen Neuronalnetze des Deep Lerning nicht mit der Funktion der natürlichen Neuronalnetze zu vergleichen sind, diente das biologische Vorbild doch als Modell für das künstliche Neuron, welches als atomare Einheit der KNN zumindest didaktisch eine Relevanz besitzt.
Wie sind natürliche Neuronen aufgebaut?
In der Abbildung sind zwei der durchschnittlich 100 Mrd. natürlichen Neuron im menschlichen Gehirn dargestellt.
Sie bestehen aus einem Zellkörper mit Kern und dem Axon zur Signalweiterleitung zu weiteren Neuronen. Die elektrischen Impulse der Neuronen werden - bei Überschreiten eines Schwellwertes - vom Zellkern über auf das Axom gefeuert und über die ca. 50nm großen Spaltabstände der Synapsen an bis zu 10000 weitere Neuronen geleitet.
Diese hochgradige Vernetzung der Neuronen ermöglicht eine massiv parallele Verarbeitung der Information und ist - trotz der geringen Rate von 100 Impulsen pro Sekunde - Grund für die immense "Rechenleistung" des menschlichen Gehirns.
Eine symbolische Relevanz für das künstliche Neuronenmodel kommen den biologischen Synapsen zu, die - auf Basis ausgeschütteter Neurotransmitter - den jeweiligen elektrischen Impuls mit einem Spannungspotenzial von ca. 70 mV zwischen den benachbarten Neuronen abschwächen oder verstärken und somit das übertragene Signal gewichten.
Diese Gewichtung des Informationsflusses zwischen benachbarten Neuronen bleibt im Modell eines künstlichen Neurons und der resultierenden künstlichen neuronalen Netze erhalten.
Wie modelliert man neuronale Netze?
McCulloch und Pitts haben bereits 1943 ein rudimentäres Modell für ein künstliches Neuron vorgeschlagen.
Die sogenannte McCulloch-Pitts-Zelle (oder auch als Schwellwertelement bezeichnet) wird von Rosenblatt 1958 zum Perzeptron-Modell weiterentwickelt. Das Rosenblatt-Perzeptron dient als Grundlage für die Modellierung neuronaler Netze und ist in der Abbildung dargestellt.
Wie verläuft die Signalübertragung im künstlichen Neuron?
Netzübertragungsfunktion fnet
Die formale Beschreibung der Eingabe- oder Netzübertragungsfunktion eines künstlichen Neurons liefert folgenden Zusammenhang:
Aktivierungsfunktion fact
Die Aktivierungsfunktion fact besteht - in der einfachsten Variante - aus der folgenden Sprungfunktion:
Schwellwert 0
Somit wird das jeweilige Neuron erst bei Erreichen des Schwellwert 0 aktiv und gibt das Signal über den Ausgang y an die folgenden Neuronen weiter
Was ist das Multi Layer Perzeptron?
Durch das Zusammenschalten mehrerer künstlicher Neuronen nimmt die Ausdrucksmächtigkeit des Gesamtnetzes enorm zu. Es entsteht das sogenannte Multi Layer Perzeptron (MLP) als mehrschichtiges, neuronales Netz. Die zwei Eingänge x1, x2 führen die Information zu den Neuronen des Inputlayers I1, I2.
Die Ausgänge dieser Neuronen sind über insgesamt vier Kanten mit den zwei Neuronen der Outputlayers O1, O2 verbunden.
Die Kantengewichte wO1I1 , wO2I1 , wO1I2 , wO2I2 dienen der Gewichtung in der Übertragungsfunktion der Outputneuronen.
Die Ausgänge der Outputneuronen bilden gleichzeitig die Ausgänge des Netzes y1, y2.
Ein 2x2 MLP mit zwei neuronalen Schichten und insgesamt vier künstlichen Neuronen
Was ist die Adjazenzmatrix?
Die mathematische Beschreibung der Anordnung in der Abbildung ist nachfolgend dargestellt. Die sogenannten Adjazenzmatritzen eignen sich dazu, die Netzoperationen effizient in der vektoriellen Schreibweise behandeln zu können.
Beispiel
Was sind Hidden Layer?
Das Prinzip lässt sich nun mathematisch um beliebig viele Dimensionen erweitern. In der folgenden Abbildung ist ein dreischichtiges MLP mit insgesamt neun Neuronen dargestellt. Die Ausgänge der Inputneuronen I1, I2, I3 sind mit den Neuronen des sogenannten Hidden Layers H1, H2, H3 verbunden. Die Neuronalnetze im Bereich des Deep Learning beinhalten viele (bis zu mehreren hundert) verdeckte neuronale Schichten.
Ein 3x3 MLP mit drei neuronalen Schichten und insgesamt neun künstlichen Neuronen
Mit der nun entstandenen MLP-Struktur besteht die Möglichkeit, die anliegenden Werte des Netzeingangs per Matrixmultiplikation und der Berücksichtigung der jeweiligen Neuronenfunktionen schichtweise vom Eingang bis zum Ausgang des Netzes zu übertragen
Was hat das bisherig dargestellte mathematische Vorgehen mit maschinellem Lernen, oder gar KI zu tun?
Die entstandene Netzstruktur ermöglicht - durch die einstellbaren Kantengewichte - eine maschinelle Lernfähigkeit, die sich vielseitig nutzen lässt, u.a. in Rahmen von Klassifikationen, die im späteren Abschnitt anhand von Beispielen aus der Praxis dargestellt werden.
Was ist das Adaline-Modell? Wie wird die Gewichtsänderung berechnet?
Adaline-Modell (ADAptive LInear Neuron)
—> Im Adaline-Modell werden die Gewichte durch die sogenannte Delta-Lernregel angepasst. Diese Regel definiert die Gewichtsänderung dw als Differenz zwischen dem angestrebten Soll-Ausgangswert t (training pattern oder target) und dem tatsächlichen Ausgang y, multipliziert mit einem linearen Faktor η, der als Lernrate oder Schrittweite bezeichnet wird, und dem Eingangswert x.
δw = η(t − y) ⋅ x
Die Gewichtsänderung δw wird zum ursprünglich gewählten Gewicht walt addiert, um das neue, angepasste Gewicht wneu zu erhalten.
wneu = walt + δw
Hierdurch werden die jeweiligen Kantengewichte so verändert, dass ein zu niedriger Ausgangswert y (im Vergleich zum gewünschten Ausgang t) eine Vergrößerung des jeweiligen Gewichtes w und ein zu hoher Ausgangswert eine Reduzierung des Gewichtes nach sich zieht.
Die Differenz zwischen trainiertem Soll- und tatsächlichem Istausgang (t − y) kann auch als Fehler des trainierten Netzes bezeichnet werden.
E = (t − y)
Die differenziellen Betrachtungen zur Delta-Lernregel bilden die Grundlage für die Weiterentwicklung der Lernalgorithmen neuronaler Netze, die stets die Minimierung des Fehlers E (über alle Trainingsmuster) zum Ziel haben
Was wird als Fehler E des trainierten Netzes bezeichnet?
Die differenziellen Betrachtungen zur Delta-Lernregel bilden die Grundlage für die Weiterentwicklung der Lernalgorithmen neuronaler Netze, die stets die Minimierung des Fehlers E (über alle Trainingsmuster) zum Ziel haben.
Die Summe der Kantengewichte eines angelernten (trainierten) neuronalen Netzes repräsentiert hierbei das Gedächnis der durchgeführten Trainingsläufe, da die Veränderung der Gewichte auf Basis der Delta-Regel zur Angleichung des Netzausgangs an das Trainigsmuster führt.
Das Anlernen des Netzes ist somit essentieller Arbeitschritt, um neuronale Netze in KI-Aufgaben einsetzen zu können.
Was bedeutet ein neuronales Netz zu trainieren?
Das Training eines neuronalen Netzes besteht aus der iterativen Gewichtsanpassung der einzelnen neuronalen Schichten.
Jede Iteration wird als Epoche bezeichnet.
Was geschieht in einer Epoche?
In einer Epoche
wird jeder Featurevektoren des Trainingsdatensates einmal als Input verwendet.
wird für jeden Output der Fehler E bestimmt
Die Anpassung der Gewichte folgt in einem zweischrittigen Verfahren. In diesem Verfahren werden die beiden Schritte vielfach (1x je Featurevektor) nacheinander durchgeführt, bis der Fehler E (als Abweichung der Netzausgänge zum Trainingsmuster) minimiert wurde. Die beiden Schritte werden als Forward- und Backwardpropagation bezeichnet.
Forwardpropagation (Forwarding)
Vorwärtsrechnung (von Eingang bis Ausgang)
Messen der Ausgangswerte und des Fehlers E
Backwardpropagation (Backwarding)
Rückwärtsrechnung (von Ausgang bis zum Eingang)
Anpassung der Gewichte zur Minimierung des Fehlers
Mean Square Error
Die Schleife der Lernzyklen (Epochen) terminiert, wenn der gemessener Fehler eine zuvor definierte Fehlerschwelle unterschreitet
Im Unterschied zum einzelnen Perzeptron wird der Fehler im MLP nun durch den mittleren quadratischen Fehler (Mean Square Error)
als Abweichung des Netzausgangs y zum Sollausgang t über alle Tests n definiert.
Erläutere die Fowardpropagation
Die schichtweise Vorwärtsrechung im MLP folgt der bereits dargestellten Matrixmultiplikation vom Eingang bis zum Ausgang des Netzes. Anhand des 3 × 3 MLP aus der Abbildung wird dies für die 3 Schichten I, H, O skizziert.
Erläutere die Backwardpropagation
Die Aufgabe in der Backwardpropagation ist die schichtweise Gewichtsanpassung der neuronalen Layer vom Ausgang bis zum Eingang des Netzes. Diese Arbeitsrichtung gibt das verwendete Gradientenabstiegsverfahren vor.
In diesem Verfahren wird das Minimum des Fehlers in Bezug zum Einfluss der jeweiligen Gewichte gesucht, d.h. die Antwort auf die Frage, bei welchen Gewichtswerten der Netzfehler minimiert ist. Die Suche nach funktionalen Minima erfolgt mathematisch durch das Nullsetzen der ersten Ableitung der Funktion.
Bei einer mehrdimensionalen Funktion (in der Regel liegen mehrere Gewichte vor) wird dies durch sogenannte partielle Ableitungen nach jeweils einer Variablen erreicht. Die partielle Ableitung ermöglicht es, den Gradienten (Richtungsableitung) der Funktion als stärkste Steigung in einem Punkt zu ermitteln. Nun gilt es, diesen Gradienten entgegengesetzt, in Richtung des "geringsten Fehlerwertes abzusteigen".
In der Grafik ist dieser Gradientenabstieg zur Minimierung des Fehlerwerte e in Bezug der Gewichte w1 und w2 visualisiert. Mit der Richtungsableitung für jeden Punkt der zweidimensionalen Fehlerfunktion E (abhängig von den Gewichten w1 und w2 ) lässt sich das Minimun der Fehlerfunktion finden.
Hierzu führt der Gradienten in negativer Richtung zum Minimun der Fehlerfunktion, bzw. zu den jeweiligen Werten der Gewichte w1 und w2, die dieses Fehlerminimum ermöglichen. Dies sind dann die einzustellenden Gewichtswerte.
(basierend auf Fehler Netz kann ujedes einzelne Gewicht angepasst werden)
Last changed2 years ago