04 Neuronale Netze Flashcards
Typische Einsatzfelder künstlicher Neuronaler Netze
Klassifikation und Mustererkennung
- Diagnose, Spracherkennung, Schrifterkennung
- Bilderkennung
Funktionsapproximierung / Regression
- Kontinuierliche Abbildung
- Steuerung
- Vorhersage
Mustervervollständigung
- Bilderzeugung, generative Modelle
- Kodierung, Komprimierung
Geometrische Interpretations des Perzeptrons
Ein Perzeptron eralisiert eine Trennhyperebene (in R^2)
Die Gewichte definieren diese Trennhyperebene (sie stellen Nromale dar)
Gegebene Positive und Negative Daten (P,N) erfolgt eine Entscheidung durch gewichtete Summe => Skalarprodukt mit dem Normalenvektor
Erweiterung der Dimension durch x0 (bias)
Lernen = Anpassen der Gewichte
=> Gesucht wird die beste Trennhyperebene
Grenzen des Perzeptron Lernalgorithmus
|w|»_space; |x|
=> sehr langsame Anpassung
Worst case: fast antiparallele Vektoren
Lösung: Gradientenabstieg
Multi Layer Neural Network
Netzaufbau: mehrere versteckte (innere) Schichten (hidden layers)
Lernverfahren:
Backpropagation - Algorithmus (allgemeine Delta-Regel)
Neuronenaufbau:
nichtlineare Aktivierungsfunktion
pattern / mini-batch / epoch learning
Pattern Learning:
- lernen auf Einzeldaten
- Anpassung nach jedem Lernbeispiel
- schnelles Lernen
Mini Batch Learning:
- Lernen auf Teilmengen
- Auswahl verhältnismäßig kleiner Lernmengen mit zurücklegen
- Gutes Lernen (aktuell SdT)
Epoch Learning:
- Mittelung der Gewichtsänderung über alle Beispiele
- Anpassung nachdem alle Beispiele propagiert wurden
- “echter” Gradientenabstieg
- nicht anfällig für Ausreißer / falsche Lerndaten
Stochastischer Gradientenabstiegt:
- pattern learning oder mini batch learning
- kein “echter” gradient decent
- stochastische Auswahl –> gute Approximation des echte gradient decent
Optimierung des Gradientenabstiegs
Momentum Term alpha
Normierung der Schrittweite (Manhatten-Training)
Lernratenanpassung:
Modifikation der Lernrate mittels Gradientenvergleich
RPROP (Resilient Propagation
Implementiert normierte Schrittweite und Lernratenanpassung
=> Beschhleunigung auf flachem Plateu
=> Langsam Anpassen im Minimum
=> Schnelle Konvergenz
Adam Optimizer
Adaptive Moment Estimation
Angepasste Lernraten für jeden Parameter
- für jeden Parameter werden gleitende Schätzer für Mittelwert und Varianz mitgeführt
*da Mittelwert und Varianz mit 0 initialisiert werden, müssen diese jeweils korrigiert werden
m = m/(1-ß1) v=v/(1-ß2)
- Update der Parameter über
wt = w(t-1) - lernrate * (m/(√v + epsylon) - Zusätzliche Hyperparameter ß1, ß2 und epsylon mit Default-Werten
- Implizites Momentum und Anpassung an die Varianz der Gradienten
Initialisierung der Gewichte
unterschiedliche Gewichte, da sonst funktionsgeliche Neuronen
zufällig, normal- oder gleichverteilt um 0, klein
* keine anfängliche Ausrichtung
Xavier- Initialisierung:
*optimierte Initialisierung, so dass Vanishing- und Exploding-Gradients verringert werden
* Initialisierung normal- oder gleichverteilt mit:
Var(wij) = 2 / (n_in + n_out)
n_in: Anzahl der Neuronen vor j
n_out: Anzahl der Neuronen nach j
Konstruktives Lernverfahren für MLNN : Cascade-correlation
Initialisierung als 2- schichtiges Netz,
Festlegen der Abbruchkriterien: Fehlerschranke, Anzahl der Neuronen ….
Trainieren – Anpassen aller Gewichte
Solange E(w) > Fehlerschranke und nicht weiteres Abbruchkriterium:
- Füge Neuron ein: (s.g. Kandidat-Neuron)
- hidden, d.h. vor die Ausgabeschicht,
- vollständig verbunden, mit Eingabeschicht, mit Ausgabeschicht, z.B. Gewicht -1 zu vorher eingefügten Neuronen
- Trainiere neues Neuron (einmalig)
- Trainiere Netz
Vereinfachte Version:
- Anpassung der neuen Neuronen
- Kandidat-Neuronen wird mit -1 zu den anderen Neuronen der Zwischenschicht verbunden (maximal unterschiedliche Ausprägung)
Cascade Correlation - Bewertung
Pro:
+ zu jedem Zeitpunkt wird “nur eine Ebene” von Verbindungen trainiert
+ lernt sehr schnell
+ inkrementelles Training, dh.h. in der Lage bei neuen Daten vom letzten Stand aus weiter zu Lernen
+ Iterative Anpassung der Kapazität des Netzes
Con:
- spezielle Architektur => Güte nicht allgemein bestimmbar
- Ansatz nicht anwendbar für komplexe Architekturen
Dropout
Maskierung (Inaktivierung) von Neuronen beim Lernen
- -> auf allen möglichen Subnetzen gleichzeitig lernen
- mit jedem Lernbeispiel wird eine Maskierung der Neuronen festgelegt
- lernen mit den jeweils aktiven Neuronen (pro Beispiel)
- Realisiert dann bagging mit Parameter-sharing, d.h. Modelle sind nicht unabhängig
- Implizite Aggregation über die Modelle
Vanishing-Gradient Problem
Je weiter die Schicht von der Ausgabeschicht entfernt liegt, desto kleiner werden die Gradienten
Exploding-Gradient Problem
Falls die Gewichtsmatritzen groß sind:
- ergeben sich viele große Werte, die miteinander multipliziert werden
- explodierende Gradienten können das Lernen instabil machen (zB durch größere Änderungen im Fehler
- Das NN kann nicht aus den Trainingsdaten lernen
Gradient Clipping
Optimierung: Die Gradienten während des Backpropagation so einschränken, dass sie einen bestimmten Schwellwert nie überschreiten.
Residual Learning
Optimierung durch zusätzlich Verbindungen über Schichten hinweg
Stärkere Rückpropagierung des Fehlers in untere Schichten
Early Stopping
Training abbrechen
Problem: In der Praxis keine “glatte” Fehlerkuven
In Intervallen von n Trainingszyklen wird geprüft ob der Testfehler p mal aufeinanderfolgend größer wird. Falls ja wird das Training abgebrochen
Einsatz von MLNN
Entwurf
- Subsymbolische Repräsentation der Ein- und Ausgabe
- Auswahl Trainingsdaten
- Auswahl des Verfahrens
- Auswahl der Topologie
- Parametereinstellung
Auswahl des Lernverfahrens
- z.B. Optimierungsmethode (Momentum, RMSprob, Adam, RPROP)
- Initialisierung
- Lernansatz (z.B. Dropout, …)
Lernfortschritt (Gewichtsanpassung
* Overfitting testen
Training & Verifikation (Test)