04 Deep Belief Networks Flashcards
Was war “falsch” an Backpropagation
- Überwachtes Lernen:
benögtigt zu viele gelabelte Trainigsdaten. Teuer - Performanz skaliert oft nicht wirklich gut
sehr langsames Lernen (Konvergenz) in Netzen mit vielen Hidden Layer, die leider auch benötigt werden - Lokale Minima …
- Overfitting …
generativer Ansatz
Ziel: Grundidee eines generativen Modells nutzen! (einfaches DNN mit backprop)
Anpassen z.B der Gewichte w eines Netzes, so dass die Wahrscheinlichkeit, dass das Netz die Daten produziert maximiert wird.
Nicht Netz finden, dass p(label | image) maximiert, sonder Netzt finden, dass p(image | label) maximiert.
Belief Netz = korrektes Modell
Ein Belief Netz ist ein gerichteter azyklischer Graph mit stochastischen Variablen. (graphisches probabillisitsches Modell)
Einige Variablen sind beobachtbar
Netz besteht aus Schichten von binären stochastischen Variablen die gewichtet verbunden sind (Generalisierung auf andere Arten von Variablen möglich)
Zwei Problemstellungen der Belief Netze
Inferenz-Problem:
Schließen auf den Zustand der verdeckten Variablen
Lern-Problem:
Anpassen der Verbindungen zwischen den Variablen um das Netz zu befähigen beobachtete Daten generieren zu können
Lernen in “Deep” Belief Nets - gut und schlecht
gut:
Einfach (unbiased) Beispiele an den Endknoten zu generieren um zu sehen woran das Netz “glaubt”
schlecht:
Schwer die a-posteriori Wahrscheinlichkeit für alle Konfigurationen der verdeckten Ursachen zu inferieren.(explaining away problem)
(Die Beobachtung einer Ursache, die ausreicht um einen Effekt zu erklären, lässt andere mögliche Ursachen automatisch unwahrscheinlicher werden. Weil: Die Beobachtung des gemeinsamen Effekts macht die Ursachen bedingt abhängig –> Rück-Inferenz nicht möglich durch Beobachtung des Effekts)
Arbeitsprinzip Boltzmann Maschinen
Eine visible layer, eine hidden layer.
- Anstoßen ( Erregen )
- Iterieren in stabile Zustände (dadurch, dass es die ganze Zeit immer nur hin und her geht stellt sich irgendwann ein stabiler Zustand ein)
- viele solcher Zustände existieren
Wenn der Output identisch ist mit dem Input, dann wissen wir dass die hidden-layer perfekt die Ursachen abbilden
Boltzmann - Lernen
Ziel: Erzeugen stabiler Zustände, die die sichtbaren Lerndaten D abbilden
Prinzip:
Maximum likelihood lernen
–> Log-Wahrscheinlichkeit für Zustände (Konfigurationen) welche die Lerndaten in den sichtbaren Einheiten enthalten maximieren.
Methode: Betrachten der s.g. Energien der Konfigurationen
Idee des maximum likelihood Lernalgorithmus für RBM
Start mit einem Trainingsvektor an den sichtbaren Einheiten
Alternieren zwischen update aller hidden und update aller sichtbaren Einheiten (parallel)
bis unendlich
Schneller Lernalgorithmus für RBM (Contrastive divergence)
Start Trainingsvektor an den sichtbaren Einheiten
Update aller hidden Einheiten - Parallel
Update aller sichtbaren Einheiten (parallel) um eine Rekonstruktion zu erhalten
Update der hidden Einheiten
Update der Gewichte (direkt in t=1)
w_ij = €(^0 - ^1)
- Entspricht nicht ganz dem Gradienten des log liklihood aber funktioniert gut
- Erweiterung fr reell wertige Daten möglich
DBM - Deep Boltzman Maschine
Grundidee: Mehrer RBM stapeln
Trainieren des layer, welcher die Eingaben direkt von den Pixeln erhält (W_1)
Dann Aktivierung der trainierten Merkmale so verwenden als wären es Pixel und Lernen der zweiten verdeckten Schicht (W_2) usw …
Es kann gezeigt werden, dass jedes Mal wenn eine weitere Schicht hinzukommt, die untere Schwelle des log-likelihood der trainierten Daten erhöht wird.
Wake-Sleep Algorithmus
Nach Lernen der einzelnen Layer –> Verbessern durch fine-tuning
Lösen der symmetrischen Bindung zwischen den auf- und abwärts-Gewichten !
Algo:
- Wake: Aufwärtsschritt
* starte Anregung mit sichtbaren Daten
* anpassen der top-down Gewichte um die Aktivität der Merkmale in tiefere Ebenen zu erkonstruieren - Einige Interationen in der höchsten RBM
* Anpassen der Gewichte in der obersten RBM - Sleep: Abwärtsschritt
* Anpassen der bottom-up Gewichte um die Aktivität der Merkmale in die höheren Ebenen zu rekonstruieren.
Backpropagation für DBM
Weitere Schicht mit neuoronen oben hinzufügen.
Letzte Schichte trainieren auf gelabelten Daten.
–> sorgt für sehr gute initialisierung der gewichte für das NN am ende –> gutes Eregebnis auch mit wenig gelabelten Daten
Gradientenabstieg nur eine Schicht nach unten –> sehr schnell
Anwendungsmöglichkeiten
Deep Autoencoders
Bag-of-Words
- Eingabe: 2000 word counts
- Reduzierung auf 10 Einheiten
- Ausgabe 2000 - in 10 Kategorien
Zeitreihenmodelle
Bewegungsabläufe