[PYTHON] Report_Deep Learning (Teil 1)

Bestätigungstest (3-1) Beantworten Sie die Größe des Ausgabebildes, wenn das Eingabebild der Größe 5x5 mit dem Filter der Größe 3x3 gefaltet wird. Der Schritt ist 2 und die Polsterung ist 1.

Antworten Ausgabebild (vertikale Größe) = (Eingabebild (vertikale Größe) + 2 x Füllfilter (vertikale Größe) / Schritt) + 1            (5+2×1-3/2) + 1 = 3

Ausgabebild (horizontale Größe) = (Eingabebild (horizontale Größe) + 2 x Füllfilter (horizontale Größe) / Schritt) + 1            (5+2×1-3/2) + 1 = 3

Daher beträgt die Größe des Ausgabebildes 3 × 3.

Rekursives Neuronales Netz (RNN)

RNN ist ein neuronales Netzwerk, das Zeitreihendaten verarbeiten kann. Zeitreihendaten sind Datenreihen, die in regelmäßigen Abständen in chronologischer Reihenfolge beobachtet werden und statistische Abhängigkeiten voneinander aufweisen. Zum Beispiel Sprachdaten, Textdaten, Aktienkursdaten usw.

Bestätigungstest (3-2) Das RNN-Netzwerk hat drei Hauptgewichte. Eines ist das Gewicht, das beim Definieren der mittleren Ebene aus der Eingabe angewendet wird. Eines ist das Gewicht, das beim Definieren der Ausgabe von der mittleren Ebene angewendet wird. Erklären Sie das verbleibende Gewicht.

Antworten Das Gewicht, das von der mittleren Schicht der Vergangenheit (eine vorher) auf die mittlere Schicht der Gegenwart (jetzt) angewendet wird.

Merkmale von RNN: Um mit einem Zeitreihenmodell zu arbeiten, behalten Sie den Anfangszustand und den Zustand der vergangenen Zeit t-1 bei und t rekursiv t beim nächsten Mal. Sie benötigen die gewünschte rekursive Struktur.

Übung (3-3,4) image.png image.png image.png image.png

Infolge der Codeausführung tritt ein Fehler bis zu 2000 Mal auf, und der Fehler konvergiert allmählich. Als Versuch habe ich hidden_layer_size in 100 geändert. Als Ergebnis wurde festgestellt, dass durch übermäßiges Erhöhen der Anzahl der verborgenen Schichten erhebliche Berechnungen erforderlich waren, damit die Ergebnisse konvergierten. image.png

Als nächstes habe ich weight_init_std (Anfangswert von weight) in 0.1 geändert. Bestätigt, dass keine Fehlerkonvergenz aufgetreten ist, indem der Anfangswert des Gewichts verringert wurde. image.png

Schließlich habe ich die Lernrate auf 0,5 geändert. Bestätigen Sie, dass die Fehlerkonvergenz schneller ist, indem Sie die Lernrate erhöhen. image.png

Verwenden Sie Xavier als Anfangswert des Gewichts. image.png Ändern Sie den Anfangswert und führen Sie ihn aus. image.png Als nächstes setzen Sie den Anfangswert des Gewichts mit He und führen Sie aus. image.png Ergebnis image.png

Ändern Sie die Aktivierungsfunktion in die ReLU-Funktion und überprüfen Sie die Gradientenexplosion. (Hang-Explosion: Das Gegenteil von Hang-Verschwinden, es wächst exponentiell mit jeder Rückausbreitung und konvergiert nicht.) image.png image.png image.png Das Ergebnis war eine Gradientenexplosion und stellte fest, dass sie nicht konvergierte.

Wird mit tanh ausgeführt. Definieren Sie die Ableitung von tanh image.png image.png Ergebnis image.png Es ist ersichtlich, dass der Gradient wie die ReLU-Funktion explodiert.

BPTT Abkürzung für BackproPagation Through Time, eine der Methoden zur Fehlerrückübertragung.

Rezension Die Fehlerrückausbreitungsmethode basiert auf dem Berechnungsergebnis (Ausgabe). Bestätigungstest (3-5) Finden Sie dx / dz nach dem Prinzip des Kettengesetzes. z=t^2 t=x+y

dx/dz = az/dt * dt/dx

az/dt = 2t Von dt / dx = 1

dx/dz = 2t =2(x+y)

Bestätigungstest (3-6) Drücken Sie y1 in der folgenden Abbildung mit einer Formel aus, die x, s0, s1, Win, W, Wout verwendet.

Herausforderung von RNN: Es ist schwierig, eine lange Zeitreihe zu lernen, da der Gradient verschwindet, wenn Sie in der Zeit zurückgehen.

Rezension Das Problem des Verschwindens des Gradienten besteht darin, dass der Gradient sanfter wird, wenn er sich durch das Fehlerrückausbreitungsverfahren zu den unteren Schichten ausbreitet. aus diesem Grund, In der unteren Schicht treten Parameteraktualisierungen selten auf und konvergieren nicht zum optimalen Wert.

Bestätigungstest (3-9) Wenn die Sigmoidfunktion unterschieden wird, wird der Maximalwert genommen, wenn der Eingabewert 0 ist. Wählen Sie den richtigen Wert.

Antworten 0.25 Differenzierung der Sigmoidfunktion (1-Sigmoid (x)) * Es wird zu Sugmoid (x), und wenn x durch 0 ersetzt wird, wird es zu 0,25.

Gradientenexplosion Wie in der obigen Übung bestätigt, steigt der Gradient mit jeder Rückausbreitung exponentiell an und konvergiert nicht.

LSTM-Modell

CEC: Als Lösung für das Verschwinden des Gradienten und die Explosion des Gradienten kann es gelöst werden, wenn der Gradient 1 ist. Das Problem ist, dass das Gewicht der Eingabedaten unabhängig von der Zeitabhängigkeit einheitlich ist.

In Bezug auf die Tatsache, dass die Gewichte einheitlich sind, wird das Problem gelöst, indem die Gewichte an den Eingabe- / Ausgabedaten geändert werden.

Herausforderungen für das LSTM-Modell Alle früheren Informationen werden in CEC gespeichert. Selbst wenn die vergangenen Informationen nicht mehr benötigt werden, können sie daher nicht gelöscht werden. Ich werde es behalten.

Wenn in der Vergangenheit keine Informationen mehr benötigt werden, bieten Sie als Lösung eine Funktion zum Löschen der Informationen zu diesem Zeitpunkt → Oblivion Gate

Bestätigungstest (3-10) Angenommen, Sie möchten den folgenden Satz in LSTM eingeben und die Wörter vorhersagen, die in die Leerzeichen passen. Das Wort "sehr" im Text steht in der leeren Vorhersage Es wird davon ausgegangen, dass es auch dann keine Auswirkungen hat, wenn es verschwindet. Welches Datum wird in solchen Fällen wahrscheinlich funktionieren? "Der Film war interessant. Übrigens war ich so hungrig, dass etwas ..."

Antworten Es scheint, dass das Vergessenstor funktioniert, weil "sehr" keine Wirkung hat, auch wenn es nicht in der Vorhersage enthalten ist.

Gucklochverbindung Ich möchte die in CEC gespeicherten Informationen aus der Vergangenheit jederzeit an andere Knoten weitergeben oder jederzeit vergessen. → Eine Struktur, die die Ausbreitung auf den Wert von CEC selbst über eine Gewichtsmatrix ermöglicht, wird als Gucklochverbindung bezeichnet.

GRU

Das LSTM-Modell hat das Problem, dass die Anzahl der Parameter groß und die Berechnungslast hoch ist. GRU wurde entwickelt, um es zu lösen. Die Anzahl der Parameter wurde erheblich reduziert, und die Genauigkeit kann von derselben Partei oder höher erwartet werden. (In der Praxis hängt es vom Fall ab, daher ist es nicht unbedingt aufwärtskompatibel.)

Bestätigungstest (3-12) Beschreiben Sie kurz die Probleme, die LSTM und CEC haben. LSTM: Die Anzahl der Parameter ist groß und die Berechnungslast hoch. Die Berechnung des Ergebnisses dauert einige Zeit. CEC: Da alle früheren Informationen gespeichert sind, ist es nicht möglich, nicht mehr benötigte frühere Informationen zu löschen.

Bestätigungstest (3-13) Beschreiben Sie kurz den Unterschied zwischen LSTM und GRU. Der Unterschied zwischen LSTM und GRU besteht darin, dass die Anzahl der Parameter gering und die Berechnungslast gering ist. (In der Praxis werden beide Modelle ausgeführt, um das entsprechende Modell auszuwählen.)

Bidirektionale RNN

Ein Modell, das die Genauigkeit verbessert, indem zusätzlich zu früheren Informationen zukünftige Informationen hinzugefügt werden. Beispiel: Wird bei der Satzvorhersage und maschinellen Übersetzung verwendet.

seq2seq Encoder-A-Typ eines Decodermodells, das für maschinelle Dialoge und maschinelle Übersetzung verwendet wird.

Encoder-RNN Eine Struktur, in der vom Benutzer eingegebene Textdaten übergeben werden, indem sie für jedes Wort in Token unterteilt werden. Teilen Sie jedes Token und zerlegen Sie die ID für jedes Token. Embedding Konvertieren Sie von einer ID in einen verteilten Darstellungsvektor, der dieses Token darstellt.

Prozessablauf Geben Sie den Vektor 1 in RNN ein und geben Sie den versteckten Zustand aus. Geben Sie diesen verborgenen Zustand und den nächsten Vektor 2 in das RNN ein, um den verborgenen Zustand festzulegen. Wiederholen Sie den Ausgangsfluss. Der verborgene Zustand, wenn der letzte Vektor eingegeben wird, wird als Endzustand festgelegt, und dieser Endzustand ist Es heißt Gedankenvektor und ist ein Vektor, der die Bedeutung des Eingabesatzes ausdrückt.

Decoder-RNN Eine Struktur, in der das System Ausgabedaten für jedes Token generiert, z. B. ein Wort.

Prozessablauf Geben Sie die Generierungswahrscheinlichkeit jedes Tokens aus dem Endzustand von Encoder-RNN aus. Endzustand als Installationszustand von Decoder-RNN Legen Sie die Einbettung fest und geben Sie sie ein. Anschließend werden Token basierend auf der Wahrscheinlichkeit der Erzeugung zufällig ausgewählt (Sampling). Einbetten des durch Sampling ausgewählten Tokens Dies ist der nächste Eingang von Decoder-RNN. Wiederholen Sie den obigen Vorgang, um das Token in eine Zeichenfolge umzuwandeln.

Bestätigungstest (3-15) Wählen Sie aus den folgenden Optionen, die seq2seq beschreiben.

Antworten 2: Ein Typ eines Encoder-Decoder-Modells, das RNN verwendet und für Modelle wie die maschinelle Übersetzung verwendet wird.

HRED Es besteht aus seq2seq + Context-RNN. Context-RNNha Eine Struktur, die eine Reihe von von Encoder zusammengestellten Sätzen zusammensetzt und in einen Vektor konvertiert, der den gesamten bisherigen Konversationskontext darstellt. Dies Sie können mit dem Verlauf vergangener Gespräche antworten.

Herausforderungen von seq2seq Sie können jeweils nur eine Frage beantworten. Es gibt keinen Kontext zu der Frage, nur eine Antwort. Weil es entwickelt wurde, um menschlichere Bemerkungen zu machen HRED.

HRED generiert die nächste Äußerung aus den vergangenen n-1 Äußerungen. Dies reagiert im Einklang mit dem Fluss des vorherigen Wortes, was zu einem menschlicheren Satz führt. Wird generiert.

Herausforderungen von HRED ・ Es gibt nur buchstäbliche Vielfalt und keine „fließende“ Vielfalt wie Konversation. Selbst wenn dieselbe Dialogliste angezeigt wird, wird jedes Mal nur dieselbe Antwort gegeben Ich kann nicht ・ Kurz und ohne Informationen. Neigt dazu, kurze und allgemeine Antworten zu lernen.

VHRED Eine Struktur, die HRED das Konzept latenter VAE-Variablen hinzufügt. Lösen Sie die Probleme von HRED durch Hinzufügen von VAE.

Bestätigungstest (3-16) seq2 Beschreiben Sie kurz den Unterschied zwischen seq und HRED sowie zwischen HRED und VHRED. Unterschied zwischen seq2seq und HRED seq2seq ist eine Art Encoder-Decoder-Modell, und HRED ist eine Struktur, die seq2seq mit Context-RNN kombiniert. seq2seq ist eine Frage und Antwort, aber HRED generiert den nächsten Dialog aus dem vergangenen Dialog.

VHRED ist eine Struktur, in der die latente Variable von VAE zu HRED hinzugefügt wird. Dies ist ein Problem für HRED. Es wurde entwickelt, um den Mangel an Informationen zu beseitigen.

AE(Auto-Encoder) Eine des unbeaufsichtigten Lernens. Spezifisches Beispiel Im Fall von MNIST ein neuronales Netzwerk, das dasselbe Bild ausgibt, wenn ein Bild mit 28 x 28 Zahlen eingegeben wird.

Auto-Encoder-Struktur Das neuronale Netzwerk, das Eingabedaten in die latente Funktion z konvertiert, heißt Encoder und stellt das Originalbild unter Verwendung der latenten Variablen z als Eingabe wieder her. Das neuronale Netzwerk heißt Decoder. Als Verdienst kann die Abmessung reduziert werden. Prozessablauf Prozess in der Reihenfolge der Eingabedaten → Encoder → latente Variable z → Decoder → Ausgabedaten.

VAE In einem normalen Auto-Encoder werden einige Daten in die latente Variable z eingefügt, aber der Zustand ihrer Struktur ist unbekannt. Daher nimmt VAE für diese latente Variable z eine Wahrscheinlichkeitsverteilung z bis N (0,1) an.

Bestätigungstest (3-19) Beantworten Sie die Lücken in der folgenden Beschreibung zu VAE. "Einführung von ____ in die latente Variable des Selbstcodierers."

Antworten

Word2Vec In RNN ist es nicht möglich, NN eine Zeichenfolge variabler Länge wie ein Wort zu geben. Daher wird aus den Trainingsdaten ein Wortschatz erstellt. Wenn Sie beispielsweise ein Vokabular mit 7 Wörtern erstellen, haben Sie so viele Wörter wie das Wörterbuch.

verdienen Das Erlernen der verteilten Darstellung großer Datenmengen ist mit realistischer Berechnungsgeschwindigkeit und Speicherkapazität möglich geworden. Konventionell: Die Gewichtsmatrix kann nur für Vokabeln x Vokabeln erstellt werden Diesmal: Wortschatz × Gewichtsvektor in einer beliebigen Wortvektordimension kann erstellt werden.

Attention Mechanism seq2seq ist schwierig mit langen Sätzen umzugehen. Es müssen entweder 2 Wörter oder 100 Wörter in einen Vektor mit fester Dimension eingegeben werden. Als Lösung wurde der Aufmerksamkeits-Machanismus entwickelt, denn je länger der Satz ist, desto größer ist die Dimension der internen Darstellung der Sequenz. Welche Wörter in der Eingabe und Ausgabe sind verwandt? Eine Struktur zum Erlernen des Relevanzgrades.

Bestätigungstest (3-20) Beschreiben Sie den Unterschied zwischen RNN und Word2Vec, seq2seq und Attention. Unterschied zwischen RNN und Word2Vec RNN generiert eine Gewichtsmatrix nur für Vokabeln x Vokabeln, Word2Vec generiert jedoch einen Gewichtsvektor für Vokabeln x beliebige Wortauflösung. Dies ermöglichte die Berechnung mit einer realistischen Berechnungsgeschwindigkeit und Speichermenge mithilfe von Word2Vec.

Unterschied zwischen seq2seq und Attention Mit seq2seq ist es schwierig, lange Sätze zu verarbeiten, und es können nur feste Längen unterstützt werden. Mit Attention können jedoch variable Längen unterstützt werden, indem der Grad der Relevanz zwischen Eingaben und Ausgaben gelernt wird.

i.png

Recommended Posts

Report_Deep Learning (Teil 2)
Report_Deep Learning (Teil 1)
Report_Deep Learning (Teil 1)
Report_Deep Learning (Teil 2)
Python: Überwachtes Lernen: Hyperparameter Teil 1
Python: Überwachtes Lernen: Hyperparameter Teil 2
[PyTorch Tutorial ⑤] PyTorch anhand von Beispielen lernen (Teil 2)
Versuchen Sie es mit TensorFlow Part 2
[PyTorch Tutorial ⑤] PyTorch anhand von Beispielen lernen (Teil 1)
Echtzeit-Persönliche Schätzung (Lernen)
Datum / Uhrzeit Teil 1
Vorhersage des Strombedarfs durch maschinelles Lernen Teil 2
numpy Teil 1
Argparse Teil 1
Lernaufzeichnung
Lernrekord Nr. 3
Lernrekord Nr. 1
Maschinelles Lernen
Python lernen
Python: Geschlechtsidentifikation (Entwicklung von Deep Learning) Teil 1
Python: Geschlechtsidentifikation (Entwicklung von Deep Learning) Teil 2
Lernrekord Nr. 2
numpy Teil 2
6/10 Lerninhalte
Tiefes Lernen
Numpy-Sigmoid-Lernen
"Deep Learning from Grund" Memo zum Selbststudium (Teil 12) Deep Learning
EV3 x Pyrhon Maschinelles Lernen Teil 3 Klassifizierung
Maschinelles Lernen eines jungen Ingenieurs Teil 1
Klassifizierung von Gitarrenbildern durch maschinelles Lernen Teil 1
Maschinelles Lernen beginnend mit Python Personal Memorandum Part2
Grundlagen des Lernens mit einem Lehrer Teil 1 - Einfache Regression - (Hinweis)
Maschinelles Lernen beginnend mit Python Personal Memorandum Part1
Lernen der Mustererkennung im Video Teil 1 Bereich der Mustererkennung
[Maschinelles Lernen] Überwachtes Lernen mithilfe der Kernel-Dichteschätzung Teil 2
EV3 x Pyrhon Maschinelles Lernen Teil 1 Umgebungskonstruktion
EV3 x Python Maschinelles Lernen Teil 2 Lineare Regression
[Maschinelles Lernen] Überwachtes Lernen mithilfe der Kernel-Dichteschätzung Teil 3
Videorahmeninterpolation durch tiefes Lernen Teil 1 [Python]
Aktienkursprognose mit Deep Learning (TensorFlow) -Teil 2-
Maschinelles Lernen eines jungen Ingenieurs Teil 2
Klassifizierung von Gitarrenbildern durch maschinelles Lernen Teil 2
Versuchen Sie Katsuhiro Morishita / Aso_Sea_Clouds_Pridiction Memo-Excluding the learning part-
Grundlagen des Lernens mit einem Lehrer Teil 3 - Multiple Regression (Implementierung) - (Anmerkungen) -