SlideShare una empresa de Scribd logo
1 de 100
Recurrent NeuralNetworks
(Rekurrentes neuronales Netz)
by Datamics, 2018
Übersicht
• Wir haben Neuronale Netze verwendet, um Klassifizierungs- und
Regressionsprobleme zu lösen, aber wir haben noch nicht gesehen, wie
Neuronale Netze mit Sequenzinformationen umgehen können.
• Hierfür verwenden wir Recurrent Neural Networks (RNN).
Übersicht
by Datamics, 2018
Inhalt
• RNN Theorie
• Basis-Handbuch RNN
• Vanishing Gradients (Verschwindende Gradienten)
• LSTM und GRU Einheiten
• Zeitreihen mit RNN
• Zeitreihen-Übung / Lösungen
• Wort2Vec Algorithmus
RNN Einführung
Los geht‘s!
RecurrentNeural Networks
Theorie
by Datamics, 2018
Beispiele für Sequenzen
• Zeitreihen-Daten (Verkauf)
• Sätze
• Audio/Musik
• Auto Trajektorien
• Maschinendaten
RNN Theorie
by Datamics, 2018
RecurrentNeuralNetworks
• Stellen wir uns eine Sequenz vor:
[1,2,3,4,5,6]
• Wäre es möglich, eine ähnliche Sequenz vorherzusagen, die um einen
Zeitschritt in die Zukunft verschoben wurde?
[2,3,4,5,6,7]
RNN Theorie
by Datamics, 2018
Normales Neuron im Feed Forward Netzwerk
Σ
Aktivierungsfunktion
Input
Aggregation der Inputs
Output
RNN Theorie
by Datamics, 2018
Σ
Input
Output
Rekurrentes Neuron
• Sendet die Ausgabe an
sich selbst zurück!
• Mal sehen, wie das im
Laufe der Zeit aussieht.
RNN Theorie
by Datamics, 2018
Rekurrentes Neuron
Σ
Input
bei t-1
Output
bei t-1
Σ
Input
bei t
Σ
Input
bei t+1
=
Output
bei t
Output
bei t+1
Zeit
Σ
Input
Output
RNN Theorie
by Datamics, 2018
Memory Cells (Speicherzellen)
• Zellen, die eine Funktion von Inputs aus früheren Zeitschritten sind,
werden auch als memory cells (Speicherzellen) bezeichnet.
• RNN sind auch in ihren Ein- und Ausgängen flexibel, sowohl für
Sequenzen als auch für einzelne Vektorwerte.
RNN Theorie
by Datamics, 2018
Recurrent Neurons (Rekurrente Neuronen)
• Wir können auch ganze Schichten von Rekurrenten Neuronen
erzeugen....
RNN Theorie
by Datamics, 2018
RNN-Schicht mit 3 Neuronen
X y
RNN Theorie
by Datamics, 2018
“Unrolled” Layer
Input
bei t+1
Input
bei t+2
Output
bei t+1
Output
bei t+2
Input
bei t=0
Zeit
Output
bei t+1
RNN Theorie
by Datamics, 2018
RecurrentNeural Networks
• RNN sind auch in ihren Ein- und Ausgängen sehr flexibel.
• Lass uns ein paar Beispiele anschauen.
RNN Theorie
by Datamics, 2018
Sequenz zu Sequenz
X0 X1 X2
Y0 Y1 Y2 Y3
X3
Y4
X4
RNN Theorie
by Datamics, 2018
Sequenz zu Vektor
X0 X1 X2
Y0 Y1 Y2 Y3
X3
Y4
X4
RNN Theorie
by Datamics, 2018
Vektor zu Sequenz
X0 0 0 0
Y4
0
RNN Theorie
Y0 Y1 Y2 Y3
by Datamics, 2018
RecurrentNeural NetworkModell
• Lass uns untersuchen, wie wir ein einfaches RNN-Modell in
TensorFlow manuell erstellen können.
• Danach werden wir sehen, wie man TensorFlow's eingebaute RNN
API-Klassen verwendet.
RNN Theorie
RecurrentNeural Networks
Manuelle Erstellung
by Datamics, 2018
Übersicht
• In dieser Lektion erstellen wir manuell eine 3 Neuronen RNN Schicht
mit TensorFlow.
• Im Vordergrund steht dabei das Eingabeformat der Daten.
RNN mit TensorFlow
by Datamics, 2018
RNN mit TensorFlow
• Wir bauen die folgende RNN-Schicht:
X y
RNN mit TensorFlow
by Datamics, 2018
„Unrolled“ Layer
Input
bei t=0
Input
bei t+1
Output
bei t+1
Output
bei t=1
RNN mit TensorFlow
by Datamics, 2018
RNN
• Wir beginnen mit der Ausführung der RNN für 2 Datensätze,
t=0 und t=1.
• Jedes rekurrierende Neuron hat 2 Sets von Gewichten:
• Wx für Eingangsgewichte auf X
• Wy für Gewichte am Ausgang des ursprünglichen X
RNN mit TensorFlow
by Datamics, 2018
Beispiel für RNN Daten
t=0 t=1 t=2 t=3 t=4
[ The, brown, fox, is, quick]
[ The, red, fox, jumped, high]
words_in_dataset[0] = [The, The]
words_in_dataset[1] = [brown, red]
words_in_dataset[2] = [fox,fox]
words_in_dataset[3] = [is, jumped]
words_in_dataset[4] = [quick, high]
num_batches = 5, batch_size = 2, time_steps = 5
RNN mit TensorFlow
Vanishing Gradients
(Verschwindende Gradienten)
by Datamics, 2018
Vanishing Gradients
• Die Backpropagation (Rückführung) erfolgt rückwärts von der
Ausgabe- zur Eingabeschicht, wodurch sich der Fehlergradient
ausbreitet.
• Bei tieferen Netzwerken (Deep Networks) können Probleme durch
Backproagation, Vanishing und Exploding Gradienten entstehen.
Vanishing Gradients
by Datamics, 2018
Vanishing Gradients
• Wenn man zu den "unteren" Schichten zurück geht, werden die
Gradienten oft kleiner, was dazu führt, dass sich die Gewichtungen
auf den unteren Ebenen nie ändern.
• Das Gegenteil kann auch vorkommen, Gradienten „explodieren“ auf
dem Rückweg und verursachen Probleme.
Vanishing Gradients
by Datamics, 2018
Vanishing Gradients
• Lass uns nun besprechen, warum das passieren könnte und wie wir es
beheben können.
• Im nächsten Teil der Vorlesung werden wir dann diskutieren, wie sich
diese Probleme speziell auf RNN auswirken und wie man LSTM und
GRU verwendet, um sie zu beheben.
Vanishing Gradients
by Datamics, 2018
Warum passiert das?
1
Output
0
0
z =wx +b
Vanishing Gradients
by Datamics, 2018
Warum passiert das?
1
Output
0
0
z =wx +b
Vanishing Gradients
by Datamics, 2018
Verwendung verschiedener
Aktivierungsfunktionen
Output
0
z =wx +b
Vanishing Gradients
by Datamics, 2018
Das ReLu sättigt keine positiven Werte
Output
0
z =wx +b
Vanishing Gradients
by Datamics, 2018
“Leaky” ReLU
Output
0
z =wx +b
Vanishing Gradients
by Datamics, 2018
Exponential Linear Unit (ELU)
(Exponentielle Lineareinheit)
Output
1
0
-1
0
z =wx +b
Vanishing Gradients
by Datamics, 2018
Batch Normalization (Chargennormalisierung)
• Eine andere Lösung ist die Chargennormalisierung, bei der das Modell
jede Charge anhand des Chargenmittelwerts und der
Standardabweichung normalisiert.
Vanishing Gradients
by Datamics, 2018
Gradienten-Clipping
• Neben der Chargennormalisierung haben die Entwickler auch das
"Gradienten-Clipping" eingesetzt, bei dem Gradienten vor Erreichen
einer vorgegebenen Grenze abgeschnitten werden (z.B. Gradienten
zwischen -1 und 1).
Vanishing Gradients
by Datamics, 2018
RNN für Time Series
• RNN für Zeitreihen haben ihre eigenen Herausforderungen mit den
Gradienten. Wir werden jetzt spezielle Neuroneneinheiten (Neuron
Units) kennenlernen, um diese Probleme zu beheben.
Vanishing Gradients
LSTM undGRU
by Datamics, 2018
LSTM und GRU
• Viele der bisher vorgestellten Lösungen für das Verschwinden von
Gradienten können auch für RNN gelten: verschiedene
Aktivierungsfunktionen, Chargennormalisierungen, etc....
• Aufgrund der Dauer der Zeitreiheneingabe können diese jedoch das
Trainieren verlangsamen.
LSTM und GRU
by Datamics, 2018
LSTM und GRU
• Eine mögliche Lösung wäre, nur die Zeitschritte für die Vorhersage zu
verkürzen, aber das macht das Modell schlechter bei der Vorhersage
längerer Trends.
LSTM und GRU
by Datamics, 2018
LSTM und GRU
• Ein weiteres Problem von RNN‘s ist, dass nach einer Weile das
Netzwerk beginnt die ersten Eingänge zu "vergessen", da
Informationen bei jedem Schritt durch die RNN verloren gehen.
• Wir brauchen eine Art „Langzeitgedächtnis“ (long-term-memory) für
unsere Netzwerke.
LSTM und GRU
by Datamics, 2018
LSTM-Zelle
• Die LSTM-Zelle (Long Short-Term Memory) wurde entwickelt, um
diese RNN-Probleme zu lösen.
• Gehen wir die Funktionsweise einer LSTM-Zelle durch!
LSTM
by Datamics, 2018
Ein Typisches RNN
Input
bei t-1
Input
bei t
Input
bei t+1
Output
bei t
Output
bei t+1
Output
bei t-1
LSTM
by Datamics, 2018
tanh
ht-1
ht ht+1
ht-1 ht
ht+1
Input
bei t-1
Input
bei t
Input
bei t+1
Output
bei t
Output
bei t+1
Output
bei t-1
LSTM
by Datamics, 2018
LSTM Zelle
Input bei t
Output beit
σ
X
X
X
σ σ tanh
tanh
+
http://colah.github.io/posts/2015-08-Understanding-LSTMs/
• Hier sehen wir die ganze
Zelle
• Gehen wir den Prozess
durch!
LSTM
by Datamics, 2018
LSTM Zelle
ht-1
Ct-1
Ct
ht
ht
xt
σ
X
X
+
X
σ σ tanh
tanh
• Hier sehen wir die ganze
Zelle
• Gehen wir den Prozess
durch!
LSTM
by Datamics, 2018
LSTM Zelle
ht-1
Ct-1
Ct
ht
ht
xt
σ
X
X
+
X
σ σ tanh
tanh
ft
σ σ
LSTM
by Datamics, 2018
LSTM Zelle
xt
σ
X
X
tanh
tanh
ht-1
Ct-1
Ct
ht
xt
it
σ σ
Ct
X
~
+
LSTM
ht
by Datamics, 2018
LSTM Zelle
σ
X
X
tanh
tanh
ht-1
Ct-1
Ct
ht
xt
it
σ σ
Ct
ft
X
~
+
LSTM
ht
by Datamics, 2018
LSTM Zelle
σ
X
X
σ σ tanh
tanh
X
ht-1
Ct-1
Ct
ht
xt
+
LSTM
ht
by Datamics, 2018
Eine LSTM-Zelle mit " Peepholes"
σ
X
X
σ σ tanh
tanh
X
ht-1
Ct-1
Ct
ht
xt
+
LSTM
ht
by Datamics, 2018
Gated Recurrent Unit (GRU)
X
ht-1
Ct
xt
+
X
tanh
X1-
σ
rt
σ
zt
GRU
ht
by Datamics, 2018
TensorFlow RNN API
• Glücklicherweise sind diese Neuronenmodellen bei TensorFlow in
eine nette API integriert. Das macht es uns einfach diese ein- und
auszutauschen.
• Als nächstes werden wir die Verwendung dieser TensorFlow RNN API
für die Vorhersage und Generierung von Zeitreihen untersuchen!
TensorFlow RNN API
RNN mit TensorFlow API
by Datamics, 2018
RNNmitTensorFlowAPI
• Jetzt verstehen wir verschiedene Verbesserungen für RNNs, daher
verwenden wir die in TensorFlow integrierte tf.nn Funktions-API, um
Sequenzprobleme zu lösen!
TensorFlow RNN API
by Datamics, 2018
RNNmitTensorFlowAPI
• Erinnerst du dich noch an unsere ursprüngliche Sequenzübung:
[1,2,3,4,5,6]
• Können wir vorhersagen, dass sich die Reihenfolge um einen
Zeitschritt nach vorne verschoben hat?
[2,3,4,5,6,7]
TensorFlow RNN API
by Datamics, 2018
RNNmitTensorFlowAPI
• Was ist mit dieser Zeitreihe?
[0,0.84,0.91,0.14,-0.75,-0.96,-0.28]
TensorFlow RNN API
by Datamics, 2018
RNNmitTensorFlowAPI
• Was ist mit dieser Zeitreihe?
[0,0.84,0.91,0.14,-0.75,-0.96,-0.28]
• Es ist eigentlich nur Sin(x):
[0.84,0.91,0.14,-0.75,-0.96,-0.28,0.65]
TensorFlow RNN API
by Datamics, 2018
RNNmitTensorFlowAPI
• Wir beginnen mit der Erstellung eines RNN, das versucht, eine
Zeitreihe vorherzusagen, die über eine Einheit in die Zukunft
verschoben wurde.
• Dann werden wir versuchen, neue Sequenzen mit einer Seed-Serie zu
generieren.
TensorFlow RNN API
by Datamics, 2018
RNNmitTensorFlowAPI
• Wir werden zuerst eine einfache Klasse erstellen, um sin(x) zu
erzeugen und auch zufällige Batches von sin(x) zu erfassen.
TensorFlow RNN API
by Datamics, 2018
RNNmitTensorFlowAPI
• Wir werden zuerst eine einfache Klasse erstellen, um sin(x) zu
erzeugen und auch zufällige Batches von sin(x) zu erfassen.
TensorFlow RNN API
by Datamics, 2018
RNNmitTensorFlowAPI
• Wir werden zuerst eine einfache Klasse erstellen, um sin(x) zu
erzeugen und auch zufällige Batches von sin(x) zu erfassen.
TensorFlow RNN API
by Datamics, 2018
RNNmitTensorFlowAPI
• Dann erhält das trainierte Modell eine Zeitreihe und versucht, eine
Zeitreihe vorherzusagen, die um einen Zeitschritt nach vorne
verschoben wurde.
TensorFlow RNN API
by Datamics, 2018
RNNmitTensorFlowAPI
• Danach werden wir das gleiche Modell verwenden, um viel längere
Zeitreihen zu erzeugen, wenn wir eine Seed-Serie haben.
TensorFlow RNN API
by Datamics, 2018
RNNmitTensorFlowAPI
• Danach werden wir das gleiche Modell verwenden, um viel längere
Zeitreihen zu erzeugen, wenn wir eine Seed-Serie haben.
TensorFlow RNN API
RNN mit der TensorFlow API
AnwendungTeil1
RNN mit der TensorFlow API
AnwendungTeil2
RNN mit der TensorFlow API
AnwendungTeil3
RNN mit der TensorFlow API
AnwendungTeil4
Zeitreihen-Übung
Zeitreihen-Lösungen
Teil 1
Zeitreihen-Lösungen
Teil 2
Kurzer Hinweis zu Word2Vec
by Datamics, 2018
Kurzer Hinweis zu Word2Vec
• Optionale Lektionen zum Thema Word2Vec mit TensorFlow.
• Die gensim-Library ist empfehlenswert, wenn du dich für Word2Vec
interessierst.
Word2Vec
Word2Vec
Natural Language Processing
by Datamics, 2018
Natural Language Processing
• Nachdem wir jetzt verstehen wie man mit Zeitreihen von Daten
arbeitet, werfen wir nun einen Blick auf eine andere wichtige
Datenquelle der Sequenzen: den Wörter.
• Zum Beispiel der Satz:
["Hi", "wie", “geht‘s", “dir"]
Word2Vec
by Datamics, 2018
Natural Language Processing
• Im "klassischen" Natural Language Processing (NLP) werden Wörter
typischerweise durch Zahlen ersetzt, die eine gewisse
Häufigkeitsbeziehung zu ihren Dokumenten angeben.
• Dadurch verlieren wir Informationen über die Beziehung zwischen
den Wörtern selbst.
Word2Vec
by Datamics, 2018
Natural Language Processing
• Zählbasiert (Count-Based)
• Häufigkeit der Wörter im Korpus
• Vorhersagebasiert (Predictive-Based)
• Nachbarwörter werden anhand eines Vektorraumes vorhergesagt.
Word2Vec
by Datamics, 2018
Word2Vec-Modell von Mikolov et al.
• Lass uns nun einen der bekanntesten Anwendungsfälle von Neuralen
Netzwerken in der natürlichen Sprachverarbeitung erforschen:
• Das Word2Vec-Modell von Mikolov et al.
Word2Vec
by Datamics, 2018
Word2Vec-Modell von Mikolov et al.
• Das Ziel des Word2Vec-Modells ist es, Worteinbettungen zu lernen,
indem jedes Wort als Vektor im n-dimensionalen Raum modelliert
wird.
• Aber warum verwenden wir die Wort-Einbettungen?
Word2Vec
by Datamics, 2018
Darstellung der Daten
Word2Vec
by Datamics, 2018
Word2Vec
• Word2Vec erstellt Vektormodelle, die Wörter in einem
kontinuierlichen Vektorraum darstellen (einbetten).
• Mit Wörtern, die als Vektoren dargestellt werden, können wir
Vektormathematik auf Wörtern durchführen (z.B. Ähnlichkeiten
prüfen, Vektoren addieren/subtrahieren).
Word2Vec
by Datamics, 2018
Word2Vec
• Zu Beginn des Trainings ist jede Einbettung zufällig, aber durch die
Rückführung wird das Modell den Wert jedes Wortvektors in der
angegebenen Anzahl von Dimensionen anpassen.
• Mehr Dimensionen bedeuten mehr Trainingszeit, aber auch mehr
"Informationen" pro Wort.
Word2Vec
by Datamics, 2018
Word2Vec
• Ähnliche Wörter haben ihre Vektoren näher zusammen.
• Noch eindrucksvoller ist, dass das Modell Achsen erzeugen kann, die
Begriffe wie Geschlecht, Verben, Singular vs. Plural usw. darstellen.
Word2Vec
by Datamics, 2018
Word2Vec
Männlich - Weiblich Verb - Zeitform Land - Hauptstadt
Word2Vec
by Datamics, 2018
Vorhersage Ziel
• Skip-Gram-Modell
• Der Hund kaut den Knochen
• Typischerweise besser für größere Datensätze
• CBOW (Continuous Bag of Words)
• Der Hund kaut den Knochen
• Typischerweise besser für kleinere Datensätze
Word2Vec
by Datamics, 2018
Vorhersage Ziel
● Der Hund kaut den wt=?
Knochen vs [Buch, Auto ,Haus,Sonne, ....guitar]
Ziel Wort Noise Wörter
Word2Vec
by Datamics, 2018
Vorhersage Ziel mit NN
Klassifikator
Versteckte Layer
Projektionslayer
Einbettungen
Die Katze sitzt auf der Matte
Word2Vec
by Datamics, 2018
Noise-Contrastive Training
• Das Zielwort wird durch Maximierung vorhergesagt
• JNEG = log Qθ(D=1|wt,h) + kn~Pnoise Ε [log Qθ(D=0|wn,h)]]
• Qθ(D=1|wt,h) ist binäre logistische Regression, die Wahrscheinlichkeit,
dass das Wort wt im Kontext h des von θ parametrierten Datensatzes
D steht.
Word2Vec
by Datamics, 2018
Noise-Contrastive Training
• Das Zielwort wird durch Maximierung des
• JNEG = log Qθ(D=1|wt,h) + kn~Pnoise Ε [log Qθ(D=0|wn,h)]]
• wn sind k Worte aus der Noise Distribution (Lärmverteilung).
Word2Vec
by Datamics, 2018
Noise-Contrastive Training
• Das Zielwort wird durch Maximierung des
• JNEG = log Qθ(D=1|wt,h) + kn~Pnoise Ε [log Qθ(D=0|wn,h)]]
• wn sind k Worte aus der Noise Distribution (Lärmverteilung).
• Ziel ist es, korrekten Wörtern eine hohe Wahrscheinlichkeit
zuzuweisen und verrauschten (noise) Wörter eine geringe
Wahrscheinlichkeit zuzuweisen.
Word2Vec
by Datamics, 2018
t-Distributed Stochastic Neighbor Embedding
• Sobald wir Vektoren für jedes Wort haben, können wir Beziehungen
visualisieren, indem wir die Dimensionen von 150 auf 2 reduzieren.
• t-Distributed Stochastic Neighbor Embedding
(t-verteiltes stochastisches Neighbor Embedding) .
Word2Vec
by Datamics, 2018
t-Distributed Stochastic Neighbor Embedding
Word2Vec
Los geht‘s!
Word2Vec Praxis-Lektion
by Datamics, 2018
Word2VecPraxis-Lektion
• Wir werden die TensorFlow Dokumentation Beispiel-Implementierung
von Word2Vec verwenden.
• Wir werden uns oft auf das mitgelieferte Jupyter Notebook für
einzelne Codeblöcke beziehen!
Word2Vec
by Datamics, 2018
Word2Vec
• Wenn Word2Vec etwas ist, dass dich interessiert, dann schau dir die
gensim-Library für Python an, sie hat eine viel einfacher zu
verwendende API für Word2Vec und zusätzliche Funktionen!
Word2Vec
Word2Vec Praxis-Lektion
Teil 2
by Datamics, 2018
Verwende den Gutschein „SLIDESHARE2018“ auf Udemy oder die Shortlinks
und erhalte unsere Kurse für nur 10,99€ (95% Rabatt).
Deep Learning Grundlagen mit TensorFlow und Python https://goo.gl/FqNoAe
Python für Data Science und Machine Learning: https://goo.gl/cE7TQ3
Original Python Bootcamp - Von 0 auf 100: https://goo.gl/gjn7pX
R für Data Science und Machine Learning: https://goo.gl/8h5tH7
Exklusive Gutscheine
Udemy-Kurse
by Datamics, 2018https://www.udemy.com/user/rene-brunner/

Más contenido relacionado

La actualidad más candente

Continual Learning with Deep Architectures - Tutorial ICML 2021
Continual Learning with Deep Architectures - Tutorial ICML 2021Continual Learning with Deep Architectures - Tutorial ICML 2021
Continual Learning with Deep Architectures - Tutorial ICML 2021
Vincenzo Lomonaco
 

La actualidad más candente (20)

Attention is all you need
Attention is all you needAttention is all you need
Attention is all you need
 
NLP using transformers
NLP using transformers NLP using transformers
NLP using transformers
 
Rnn & Lstm
Rnn & LstmRnn & Lstm
Rnn & Lstm
 
Nlp and transformer (v3s)
Nlp and transformer (v3s)Nlp and transformer (v3s)
Nlp and transformer (v3s)
 
LSTM Tutorial
LSTM TutorialLSTM Tutorial
LSTM Tutorial
 
LSTM Basics
LSTM BasicsLSTM Basics
LSTM Basics
 
Continual Learning with Deep Architectures - Tutorial ICML 2021
Continual Learning with Deep Architectures - Tutorial ICML 2021Continual Learning with Deep Architectures - Tutorial ICML 2021
Continual Learning with Deep Architectures - Tutorial ICML 2021
 
Attention Is All You Need
Attention Is All You NeedAttention Is All You Need
Attention Is All You Need
 
Understanding RNN and LSTM
Understanding RNN and LSTMUnderstanding RNN and LSTM
Understanding RNN and LSTM
 
5. phases of nlp
5. phases of nlp5. phases of nlp
5. phases of nlp
 
2. introduction to compiler
2. introduction to compiler2. introduction to compiler
2. introduction to compiler
 
Recurrent Neural Network
Recurrent Neural NetworkRecurrent Neural Network
Recurrent Neural Network
 
Recurrent Neural Networks for Text Analysis
Recurrent Neural Networks for Text AnalysisRecurrent Neural Networks for Text Analysis
Recurrent Neural Networks for Text Analysis
 
RNN & LSTM: Neural Network for Sequential Data
RNN & LSTM: Neural Network for Sequential DataRNN & LSTM: Neural Network for Sequential Data
RNN & LSTM: Neural Network for Sequential Data
 
Lstm
LstmLstm
Lstm
 
NLP pipeline in machine translation
NLP pipeline in machine translationNLP pipeline in machine translation
NLP pipeline in machine translation
 
Introduction For seq2seq(sequence to sequence) and RNN
Introduction For seq2seq(sequence to sequence) and RNNIntroduction For seq2seq(sequence to sequence) and RNN
Introduction For seq2seq(sequence to sequence) and RNN
 
Long Short Term Memory
Long Short Term MemoryLong Short Term Memory
Long Short Term Memory
 
Asset Tokenization as an Industry Game Changer
Asset Tokenization as an Industry Game ChangerAsset Tokenization as an Industry Game Changer
Asset Tokenization as an Industry Game Changer
 
Time series deep learning
Time series   deep learningTime series   deep learning
Time series deep learning
 

Similar a Slideshare Recurrent Neural Networks (RNN)

Python in Computational Neuroscience & Modular toolkit for Data Processing (MDP)
Python in Computational Neuroscience & Modular toolkit for Data Processing (MDP)Python in Computational Neuroscience & Modular toolkit for Data Processing (MDP)
Python in Computational Neuroscience & Modular toolkit for Data Processing (MDP)
nwilbert
 
Internet Briefing 2011: NoSQL with MySQL
Internet Briefing 2011: NoSQL with MySQLInternet Briefing 2011: NoSQL with MySQL
Internet Briefing 2011: NoSQL with MySQL
FromDual GmbH
 

Similar a Slideshare Recurrent Neural Networks (RNN) (17)

Slideshare TensorFlow Grundlagen
Slideshare TensorFlow GrundlagenSlideshare TensorFlow Grundlagen
Slideshare TensorFlow Grundlagen
 
Slideshare AutoEncoder
Slideshare AutoEncoderSlideshare AutoEncoder
Slideshare AutoEncoder
 
Post-Quantum Cryptography
 Post-Quantum Cryptography Post-Quantum Cryptography
Post-Quantum Cryptography
 
Expert system webinar 29.6.2017 cogito und deep learning
Expert system webinar  29.6.2017   cogito und deep learningExpert system webinar  29.6.2017   cogito und deep learning
Expert system webinar 29.6.2017 cogito und deep learning
 
Schnelles Denken - Maschinelles Lernen mit Apache Spark 2
Schnelles Denken - Maschinelles Lernen mit Apache Spark 2Schnelles Denken - Maschinelles Lernen mit Apache Spark 2
Schnelles Denken - Maschinelles Lernen mit Apache Spark 2
 
Scaling Rails
Scaling RailsScaling Rails
Scaling Rails
 
Zeitreihen in Apache Cassandra
Zeitreihen in Apache CassandraZeitreihen in Apache Cassandra
Zeitreihen in Apache Cassandra
 
JavaScript Performance
JavaScript PerformanceJavaScript Performance
JavaScript Performance
 
OSMC 2011 | Monitoring at large - die Welt ist nicht genug by Thomas Gelf
OSMC 2011 | Monitoring at large - die Welt ist nicht genug by Thomas GelfOSMC 2011 | Monitoring at large - die Welt ist nicht genug by Thomas Gelf
OSMC 2011 | Monitoring at large - die Welt ist nicht genug by Thomas Gelf
 
Python in Computational Neuroscience & Modular toolkit for Data Processing (MDP)
Python in Computational Neuroscience & Modular toolkit for Data Processing (MDP)Python in Computational Neuroscience & Modular toolkit for Data Processing (MDP)
Python in Computational Neuroscience & Modular toolkit for Data Processing (MDP)
 
Java Streams und Lambdas
Java Streams und LambdasJava Streams und Lambdas
Java Streams und Lambdas
 
Internet Briefing 2011: NoSQL with MySQL
Internet Briefing 2011: NoSQL with MySQLInternet Briefing 2011: NoSQL with MySQL
Internet Briefing 2011: NoSQL with MySQL
 
Back to Basics - Webinar 6: Produktivsetzung einer Anwendung
Back to Basics - Webinar 6: Produktivsetzung einer AnwendungBack to Basics - Webinar 6: Produktivsetzung einer Anwendung
Back to Basics - Webinar 6: Produktivsetzung einer Anwendung
 
Analytics meets Big Data – R/Python auf der Hadoop/Spark-Plattform
Analytics meets Big Data – R/Python auf der Hadoop/Spark-PlattformAnalytics meets Big Data – R/Python auf der Hadoop/Spark-Plattform
Analytics meets Big Data – R/Python auf der Hadoop/Spark-Plattform
 
RoofTop Brains & BBQ: Ein Gästbuch für China
RoofTop Brains & BBQ: Ein Gästbuch für ChinaRoofTop Brains & BBQ: Ein Gästbuch für China
RoofTop Brains & BBQ: Ein Gästbuch für China
 
XtraDB Cluster
XtraDB ClusterXtraDB Cluster
XtraDB Cluster
 
Boston webcast gpu_2016-12
Boston webcast gpu_2016-12Boston webcast gpu_2016-12
Boston webcast gpu_2016-12
 

Más de Datamics

Más de Datamics (16)

Die Data Science Toolbox
Die Data Science ToolboxDie Data Science Toolbox
Die Data Science Toolbox
 
Die Data Science Softskills
Die Data Science SoftskillsDie Data Science Softskills
Die Data Science Softskills
 
Slideshare reinforcement learning
Slideshare reinforcement learningSlideshare reinforcement learning
Slideshare reinforcement learning
 
Slideshare GAN
Slideshare GANSlideshare GAN
Slideshare GAN
 
R für Data Science und Machine Learning
R für Data Science und Machine LearningR für Data Science und Machine Learning
R für Data Science und Machine Learning
 
Python Bootcamp - Grundlagen
Python Bootcamp - GrundlagenPython Bootcamp - Grundlagen
Python Bootcamp - Grundlagen
 
Python Installationen für Data Science
Python Installationen für Data SciencePython Installationen für Data Science
Python Installationen für Data Science
 
Principal Component Analysis mit Python
Principal Component Analysis mit PythonPrincipal Component Analysis mit Python
Principal Component Analysis mit Python
 
K Means mit Python
K Means mit PythonK Means mit Python
K Means mit Python
 
Support Vector Machines mit Python
Support Vector Machines mit PythonSupport Vector Machines mit Python
Support Vector Machines mit Python
 
Decision Trees und Random Forest mit Python
Decision Trees und Random Forest mit PythonDecision Trees und Random Forest mit Python
Decision Trees und Random Forest mit Python
 
K Nearest Neighbors mit Python
K Nearest Neighbors mit PythonK Nearest Neighbors mit Python
K Nearest Neighbors mit Python
 
Logistische Regression mit Python
Logistische Regression mit PythonLogistische Regression mit Python
Logistische Regression mit Python
 
Verzerrung Varianz Dilemma
Verzerrung Varianz DilemmaVerzerrung Varianz Dilemma
Verzerrung Varianz Dilemma
 
Lineare Regression mit Python
Lineare Regression mit PythonLineare Regression mit Python
Lineare Regression mit Python
 
Machine Learning mit Python
Machine Learning mit PythonMachine Learning mit Python
Machine Learning mit Python
 

Slideshare Recurrent Neural Networks (RNN)

  • 2. by Datamics, 2018 Übersicht • Wir haben Neuronale Netze verwendet, um Klassifizierungs- und Regressionsprobleme zu lösen, aber wir haben noch nicht gesehen, wie Neuronale Netze mit Sequenzinformationen umgehen können. • Hierfür verwenden wir Recurrent Neural Networks (RNN). Übersicht
  • 3. by Datamics, 2018 Inhalt • RNN Theorie • Basis-Handbuch RNN • Vanishing Gradients (Verschwindende Gradienten) • LSTM und GRU Einheiten • Zeitreihen mit RNN • Zeitreihen-Übung / Lösungen • Wort2Vec Algorithmus RNN Einführung
  • 6. by Datamics, 2018 Beispiele für Sequenzen • Zeitreihen-Daten (Verkauf) • Sätze • Audio/Musik • Auto Trajektorien • Maschinendaten RNN Theorie
  • 7. by Datamics, 2018 RecurrentNeuralNetworks • Stellen wir uns eine Sequenz vor: [1,2,3,4,5,6] • Wäre es möglich, eine ähnliche Sequenz vorherzusagen, die um einen Zeitschritt in die Zukunft verschoben wurde? [2,3,4,5,6,7] RNN Theorie
  • 8. by Datamics, 2018 Normales Neuron im Feed Forward Netzwerk Σ Aktivierungsfunktion Input Aggregation der Inputs Output RNN Theorie
  • 9. by Datamics, 2018 Σ Input Output Rekurrentes Neuron • Sendet die Ausgabe an sich selbst zurück! • Mal sehen, wie das im Laufe der Zeit aussieht. RNN Theorie
  • 10. by Datamics, 2018 Rekurrentes Neuron Σ Input bei t-1 Output bei t-1 Σ Input bei t Σ Input bei t+1 = Output bei t Output bei t+1 Zeit Σ Input Output RNN Theorie
  • 11. by Datamics, 2018 Memory Cells (Speicherzellen) • Zellen, die eine Funktion von Inputs aus früheren Zeitschritten sind, werden auch als memory cells (Speicherzellen) bezeichnet. • RNN sind auch in ihren Ein- und Ausgängen flexibel, sowohl für Sequenzen als auch für einzelne Vektorwerte. RNN Theorie
  • 12. by Datamics, 2018 Recurrent Neurons (Rekurrente Neuronen) • Wir können auch ganze Schichten von Rekurrenten Neuronen erzeugen.... RNN Theorie
  • 13. by Datamics, 2018 RNN-Schicht mit 3 Neuronen X y RNN Theorie
  • 14. by Datamics, 2018 “Unrolled” Layer Input bei t+1 Input bei t+2 Output bei t+1 Output bei t+2 Input bei t=0 Zeit Output bei t+1 RNN Theorie
  • 15. by Datamics, 2018 RecurrentNeural Networks • RNN sind auch in ihren Ein- und Ausgängen sehr flexibel. • Lass uns ein paar Beispiele anschauen. RNN Theorie
  • 16. by Datamics, 2018 Sequenz zu Sequenz X0 X1 X2 Y0 Y1 Y2 Y3 X3 Y4 X4 RNN Theorie
  • 17. by Datamics, 2018 Sequenz zu Vektor X0 X1 X2 Y0 Y1 Y2 Y3 X3 Y4 X4 RNN Theorie
  • 18. by Datamics, 2018 Vektor zu Sequenz X0 0 0 0 Y4 0 RNN Theorie Y0 Y1 Y2 Y3
  • 19. by Datamics, 2018 RecurrentNeural NetworkModell • Lass uns untersuchen, wie wir ein einfaches RNN-Modell in TensorFlow manuell erstellen können. • Danach werden wir sehen, wie man TensorFlow's eingebaute RNN API-Klassen verwendet. RNN Theorie
  • 21. by Datamics, 2018 Übersicht • In dieser Lektion erstellen wir manuell eine 3 Neuronen RNN Schicht mit TensorFlow. • Im Vordergrund steht dabei das Eingabeformat der Daten. RNN mit TensorFlow
  • 22. by Datamics, 2018 RNN mit TensorFlow • Wir bauen die folgende RNN-Schicht: X y RNN mit TensorFlow
  • 23. by Datamics, 2018 „Unrolled“ Layer Input bei t=0 Input bei t+1 Output bei t+1 Output bei t=1 RNN mit TensorFlow
  • 24. by Datamics, 2018 RNN • Wir beginnen mit der Ausführung der RNN für 2 Datensätze, t=0 und t=1. • Jedes rekurrierende Neuron hat 2 Sets von Gewichten: • Wx für Eingangsgewichte auf X • Wy für Gewichte am Ausgang des ursprünglichen X RNN mit TensorFlow
  • 25. by Datamics, 2018 Beispiel für RNN Daten t=0 t=1 t=2 t=3 t=4 [ The, brown, fox, is, quick] [ The, red, fox, jumped, high] words_in_dataset[0] = [The, The] words_in_dataset[1] = [brown, red] words_in_dataset[2] = [fox,fox] words_in_dataset[3] = [is, jumped] words_in_dataset[4] = [quick, high] num_batches = 5, batch_size = 2, time_steps = 5 RNN mit TensorFlow
  • 27. by Datamics, 2018 Vanishing Gradients • Die Backpropagation (Rückführung) erfolgt rückwärts von der Ausgabe- zur Eingabeschicht, wodurch sich der Fehlergradient ausbreitet. • Bei tieferen Netzwerken (Deep Networks) können Probleme durch Backproagation, Vanishing und Exploding Gradienten entstehen. Vanishing Gradients
  • 28. by Datamics, 2018 Vanishing Gradients • Wenn man zu den "unteren" Schichten zurück geht, werden die Gradienten oft kleiner, was dazu führt, dass sich die Gewichtungen auf den unteren Ebenen nie ändern. • Das Gegenteil kann auch vorkommen, Gradienten „explodieren“ auf dem Rückweg und verursachen Probleme. Vanishing Gradients
  • 29. by Datamics, 2018 Vanishing Gradients • Lass uns nun besprechen, warum das passieren könnte und wie wir es beheben können. • Im nächsten Teil der Vorlesung werden wir dann diskutieren, wie sich diese Probleme speziell auf RNN auswirken und wie man LSTM und GRU verwendet, um sie zu beheben. Vanishing Gradients
  • 30. by Datamics, 2018 Warum passiert das? 1 Output 0 0 z =wx +b Vanishing Gradients
  • 31. by Datamics, 2018 Warum passiert das? 1 Output 0 0 z =wx +b Vanishing Gradients
  • 32. by Datamics, 2018 Verwendung verschiedener Aktivierungsfunktionen Output 0 z =wx +b Vanishing Gradients
  • 33. by Datamics, 2018 Das ReLu sättigt keine positiven Werte Output 0 z =wx +b Vanishing Gradients
  • 34. by Datamics, 2018 “Leaky” ReLU Output 0 z =wx +b Vanishing Gradients
  • 35. by Datamics, 2018 Exponential Linear Unit (ELU) (Exponentielle Lineareinheit) Output 1 0 -1 0 z =wx +b Vanishing Gradients
  • 36. by Datamics, 2018 Batch Normalization (Chargennormalisierung) • Eine andere Lösung ist die Chargennormalisierung, bei der das Modell jede Charge anhand des Chargenmittelwerts und der Standardabweichung normalisiert. Vanishing Gradients
  • 37. by Datamics, 2018 Gradienten-Clipping • Neben der Chargennormalisierung haben die Entwickler auch das "Gradienten-Clipping" eingesetzt, bei dem Gradienten vor Erreichen einer vorgegebenen Grenze abgeschnitten werden (z.B. Gradienten zwischen -1 und 1). Vanishing Gradients
  • 38. by Datamics, 2018 RNN für Time Series • RNN für Zeitreihen haben ihre eigenen Herausforderungen mit den Gradienten. Wir werden jetzt spezielle Neuroneneinheiten (Neuron Units) kennenlernen, um diese Probleme zu beheben. Vanishing Gradients
  • 40. by Datamics, 2018 LSTM und GRU • Viele der bisher vorgestellten Lösungen für das Verschwinden von Gradienten können auch für RNN gelten: verschiedene Aktivierungsfunktionen, Chargennormalisierungen, etc.... • Aufgrund der Dauer der Zeitreiheneingabe können diese jedoch das Trainieren verlangsamen. LSTM und GRU
  • 41. by Datamics, 2018 LSTM und GRU • Eine mögliche Lösung wäre, nur die Zeitschritte für die Vorhersage zu verkürzen, aber das macht das Modell schlechter bei der Vorhersage längerer Trends. LSTM und GRU
  • 42. by Datamics, 2018 LSTM und GRU • Ein weiteres Problem von RNN‘s ist, dass nach einer Weile das Netzwerk beginnt die ersten Eingänge zu "vergessen", da Informationen bei jedem Schritt durch die RNN verloren gehen. • Wir brauchen eine Art „Langzeitgedächtnis“ (long-term-memory) für unsere Netzwerke. LSTM und GRU
  • 43. by Datamics, 2018 LSTM-Zelle • Die LSTM-Zelle (Long Short-Term Memory) wurde entwickelt, um diese RNN-Probleme zu lösen. • Gehen wir die Funktionsweise einer LSTM-Zelle durch! LSTM
  • 44. by Datamics, 2018 Ein Typisches RNN Input bei t-1 Input bei t Input bei t+1 Output bei t Output bei t+1 Output bei t-1 LSTM
  • 45. by Datamics, 2018 tanh ht-1 ht ht+1 ht-1 ht ht+1 Input bei t-1 Input bei t Input bei t+1 Output bei t Output bei t+1 Output bei t-1 LSTM
  • 46. by Datamics, 2018 LSTM Zelle Input bei t Output beit σ X X X σ σ tanh tanh + http://colah.github.io/posts/2015-08-Understanding-LSTMs/ • Hier sehen wir die ganze Zelle • Gehen wir den Prozess durch! LSTM
  • 47. by Datamics, 2018 LSTM Zelle ht-1 Ct-1 Ct ht ht xt σ X X + X σ σ tanh tanh • Hier sehen wir die ganze Zelle • Gehen wir den Prozess durch! LSTM
  • 48. by Datamics, 2018 LSTM Zelle ht-1 Ct-1 Ct ht ht xt σ X X + X σ σ tanh tanh ft σ σ LSTM
  • 49. by Datamics, 2018 LSTM Zelle xt σ X X tanh tanh ht-1 Ct-1 Ct ht xt it σ σ Ct X ~ + LSTM ht
  • 50. by Datamics, 2018 LSTM Zelle σ X X tanh tanh ht-1 Ct-1 Ct ht xt it σ σ Ct ft X ~ + LSTM ht
  • 51. by Datamics, 2018 LSTM Zelle σ X X σ σ tanh tanh X ht-1 Ct-1 Ct ht xt + LSTM ht
  • 52. by Datamics, 2018 Eine LSTM-Zelle mit " Peepholes" σ X X σ σ tanh tanh X ht-1 Ct-1 Ct ht xt + LSTM ht
  • 53. by Datamics, 2018 Gated Recurrent Unit (GRU) X ht-1 Ct xt + X tanh X1- σ rt σ zt GRU ht
  • 54. by Datamics, 2018 TensorFlow RNN API • Glücklicherweise sind diese Neuronenmodellen bei TensorFlow in eine nette API integriert. Das macht es uns einfach diese ein- und auszutauschen. • Als nächstes werden wir die Verwendung dieser TensorFlow RNN API für die Vorhersage und Generierung von Zeitreihen untersuchen! TensorFlow RNN API
  • 56. by Datamics, 2018 RNNmitTensorFlowAPI • Jetzt verstehen wir verschiedene Verbesserungen für RNNs, daher verwenden wir die in TensorFlow integrierte tf.nn Funktions-API, um Sequenzprobleme zu lösen! TensorFlow RNN API
  • 57. by Datamics, 2018 RNNmitTensorFlowAPI • Erinnerst du dich noch an unsere ursprüngliche Sequenzübung: [1,2,3,4,5,6] • Können wir vorhersagen, dass sich die Reihenfolge um einen Zeitschritt nach vorne verschoben hat? [2,3,4,5,6,7] TensorFlow RNN API
  • 58. by Datamics, 2018 RNNmitTensorFlowAPI • Was ist mit dieser Zeitreihe? [0,0.84,0.91,0.14,-0.75,-0.96,-0.28] TensorFlow RNN API
  • 59. by Datamics, 2018 RNNmitTensorFlowAPI • Was ist mit dieser Zeitreihe? [0,0.84,0.91,0.14,-0.75,-0.96,-0.28] • Es ist eigentlich nur Sin(x): [0.84,0.91,0.14,-0.75,-0.96,-0.28,0.65] TensorFlow RNN API
  • 60. by Datamics, 2018 RNNmitTensorFlowAPI • Wir beginnen mit der Erstellung eines RNN, das versucht, eine Zeitreihe vorherzusagen, die über eine Einheit in die Zukunft verschoben wurde. • Dann werden wir versuchen, neue Sequenzen mit einer Seed-Serie zu generieren. TensorFlow RNN API
  • 61. by Datamics, 2018 RNNmitTensorFlowAPI • Wir werden zuerst eine einfache Klasse erstellen, um sin(x) zu erzeugen und auch zufällige Batches von sin(x) zu erfassen. TensorFlow RNN API
  • 62. by Datamics, 2018 RNNmitTensorFlowAPI • Wir werden zuerst eine einfache Klasse erstellen, um sin(x) zu erzeugen und auch zufällige Batches von sin(x) zu erfassen. TensorFlow RNN API
  • 63. by Datamics, 2018 RNNmitTensorFlowAPI • Wir werden zuerst eine einfache Klasse erstellen, um sin(x) zu erzeugen und auch zufällige Batches von sin(x) zu erfassen. TensorFlow RNN API
  • 64. by Datamics, 2018 RNNmitTensorFlowAPI • Dann erhält das trainierte Modell eine Zeitreihe und versucht, eine Zeitreihe vorherzusagen, die um einen Zeitschritt nach vorne verschoben wurde. TensorFlow RNN API
  • 65. by Datamics, 2018 RNNmitTensorFlowAPI • Danach werden wir das gleiche Modell verwenden, um viel längere Zeitreihen zu erzeugen, wenn wir eine Seed-Serie haben. TensorFlow RNN API
  • 66. by Datamics, 2018 RNNmitTensorFlowAPI • Danach werden wir das gleiche Modell verwenden, um viel längere Zeitreihen zu erzeugen, wenn wir eine Seed-Serie haben. TensorFlow RNN API
  • 67. RNN mit der TensorFlow API AnwendungTeil1
  • 68. RNN mit der TensorFlow API AnwendungTeil2
  • 69. RNN mit der TensorFlow API AnwendungTeil3
  • 70. RNN mit der TensorFlow API AnwendungTeil4
  • 74. Kurzer Hinweis zu Word2Vec
  • 75. by Datamics, 2018 Kurzer Hinweis zu Word2Vec • Optionale Lektionen zum Thema Word2Vec mit TensorFlow. • Die gensim-Library ist empfehlenswert, wenn du dich für Word2Vec interessierst. Word2Vec
  • 77. by Datamics, 2018 Natural Language Processing • Nachdem wir jetzt verstehen wie man mit Zeitreihen von Daten arbeitet, werfen wir nun einen Blick auf eine andere wichtige Datenquelle der Sequenzen: den Wörter. • Zum Beispiel der Satz: ["Hi", "wie", “geht‘s", “dir"] Word2Vec
  • 78. by Datamics, 2018 Natural Language Processing • Im "klassischen" Natural Language Processing (NLP) werden Wörter typischerweise durch Zahlen ersetzt, die eine gewisse Häufigkeitsbeziehung zu ihren Dokumenten angeben. • Dadurch verlieren wir Informationen über die Beziehung zwischen den Wörtern selbst. Word2Vec
  • 79. by Datamics, 2018 Natural Language Processing • Zählbasiert (Count-Based) • Häufigkeit der Wörter im Korpus • Vorhersagebasiert (Predictive-Based) • Nachbarwörter werden anhand eines Vektorraumes vorhergesagt. Word2Vec
  • 80. by Datamics, 2018 Word2Vec-Modell von Mikolov et al. • Lass uns nun einen der bekanntesten Anwendungsfälle von Neuralen Netzwerken in der natürlichen Sprachverarbeitung erforschen: • Das Word2Vec-Modell von Mikolov et al. Word2Vec
  • 81. by Datamics, 2018 Word2Vec-Modell von Mikolov et al. • Das Ziel des Word2Vec-Modells ist es, Worteinbettungen zu lernen, indem jedes Wort als Vektor im n-dimensionalen Raum modelliert wird. • Aber warum verwenden wir die Wort-Einbettungen? Word2Vec
  • 82. by Datamics, 2018 Darstellung der Daten Word2Vec
  • 83. by Datamics, 2018 Word2Vec • Word2Vec erstellt Vektormodelle, die Wörter in einem kontinuierlichen Vektorraum darstellen (einbetten). • Mit Wörtern, die als Vektoren dargestellt werden, können wir Vektormathematik auf Wörtern durchführen (z.B. Ähnlichkeiten prüfen, Vektoren addieren/subtrahieren). Word2Vec
  • 84. by Datamics, 2018 Word2Vec • Zu Beginn des Trainings ist jede Einbettung zufällig, aber durch die Rückführung wird das Modell den Wert jedes Wortvektors in der angegebenen Anzahl von Dimensionen anpassen. • Mehr Dimensionen bedeuten mehr Trainingszeit, aber auch mehr "Informationen" pro Wort. Word2Vec
  • 85. by Datamics, 2018 Word2Vec • Ähnliche Wörter haben ihre Vektoren näher zusammen. • Noch eindrucksvoller ist, dass das Modell Achsen erzeugen kann, die Begriffe wie Geschlecht, Verben, Singular vs. Plural usw. darstellen. Word2Vec
  • 86. by Datamics, 2018 Word2Vec Männlich - Weiblich Verb - Zeitform Land - Hauptstadt Word2Vec
  • 87. by Datamics, 2018 Vorhersage Ziel • Skip-Gram-Modell • Der Hund kaut den Knochen • Typischerweise besser für größere Datensätze • CBOW (Continuous Bag of Words) • Der Hund kaut den Knochen • Typischerweise besser für kleinere Datensätze Word2Vec
  • 88. by Datamics, 2018 Vorhersage Ziel ● Der Hund kaut den wt=? Knochen vs [Buch, Auto ,Haus,Sonne, ....guitar] Ziel Wort Noise Wörter Word2Vec
  • 89. by Datamics, 2018 Vorhersage Ziel mit NN Klassifikator Versteckte Layer Projektionslayer Einbettungen Die Katze sitzt auf der Matte Word2Vec
  • 90. by Datamics, 2018 Noise-Contrastive Training • Das Zielwort wird durch Maximierung vorhergesagt • JNEG = log Qθ(D=1|wt,h) + kn~Pnoise Ε [log Qθ(D=0|wn,h)]] • Qθ(D=1|wt,h) ist binäre logistische Regression, die Wahrscheinlichkeit, dass das Wort wt im Kontext h des von θ parametrierten Datensatzes D steht. Word2Vec
  • 91. by Datamics, 2018 Noise-Contrastive Training • Das Zielwort wird durch Maximierung des • JNEG = log Qθ(D=1|wt,h) + kn~Pnoise Ε [log Qθ(D=0|wn,h)]] • wn sind k Worte aus der Noise Distribution (Lärmverteilung). Word2Vec
  • 92. by Datamics, 2018 Noise-Contrastive Training • Das Zielwort wird durch Maximierung des • JNEG = log Qθ(D=1|wt,h) + kn~Pnoise Ε [log Qθ(D=0|wn,h)]] • wn sind k Worte aus der Noise Distribution (Lärmverteilung). • Ziel ist es, korrekten Wörtern eine hohe Wahrscheinlichkeit zuzuweisen und verrauschten (noise) Wörter eine geringe Wahrscheinlichkeit zuzuweisen. Word2Vec
  • 93. by Datamics, 2018 t-Distributed Stochastic Neighbor Embedding • Sobald wir Vektoren für jedes Wort haben, können wir Beziehungen visualisieren, indem wir die Dimensionen von 150 auf 2 reduzieren. • t-Distributed Stochastic Neighbor Embedding (t-verteiltes stochastisches Neighbor Embedding) . Word2Vec
  • 94. by Datamics, 2018 t-Distributed Stochastic Neighbor Embedding Word2Vec
  • 97. by Datamics, 2018 Word2VecPraxis-Lektion • Wir werden die TensorFlow Dokumentation Beispiel-Implementierung von Word2Vec verwenden. • Wir werden uns oft auf das mitgelieferte Jupyter Notebook für einzelne Codeblöcke beziehen! Word2Vec
  • 98. by Datamics, 2018 Word2Vec • Wenn Word2Vec etwas ist, dass dich interessiert, dann schau dir die gensim-Library für Python an, sie hat eine viel einfacher zu verwendende API für Word2Vec und zusätzliche Funktionen! Word2Vec
  • 100. by Datamics, 2018 Verwende den Gutschein „SLIDESHARE2018“ auf Udemy oder die Shortlinks und erhalte unsere Kurse für nur 10,99€ (95% Rabatt). Deep Learning Grundlagen mit TensorFlow und Python https://goo.gl/FqNoAe Python für Data Science und Machine Learning: https://goo.gl/cE7TQ3 Original Python Bootcamp - Von 0 auf 100: https://goo.gl/gjn7pX R für Data Science und Machine Learning: https://goo.gl/8h5tH7 Exklusive Gutscheine Udemy-Kurse by Datamics, 2018https://www.udemy.com/user/rene-brunner/