SlideShare ist ein Scribd-Unternehmen logo
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/

Weitere ähnliche Inhalte

PPTX
Machine Learning project presentation
PDF
HEVC overview main
PDF
Instance Segmentation - Míriam Bellver - UPC Barcelona 2018
DOCX
Health Prediction System - an Artificial Intelligence Project 2015
PDF
Data Science - Part XVII - Deep Learning & Image Processing
PDF
Relational knowledge distillation
PDF
Template Matching
PPTX
Color image processing
Machine Learning project presentation
HEVC overview main
Instance Segmentation - Míriam Bellver - UPC Barcelona 2018
Health Prediction System - an Artificial Intelligence Project 2015
Data Science - Part XVII - Deep Learning & Image Processing
Relational knowledge distillation
Template Matching
Color image processing

Was ist angesagt? (20)

PDF
Hierarchical Clustering
PDF
HEVC VIDEO CODEC By Vinayagam Mariappan
PPTX
LLM presentation final
PDF
Matrix Factorization
PDF
Attention is All You Need (Transformer)
PPTX
How ChatGPT and AI-assisted coding changes software engineering profoundly
PPTX
k medoid clustering.pptx
PDF
Machine learning in image processing
PPTX
High Efficiency Video Codec
PDF
Deep learning for image video processing
PPT
Blurred image recognization system
PPTX
Naive Bayes Classifier | Naive Bayes Algorithm | Naive Bayes Classifier With ...
PPTX
Recommender system
PPT
Atsc intro
PDF
Introduction to Autoencoders
DOCX
image compression using matlab project report
PDF
Collaborative Filtering 1: User-based CF
PDF
Efficient Neural Architecture Search via Parameter Sharing
PPT
K mean-clustering
PPTX
UNIT-4.pptx
Hierarchical Clustering
HEVC VIDEO CODEC By Vinayagam Mariappan
LLM presentation final
Matrix Factorization
Attention is All You Need (Transformer)
How ChatGPT and AI-assisted coding changes software engineering profoundly
k medoid clustering.pptx
Machine learning in image processing
High Efficiency Video Codec
Deep learning for image video processing
Blurred image recognization system
Naive Bayes Classifier | Naive Bayes Algorithm | Naive Bayes Classifier With ...
Recommender system
Atsc intro
Introduction to Autoencoders
image compression using matlab project report
Collaborative Filtering 1: User-based CF
Efficient Neural Architecture Search via Parameter Sharing
K mean-clustering
UNIT-4.pptx
Anzeige

Mehr von Datamics (18)

PPTX
Die Data Science Toolbox
PPTX
Die Data Science Softskills
PPTX
Slideshare reinforcement learning
PPTX
Slideshare TensorFlow Grundlagen
PPTX
Slideshare GAN
PPTX
Slideshare AutoEncoder
PDF
R für Data Science und Machine Learning
PPTX
Python Bootcamp - Grundlagen
PDF
Python Installationen für Data Science
PDF
Principal Component Analysis mit Python
PDF
K Means mit Python
PDF
Support Vector Machines mit Python
PDF
Decision Trees und Random Forest mit Python
PDF
K Nearest Neighbors mit Python
PDF
Logistische Regression mit Python
PDF
Verzerrung Varianz Dilemma
PDF
Lineare Regression mit Python
PDF
Machine Learning mit Python
Die Data Science Toolbox
Die Data Science Softskills
Slideshare reinforcement learning
Slideshare TensorFlow Grundlagen
Slideshare GAN
Slideshare AutoEncoder
R für Data Science und Machine Learning
Python Bootcamp - Grundlagen
Python Installationen für Data Science
Principal Component Analysis mit Python
K Means mit Python
Support Vector Machines mit Python
Decision Trees und Random Forest mit Python
K Nearest Neighbors mit Python
Logistische Regression mit Python
Verzerrung Varianz Dilemma
Lineare Regression mit Python
Machine Learning mit Python
Anzeige

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/