Mindmap-Galerie Deep-Learning-theoretisches Wissen
Ein Teil des Inhalts ist komprimiert und insgesamt sind 1216 Module enthalten. Basierend auf Yasuki Saitos zwei Büchern „Introduction to Deep Learning: Theory and Implementation Based on Python“ und „Advanced Deep Learning: Natural Language Processing Autor: [Japanisch] Yasuki Saito Übersetzer: Lu Yujie“. Dies ist das am besten geeignete Buch für den Einstieg in Deep Learning, das ich je gelesen habe, bevor ich „Hands-On Deep Learning“ von Li Mu studiere! Der darin enthaltene Inhalt erfordert keine Grundkenntnisse. Er wird von Grund auf vermittelt und ist für Oberstufenschüler verständlich.
Bearbeitet um 2024-02-04 00:57:48Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Projektmanagement ist der Prozess der Anwendung von Fachwissen, Fähigkeiten, Werkzeugen und Methoden auf die Projektaktivitäten, so dass das Projekt die festgelegten Anforderungen und Erwartungen im Rahmen der begrenzten Ressourcen erreichen oder übertreffen kann. Dieses Diagramm bietet einen umfassenden Überblick über die 8 Komponenten des Projektmanagementprozesses und kann als generische Vorlage verwendet werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Projektmanagement ist der Prozess der Anwendung von Fachwissen, Fähigkeiten, Werkzeugen und Methoden auf die Projektaktivitäten, so dass das Projekt die festgelegten Anforderungen und Erwartungen im Rahmen der begrenzten Ressourcen erreichen oder übertreffen kann. Dieses Diagramm bietet einen umfassenden Überblick über die 8 Komponenten des Projektmanagementprozesses und kann als generische Vorlage verwendet werden.
Deep-Learning-theoretisches Wissen
Einführung
grundlegendes Konzept
Das Deep-Learning-Problem ist ein Problem des maschinellen Lernens, das sich auf die Zusammenfassung allgemeiner Regeln durch Algorithmen aus begrenzten Beispielen und deren Anwendung auf neue unbekannte Daten bezieht.
Im Gegensatz zum traditionellen maschinellen Lernen sind die beim Deep Learning verwendeten Modelle im Allgemeinen komplexer.
Der Datenfluss von der ursprünglichen Eingabe zum Ausgabeziel durchläuft mehrere lineare oder nichtlineare Komponenten. Jede Komponente verarbeitet Informationen und wirkt sich wiederum auf nachfolgende Komponenten aus.
Wenn wir schließlich die Ausgabe erhalten, wissen wir nicht genau, wie viel jede Komponente dazu beiträgt. Diese Frage wird Beitrag genannt Zuordnungsproblem.
Das Beitragsallokationsproblem wird oft auch als Kreditallokationsproblem oder Kreditallokationsproblem übersetzt.
Das Problem der Beitragszuordnung ist ein sehr kritisches Thema, das damit zusammenhängt, wie die Parameter in jeder Komponente gelernt werden.
Derzeit ist das Modell, das das Problem der Beitragsverteilung besser lösen kann, das künstliche neuronale Netzwerk (ANN).
Neuronale Netze und Deep Learning sind nicht gleichwertig. Deep Learning kann neuronale Netzwerkmodelle oder andere Modelle verwenden (zum Beispiel ist Deep Believe Network ein probabilistisches Graphenmodell).
KI
Grundlegende KI-Konzepte
intelligentes Konzept
natürliche Intelligenz
Definition
Bezieht sich auf die Kraft und Verhaltensfähigkeiten von Menschen und einigen Tieren
natürliche menschliche Intelligenz
Es ist die umfassende Fähigkeit des Menschen, die objektive Welt zu verstehen, die sich in Denkprozessen und geistigen Aktivitäten manifestiert.
Unterschiedliche Ansichten und Hierarchien der Intelligenz
Sicht
Theorie des Geistes
Intelligenz entsteht durch Denkaktivitäten
Wissensschwellentheorie
Intelligenz hängt von anwendbarem Wissen ab
Evolutionstheorie
Intelligenz kann durch schrittweise Evolution erreicht werden
Hierarchie
Charakteristische Fähigkeiten, die in der Intelligenz enthalten sind
Wahrnehmung
Gedächtnis- und Denkfähigkeiten
Lernen und Anpassungsfähigkeit
Kapazität
Konzept der künstlichen Intelligenz
erklären
Nutzen Sie künstliche Methoden, um Intelligenz in Maschinen zu erreichen
Erfahren Sie, wie Sie intelligente Maschinen oder Systeme konstruieren und künstliche Intelligenz simulieren und erweitern
Turing-Test
Grundlegende Inhalte der KI-Forschung
Die thematische Stellung der Künstlichen Intelligenz
Die Schnittstelle zwischen Naturwissenschaften und Sozialwissenschaften
Kern: Denken und Intelligenz
Grundfächer: Mathematik, Denkwissenschaft, Computer
Interdisziplinäre Forschung mit Hirnforschung und Kognitionswissenschaft
Forschung zu Methoden und Technologien der intelligenten Simulation
Maschinenwahrnehmung
Vision
Hören
maschinelles Denken
maschinelles Lernen
Maschinenverhalten
Domänenklassifizierung
Wahrnehmung: Das heißt, die Simulation der menschlichen Wahrnehmungsfähigkeit, externe Reizinformationen (visuell und sprachlich usw.) wahrzunehmen und zu verarbeiten. Zu den Hauptforschungsgebieten gehören Sprachinformationsverarbeitung und Computer Vision.
Lernen: Simulation der menschlichen Lernfähigkeit, hauptsächlich Untersuchung, wie man anhand von Beispielen lernt oder mit der Umgebung interagiert. Zu den Hauptforschungsgebieten gehören überwachtes Lernen, unüberwachtes Lernen und verstärkendes Lernen.
Kognition: Es simuliert die kognitiven Fähigkeiten des Menschen. Die Hauptforschungsbereiche umfassen Wissensrepräsentation, natürliches Sprachverständnis, Argumentation, Planung, Entscheidungsfindung usw.
Geschichte
Verschiedene Schulen der KI-Forschung
Symbolismus
Symbolismus, auch bekannt als Logikismus, Psychologieschule oder Computerschule. Durch die Analyse der Funktionen der menschlichen Intelligenz und die anschließende Umsetzung dieser Funktionen durch Computer.
Grundannahmen
Informationen können durch Symbole dargestellt werden
Symbole können durch explizite Regeln (z. B. logische Operationen) manipuliert werden.
Menschliche kognitive Prozesse können als symbolische Manipulationsprozesse angesehen werden. In der Denk- und Wissensperiode der künstlichen Intelligenz ist die symbolische Methode beliebter und hat viele Ergebnisse erzielt.
Konnektionismus
Der Konnektionismus, auch bionische Schule oder physiologische Schule genannt, ist eine Art Informationsverarbeitungsmethoden und -theorien im Bereich der Kognitionswissenschaft.
Im Bereich der Kognitionswissenschaft kann der menschliche kognitive Prozess als Informationsverarbeitungsprozess betrachtet werden. Der Konnektionismus geht davon aus, dass es sich bei den kognitiven Prozessen des Menschen nicht um symbolische Operationen, sondern um Informationsverarbeitungsprozesse in neuronalen Netzwerken handelt, die aus einer großen Anzahl einfacher Neuronen bestehen.
Daher ist die Hauptstruktur des konnektionistischen Modells ein miteinander verbundenes Netzwerk, das aus einer großen Anzahl einfacher Informationsverarbeitungseinheiten besteht und die Eigenschaften Nichtlinearität, Verteilung, Parallelisierung, lokales Rechnen und Anpassungsfähigkeit aufweist.
Behaviorismus
Der Behaviorismus geht davon aus, dass künstliche Intelligenz aus der Kybernetik stammt.
Neben Deep Learning gibt es derzeit eine weitere spannende Technologie im Bereich des maschinellen Lernens, das Reinforcement Learning.
Lassen Sie einen Agenten (Agent) kontinuierlich verschiedene Aktionen ausführen (Aktion), seinen Zustand ändern (Zustand) und mit der Umgebung interagieren (Umgebung), um unterschiedliche Belohnungen (Belohnung) zu erhalten. Der Agent kann durch kontinuierliches Ausprobieren geeignete Strategien erlernen.
Neuronale Netze
neuronales Netzwerk des Gehirns
Künstliche neurale Netzwerke
Die Entwicklungsgeschichte neuronaler Netze
Vorgeschlagenes Modell
Der Zeitraum von 1943 bis 1969 war der erste Höhepunkt der Entwicklung neuronaler Netze. In dieser Zeit schlugen Wissenschaftler viele Neuronenmodelle und Lernregeln vor.
Im Jahr 1943 beschrieben der Psychologe Warren McCulloch und der Mathematiker Walter Pitts erstmals ein idealisiertes künstliches neuronales Netzwerk und konstruierten einen Rechenmechanismus, der auf einfachen logischen Operationen basierte. Das von ihnen vorgeschlagene neuronale Netzwerkmodell wird MP-Modell genannt.
Eiszeit
Von 1969 bis 1983 war es die erste Low-Level-Entwicklung eines neuronalen Netzwerks. Talzeit. In diesem Zeitraum befand sich die Forschung zu neuronalen Netzen viele Jahre lang in einem Zustand der Stagnation und des Tiefs.
Im Jahr 1969 veröffentlichte Marvin Minsky das Buch „Perceptron“, in dem er auf zwei Hauptmängel neuronaler Netze hinwies: Der erste besteht darin, dass das Perzeptron das Problem der XOR-Schleife nicht bewältigen konnte, der zweite darin, dass die Computer zu dieser Zeit die Verarbeitung großer Datenmengen nicht unterstützen konnten Neuronale Netze erfordern Rechenleistung.
1974 erfand Paul Webos von der Harvard University den Backpropagation-Algorithmus (BP), doch er erhielt damals nicht die Aufmerksamkeit, die ihm gebührte.
Die Renaissance durch den Backpropagation-Algorithmus
1983–1995. Der Backpropagation-Algorithmus hat das Interesse an neuronalen Netzen neu entfacht.
Der Caltech-Physiker John Hopfield schlug ein neuronales Netzwerk für assoziative Gedächtnis- und Optimierungsberechnungen vor, das sogenannte Hopfield-Netzwerk. Das Hopfield-Netzwerk erzielte damals die besten Ergebnisse beim Problem der Handlungsreisenden und sorgte für Aufsehen.
David Rumelhart und James McClelland diskutieren umfassend die Anwendung des Konnektionismus auf Computersimulationen neuronaler Aktivität und erfinden den Backpropagation-Algorithmus neu.
Rückgang der Popularität
1995–2006. Support-Vektor-Maschinen und andere einfachere Methoden (z. B. lineare Klassifikatoren) erfreuen sich im Bereich des maschinellen Lernens allmählich zunehmender Beliebtheit gegenüber neuronalen Netzen.
Der Aufstieg des Deep Learning
2006 ~ jetzt. Mehrschichtige Feedforward-Neuronale Netze können Schicht für Schicht vorab trainiert und dann mithilfe des Backpropagation-Algorithmus feinabgestimmt werden. Effektiv lernen.
maschinelles Lernen
Datenvorverarbeitung
Nach der Datenvorverarbeitung, z. B. Entfernen von Rauschen usw. Zum Beispiel bei der Textklassifizierung, dem Entfernen von Stoppwörtern usw.
Merkmalsextraktion
Extrahieren Sie einige effektive Funktionen aus Rohdaten. Zum Beispiel bei der Bildklassifizierung, dem Extrahieren von Kanten, SIFT-Merkmalen (Scale Invariant Feature Transform) usw.
Feature-Transformation
Führen Sie bestimmte Verarbeitungen an den Features durch, z. B. Dimensionsreduzierung und Dimensionsverbesserung. Die Dimensionsreduzierung umfasst zwei Ansätze: Merkmalsextraktion und Merkmalsauswahl. Zu den häufig verwendeten Methoden zur Merkmalstransformation gehören die Hauptkomponentenanalyse (PCA), die lineare Diskriminanzanalyse (Linear Discriminant Analysis) usw.
vorhersagen
Der Kernbestandteil des maschinellen Lernens besteht darin, Vorhersagen mithilfe einer Funktion zu treffen
Zeigt Lernen an
Um die Genauigkeit des maschinellen Lernsystems zu verbessern, werden die Eingabeinformationen in effektive Funktionen umgewandelt
Wenn es einen Algorithmus gibt, der automatisch effektive Funktionen lernen und die Leistung des endgültigen Modells für maschinelles Lernen verbessern kann, kann diese Art des Lernens als Repräsentationslernen bezeichnet werden.
Anzeigemethode
lokale Vertretung
Eine Möglichkeit, Farben darzustellen, besteht darin, verschiedene Farben mit unterschiedlichen Namen zu benennen
Die Dimension ist hoch und kann nicht erweitert werden. Die Ähnlichkeit zwischen verschiedenen Farben ist 0.
verteilte Darstellung
RGB-Werte zur Darstellung von Farben
Um eine gute semantische Darstellung auf hoher Ebene (allgemein verteilte Darstellung) zu erlernen, ist es normalerweise erforderlich, von den Merkmalen auf niedriger Ebene auszugehen und mehrere Schritte der nichtlinearen Transformation zu durchlaufen, um sie zu erhalten.
tiefes Lernen
Schritt
Problem der Beitragsverteilung
Anders als beim „flachen Lernen“ ist das Hauptproblem, das Deep Learning lösen muss, die Verteilung des Beitrags
Nehmen Sie als Beispiel das folgende Go-Spiel. Immer wenn ein Spiel gespielt wird, ist das Endergebnis entweder ein Sieg oder eine Niederlage. Wir werden darüber nachdenken, welche Züge zum endgültigen Sieg und welche zur endgültigen Niederlage führten. Wie man den Beitrag jedes Zuges beurteilt, ist das Problem der Beitragsverteilung, das ebenfalls ein sehr schwieriges Problem ist.
In gewissem Sinne kann Deep Learning auch als eine Art Reinforcement Learning (RL) betrachtet werden. Jede interne Komponente kann keine Überwachungsinformationen direkt erhalten, sondern muss diese durch die endgültigen Überwachungsinformationen (Belohnung) des gesamten Modells erhalten Gewisse Verzögerung.
Das neuronale Netzwerkmodell kann den Fehlerrückausbreitungsalgorithmus verwenden, der das Beitragsverteilungsproblem besser lösen kann.
Durchgängiges Lernen
traditioneller Lernstil
Bei einigen komplexen Aufgaben müssen herkömmliche Methoden des maschinellen Lernens die Eingabe und Ausgabe einer Aufgabe künstlich in viele Untermodule (oder mehrere Phasen) unterteilen, und jedes Untermodul wird separat gelernt.
Beispielsweise erfordert eine Aufgabe zum Verstehen natürlicher Sprache im Allgemeinen Schritte wie Wortsegmentierung, Wortartkennzeichnung, syntaktische Analyse, semantische Analyse und semantisches Denken.
Bei dieser Art des Lernens gibt es zwei Probleme
Erstens muss jedes Modul separat optimiert werden, und es kann nicht garantiert werden, dass seine Optimierungsziele und die allgemeinen Missionsziele konsistent sind.
Der zweite Punkt ist die Fehlerausbreitung, d. h. Fehler im vorherigen Schritt haben große Auswirkungen auf nachfolgende Modelle. Dies erhöht die Schwierigkeit der praktischen Anwendung maschineller Lernmethoden.
Neue Art des Lernens
Unter End-to-End-Lernen, auch End-to-End-Training genannt, versteht man das übergeordnete Ziel, die Aufgabe direkt zu optimieren, ohne während des Lernprozesses ein Training in Modulen oder Etappen durchzuführen.
Im Allgemeinen besteht keine Notwendigkeit, die Funktionen verschiedener Module oder Stufen explizit anzugeben, und im Zwischenprozess ist kein menschliches Eingreifen erforderlich.
Die meisten Deep Learning-Modelle mithilfe neuronaler Netzwerkmodelle können auch als End-to-End-Lernen betrachtet werden.
Häufig verwendete Deep-Learning-Frameworks
Theano: Ein Python-Toolkit der Universität Montreal, das zur effizienten Definition, Optimierung und Ausführung des Theano-Projekts verwendet wird, wird derzeit nicht mehr gewartet. Mehrdimensionale Array-Daten entsprechen mathematischen Ausdrücken. Theano kann GPUs und effiziente Symbole transparent nutzen Differential.
Caffe: Der vollständige Name lautet Convolutional Architecture for Fast Feature Embedding. Es handelt sich um ein Rechenframework für Faltungsnetzwerkmodelle. Die zu implementierende Netzwerkstruktur kann in der Konfigurationsdatei angegeben werden und erfordert keine Codierung. Caffe ist in C und Python implementiert und wird hauptsächlich für Computer Vision verwendet.
TensorFlow: Ein von Google entwickeltes Python-Toolkit, das auf jedem Gerät mit CPU oder GPU ausgeführt werden kann. Der Berechnungsprozess von TensorFlow wird mithilfe von Datenflussdiagrammen dargestellt. Der Name Tensor Flow rührt von der Tatsache her, dass das Operationsobjekt in seinem Berechnungsprozess ein mehrdimensionales Array, also ein Tensor, ist.
Chainer: Eines der frühesten neuronalen Netzwerk-Frameworks, das dynamische Computergraphen verwendet. Das Kernentwicklungsteam ist Preferred Networks, ein Startup für maschinelles Lernen aus Japan. Im Vergleich zu statischen Berechnungsdiagrammen, die von Tensorflow, Theano, Caffe und anderen Frameworks verwendet werden, können dynamische Berechnungsdiagramme zur Laufzeit dynamisch Berechnungsdiagramme erstellen und eignen sich daher sehr gut für einige komplexe Entscheidungs- oder Argumentationsaufgaben.
PyTorch5: Ein Deep-Learning-Framework, das von Facebook, NVIDIA, Twitter und anderen Unternehmen entwickelt und gepflegt wird. Sein Vorgänger ist Torch6 der Lua-Sprache. PyTorch ist auch ein Framework, das auf dynamischen Rechendiagrammen basiert und offensichtliche Vorteile bei Aufgaben bietet, die eine dynamische Änderung der Struktur neuronaler Netze erfordern.
Organisation dieses Buches
Perzeptron
Ein Perzeptron ist ein Algorithmus mit Ein- und Ausgängen. Bei einer Eingabe wird ein bestimmter Wert ausgegeben.
Das Perzeptron legt Gewichtungen und Bias als Parameter fest
Logische Schaltkreise wie UND-Gatter und ODER-Gatter können mithilfe von Perzeptronen dargestellt werden.
Ein XOR-Gatter kann nicht durch ein einschichtiges Perzeptron dargestellt werden.
Ein XOR-Gatter kann mithilfe eines zweischichtigen Perzeptrons dargestellt werden
Einschichtige Perzeptrone können nur lineare Räume darstellen, während mehrschichtige Perzeptrone nichtlineare Räume darstellen können.
Ein zweischichtiges Perzeptron kann (theoretisch) einen Computer darstellen.
Neuronale Netze
Perzeptrone und neuronale Netze
„Naives Perzeptron“ bezieht sich auf ein einschichtiges Netzwerk und ein Modell, das die Schrittfunktion als Aktivierungsfunktion verwendet.
„Mehrschichtiges Perzeptron“ bezieht sich auf ein neuronales Netzwerk, also ein mehrschichtiges Netzwerk, das glatte Aktivierungsfunktionen wie die Sigmoidfunktion oder die ReLU-Funktion verwendet.
Operation: inneres Produkt des neuronalen Netzwerks
Y = np.dot(X, W)
Neuronale Netze können durch den Einsatz von Matrixoperationen effizient implementiert werden.
Affine Schicht
Die bei der Vorwärtsausbreitung des neuronalen Netzwerks durchgeführte Matrixproduktoperation wird in der Geometrie als „affine Transformation“ bezeichnet
Die affine Transformation umfasst eine lineare Transformation und eine Übersetzung, die jeweils der gewichteten Summenoperation und der Offset-Operation des neuronalen Netzwerks entsprechen.
Y = Sigmoid(Y)
Ausgabeschicht
Aktivierungsfunktion: Die Identitätsfunktion wird für Regressionsprobleme und die Softmax-Funktion für Klassifizierungsprobleme verwendet.
Identitätsfunktion
Das Eingangssignal wird unverändert ausgegeben
Softmax-Funktion
Nehmen Sie an, dass die Ausgabeschicht insgesamt n Neuronen hat, und berechnen Sie die Ausgabe yk des k-ten Neurons.
Merkmale: Die Summe der Ausgabewerte der Ausgabeschicht beträgt 1
Hinweis: Überlaufprobleme
Menge
Klassifizierungsproblem
Im Allgemeinen auf die Anzahl der Kategorien eingestellt
Handschriftliche Ziffernerkennung
Die Eingabeschicht verfügt über 28 * 28 = 784 Neuronen und die Ausgabeschicht über 10 Neuronen. Es gibt auch zwei verborgene Schichten und die Anzahl der Neuronen kann einen beliebigen Wert annehmen.
Stapelverarbeitung
Geben Sie mehrere Datensätze gleichzeitig ein
Lernen über neuronale Netze
verlustfunktion
Konzepte vorstellen
Wenn Sie nach optimalen Parametern (Gewichtungen und Verzerrungen) suchen, suchen Sie nach Parametern, die den Wert der Verlustfunktion so klein wie möglich machen. Daher müssen Sie die Ableitungen der Parameter berechnen (genauer gesagt den Gradienten).
Warum nicht direkt die Erkennungsgenauigkeit als Indikator nutzen?
Die Ableitung des Parameters wird an den meisten Stellen 0
Das Gleiche gilt für Schrittfunktionen als Aktivierungsfunktionen
Typ
mittlerer quadratischer Fehler
Kreuzentropiefehler
Mini-Charge
Extrahieren Sie einige Testdaten
Gradient
Der durch die partiellen Ableitungen aller Variablen aufsummierte Vektor wird Gradient genannt
Die durch den Gradienten angegebene Richtung ist die Richtung, in der der Funktionswert an jedem Punkt am stärksten abnimmt.
Hyperparameter
Manuelle Einstellung
Lernrate n
Minibatch-Größe
Aktualisierungszeiten iters_num
Ausbildung gewonnen
Gewicht w und Bias Theta
Neuronale Netze
Der Gradient der Verlustfunktion in Bezug auf die Gewichtsparameter
Epoche
Anzahl der Zyklen/Minibatch-Größe
Stochastischer Gradientenabstieg (SGD)
Führen Sie einen Gradientenabstieg für zufällig ausgewählte Daten durch
Methode zur Fehlerrückausbreitung
Obwohl die numerische Differentiation einfach und leicht zu implementieren ist, besteht ihr Nachteil darin, dass die Berechnung zeitaufwändig ist. Es gibt eine Methode, mit der der Gradient von Gewichtsparametern effizient berechnet werden kann: die Fehlerrückausbreitungsmethode
Rechendiagramm
Durch die Verwendung von Berechnungsdiagrammen können Sie den Berechnungsprozess intuitiv erfassen
Durch die Vorwärtsausbreitung von Rechengraphen werden allgemeine Berechnungen durchgeführt. Durch Backpropagation des Rechengraphen können die Ableitungen jedes Knotens berechnet werden
Der Fehlerterm der Schicht l kann durch den Fehlerterm der Schicht l 1 berechnet werden Dies ist die Rückwärtsausbreitung des Fehlers.
Formel
Berechnung
Der Gelbanteil ist der Wert, der bei der Rückausbreitung erhalten wird
Die grüne Menge ist eine bekannte Größe
Durch die Implementierung der Bestandteile eines neuronalen Netzwerks als Schichten können Gradienten effizient berechnet werden
Durch den Vergleich der Ergebnisse der numerischen Differenzierung und der Fehler-Rückausbreitungsmethode können Sie bestätigen, ob die Implementierung der Fehler-Rückausbreitungsmethode korrekt ist (Gradientenbestätigung).
Referenzvideo
https://www.bilibili.com/video/BV1LM411J7cW/?spm_id_from=333.788&vd_source=048c7bdfe54313b8b3ee1483d9d07e38
Faltungs-Neuronales Netzwerk
Alles sollte so einfach wie möglich sein, aber nicht zu einfach. [Albert Einstein]
der ganze Rahmen
Verglichen
Netzwerk basierend auf vollständig verbundener Schicht (affine Schicht)
CNN-basiertes Netzwerk
Linkreihenfolge
Faltung[Faltungsschicht]-ReLU-(Pooling[Pooling-Schicht])
Die Ebene in der Nähe der Ausgabe verwendet die vorherige Kombination Affine [affine Transformation] – ReLU
Die letzte Ausgabeschicht verwendet die vorherige Affine-Softmax-Kombination
Faltungsschicht
Faltungskonzept
Probleme mit der vollständig verbundenen Schicht
Die Form der Daten wird „ignoriert“. Das Bild hat normalerweise eine dreidimensionale Form in Höhen-, Längen- und Kanalrichtung, aber die dreidimensionalen Daten müssen bei der Eingabe in eindimensionale Daten reduziert werden.
Das Bild ist eine dreidimensionale Form und diese Form sollte wichtige räumliche Informationen enthalten.
Räumlich benachbarte Pixel haben ähnliche Werte
Jeder RBG-Kanal ist eng miteinander verbunden.
Zwischen Pixeln, die weit voneinander entfernt sind, besteht kaum eine Korrelation
Die Faltungsschicht kann die Form unverändert lassen
Definition
Die Eingabe- und Ausgabedaten der Faltungsschicht werden als Feature-Maps bezeichnet
Die Eingabedaten der Faltungsschicht werden als Eingabe-Feature-Map bezeichnet
Die Ausgabedaten werden als Ausgabe-Feature-Map bezeichnet
Faltungsoperation
Die Faltungsoperation entspricht der Filteroperation in der Bildverarbeitung
Die Hauptfunktion der Faltung besteht darin, einen Faltungskern (dh einen Filter) über ein Bild (oder ein Merkmal) zu schieben und durch die Faltungsoperation einen neuen Satz von Merkmalen zu erhalten.
zweidimensional
Gegeben sei ein Bild X ∈ R(M×N) und ein Filter W ∈ R (m×n), im Allgemeinen m << M, n << N, die Faltung ist
dreidimensional
Korrelation
Bei der Berechnung der Faltung ist es häufig erforderlich, den Faltungskern umzudrehen.
Beim Umdrehen wird die Reihenfolge in zwei Dimensionen umgekehrt (von oben nach unten, von links nach rechts), also um 180 Grad gedreht.
Im Hinblick auf die spezifische Implementierung werden Kreuzkorrelationsoperationen anstelle von Faltungen verwendet, wodurch einige unnötige Operationen oder der Overhead reduziert werden.
Kreuzkorrelation ist eine Funktion, die die Korrelation zwischen zwei Reihen misst und normalerweise durch Skalarproduktberechnung eines gleitenden Fensters implementiert wird.
Gegeben sei ein Bild X ∈ R(M×N) und ein Faltungskern W ∈ R (m×n), ihre Kreuzkorrelation ist
Der Unterschied zwischen Kreuzkorrelation und Faltung besteht nur darin, ob der Faltungskern umgedreht wird. Kreuzkorrelation kann auch als Non-Flip-Faltung bezeichnet werden.
Faltung wird in neuronalen Netzen zur Merkmalsextraktion verwendet. Ob der Faltungskern umgedreht wird, hat nichts mit seiner Fähigkeit zur Merkmalsextraktion zu tun. Insbesondere wenn der Faltungskern ein lernbarer Parameter ist, sind Faltung und Kreuzkorrelation gleichwertig.
Varianten der Faltung
Keine Polsterung
Um die Speicherplatzgröße konstant zu halten, müssen die Eingabedaten aufgefüllt werden
Schrittlänge
Das Intervall der Positionen, an denen der Filter angewendet wird, wird als Schritt bezeichnet
Häufig verwendete Faltungen
Schmale Faltung: Schrittweite s = 1, keine Nullauffüllung an beiden Enden, p = 0, und die Ausgabelänge nach der Faltung beträgt n − m 1.
Breite Faltung: Schrittweite s = 1, Nullauffüllung an beiden Enden p = m − 1 und die Ausgabelänge nach der Faltung beträgt n m − 1.
Faltung gleicher Breite: Schrittgröße s = 1, Nullauffüllung an beiden Enden p = (m −1)/2, Ausgabelänge n nach der Faltung.
Mathematische Eigenschaften der Faltung
Faltungsoperation für 3D-Daten
Die Eingangsdaten- und Filterkanalnummern sollten auf den gleichen Wert eingestellt werden.
Mehrere Faltungsoperationen
Bezüglich der Filter der Faltungsoperation muss auch die Anzahl der Filter berücksichtigt werden. Daher sollten die Gewichtsdaten des Filters als vierdimensionale Daten in der Reihenfolge (Ausgabekanal, Eingabekanal, Höhe, Breite) geschrieben werden. Wenn beispielsweise 20 Filter mit einer Kanalnummer von 3 und einer Größe von 5 × 5 vorhanden sind, kann dies als (20, 3, 5, 5) geschrieben werden.
Stapelverarbeitung
Wir hoffen, dass die Faltungsoperation auch der Stapelverarbeitung entspricht. Dazu müssen die zwischen den einzelnen Schichten übertragenen Daten als 4-dimensionale Daten gespeichert werden. Konkret werden die Daten in der Reihenfolge (Batch_num, Kanal, Höhe, Breite) gespeichert.
Eigenschaften von Faltungsschichten
Lokale Verbindung: Jedes Neuron in der Faltungsschicht (angenommen die l-te Schicht) ist nur mit den Neuronen in einem lokalen Fenster in der nächsten Schicht (l-1 Schicht) verbunden und bildet so ein lokales Verbindungsnetzwerk. Die Anzahl der Verbindungen zwischen der Faltungsschicht und der nächsten Schicht wird stark reduziert, von ursprünglich n(l) × n(l – 1) Verbindungen auf n(l) × m Verbindungen. m ist die Filtergröße.
Gewichtsverteilung: Der Filter w(l) als Parameter ist für alle Neuronen in Schicht l gleich.
Aufgrund lokaler Verbindungen und Gewichtsverteilung haben die Parameter der Faltungsschicht nur ein m-dimensionales Gewicht w(l) und einen eindimensionalen Bias b(l) mit insgesamt m 1 Parametern.
Die Anzahl der Neuronen in Schicht l ist nicht willkürlich gewählt, sondern erfüllt n(l) = n(l−1) − m 1.
Pooling-Schicht
Auch Aggregationsschicht oder Subsampling-Schicht genannt
Beim Pooling handelt es sich um eine Feature-Auswahl, die die Anzahl der Features reduziert, wodurch die Anzahl der Parameter reduziert, die Feature-Abmessungen reduziert und der Platz in Höhen- und Längenrichtung reduziert wird.
Häufig verwendete Aggregationsfunktionen
Maximum: Generell wird der Maximalwert aller Neuronen in einer Region genommen.
Durchschnittliche Aggregation (Mittelwert): Im Allgemeinen wird der Durchschnittswert aller Neuronen im Bereich genommen.
Eine typische Pooling-Schicht unterteilt jede Feature-Map in nicht überlappende Bereiche mit einer Größe von 2×2 und verwendet dann maximales Pooling für das Downsampling.
Die Pooling-Schicht kann auch als spezielle Faltungsschicht betrachtet werden
In einigen frühen Faltungsnetzwerken (wie LeNet-5) wurden manchmal nichtlineare Aktivierungsfunktionen in der Pooling-Schicht verwendet.
Dabei ist Y(′d) die Ausgabe der Pooling-Schicht, f(·) die nichtlineare Aktivierungsfunktion, w(d) und b(d) lernbare Skalargewichte und Bias.
Eigenschaften der Pooling-Schicht
Es müssen keine Parameter gelernt werden
Die Anzahl der Kanäle ändert sich nicht
Robust gegenüber kleinen Positionsänderungen (Robustheit)
Parameterlernen
Berechnung des Fehlerterms
Visualisierung von CNN
Visualisierung der Gewichte der Schicht 1
Der Filter wird vor dem Lernen zufällig initialisiert, sodass es kein Muster in den Schwarz- und Weißtönen gibt, aber der Filter wird nach dem Lernen zu einem regulären Bild. Wir haben festgestellt, dass die Filter durch das Lernen in reguläre Filter aktualisiert werden, z. B. Filter mit einem Farbverlauf von Weiß nach Schwarz, Filter, die blockige Bereiche (sogenannte Blobs) usw. enthalten. Filter, der auf horizontale und vertikale Kanten reagiert
Es ist ersichtlich, dass die Filter der Faltungsschicht Originalinformationen wie Kanten oder Patches extrahieren. Das gerade implementierte CNN wird diese Rohinformationen an nachfolgende Schichten weitergeben.
Informationsextraktion basierend auf einer hierarchischen Struktur
Aus den Faltungsschichten von CNN extrahierte Informationen. Die Neuronen in Schicht 1 reagieren auf Kanten oder Flecken, Schicht 3 reagiert auf Textur, Schicht 5 reagiert auf Objektteile und die letzte vollständig verbundene Schicht reagiert auf die Kategorie des Objekts (Hund oder Auto).
Wenn mehrere Faltungsschichten gestapelt werden, werden die extrahierten Informationen mit zunehmender Tiefe komplexer und abstrakter. Dies ist ein sehr interessanter Teil des Deep Learning. Wenn die Schichten tiefer werden, ändern sich die Neuronen von einfachen Formen zu „hochrangigen“ Informationen. Mit anderen Worten: So wie wir die „Bedeutung“ der Dinge verstehen, ändern sich auch die Objekte der Reaktion allmählich.
Typisches Faltungs-Neuronales Netzwerk
LeNet-5
LeNet wurde 1998 als Netzwerk zur handschriftlichen Ziffernerkennung vorgeschlagen. Es verfügt über aufeinanderfolgende Faltungsschichten und Pooling-Schichten und gibt die Ergebnisse schließlich über eine vollständig verbundene Schicht aus.
Ohne die Eingabeschicht verfügt LeNet-5 über insgesamt 7 Schichten.
Eingabeebene: Die Eingabebildgröße beträgt 32 × 32 = 1024.
Faltungsschicht: Unter Verwendung von 6 5 × 5-Filtern werden 6 Sätze von Feature-Maps mit einer Größe von 28 × 28 = 784 erhalten. Daher beträgt die Anzahl der Neuronen in Schicht C1 6 × 784 = 4704, die Anzahl der trainierbaren Parameter 6 × 25 6 = 156 und die Anzahl der Verbindungen 156 × 784 = 122304 (einschließlich Bias, dasselbe unten).
Pooling-Schicht: Das Stichprobenfenster beträgt 2×2, es wird durchschnittliches Pooling verwendet und eine nichtlineare Funktion wird verwendet. Die Anzahl der Neuronen beträgt 6 × 14 × 14 = 1176, die Anzahl der trainierbaren Parameter beträgt 6 × (1 1) = 12 und die Anzahl der Verbindungen beträgt 6 × 196 × (4 1) = 5.880.
Faltungsschicht. In LeNet-5 wird eine Verbindungstabelle verwendet, um die Abhängigkeit zwischen den Eingabe- und Ausgabe-Feature-Maps zu definieren. Wie in der Abbildung gezeigt, werden insgesamt 60 5 × 5-Filter verwendet, um 16 Gruppen von Feature-Maps mit einer Größe von 10 × zu erhalten 10. Die Anzahl der Neuronen beträgt 16 × 100 = 1.600, die Anzahl der trainierbaren Parameter beträgt (60 × 25) 16 = 1.516 und die Anzahl der Verbindungen beträgt 100 × 1.516 = 151.600.
In der Pooling-Schicht beträgt das Stichprobenfenster 2 × 2 und es werden 16 Feature-Maps mit einer Größe von 5 × 5 erhalten. Die Anzahl der trainierbaren Parameter beträgt 16 × 2 = 32 und die Anzahl der Verbindungen beträgt 16 × 25 × (4 1). ) = 2000.
Faltungsschichten erhalten unter Verwendung von 120 × 16 = 1.920 5 × 5-Filtern 120 Sätze von Feature-Maps mit einer Größe von 1 × 1. Die Anzahl der Neuronen in Schicht C5 beträgt 120, die Anzahl der trainierbaren Parameter beträgt 1, 920 × 25 120 = 48120 und die Anzahl der Verbindungen beträgt 120 × (16 × 25 1) = 48120.
Die vollständig verbundene Schicht verfügt über 84 Neuronen und die Anzahl der trainierbaren Parameter beträgt 84×(120 1) =10164. Die Anzahl der Verbindungen und die Anzahl der trainierbaren Parameter sind gleich, nämlich 10164.
Ausgabeschicht: Die Ausgabeschicht besteht aus 10 euklidischen radialen Basisfunktionen
Tisch verbinden
Die vollständig verbundene Beziehung zwischen den Eingabe- und Ausgabe-Feature-Maps der Faltungsschicht ist nicht erforderlich, und es kann eine nicht gemeinsam genutzte Faltung verwendet werden
Definieren Sie eine Link-Tabelle (Link-Tabelle) T, um die Verbindungsbeziehung zwischen den Eingabe- und Ausgabe-Feature-Maps zu beschreiben.
Wenn die p-te Ausgabe-Feature-Map von der d-ten Eingabe-Feature-Map abhängt, dann ist Tp,d = 1, andernfalls 0.
AlexNet
Es wurde 2012 vorgeschlagen und nutzt viele technische Methoden moderner tiefer Faltungsnetzwerke.
Paralleles Training mit GPUs
Die Aktivierungsfunktion verwendet ReLU
Verwenden Sie Dropout, um eine Überanpassung zu verhindern
Nutzen Sie die Datenerweiterung, um die Modellgenauigkeit zu verbessern
Verwenden Sie die LRN-Schicht (Local Response Normalization) für die lokale Normalisierung
Inception-Netzwerk
Inception-Modul: Eine Faltungsschicht enthält mehrere Faltungsoperationen unterschiedlicher Größe
Das Inception-Netzwerk besteht aus mehreren Inception-Modulen und einer kleinen Anzahl von Aggregationsschichten.
V1-Version
Die früheste v1-Version des Inception-Netzwerks ist das sehr bekannte GoogLeNet [Szegedy et al., 2015] und gewann 2014 den ImageNet-Bildklassifizierungswettbewerb.
Restnetzwerk ResNet
Die Effizienz der Informationsausbreitung wird durch das Hinzufügen direkter Kanten zur nichtlinearen Faltungsschicht verbessert.
nichtlineare Elemente
Kann eine oder mehrere Faltungsschichten sein
Diese nichtlineare Einheit f(x, θ) soll eine Zielfunktion h(x) annähern.
Eine nichtlineare Einheit, die aus einem neuronalen Netzwerk besteht, verfügt über ausreichende Fähigkeiten, um die ursprüngliche Zielfunktion oder Restfunktion näherungsweise anzunähern, letztere ist jedoch in der Praxis leichter zu erlernen
Fazit: Lassen Sie die nichtlineare Einheit f(x, θ) die Restfunktion h(x)−x annähern und verwenden Sie f(x, θ) x, um h(x) anzunähern.
Das Restnetzwerk ist ein sehr tiefes Netzwerk, das aus vielen in Reihe geschalteten Resteinheiten besteht.
Andere Faltungsmethoden
transponierte Faltung
Vorhoffaltung (dilatierte Faltung)
tiefes Lernen
Vertiefen Sie das Netzwerk
Auf dem Weg zu einem tieferen Netzwerk
Dieses Netzwerk bezieht sich auf VGG, das im nächsten Abschnitt vorgestellt wird.
Faltungsschicht basierend auf 3×3 kleinen Filtern
Die Aktivierungsfunktion ist ReLU
Die Dropout-Schicht wird hinter der vollständig verbundenen Schicht verwendet.
Adam-basierte Optimierung
Verwenden Sie den Anfangswert von He als Anfangswert des Gewichts
Die Erkennungsgenauigkeit beträgt 99,38 %
Verbessern Sie die Erkennungsgenauigkeit weiter
Ensemble-Lernen
Verfall der Lernrate
Datenerweiterung
Erhöhen Sie die Anzahl der Bilder, indem Sie kleine Änderungen wie Drehung, vertikale oder horizontale Bewegung, Zuschneiden, Spiegeln, Erhöhen der Helligkeit usw. vornehmen.
Tiefere Motivation
Verbessern Sie die Erkennungsleistung
Die Bedeutung der Vertiefung lässt sich an den Ergebnissen groß angelegter Bilderkennungswettbewerbe erkennen, die von ILSVRC vertreten werden. Die Ergebnisse dieses Wettbewerbs zeigen, dass die Top-Methoden in letzter Zeit größtenteils auf Deep Learning basieren und dazu neigen, die Schichten des Netzwerks schrittweise zu vertiefen. Mit anderen Worten ist ersichtlich, dass die Erkennungsleistung umso höher ist, je tiefer die Schicht ist.
Reduzieren Sie die Anzahl der Parameter des Netzwerks
Der Vorteil des Stapelns kleiner Filter zur Vertiefung des Netzwerks besteht darin, dass dadurch die Anzahl der Parameter reduziert und das Empfangsfeld (ein lokaler räumlicher Bereich, der Neuronen Veränderungen auferlegt) erweitert werden kann. Darüber hinaus werden durch Overlay-Schichten Aktivierungsfunktionen wie ReLU in der Mitte der Faltungsschicht eingebettet, was die Ausdruckskraft des Netzwerks weiter verbessert. Dies liegt daran, dass dem Netzwerk eine „nichtlineare“ Ausdruckskraft hinzugefügt wird, die auf Aktivierungsfunktionen basiert. Durch die Überlagerung nichtlinearer Funktionen können komplexere Dinge ausgedrückt werden.
Machen Sie das Lernen effizienter
Im Vergleich zu einem Netzwerk ohne Vertiefungsschichten können durch die Vertiefung der Schichten die Lerndaten reduziert und das Lernen effizient durchgeführt werden.
Deep-Learning-Netzwerkstruktur
ILSVRC-Wettbewerb
ImageNet enthält eine Vielzahl von Bildern, und jedes Bild ist mit einer Bezeichnung (Kategoriename) verknüpft. Der ILSVRC-Bilderkennungswettbewerb unter Verwendung dieses riesigen Datensatzes findet jedes Jahr statt.
Der groß angelegte Bilderkennungswettbewerb ILSVRC fand 2012 statt. Im diesjährigen Wettbewerb gewann die auf Deep Learning basierende Methode (allgemein bekannt als AlexNet) mit überwältigender Mehrheit und übertraf damit bisherige Bilderkennungsmethoden völlig. In nachfolgenden Wettbewerben stand Deep Learning im Mittelpunkt.
Insbesondere das ResNet von 2015 (ein tiefes Netzwerk mit mehr als 150 Schichten) reduzierte die Falscherkennungsrate auf 3,5 %. Es wird gesagt, dass dieses Ergebnis sogar die Erkennungsfähigkeit normaler Menschen übertrifft.
VGG
VGG ist ein grundlegendes CNN, das aus Faltungsschichten und Pooling-Schichten besteht. Sein Merkmal ist jedoch, dass es gewichtete Schichten (Faltungsschichten oder vollständig verbundene Schichten) auf 16 Schichten (oder 19 Schichten) überlagert, die eine Tiefe haben (manchmal auch als „VGG16“ oder „VGG19“ bezeichnet, abhängig von der Tiefe der Schicht).
GoogLeNet
Das Netzwerk hat nicht nur vertikale Tiefe, sondern auch horizontale Breite, was als Inception-Struktur bezeichnet wird.
ResNet
Hat eine tiefere Struktur als frühere Netzwerke
Wir wissen bereits, dass eine Vertiefung der Tiefe für die Leistungssteigerung wichtig ist. Wenn Sie jedoch beim Deep Learning die Tiefe zu sehr vertiefen, verläuft das Lernen in vielen Fällen nicht reibungslos, was zu einer schlechten Endleistung führt. Um diese Art von Problem zu lösen, wird in ResNet eine „Verknüpfungsstruktur“ (auch „Verknüpfung“ oder „Pfad“ genannt) eingeführt. Nach dem Importieren dieser Verknüpfungsstruktur kann die Leistung mit zunehmender Ebene kontinuierlich verbessert werden (natürlich ist auch die Ebenenvertiefung begrenzt).
In der Praxis werden die mithilfe des riesigen Datensatzes von ImageNet gelernten Gewichtsdaten häufig flexibel angewendet. Dies wird als Transferlernen bezeichnet. Die gelernten Gewichte (Teile) werden zum erneuten Lernen (Feinabstimmung) kopiert. Bereiten Sie beispielsweise ein Netzwerk mit derselben Struktur wie VGG vor, verwenden Sie die gelernten Gewichte als Anfangswerte und verwenden Sie den neuen Datensatz als Objekt zum erneuten Lernen. Transferlernen ist sehr effektiv, wenn nur ein kleiner Datensatz zur Verfügung steht.
Deep Learning beschleunigen
Probleme, die gelöst werden müssen
Das Zeitverhältnis jeder Schicht in der Vorwärtsverarbeitung von AlexNet: Die linke Seite ist bei Verwendung der GPU und die rechte Seite ist bei Verwendung der CPU. „conv“ in der Abbildung entspricht der Faltungsschicht, „pool“ entspricht der Pooling-Schicht, „fc“ entspricht der vollständig verbundenen Schicht und „norm“ entspricht der Regularisierungsschicht
Die Verarbeitungszeit der Faltungsschicht macht 95 % der gesamten GPU und 89 % der gesamten CPU aus.
GPU-basierte Beschleunigung
GPUs werden hauptsächlich von zwei Unternehmen bereitgestellt: NVIDIA und AMD. Obwohl beide GPUs für allgemeine numerische Berechnungen verwendet werden können, ist die GPU von NVIDIA eher „nahe“ am Deep Learning. Tatsächlich profitieren die meisten Deep-Learning-Frameworks nur von den GPUs von NVIDIA. Dies liegt daran, dass das Deep-Learning-Framework CUDA verwendet, eine umfassende Entwicklungsumgebung für GPU-Computing von NVIDIA.
Verteiltes Lernen
Verteiltes Computing auf mehreren GPUs oder mehreren Maschinen
Googles TensorFlow und Microsofts CNTK legen großen Wert auf verteiltes Lernen während des Entwicklungsprozesses
Die horizontale Achse ist die Anzahl der GPUs Die vertikale Achse ist die Beschleunigungsrate im Vergleich zu einer einzelnen GPU.
Ziffernreduktion der arithmetischen Genauigkeit
Was die numerische Präzision (Anzahl der Ziffern zur Darstellung eines Werts) betrifft, wissen wir bereits, dass Deep Learning keine numerische Präzision in Ziffern erfordert. Dies ist eine wichtige Eigenschaft neuronaler Netze. Diese Eigenschaft basiert auf der Robustheit neuronaler Netze.
Zukünftig werden Gleitkommazahlen mit halber Genauigkeit als Standard verwendet und es wird erwartet, dass Geschwindigkeiten erreicht werden, die bis zu etwa dem Doppelten der vorherigen GPU-Generation entsprechen.
Anwendungsfälle für Deep Learning
Objekterkennung
Bestimmen Sie die Art des Objekts und den Standort des Objekts anhand des Bildes
Unter den Methoden zur Verwendung von CNN zur Objekterkennung gibt es eine Methode namens R-CNN
Bildsegmentierung
Klassifizieren Sie Bilder auf Pixelebene
FCN klassifiziert alle Pixel durch einen Vorwärtsprozess.
FCN bedeutet wörtlich „ein Netzwerk, das vollständig aus Faltungsschichten besteht“. Im Vergleich zum allgemeinen CNN, das vollständig verbundene Schichten enthält, ersetzt FCN die vollständig verbundenen Schichten durch Faltungsschichten, die dieselbe Rolle spielen.
Generierung von Bildunterschriften
Eine repräsentative Methode zur Generierung von Bildunterschriften auf Basis von Deep Learning heißt NIC
NIC besteht aus tiefem CNN und RNN (Recurrent Neural Network), das natürliche Sprache verarbeitet
Die Zukunft des Deep Learning
Transformation des Bildstils
Bilderzeugung
Autopilot
Verstärkungslernen
Verteilte Darstellung natürlicher Sprache und Wörter
Marty: „Das ist schwer.“ Dr. Brown: „In der Zukunft liegen die Dinge so schwer?“ —Der Film „Zurück in die Zukunft“
Was ist natürliche Sprachverarbeitung?
Unsere Sprache besteht aus Wörtern, und die Bedeutung der Sprache besteht aus Wörtern. Mit anderen Worten: Ein Wort ist die kleinste Bedeutungseinheit.
Drei Möglichkeiten, Computer dazu zu bringen, die Bedeutung von Wörtern zu verstehen
Thesaurusbasierter Ansatz
Zählbasierter Ansatz
Inferenzbasierter Ansatz (word2vec)
Thesaurusbasierter Ansatz
Erwägen Sie, Wortbedeutungen manuell zu definieren
Derzeit weit verbreitet ist das Synonymwörterbuch
Ein Diagramm, das auf der Hypernym-Hyponym-Beziehung entsprechend der Bedeutung jedes Wortes basiert
WordNet
Das bekannteste Synonymwörterbuch
Wirkung
Erhalten Sie Synonyme für ein Wort
Berechnen Sie die Ähnlichkeit zwischen Wörtern
Wird über das NLTK-Modul verwendet
Probleme
Es tauchen immer wieder neue Wörter auf, was es schwierig macht, sich an die Veränderungen der Zeit anzupassen
Hohe Arbeitskosten
Unfähig, subtile Unterschiede in Worte zu fassen
Zählbasierter Ansatz
Korpus
Ein Korpus ist eine große Menge an Textdaten
Korpora, die im Bereich der Verarbeitung natürlicher Sprache verwendet werden, fügen Textdaten manchmal zusätzliche Informationen hinzu. Beispielsweise kann jedes Wort der Textdaten mit einer Wortart markiert werden. Hier wird davon ausgegangen, dass dem von uns verwendeten Korpus keine Tags hinzugefügt wurden.
Python-basierte Korpusvorverarbeitung
berühmtes Korpus
Wikipedia und Google News
Vorverarbeitung
Großbuchstaben -> Kleinbuchstaben
text.lower()
Interpunktion verarbeiten
text.replace('.', ' .')
re.split('(\W )', text)
\W: Entspricht Nicht-Wort-Zeichen (keine Buchstaben, Zahlen oder Unterstriche)
: Zeigt an, dass das vorherige Muster „\W“ ein- oder mehrmals wiederholt wird
Erstellen Sie Wort-IDs und Korrespondenztabellen
Konvertieren Sie eine Liste von Wörtern in eine Liste von Wort-IDs
corpus = [word_to_id[w] für w in Worten]
Verteilte Darstellung von Wörtern
Konstruieren Sie kompakte und sinnvolle Vektordarstellungen im Wortbereich
Verteilungshypothese
Die Bedeutung eines Wortes wird durch die es umgebenden Wörter gebildet
Der Kontext bezieht sich auf die Wörter, die ein zentriertes Wort umgeben
Die Größe des Kontexts wird als Fenstergröße bezeichnet
Die Fenstergröße beträgt 1 und der Kontext enthält links und rechts 1 Wort
Koexistenzmatrix
Der einfachste Weg, einen Vektor zu verwenden, besteht darin, zu zählen, wie oft ein Wort um ihn herum vorkommt.
text = 'Du verabschiedest dich und ich sage Hallo.'
Fenstergröße auf 1 setzen
Ähnlichkeit zwischen Vektoren
Kosinusähnlichkeit
Sortieren ähnlicher Wörter
Ermitteln Sie den Wortvektor des Abfrageworts
Ermitteln Sie die Kosinusähnlichkeit zwischen dem Wortvektor des Abfrageworts und allen anderen Wortvektoren.
Auf Kosinusähnlichkeit basierende Ergebnisse, deren Werte in absteigender Reihenfolge angezeigt werden
Verbesserungen bei zählbasierten Methoden
Klicken Sie auf gegenseitige Information
In der Kookkurrenzmatrix wird davon ausgegangen, dass gebräuchliche Wörter wie „the will“ eine starke Korrelation mit Substantiven wie „car“ haben
PMI
P(x) stellt die Wahrscheinlichkeit dar, dass x auftritt, P(y) stellt die Wahrscheinlichkeit dar, dass y auftritt, und P(x, y) stellt die Wahrscheinlichkeit dar, dass x und y gleichzeitig auftreten.
PMI basierend auf der Kookkurrenzmatrix
unzureichend
Wenn die Anzahl der gleichzeitigen Vorkommen zweier Wörter 0 ist, ist log(2)(0) = −∞
positiver Punkt gegenseitige Information
Erhalten Sie die PPMI-Matrix basierend auf der Kookkurrenzmatrix
Dimensionsreduktion
Wir müssen die Datenverteilung beobachten und wichtige „Achsen“ finden
Singularwertzerlegung (SVD)
SVD zerlegt jede Matrix in das Produkt von 3 Matrizen
Dabei sind U und V orthogonale Matrizen, deren Spaltenvektoren orthogonal zueinander sind, und S ist eine Diagonalmatrix, in der alle außer den Diagonalelementen 0 sind
Die ursprüngliche Matrix kann angenähert werden, indem die redundanten Spaltenvektoren in der Matrix U entfernt werden
U, S, V = np.linalg.svd(W)
Wenn die Matrixgröße N*N beträgt, erreicht die Rechenkomplexität von SVD O(N^3). Daher werden häufig schnellere Methoden wie Truncated SVD verwendet. Truncated SVD erreicht eine hohe Geschwindigkeit, indem die Teile mit kleineren Singulärwerten abgeschnitten werden.
aus sklearn.utils.extmath randomized_svd importieren U, S, V = randomized_svd(W, n_components=wordvec_size, n_iter=5, random_state=None)
PTB-Datensatz
Das PTB-Korpus wird häufig als Maßstab für die Bewertung vorgeschlagener Methoden verwendet
Vorverarbeitung des PTB-Korpus
Klammern, um seltene Wörter durch das Sonderzeichen zu ersetzen
Ersetzen Sie bestimmte Zahlen durch „N“
Die Vorverarbeitung, die ich gemacht habe
Verketten Sie alle Sätze und behandeln Sie sie als eine große Zeitreihe. Zu diesem Zeitpunkt wird am Ende jedes Satzes das Sonderzeichen <eos> eingefügt
Hyperparameterzuweisung
window_size = 2
wordvec_size = 100
Auswertung basierend auf PTB-Datensatz
Für das Abfragewort „you“ sehen Sie, dass Personalpronomen wie „i“ und „we“ an erster Stelle stehen. Dabei handelt es sich um Wörter mit derselben Verwendung in der Grammatik.
Das Abfragewort Jahr hat Synonyme wie Monat und Quartal.
Das Abfragewort „Auto“ hat Synonyme wie „Auto“ und „Fahrzeug“.
Bei der Verwendung von Toyota als Suchbegriff tauchten Autoherstellernamen oder Markennamen wie Nissan, Honda und Lexus auf.
Zusammenfassen
Verwenden Sie den Korpus, um die Anzahl der Wörter im Kontext zu berechnen, sie in eine PPMI-Matrix umzuwandeln und dann gute Wortvektoren basierend auf der SVD-Dimensionalitätsreduzierung zu erhalten.
word2vec
„Wenn Sie keine Grundlage für Ihr Urteil haben, denken Sie nicht darüber nach.“ ——Arthur Conan Doyle, „Ein Skandal in Böhmen“
Worteinbettung
Word2Vec ist ein Algorithmus zur Generierung von „Worteinbettungen“
Neben Word2Vec gibt es weitere Methoden zum Generieren von Worteinbettungen, wie z. B. GloVe (Global Vectors for Word Representation), FastText usw. Diese Methoden verwenden möglicherweise unterschiedliche Strategien und Algorithmen, zielen jedoch alle darauf ab, die semantischen Informationen von Wörtern im Vektorraum effektiv zu erfassen.
Inferenzbasierte Methoden und neuronale Netze
Probleme mit zählbasierten Methoden
In der realen Welt handelt es sich bei Korpora um eine sehr große Anzahl von Wörtern. Es heißt beispielsweise, dass der englische Wortschatz über 1 Million Wörter umfasst. Wenn die Vokabulargröße 1 Million überschreitet, erfordert die Verwendung der zählbasierten Methode die Generierung einer riesigen Matrix von 1 Million × 1 Million, aber es ist offensichtlich unrealistisch, SVD für eine so große Matrix durchzuführen.
Inferenzbasierte Ansätze unter Verwendung neuronaler Netze
Lernen mit Mini-Batch-Daten. Das heißt, ein Teil der Daten wird zum Lernen verwendet und die Gewichte werden wiederholt aktualisiert.
Das Lernen neuronaler Netze kann parallel mit mehreren Maschinen und mehreren GPUs durchgeführt werden, wodurch der gesamte Lernprozess beschleunigt wird.
Zusammenfassung inferenzbasierter Methoden
Ziel
Sagen Sie voraus, welche Wörter in der Mitte stehen werden, wenn die umgebenden Wörter (Kontext) gegeben sind, wie bei einem Lückentext
Argumentationsmethode
Geben Sie den Kontext ein und das Modell gibt die Auftrittswahrscheinlichkeit jedes Wortes aus.
Als Produkt des Modelllernens erhalten wir eine verteilte Darstellung des Wortes
Wie man Wörter in neuronalen Netzen verarbeitet
Konvertieren Sie Wörter in Vektoren
Neuronale Netze können Wörter wie Sie oder Sagen nicht direkt verarbeiten. Um Wörter mit neuronalen Netzen zu verarbeiten, müssen Sie die Wörter zunächst in Vektoren fester Länge umwandeln.
Konvertierungsmethode
One-Hot-Vektor
Nur ein Element ist 1, die anderen Elemente sind 0
Neuronale Netze
Eingabeschicht
Vollständig verbundene Schicht
Die Anfangsgewichte sind zufällig
Einfaches word2vec
Schlussfolgerung des CBOW-Modells
Struktur
Merkmale
Es gibt zwei Eingabeebenen
Die Transformation von der Eingabeschicht zur Zwischenschicht wird von derselben vollständig verbundenen Schicht abgeschlossen (Gewicht W(in)).
Die Transformation von der Zwischenschicht zu den Neuronen der Ausgangsschicht wird durch eine weitere vollständig verbundene Schicht (Gewicht W(out)) abgeschlossen.
Die Neuronen in der mittleren Schicht sind der „Durchschnitt“ der Werte, die jede Eingabeschicht nach der Transformation durch die vollständig verbundene Schicht erhält.
Die Neuronen in der Ausgabeschicht geben die Punktzahl jedes Wortes an und desto höher ist sein Wert Je größer der Wert, desto höher ist die Auftrittswahrscheinlichkeit des entsprechenden Wortes.
CBOW-Modelllernen
Konvertieren Sie Ergebnisse mithilfe der Softmax-Funktion in Wahrscheinlichkeiten
Finden Sie den Kreuzentropiefehler zwischen diesen Wahrscheinlichkeiten und den überwachten Bezeichnungen
Lerne es als Verlust
Gewichtete und verteilte Darstellung von word2vec
W(in)-Gewicht ist die verteilte Darstellung des gewünschten Wortes
Aufbereitung von Studiendaten
Kontext und Zielwörter
Konvertieren Sie in eine One-Hot-Darstellung
Implementierung des CBOW-Modells
Weitere Informationen
CBOW-Modelle und Wahrscheinlichkeit
Die Wahrscheinlichkeit, dass wt auftritt, nachdem wt−1 und wt 1 aufgetreten sind.
Verlustfunktion L (negative logarithmische Wahrscheinlichkeit) des CBOW-Modells
Skip-Gramm-Modell
word2vec hat zwei Modelle
CBOW
Skip-Gramm
Skip-Gram ist ein Modell, das den vom CBOW-Modell verarbeiteten Kontext und die Zielwörter umkehrt.
Strukturdiagramm des Skip-Gramm-Netzwerks
Skip-Gramm-Modelle und Wahrscheinlichkeit
Das Skip-Gramm-Modell verfügt nur über eine Eingabeebene und die Anzahl der Ausgabeebenen entspricht der Anzahl der Wörter im Kontext. Zunächst müssen die Verluste jeder Ausgabeschicht separat berechnet und dann als endgültiger Verlust addiert werden.
Sagen Sie den Kontext wt−1 und wt 1 basierend auf dem Mittelwort (Zielwort) wt voraus
Die Verlustfunktion des Skip-Gram-Modells kann ausgedrückt werden als:
Vergleich der Verlustfunktionen
Die Anzahl der Vorhersagen des Skip-Gramm-Modells ist so groß wie die Anzahl der Kontextwörter, daher erfordert seine Verlustfunktion die Summe der Verluste, die jedem Kontextwort entsprechen. Das CBOW-Modell erfordert lediglich den Verlust des Zielworts.
Gemessen an der Genauigkeit der verteilten Darstellung von Wörtern liefert das Skip-Grm-Modell in den meisten Fällen bessere Ergebnisse.
Zählbasiert vs. inferenzbasiert
Szenarien, in denen neue Wörter zum Vokabular hinzugefügt und die verteilte Darstellung der Wörter aktualisiert werden müssen
Zählbasierte Methoden erfordern Berechnungen von Grund auf
Inferenzbasierte Methoden ermöglichen das inkrementelle Lernen von Parametern
Eigenschaften verteilter Darstellungen von Wörtern
Zählbasierte Methoden kodieren hauptsächlich die Ähnlichkeit von Wörtern
Inferenzbasierte Methoden können komplexe Muster zwischen Wörtern verstehen
Königsmannfrau=Königin
Genauigkeit verteilter Darstellungen von Wörtern
Inferenzbasierte Methoden und zählbasierte Methoden sind nicht zu unterscheiden
Beschleunigen Sie word2vec
Versuchen Sie nicht, alles zu wissen, sonst wissen Sie nichts. ——Demokrit (antiker griechischer Philosoph)
Verbessern
Studie
andere
Anwendung von word2vec
Die mit word2vec erhaltene verteilte Darstellung von Wörtern kann verwendet werden, um ungefähre Wörter zu finden
Transferlernen
In einem Bereich erworbenes Wissen kann auf andere Bereiche angewendet werden
Bei der Lösung natürlicher Sprachverarbeitungsaufgaben wird word2vec im Allgemeinen nicht verwendet, um die verteilte Darstellung von Wörtern von Grund auf zu lernen. Stattdessen wird es zunächst anhand eines umfangreichen Korpus (Textdaten wie Wikipedia, Google News usw.) erlernt Die erlernte verteilte Darstellung gilt für eine einzelne Aufgabe.
Bei Verarbeitungsaufgaben natürlicher Sprache wie Textklassifizierung, Text-Clustering, Wortart-Tagging und Stimmungsanalyse kann der erste Schritt der Wortvektorisierung die verteilte Darstellung gelernter Wörter nutzen.
Verteilte Darstellungen von Wörtern eignen sich hervorragend für fast alle Arten von Aufgaben zur Verarbeitung natürlicher Sprache!
Mithilfe verteilter Darstellungen von Wörtern ist es auch möglich, Dokumente (Wortfolgen) in Vektoren fester Länge umzuwandeln.
Wenn Sie natürliche Sprache in Vektoren umwandeln können, können Sie viele Methoden des maschinellen Lernens verwenden
So bewerten Sie Wortvektoren
Künstlich erstellter Wortähnlichkeitsbewertungssatz zur Bewertung
Die Ähnlichkeit zwischen Katze und Tier beträgt 8 und die Ähnlichkeit zwischen Katze und Auto beträgt 2 ... Ähnlich wird die Ähnlichkeit zwischen Wörtern manuell mit einer Punktzahl von 0 bis 10 bewertet.
Vergleichen Sie die von Personen angegebenen Bewertungen mit der von word2vec angegebenen Kosinusähnlichkeit, um die Korrelation zwischen ihnen zu untersuchen
abschließend
Verschiedene Modelle haben unterschiedliche Genauigkeiten (wählen Sie das beste Modell basierend auf dem Korpus)
Je größer der Korpus, desto besser die Ergebnisse (Big Data wird immer benötigt)
Die Dimensionalität von Wortvektoren muss moderat sein (zu groß führt zu schlechter Genauigkeit)
RNN
Ich erinnere mich nur daran, wie ich an einem dunklen und feuchten Ort miaute und weinte. —— Natsume Soseki „Ich bin eine Katze“
Wahrscheinlichkeits- und Sprachmodelle
Ein einfaches Feedforward-Netzwerk kann die Eigenschaften von Zeitreihendaten nicht vollständig erlernen. Als Ergebnis entstand RNN (Recurrent Neural Network).
word2vec aus einer probabilistischen Perspektive
Kann der ursprüngliche Zweck des CBOW-Modells „Zielwörter aus dem Kontext vorhersagen“ für etwas verwendet werden? Kann P(wt|wt−2, wt−1) in einigen praktischen Szenarien eine Rolle spielen?
Die Fenster, die wir zuvor betrachtet haben, sind alle symmetrisch, und dann betrachten wir nur das linke Fenster.
Sprachmodell
Verwenden Sie die Wahrscheinlichkeit, um die Wahrscheinlichkeit zu bewerten, mit der eine Wortfolge auftritt, d. h. das Ausmaß, in dem eine Wortfolge natürlich ist.
Wahrscheinlichkeitsdarstellung
Wobei P(A,B) = P(A|B)*P(B) = P(B|A)*P(A)
Verwendung des CBOW-Modells als Sprachmodell
Markov-Kette
Wenn die Wahrscheinlichkeit eines Ereignisses nur von den N Ereignissen davor abhängt, spricht man von einer „Markov-Kette N-Ordnung“.
Die Beschränkung des Kontexts auf die beiden Wörter links ist eine Markov-Kette zweiter Ordnung
unzureichend
Wenn das Fenster zu kurz ist, kann der Kontext nicht kombiniert werden
Wenn das Fenster zu lang ist, wird die Reihenfolge der Wörter im Kontext ignoriert.
CBOW ist die Abkürzung für Continuous Bag-Of-Words. Bag-Of-Words bedeutet „eine Tüte voller Wörter“, was bedeutet, dass die Reihenfolge der Wörter in der Tüte ignoriert wird.
RNN verfügt über einen Mechanismus, der sich Kontextinformationen merken kann, unabhängig von der Länge des Kontexts. Daher können Zeitreihendaten beliebiger Länge mit RNN verarbeitet werden.
word2vec ist eine Methode, die darauf abzielt, eine verteilte Darstellung von Wörtern zu erhalten, und wird im Allgemeinen nicht in Sprachmodellen verwendet.
RNN
wiederkehrendes neuronales Netzwerk
Die Struktur der RNN-Schicht
Die Eingabe zum Zeitpunkt t ist xt, was bedeutet, dass Zeitreihendaten (x0, x1, ···, xt, ···) in die Ebene eingegeben werden. Geben Sie dann (h0, h1, ···, ht, ···) in der der Eingabe entsprechenden Form aus.
Die Ausgabe hat zwei Zweige, was bedeutet, dass dasselbe kopiert wurde. Eine Verzweigung in der Ausgabe wird zu ihrer eigenen Eingabe.
Schleife abrollen
Wir verwenden das Wort „Moment“, um uns auf den Index der Zeitreihendaten zu beziehen (dh die Eingabedaten zum Zeitpunkt t sind xt). Es werden Ausdrücke wie „das t-te Wort“ und „die t-te RNN-Schicht“ sowie Ausdrücke wie „das Wort zum Zeitpunkt t“ oder „die RNN-Schicht zum Zeitpunkt t“ verwendet.
Die RNN-Schicht empfängt zu jedem Zeitpunkt zwei Werte, nämlich die an diese Schicht übergebene Eingabe und die Ausgabe der vorherigen RNN-Schicht.
RNN hat zwei Gewichte, nämlich das Gewicht Wx, das die Eingabe x in die Ausgabe h umwandelt, und das Gewicht Wh, das die Ausgabe der vorherigen RNN-Schicht in die aktuelle Ausgabe umwandelt. Darüber hinaus gibt es Voreingenommenheit b.
Aus einer anderen Perspektive hat RNN einen Zustand h, der durch die obige Formel kontinuierlich aktualisiert wird. Daher kann h als verborgener Zustand oder verborgener Zustandsvektor bezeichnet werden
Die beiden schematischen Zeichenmethoden sind gleichwertig
Rückausbreitung durch die Zeit
Zeitbasierte Rückausbreitung
Um den Gradienten basierend auf BPTT zu finden, müssen die Zwischendaten der RNN-Schicht zu jedem Zeitpunkt im Speicher gespeichert werden. Wenn die Zeitreihendaten länger werden, erhöht sich daher auch die Speichernutzung des Computers (nicht nur für Berechnungen).
Abgeschnittenes BPTT
Um das obige Problem zu lösen, besteht die gängige Praxis bei der Verarbeitung langer Zeitreihendaten darin, die Netzwerkverbindung auf eine geeignete Länge zu kürzen.
Netzwerke, die in Richtung der Zeitachse zu lang sind, werden an geeigneten Stellen abgeschnitten, um mehrere kleine Netzwerke zu erstellen, und dann wird die Fehler-Backpropagation-Methode auf die ausgeschnittenen kleinen Netzwerke angewendet. Diese Methode wird als abgeschnittenes BPTT (abgeschnittenes BPTT) bezeichnet.
Bei verkürztem BPTT wird die Rückwärtsausbreitungsverbindung des Netzwerks unterbrochen, die Vorwärtsausbreitungsverbindung bleibt jedoch weiterhin bestehen.
Bearbeitungsauftrag
Als Erstes müssen die Eingabedaten von Block 1 (x0, ..., x9) in die RNN-Schicht eingespeist werden.
Führen Sie zuerst eine Vorwärtsausbreitung und dann eine Rückwärtsausbreitung durch, um den gewünschten Gradienten zu erhalten.
Als nächstes werden die Eingabedaten des nächsten Blocks (x10, x11, ···, x19) in die RNN-Schicht eingespeist. Die Berechnung dieser Vorwärtsausbreitung erfordert den letzten verborgenen Zustand h9 des vorherigen Blocks, damit die Vorwärtsausbreitungsverbindung aufrechterhalten werden kann.
Mini-Batch-Lernen von Truncated BPTT
Zu Beginn der Eingabedaten muss innerhalb einzelner Chargen ein „Versatz“ vorgenommen werden.
Beachten
Um Daten der Reihe nach einzugeben
Zum Verschieben der Startposition jedes Stapels (jeder Probe) von Eingabedaten
Implementierung von RNN
Betrachtet man das Lernen basierend auf verkürztem BPTT, empfängt das neuronale Zielnetzwerk Zeitreihendaten der Länge T (T ist ein beliebiger Wert), und diese T-Zustände können als Schicht betrachtet werden
Nennen Sie eine Schicht, die T Schritte gleichzeitig verarbeitet, eine „Zeit-RNN-Schicht“.
Die Schicht, die die Einzelschrittverarbeitung in der Zeit-RNN-Schicht durchführt, wird als „RNN-Schicht“ bezeichnet.
Wie Time RNN werden Schichten, die Zeitreihendaten ganzheitlich verarbeiten, mit dem Wort „Time“ benannt, was der in diesem Buch dargelegten Namenskonvention entspricht. Danach werden wir auch die Time Affine-Ebene, die Time Embedding-Ebene usw. implementieren.
Implementierung der RNN-Schicht
Vorwärtsausbreitung
Backpropagation
Implementierung der Time-RNN-Schicht
Vorwärtsausbreitung
Die Zeit der RNN-Schicht speichert den verborgenen Zustand h in einer Mitgliedsvariablen, um den verborgenen Zustand zwischen Blöcken zu erben
Verwenden Sie den Parameter stateful, um aufzuzeichnen, ob der verborgene Zustand h aufgerufen wird. Wenn bei der Backpropagation Stateful False ist, ist der verborgene Zustand der ersten RNN-Schicht die Nullmatrix.
Backpropagation
Wir speichern den Gradienten, der im vorherigen Moment in den verborgenen Zustand übergegangen ist, in der Mitgliedsvariablen dh. Dies liegt daran, dass wir es verwenden werden, wenn wir in Kapitel 7 seq2seq (Sequenz-zu-Sequenz) besprechen
Implementierung von Schichten zur Verarbeitung von Zeitreihendaten
Vollständiges Bild von RNNLM
RNN-basierte Sprachmodelle werden RNNLM genannt
Struktur
Schicht 1 ist die Einbettungsschicht, die Wort-IDs in verteilte Darstellungen von Wörtern (Wortvektoren) umwandelt. Dieser Wortvektor wird in die RNN-Schicht eingespeist.
Die RNN-Schicht gibt den verborgenen Zustand an die nächste Schicht (oben) und den verborgenen Zustand auch an die nächste RNN-Schicht (rechts) aus.
Der von der RNN-Schicht nach oben ausgegebene verborgene Zustand durchläuft die Affine-Schicht und wird an die Softmax-Schicht übergeben.
Probe
Du verabschiedest dich und ich sage Hallo
Das erste Wort, Sie mit der Wort-ID 0, wird eingegeben. Wenn wir uns zu diesem Zeitpunkt die von der Softmax-Ebene ausgegebene Wahrscheinlichkeitsverteilung ansehen, können wir sehen, dass die Wahrscheinlichkeit von „say“ am höchsten ist, was darauf hinweist, dass das Wort, das nach Ihnen erscheint, korrekt als „say“ vorhergesagt wird.
Wort 2 sagt. Zu diesem Zeitpunkt ist die Wahrscheinlichkeit der Ausgabe der Softmax-Ebene bei „Auf Wiedersehen“ und „Hallo“ höher. Weil die RNN-Schicht die vergangenen Informationen von „Sie sagen“ als kurzen verborgenen Zustandsvektor speichert. Die Aufgabe der RNN-Schicht besteht darin, diese Informationen an die darüber liegende Affine-Schicht und im nächsten Moment an die RNN-Schicht weiterzuleiten.
Implementierung der Zeitschicht
Zielstruktur des neuronalen Netzwerks
Zeitaffin
Die zeitaffine Schicht verwendet nicht einfach T-affine Schichten, sondern verwendet Matrixoperationen, um eine effiziente Gesamtverarbeitung zu erreichen.
Zeit Softmax
Der Verlustfehler ist in Softmax implementiert. Die Cross Entropy Error-Schicht berechnet den Cross Entropy Error.
T Softmax mit Verlustschichten berechnet jeweils den Verlust, addiert sie dann und bildet den Durchschnitt, und der resultierende Wert wird als endgültiger Verlust verwendet.
Lernen und Bewertung von RNNLM
Implementierung von RNNLM
Bewertung des Sprachmodells
Die Eingabedaten sind 1
Ratlosigkeit wird häufig als Indikator zur Bewertung der Vorhersageleistung von Sprachmodellen verwendet. Ratlosigkeit=1/Wahrscheinlichkeit
Die Eingabedaten sind vielfältig
Dabei wird davon ausgegangen, dass die Datenmenge N beträgt. tn ist die korrekte Lösungsbezeichnung in Form eines One-Hot-Vektors, tnk repräsentiert den k-ten Wert der n-ten Daten und ynk repräsentiert die Wahrscheinlichkeitsverteilung (die Ausgabe von Softmax in einem neuronalen Netzwerk). L ist übrigens der Verlust des neuronalen Netzwerks
Je größer die Wahrscheinlichkeit, desto besser und je geringer die Verwirrung, desto besser.
Ratlosigkeit stellt die Anzahl der Optionen dar, die als nächstes ausgewählt werden können. Wenn die Verwirrung 1,25 beträgt, bedeutet dies, dass die Anzahl der Kandidaten für das nächste Wort etwa 1 beträgt.
Lernen von RNNLM
Trainerklasse von RNNLM
Kapseln Sie die oben genannten Operationen in Klassen
Erweitert auf Diagrammstrukturen
wiederkehrendes neuronales Netzwerk
Es gibt drei verborgene Schichten h1, h2 und h3, wobei h1 aus zwei Eingaben x1 und x2 berechnet wird, h2 aus zwei anderen Eingabeschichten x3 und x4 berechnet wird und h3 aus zwei verborgenen Schichten h1 und h2 berechnet wird.
Graphennetzwerk
Gated RNN
Nehmen Sie Ihr Gepäck ab und reisen Sie mit leichtem Gepäck. --Nietzsche
Wenn wir RNN sagen, beziehen wir uns eher auf die LSTM-Schicht als auf das RNN aus dem vorherigen Kapitel. Wenn wir uns explizit auf das RNN aus dem vorherigen Kapitel beziehen müssen, sagen wir „einfaches RNN“ oder „Elman“.
Probleme mit einfachem RNN
Während des Lernprozesses lernt die RNN-Schicht Abhängigkeiten in der Zeitrichtung, indem sie „bedeutungsvolle Gradienten“ in die Vergangenheit weitergibt. Der Lerngradient ist jedoch schwer zu kontrollieren, was zum Verschwinden des Gradienten oder zur Gradientenexplosion führen kann.
Grund
Aktivierungsfunktion
tanh
Wie Sie dem Diagramm entnehmen können, ist sein Wert kleiner als 1,0 und wird kleiner, je weiter sich x von 0 entfernt. Dies bedeutet, dass sein Wert immer kleiner wird, wenn der Backpropagation-Gradient den Tanh-Knoten durchläuft. Wenn Sie also die Tanh-Funktion T-mal übergeben, verringert sich auch der Gradient T-mal.
ReLU
Der Farbverlauf nimmt nicht ab
MatMul-Knoten (Matrixprodukt).
Gradientenexplosion
Wie in der Abbildung gezeigt, nimmt die Größe des Gradienten mit dem Zeitschritt exponentiell zu. Wenn es zu einer Gradientenexplosion kommt, führt dies schließlich zu einem Überlauf und zu Werten wie NaN (keine Zahl, nicht numerischer Wert). Dies hat zur Folge, dass das Lernen des neuronalen Netzes nicht richtig funktioniert.
Farbverlauf verschwindet
Wie in der Abbildung gezeigt, nimmt die Größe des Gradienten exponentiell mit der Zeit ab. Wenn der Gradient verschwindet, wird der Gradient schnell kleiner. Sobald der Gradient klein wird, kann der Gewichtsgradient nicht aktualisiert werden und das Modell kann keine langfristigen Abhängigkeiten lernen.
Änderungsgrund
Die Matrix Wh wird T-mal wiederholt multipliziert. Wenn Wh ein Skalar wäre, wäre das Problem einfach: Wenn Wh größer als 1 ist, nimmt der Gradient exponentiell zu, wenn Wh kleiner als 1 ist, nimmt der Gradient exponentiell ab.
Wenn Wh eine Matrix ist. An diesem Punkt werden die singulären Werte der Matrix zu Indikatoren. Vereinfacht ausgedrückt repräsentieren die Singulärwerte einer Matrix den Grad der Streuung der Daten. Abhängig davon, ob dieser Singulärwert (genauer gesagt das Maximum mehrerer Singulärwerte) größer als 1 ist, kann man Änderungen in der Größe des Gradienten vorhersagen.
Gegenmaßnahmen gegen explodierende Gefälle
Es gibt eine etablierte Methode zur Lösung der Gradientenexplosion, die als Gradientenbeschneidung bezeichnet wird.
Dabei wird davon ausgegangen, dass die Gradienten aller vom neuronalen Netzwerk verwendeten Parameter in eine Variable integriert und durch das Symbol g dargestellt werden können. Stellen Sie dann den Schwellenwert auf Schwellenwert ein. Wenn zu diesem Zeitpunkt die L2-Norm g des Gradienten größer oder gleich dem Schwellenwert ist, wird der Gradient wie oben beschrieben korrigiert.
Verschwindende Farbverläufe und LSTM
Beim RNN-Lernen ist das Verschwinden des Gradienten ebenfalls ein großes Problem. Um dieses Problem zu lösen, muss die Struktur der RNN-Schicht grundlegend geändert werden. Hier erscheint das Thema dieses Kapitels, Gated RNN. Es wurden viele Gated-RNN-Frameworks (Netzwerkstrukturen) vorgeschlagen, darunter LSTM und GRU als repräsentative Beispiele.
LSTM-Schnittstelle
LSTM ist die Abkürzung für Long Short-Term Memory, was bedeutet, dass es das Kurzzeitgedächtnis (Short-Term Memory) über einen langen Zeitraum aufrechterhalten kann.
Drücken Sie zunächst die Berechnung von tanh(h(t−1)*Wh xt*Wx b) als rechteckigen Knoten tanh aus (ht−1 und xt sind Zeilenvektoren).
Vergleichen wir die Schnittstelle (Eingabe und Ausgabe) von LSTM und RNN
Der Unterschied zwischen der Schnittstelle von LSTM und RNN besteht darin, dass LSTM auch den Pfad c hat. Dieses c wird als Speichereinheit (oder einfach „Einheit“) bezeichnet, was der dedizierten Speicherabteilung von LSTM entspricht.
Das Merkmal der Speichereinheit besteht darin, dass sie Daten nur innerhalb der LSTM-Schicht empfängt und sendet. Das heißt, von der Seite, die die Ausgabe des LSTM empfängt, hat die Ausgabe des LSTM nur den verborgenen Zustandsvektor h. Die Speichereinheit c ist für die Außenwelt unsichtbar und wir müssen nicht einmal über ihre Existenz nachdenken.
Die Struktur der LSTM-Schicht
ct speichert den Speicher des LSTM zum Zeitpunkt t, der alle notwendigen Informationen von der Vergangenheit bis zum Zeitpunkt t enthält. Basierend auf dem CT dieses Trägerspeichers wird dann der verborgene Zustand ht ausgegeben.
Berechnung
Die aktuelle Speichereinheit ct wird auf der Grundlage der drei Eingaben c(t−1), h(t−1) und xt durch „eine Art Berechnung“ (später beschrieben) berechnet.
Der verborgene Zustand ht wird mithilfe des aktualisierten ct berechnet. Die Formel lautet ht = tanh(ct).
Tor
Der Öffnungs- und Schließgrad der Tür wird ebenfalls automatisch aus den Daten gelernt. Der Öffnungs- und Schließgrad wird durch eine reelle Zahl von 0,0 bis 1,0 dargestellt (1,0 ist vollständig geöffnet).
Ausgangstor
Der verborgene Zustand ht wendet die tanh-Funktion nur auf die Speichereinheit ct an, und wir erwägen die Anwendung von Gates auf tanh(ct). Da dieses Gatter die Ausgabe des nächsten verborgenen Zustands ht verwaltet, wird es als Ausgangsgatter bezeichnet.
Das Ausgangstor wird wie folgt berechnet. Die Sigmoidfunktion wird durch σ() dargestellt
ht kann aus dem Produkt von o und tanh(ct) berechnet werden. Die Berechnungsmethode ist das Produkt der entsprechenden Elemente. Es wird auch als Hadamard-Produkt bezeichnet.
Tür des Vergessens
Jetzt fügen wir ein Tor zum Vergessen unnötiger Speicher auf der Speichereinheit c(t−1) hinzu, das hier Vergessenstor genannt wird.
Die Berechnung des Vergessenstors ist wie folgt
ct wird durch das Produkt dieses f und des entsprechenden Elements der vorherigen Speichereinheit ct−1 erhalten
neue Speichereinheit
Nun möchten wir dieser Speichereinheit auch einige neue Informationen hinzufügen, die man sich merken sollte, dazu fügen wir einen neuen Tanh-Knoten hinzu
Das auf der Grundlage des Tanh-Knotens berechnete Ergebnis wird im vorherigen Moment zur Speichereinheit ct-1 hinzugefügt.
Die Rolle dieses Tanh-Knotens besteht nicht darin, Gatter herzustellen, sondern der Speichereinheit neue Informationen hinzuzufügen. Daher wird nicht die Sigmoidfunktion als Aktivierungsfunktion verwendet, sondern die Tanh-Funktion.
Eingangstor
Wir fügen in Abbildung 6-17 ein Gatter zu g hinzu. Dieses neu hinzugefügte Gatter wird hier als Eingangsgatter bezeichnet.
Das Eingabegatter bestimmt den Wert jedes Elements der neuen Information g. Input-Gates fügen keine neuen Informationen hinzu, sondern treffen Entscheidungen darüber, welche Informationen hinzugefügt werden sollen. Mit anderen Worten: Das Eingabegatter fügt gewichtete neue Informationen hinzu.
Das Eingangstor wird wie folgt berechnet
LSTM-Gradientenfluss
Die Rückausbreitung von Speicherzellen erfolgt nur über die Knoten „ “ und „ד. Der „ “-Knoten fließt so wie er ist aus dem Gradienten von stromaufwärts, sodass sich der Gradient nicht ändert (degeneriert). Die Berechnung des „ד-Knotens erfolgt nicht über ein Matrixprodukt, sondern über das Produkt der entsprechenden Elemente (Hadama-Produkt), das keine Gradientenänderungen verursacht.
Implementierung von LSTM
Für affine Änderungen wie x*Wx h*Wh b kann es in eine Formel integriert werden
Matrixbibliotheken sind bei der Berechnung „großer Matrizen“ im Allgemeinen schneller und der Quellcode ist sauberer, da die Gewichtungen gemeinsam verwaltet werden.
Sprachmodell mit LSTM
Das hier implementierte Sprachmodell ist fast das gleiche wie im vorherigen Kapitel. Der einzige Unterschied besteht darin, dass im vorherigen Kapitel die Time-RNN-Schicht verwendet wurde, diesmal die Time-LSTM-Schicht.
Weitere Verbesserungen an RNNLM
Mehrschichtiger Aufbau von LSTM-Schichten
Die Vertiefung der LSTM-Schicht (Stapelung mehrerer LSTM-Schichten) funktioniert oft gut.
Wie viele Schichten sind angemessen?
Da es sich bei der Anzahl der Schichten um einen Hyperparameter handelt, muss sie auf der Grundlage der Komplexität des zu lösenden Problems und der Größe der bereitgestellten Trainingsdaten bestimmt werden.
Beim Erlernen eines Sprachmodells anhand des PTB-Datensatzes können bessere Ergebnisse erzielt werden, wenn die Anzahl der LSTM-Schichten 2 bis 4 beträgt
Das in Google Translate verwendete GNMT-Modell ist einem Netzwerk aus 8 LSTM-Schichten überlagert.
Überanpassung basierend auf Dropout unterdrücken
Durch die Vertiefung der Tiefe können ausdrucksstärkere Modelle erstellt werden, diese Modelle leiden jedoch häufig unter einer Überanpassung. Erschwerend kommt hinzu, dass RNNs anfälliger für Überanpassung sind als herkömmliche Feedforward-Neuronale Netze, sodass Gegenmaßnahmen zur Überanpassung für RNNs sehr wichtig sind.
Gegenmaßnahmen
Trainingsdaten hinzufügen
Reduzieren Sie die Modellkomplexität
Regulierung
Ausfallen
Ausfallen
Dropout wählt zufällig eine Teilmenge von Neuronen aus, ignoriert sie dann und stoppt die Weiterleitung von Signalen.
Einfügeposition der Dropout-Ebene
Regelmäßiger Ausstieg
Fehlerstruktur
Wenn Dropout in Zeitreihenrichtung eingefügt wird, gehen die Informationen im Laufe der Zeit beim Lernen des Modells allmählich verloren.
Richtige Struktur
Fügen Sie die Dropout-Ebene vertikal ein
Variations-Dropout
Durch die gemeinsame Nutzung der Maske durch Dropouts derselben Ebene wird die Maske „fixiert“. Auf diese Weise wird auch die Art und Weise des Informationsverlusts „behoben“, sodass der exponentielle Informationsverlust, der bei regelmäßigem Dropout auftritt, vermieden werden kann.
Gewichtsverteilung
Gewichtsbindung kann wörtlich mit „Gewichtsbindung“ übersetzt werden.
Der Trick beim Binden (Teilen) der Gewichte der Einbettungsschicht und der Affine-Schicht ist die Gewichtsteilung. Durch die Aufteilung der Gewichte zwischen diesen beiden Schichten kann die Anzahl der gelernten Parameter erheblich reduziert werden. Darüber hinaus verbessert es die Genauigkeit.
Bessere RNNLM-Implementierung
Grenzforschung
Generieren Sie Text basierend auf RNN
Es gibt keinen perfekten Artikel, genauso wenig wie es die perfekte Verzweiflung gibt. ——Haruki Murakami „Listen to the Wind Sing“
Generieren Sie Text mithilfe von Sprachmodellen
So generieren Sie das nächste neue Wort
Wählen Sie das Wort mit der höchsten Wahrscheinlichkeit aus, das Ergebnis ist eindeutig bestimmt
Wörter mit hoher Wahrscheinlichkeit sind leicht auszuwählen, Wörter mit niedriger Wahrscheinlichkeit sind schwer auszuwählen.
Implementierung der Textgenerierung
Bessere Textgenerierung
Verwenden Sie bessere Sprachmodelle
seq2seq-Modell
Seq2Seq (Sequenz zu Sequenz, Sequenz zu Sequenzmodell)
Modelle zur Konvertierung von Zeitreihendaten in andere Zeitreihendaten
Das Prinzip von seq2seq
Dieses Modell verfügt über zwei Module – Encoder und Decoder. Der Encoder codiert die Eingabedaten und der Decoder decodiert die codierten Daten.
seq2seq besteht aus zwei LSTM-Schichten, dem Encoder-LSTM und dem Decoder-LSTM.
Der verborgene Zustand h von LSTM ist ein Vektor fester Länge. Der Unterschied zum Modell im vorherigen Abschnitt besteht darin, dass die LSTM-Schicht den Vektor h empfängt. Diese einzige, kleine Änderung ermöglichte die Entwicklung gewöhnlicher Sprachmodelle zu Decodern, die Übersetzungen verarbeiten konnten.
Ein einfacher Versuch der Konvertierung von Zeitreihendaten
Ich versuche, seq2seq dazu zu bringen, Additionsberechnungen durchzuführen
Zeitreihendaten variabler Länge
Füllung
Füllen Sie die Originaldaten mit ungültigen (bedeutungslosen) Daten aus Und passen Sie die Datenlänge an.
Wenn Sie Padding verwenden, müssen Sie seq2seq einige padding-spezifische Verarbeitung hinzufügen
Wenn Auffüllung in den Decoder eingegeben wird, sollte der Verlust nicht berechnet werden (dies kann durch Hinzufügen einer Softmax mit Verlustmaskenfunktion zur Ebene gelöst werden).
Beim Eingabeauffüllen im Encoder sollte die LSTM-Ebene die Eingabe vom vorherigen Moment unverändert ausgeben
additiver Datensatz
Implementierung von seq2seq
Verbesserungen an seq2seq
Eingabedaten umkehren
In vielen Fällen schreitet der Lernfortschritt nach der Anwendung dieser Technik schneller voran und die endgültige Genauigkeit verbessert sich.
Intuitiv kann die Ausbreitung von Gradienten nach der Invertierung der Daten gleichmäßiger und effektiver sein.
gucken
Der Encoder, der den Helm verwendet, heißt Peeky Decoder, und der seq2seq, der Peeky Decoder verwendet, heißt Peeky seq2seq.
Der Encoder wandelt den Eingabesatz in einen Vektor h fester Länge um, der alle vom Decoder benötigten Informationen konzentriert. Es ist die einzige Informationsquelle für den Decoder.
Der Ausgang h des Encoders, der wichtige Informationen bündelt, kann anderen Schichten des Decoders zugeordnet werden
Zwei Vektoren werden gleichzeitig in die LSTM-Schicht und die Affine-Schicht eingegeben, was tatsächlich die Verkettung der beiden Vektoren darstellt.
Anwendung von seq2seq
Maschinelle Übersetzung: „Text in einer Sprache“ in „Text in einer anderen Sprache“ konvertieren
Automatische Zusammenfassung: Konvertieren Sie „einen langen Text“ in eine „kurze Zusammenfassung“.
Frage- und Antwortsystem: „Frage“ in „Antwort“ umwandeln
Automatische E-Mail-Antwort: „E-Mail-Text“ in „Antworttext“ umwandeln
Chatbot
Algorithmenlernen
Automatische Bildbeschreibung
Aufmerksamkeit
Aufmerksamkeit ist alles. ——Titel von Vaswanis Aufsatz
Aufmerksamkeit ist zweifellos eine der wichtigsten Technologien im Bereich Deep Learning der letzten Jahre. Das Ziel dieses Kapitels besteht darin, die Struktur der Aufmerksamkeit auf Codeebene zu verstehen und sie dann auf praktische Probleme anzuwenden, um ihre wunderbaren Auswirkungen zu erleben.
Aufmerksamkeitsstruktur
Probleme mit seq2seq
In seq2seq wird ein Encoder verwendet, um die Zeitreihendaten zu kodieren, und dann werden die kodierten Informationen an den Dekoder übergeben. Zu diesem Zeitpunkt ist die Ausgabe des Encoders ein Vektor fester Länge.
Ein Vektor fester Länge bedeutet, dass die Eingabeanweisung unabhängig von der Länge (unabhängig von ihrer Länge) in einen Vektor derselben Länge umgewandelt wird.
Encoder-Verbesserungen
Die Länge der Ausgabe des Encoders sollte sich entsprechend der Länge des Eingabetextes ändern
Da der Encoder streng genommen von links nach rechts verarbeitet, enthält der „cat“-Vektor lediglich die Informationen der drei Wörter „我的人“, „は“ und „猫“. Unter Berücksichtigung der Gesamtausgewogenheit ist es am besten, die Informationen rund um das Wort „Katze“ gleichmäßig einzubeziehen. In diesem Fall ist ein bidirektionales RNN (oder bidirektionales LSTM), das Zeitreihendaten aus beiden Richtungen verarbeitet, effektiver.
Decoder-Verbesserungen
Zuvor haben wir den „letzten“ verborgenen Zustand der LSTM-Schicht des Encoders in den „anfänglichen“ verborgenen Zustand der LSTM-Schicht des Decoders versetzt.
Der Decoder im vorherigen Kapitel verwendete nur den letzten verborgenen Zustand der LSTM-Schicht des Encoders. Bei Verwendung von hs wird nur die letzte Zeile extrahiert und an den Decoder übergeben. Als nächstes verbessern wir den Decoder, um alle HS nutzen zu können.
Wir konzentrieren uns auf ein bestimmtes Wort (oder eine Reihe von Wörtern) und konvertieren dieses Wort jederzeit. Dadurch kann seq2seq die Entsprechung zwischen „welchen Wörtern in der Eingabe und Ausgabe mit welchen Wörtern zusammenhängen“ lernen.
Beispiel
Meine Generation [わがはい] = Ich
猫[ねこ] = Kat
Viele Studien nutzen das Wissen über Wortkorrespondenzen wie „Katze = Katze“. Solche Informationen, die die Übereinstimmung zwischen Wörtern (oder Phrasen) angeben, werden als Ausrichtung bezeichnet. Bisher wurde die Ausrichtung hauptsächlich manuell durchgeführt, aber die Attention-Technologie, die wir vorstellen werden, hat die Ausrichtungsidee erfolgreich automatisch in seq2seq eingeführt. Dies ist auch die Entwicklung vom „manuellen Betrieb“ zur „mechanischen Automatisierung“.
Strukturelle Veränderungen
Wie man rechnet
Kann die Operation „Auswahl“ durch eine differenzierbare Operation ersetzt werden? Statt „Einzelauswahl“ ist es besser, „Alles auszuwählen“. Wir berechnen separat das Gewicht, das die Wichtigkeit (Beitragswert) jedes Wortes darstellt.
a Wie bei einer Wahrscheinlichkeitsverteilung ist jedes Element ein Skalar von 0,0 bis 1,0 und die Summe ist 1. Berechnen Sie dann die gewichtete Summe der Gewichte, die die Wichtigkeit jedes Wortes darstellen, und des Wortvektors hs, um den Zielvektor zu erhalten.
Bei der Verarbeitung von Sequenzdaten sollte das Netzwerk den wichtigen Teilen der Eingabe mehr Aufmerksamkeit schenken und die unwichtigen Teile ignorieren. Es gewichtet die wichtigen Teile der Eingabesequenz explizit, indem es die Gewichte verschiedener Teile lernt, damit das Modell besser bezahlen kann Achten Sie besonders auf ausgabebezogene Informationen. Der Schlüssel zum Aufmerksamkeitsmechanismus besteht in der Einführung eines Mechanismus zur dynamischen Berechnung des Gewichts jeder Position in der Eingabesequenz, sodass bei jedem Zeitschritt verschiedene Teile der Eingabesequenz gewichtet und summiert werden, um die Ausgabe des aktuellen Zeitschritts zu erhalten . Beim Generieren jeder Ausgabe schenkt der Decoder den verschiedenen Teilen der Eingabesequenz unterschiedliche Aufmerksamkeit, sodass sich das Modell besser auf wichtige Informationen in der Eingabesequenz konzentrieren kann.
Gewicht lernen a
Unser Ziel ist es, numerisch auszudrücken, wie „ähnlich“ dieses h den einzelnen Wortvektoren von hs ist.
Hier verwenden wir das einfachste innere Vektorprodukt.
Es gibt verschiedene Möglichkeiten, die Vektorähnlichkeit zu berechnen. Neben inneren Produkten gibt es auch die Praxis, kleine neuronale Netze zur Ausgabe von Scores zu verwenden.
Als nächstes wird s mit der alten Softmax-Funktion reguliert
Integrieren
Implementierung von seq2seq mit Achtung
Aufmerksamkeitsbewertung
Wir haben die Wirkung von seq2seq mit Aufmerksamkeit bestätigt, indem wir das Problem der „Datumsformatkonvertierung“ untersucht haben
Problem bei der Konvertierung des Datumsformats
Lernen von seq2seq mit Aufmerksamkeit
Visualisierung der Aufmerksamkeit
Weitere Themen zum Thema Aufmerksamkeit
Bidirektionales RNN
Wenn wir das Gesamtgleichgewicht betrachten, hoffen wir, dass der Vektor die Informationen rund um das Wort „Katze“ gleichmäßiger enthält.
Bidirektionales LSTM fügt über der vorherigen LSTM-Schicht eine LSTM-Schicht hinzu, die in die entgegengesetzte Richtung verarbeitet.
Spleißen Sie die verborgenen Zustände der beiden LSTM-Schichten zu jedem Zeitpunkt und verwenden Sie sie als endgültigen verborgenen Zustandsvektor (zusätzlich zum Spleißen können Sie auch „summieren“ oder „mitteln“ usw.).
So verwenden Sie die Aufmerksamkeitsebene
Der Ausgang der Aufmerksamkeitsschicht (Kontextvektor) wird im nächsten Moment mit dem Eingang der LSTM-Schicht verbunden. Durch diese Struktur ist die LSTM-Schicht in der Lage, die Informationen des Kontextvektors zu nutzen. Im Gegensatz dazu verwendet das von uns implementierte Modell Kontextvektoren in der affinen Ebene.
Vertiefung von seq2seq und Skip-Verbindung
Vertiefen Sie die RNN-Schicht
seq2seq mit Aufmerksamkeit unter Verwendung von 3 Schichten der LSTM-Schicht
Restverbindung
An der Verbindungsstelle der Restverbindung werden zwei Ausgänge hinzugefügt.
Da durch die Addition Gradienten während der Backpropagation „wie sie sind“ propagiert werden, können Gradienten in Restverbindungen ohne Auswirkung auf die vorherige Ebene propagiert werden. Auf diese Weise kann sich der Gradient auch bei einer Vertiefung der Schicht normal ausbreiten, ohne dass der Gradient verschwindet (oder der Gradient explodiert), und das Lernen kann reibungslos ablaufen.
Anwendung der Aufmerksamkeit
GNMT
Die Geschichte der maschinellen Übersetzung
Regelbasierte Übersetzung
Anwendungsfallbasierte Übersetzung
Statistikbasierte Übersetzung
Neuronale maschinelle Übersetzung
Seit 2016 nutzt Google Translate neuronale maschinelle Übersetzung für tatsächliche Dienste. Maschinelles Übersetzungssystem namens GNMT
GNMT erfordert große Datenmengen und Rechenressourcen. GNMT verwendet eine große Menge an Trainingsdaten (1 Modell), die 6 Tage lang auf fast 100 GPUs gelernt wurden. Darüber hinaus versucht GNMT, die Genauigkeit mithilfe von Technologien wie Ensemble-Lernen und Reinforcement-Learning weiter zu verbessern, mit denen 8 Modelle parallel gelernt werden können.
Transformator
RNN kann Zeitreihendaten variabler Länge gut verarbeiten. RNN weist jedoch auch Mängel auf, beispielsweise Probleme bei der Parallelverarbeitung.
RNN muss Schritt für Schritt basierend auf den Berechnungsergebnissen des vorherigen Moments berechnet werden, sodass es (grundsätzlich) unmöglich ist, RNN parallel in Zeitrichtung zu berechnen. Dies wird zu einem großen Engpass bei der Durchführung von Deep Learning in einer parallelen Computerumgebung mit GPUs, daher haben wir die Motivation, RNN zu vermeiden.
Transformer verwendet kein RNN, sondern Aufmerksamkeit für die Verarbeitung. Werfen wir einen kurzen Blick auf diesen Transformer.
Selbstaufmerksamkeit
Transformer basiert auf Aufmerksamkeit, die die wichtige Technik der Selbstaufmerksamkeit nutzt. Selbstaufmerksamkeit bedeutet wörtlich übersetzt „die eigene Aufmerksamkeit auf sich selbst“, das heißt, die Aufmerksamkeit basiert auf Zeitreihendaten und zielt darauf ab, die Beziehung zwischen jedem Element in Zeitreihendaten und anderen Elementen zu beobachten.
Verwenden Sie ein vollständig verbundenes neuronales Netzwerk mit einer verborgenen Schicht und der Aktivierungsfunktion ReLU. Darüber hinaus bedeutet Nx in der Abbildung, dass die vom grauen Hintergrund umgebenen Elemente N-mal gestapelt sind.
NTM
NTM (Neuronale Turingmaschine)
Neuronale Netze können auch durch den Einsatz externer Speichergeräte zusätzliche Fähigkeiten erlangen.
Basierend auf Aufmerksamkeit implementieren Encoder und Decoder „Speicheroperationen“ in Computern. Mit anderen Worten kann dies so interpretiert werden, dass der Encoder die erforderlichen Informationen in den Speicher schreibt und der Decoder aus dem Speicher liest Holen Sie sich die notwendigen Informationen.
Um den Speicherbetrieb des Computers zu imitieren, verwendet der Speicherbetrieb von NTM zwei Aufmerksamkeiten:
Die inhaltsbasierte Aufmerksamkeit ist dieselbe wie die Aufmerksamkeit, die wir zuvor eingeführt haben, und wird verwendet, um ähnliche Vektoren eines bestimmten Vektors (Abfragevektors) aus dem Speicher zu finden.
Positionsbasierte Aufmerksamkeit wird verwendet, um sich von der Speicheradresse (der Gewichtung jedes Speicherorts im Speicher) vorwärts und rückwärts zu bewegen, auf die sich der Fokus im letzten Moment konzentriert hat. Hier lassen wir die Diskussion seiner technischen Details weg, die durch eindimensionale Faltungsoperationen erreicht werden können. Die auf dem Speicherort basierende Bewegungsfunktion kann die einzigartige Computeraktivität „Lesen beim Vorrücken (eine Speicheradresse)“ reproduzieren.
NTM hat Langzeitgedächtnisprobleme, Sortierprobleme (Anordnen von Zahlen von groß nach klein) usw. erfolgreich gelöst.
Netzwerkoptimierung und Regularisierung
Kein mathematischer Trick kann den Mangel an Informationen ausgleichen [Cornelius Lanczos]
Zwei große Schwierigkeiten
Optimierung
Schwierig zu optimieren und rechenintensiv
Generalisierungsproblem
Die Anpassungsfähigkeit ist zu stark und es kommt leicht zu einer Überanpassung.
Netzwerkoptimierung
Schwierigkeiten bei der Netzwerkoptimierung
Vielfalt der Netzwerkstruktur
Es ist schwierig, eine allgemeine Optimierungsmethode zu finden. Unterschiedliche Optimierungsmethoden weisen auch relativ große Unterschiede in unterschiedlichen Netzwerkstrukturen auf.
Schwierigkeiten mit niedrigdimensionalen Räumen
So wählen Sie Initialisierungsparameter aus
Entfliehen Sie dem lokalen Optimum
Schwierigkeiten mit hochdimensionalen Räumen
So wählen Sie Initialisierungsparameter aus
Wie man einem Sattelpunkt entkommt
In einigen Dimensionen ist es der höchste Punkt, in anderen Dimensionen der niedrigste Punkt
flacher Boden
In tiefen neuronalen Netzen gibt es viele Parameter und es besteht ein gewisser Grad an Redundanz, was dazu führt, dass jeder einzelne Parameter einen relativ geringen Einfluss auf den endgültigen Verlust hat.
stecken im lokalen Minimum fest
Optimierung
Typ der Gradientenabstiegsmethode
Batch-Gradientenabstieg
stochastischer Gradientenabstieg
Mini-Batch-Gradientenabstieg
Bei einem Gradientenabstieg erfordert die Berechnung des Gradienten für die gesamten Trainingsdaten für jede Iteration mehr Rechenressourcen. Darüber hinaus sind die Daten in großen Trainingssätzen oft sehr redundant und es besteht keine Notwendigkeit, Gradienten über den gesamten Trainingssatz zu berechnen.
Verfall der Lernrate
Die Lernrate sollte zu Beginn größer gehalten werden, um die Konvergenzgeschwindigkeit sicherzustellen, und kleiner gehalten werden, wenn sie sich dem optimalen Punkt nähert, um Hin- und Herschwingungen zu vermeiden.
Typ
Umgekehrter Zeitverfall
exponentiellen Abfall
natürlicher exponentieller Zerfall
β ist die Dämpfungsrate und nimmt im Allgemeinen einen Wert von 0,96 an.
Es gibt auch Methoden zur adaptiven Anpassung der Lernrate, wie AdaGrad, RMSprop, AdaDelta usw.
AdaGrad-Methode
Zu den effektiven Techniken zur Bestimmung der Lernrate gehört eine Methode namens „Learning Rate Decay“, die die Lernrate mit fortschreitendem Lernen schrittweise verringert.
AdaGrad führt diese Idee weiter aus und passt die Lernrate für jedes Element der Parameter entsprechend an, während gleichzeitig gelernt wird
Ada kommt vom englischen Wort Adaptive, was „angemessen“ bedeutet.
Wie beim vorherigen SGD repräsentiert W den zu aktualisierenden Gewichtsparameter, die partielle Ableitung den Gradienten und n die Lernrate.
Es erscheint jedoch eine neue Variable h, die die Summe der Quadrate aller vorherigen Gradientenwerte speichert. Daher ist die Aktualisierungsamplitude umso kleiner, je tiefer das Lernen ist.
RMSProp-Methode
Wenn Sie endlos lernen, beträgt die Aktualisierungsmenge 0
Die RMSProp-Methode addiert nicht alle früheren Farbverläufe gleichermaßen, sondern vergisst nach und nach die früheren Farbverläufe und spiegelt bei der Additionsoperation mehr Informationen über die neuen Farbverläufe wider.
Technisch gesehen wird diese Operation als „exponentieller gleitender Durchschnitt“ bezeichnet, der den Maßstab vergangener Gradienten exponentiell reduziert.
Optimierung der Gradientenrichtung
Momentum-Methode
Wenn beim Mini-Batch-Gradientenabstieg die Anzahl der jeweils ausgewählten Proben relativ gering ist, nimmt der Verlust oszillierend ab.
Durch Verwendung des durchschnittlichen Gradienten im letzten Zeitraum anstelle des Gradienten zum aktuellen Zeitpunkt als Richtung der Parameteraktualisierung.
auch Impulsmethode genannt
Nachteile von SGD
f(x,y)=(1/20)*x^2 y^2
Optimierter Aktualisierungspfad basierend auf SGD: Bewegung in Richtung des Minimalwerts (0, 0) in Zickzackform, geringe Effizienz
Möglichkeiten zur Verbesserung
Wie beim vorherigen SGD repräsentiert W den zu aktualisierenden Gewichtsparameter, die partielle Ableitung den Gradienten und n die Lernrate.
Es erscheint jedoch eine neue Variable v, die der physikalischen Geschwindigkeit entspricht, die als Kraft verstanden werden kann, die in Gradientenrichtung auf das Objekt ausgeübt wird.
Adam-Methode
Momentum bewegt sich gemäß den physikalischen Regeln eines in einer Schüssel rollenden Balls, und AdaGrad passt die Aktualisierungsgeschwindigkeit für jedes Element des Parameters entsprechend an. Sie zu kombinieren ist Adams Idee
Es gibt (derzeit) keine Methode, die bei allen Problemen eine gute Leistung erbringt. Jede dieser vier Methoden hat ihre eigenen Eigenschaften und jede hat ihre eigenen Probleme, die sie gut lösen kann, und Probleme, die sie nicht gut lösen kann.
Gradientenabschaltung
Wenn der Gradient plötzlich zunimmt, führt die Verwendung eines großen Gradienten zum Aktualisieren der Parameter dazu, dass er weit vom optimalen Punkt entfernt ist.
Wenn der Modul des Gradienten einen bestimmten Schwellenwert überschreitet, wird der Gradient abgeschnitten.
Begrenzen Sie den Modul des Gradienten auf ein Intervall und kürzen Sie ihn, wenn der Modul des Gradienten kleiner oder größer als dieses Intervall ist.
Typ
Nach Wert kürzen
gt = max(min(gt, b), a).
Je nach Schimmel abschneiden
Parameterinitialisierung
Initialisierung der Gaußschen Verteilung
Die Gaußsche Initialisierungsmethode ist die einfachste Initialisierungsmethode. Die Parameter werden zufällig aus einer Gaußschen Verteilung mit einem festen Mittelwert (z. B. 0) und einer festen Varianz (z. B. 0,01) initialisiert.
Wenn die Anzahl der Eingangsverbindungen eines Neurons n(in) beträgt, kann seine Eingangsverbindungsgewichtung so eingestellt werden, dass sie mit der Gaußschen Verteilung von N(0,sqrt(1/nin)) initialisiert wird.
Wenn auch die Anzahl der Ausgangsverbindungen nout berücksichtigt wird, kann sie gemäß der Gaußschen Verteilung von N(0,sqrt(2/(nin nout))) initialisiert werden.
Gleichmäßig verteilte Initialisierung
Die Initialisierung einer gleichmäßigen Verteilung verwendet eine gleichmäßige Verteilung, um Parameter innerhalb eines bestimmten Intervalls [−r, r] zu initialisieren. Die Einstellung des Hyperparameters r kann auch adaptiv entsprechend der Anzahl der Verbindungen von Neuronen angepasst werden.
Art der Aktivierungsfunktion
Logistikfunktion
tanh
Xavier-Anfangswert
Wir haben versucht, die in der Arbeit von Xavier Glorot et al. empfohlenen Gewichtsanfangswerte zu verwenden.
Wenn die Anzahl der Knoten in der vorherigen Ebene n beträgt, verwendet der Anfangswert eine Gaußsche Verteilung mit einer Standardabweichung von (1/sqrt(n)).
Anfangswert der ReLU-Gewichtung
Wenn die Aktivierungsfunktion ReLU verwendet, wird im Allgemeinen empfohlen, den für ReLU vorgesehenen Anfangswert zu verwenden. Dabei handelt es sich um den von Kaiming He et al. empfohlenen Anfangswert, der auch als „He-Anfangswert“ bezeichnet wird.
Wenn die Anzahl der Knoten in der aktuellen Schicht n beträgt, verwendet der Anfangswert von He eine Gaußsche Verteilung mit einer Standardabweichung von (2/sqrt(n)).
Datenvorverarbeitung
verschiedene Einheiten
Die unterschiedlichen Quellen und Maßeinheiten der einzelnen Dimensionsmerkmale führen dazu, dass der Verteilungsbereich dieser Merkmalswerte sehr unterschiedlich ist. Wenn wir den euklidischen Abstand zwischen verschiedenen Stichproben berechnen, spielen Merkmale mit einem großen Wertebereich eine dominierende Rolle.
Skalierungsnormalisierung
Der Wertebereich jedes Merkmals wird durch Skalierung auf [0, 1] oder [−1, 1] normiert.
Standardnormalisierung
Wird auch als Z-Score-Normalisierung bezeichnet
Jedes Dimensionsmerkmal wird so verarbeitet, dass es der Standardnormalverteilung entspricht (Mittelwert ist 0, Standardabweichung ist 1).
Daten Redundanz
Nachdem die Eingabedaten aufgehellt wurden, ist die Korrelation zwischen den Merkmalen gering und alle Merkmale weisen die gleiche Varianz auf.
Eine der wichtigsten Möglichkeiten, eine Aufhellung zu erreichen, besteht darin, mithilfe der Hauptkomponentenanalyse die Korrelation zwischen Komponenten zu entfernen.
Schichtweise Normalisierung
Wenn Sie zum Trainieren eines Netzwerks den stochastischen Gradientenabstieg verwenden, führt jede Parameteraktualisierung dazu, dass sich die Verteilung der Eingaben auf jede Schicht in der Mitte des Netzwerks ändert. Je tiefer die Schicht ist, desto offensichtlicher wird sich die Verteilung ihres Inputs ändern.
Batch-Normalisierung
Wird auch als Batch-Normalisierung (BN-Methode) bezeichnet
Damit jede Schicht die richtige Breite hat, muss die Verteilung der Aktivierungswerte „erzwungen“ angepasst werden.
Führen Sie eine Regularisierung durch, sodass der Mittelwert der Datenverteilung 0 und die Varianz 1 beträgt.
Jede Zwischenschicht im neuronalen Netzwerk kann normalisiert werden.
Vorteil
Kann schnelles Lernen ermöglichen (kann die Lernrate erhöhen)
Weniger abhängig von Anfangswerten (nicht so empfindlich gegenüber Anfangswerten)
Unterdrücken Sie Überanpassung (reduzieren Sie die Notwendigkeit von Dropout usw.)
Batch-Norm-Ebene
Affine->Batch-Norm->ReLU
Schichtnormalisierung
Einschränkungen der Batch-Normalisierung
Bei der Batch-Normalisierung handelt es sich um eine Normalisierungsoperation für ein einzelnes Neuron in einer Zwischenschicht. Daher darf die Anzahl der Mini-Batch-Proben nicht zu gering sein, da es sonst schwierig wird, die statistischen Informationen eines einzelnen Neurons zu berechnen.
Wenn sich die Verteilung der Nettoeingabe eines Neurons in einem neuronalen Netzwerk, beispielsweise einem rekurrenten neuronalen Netzwerk, dynamisch ändert, kann die Stapelnormalisierungsoperation nicht angewendet werden
Die Schichtnormalisierung normalisiert alle Neuronen in einer Zwischenschicht.
Die Batch-Normalisierung ist in Convolutional Neural Networks (CNN) sehr effektiv, während Layer-Normalisierung häufiger in Recurrent Neural Networks (RNN) und Transformer-Netzwerken vorkommt.
Hyperparameteroptimierung
Komposition
Netzwerkstruktur
Verbindungen zwischen Neuronen
Anzahl der Schichten
Anzahl der Neuronen pro Schicht
Art der Aktivierungsfunktion
Optimierungsparameter
Methoden zur Netzwerkoptimierung
Lernrate
Probengröße für kleine Chargen
Regularisierungskoeffizient
Validierungsdaten (Validierungssatz)
Die Leistung von Hyperparametern kann nicht anhand von Testdaten bewertet werden
Wenn die Testdaten verwendet werden, um die „Güte“ des Hyperparameterwerts zu bestätigen, führt dies dazu, dass der Hyperparameterwert so angepasst wird, dass er nur zu den Testdaten passt.
Die Trainingsdaten werden zum Lernen von Parametern (Gewichtungen und Verzerrungen) verwendet und die Validierungsdaten werden zur Leistungsbewertung von Hyperparametern verwendet. Um die Generalisierungsfähigkeit zu bestätigen, sollten die Testdaten am Ende (idealerweise nur einmal) verwendet werden.
Optimierung
Rastersuche
Zielen Sie auf den richtigen, indem Sie alle Kombinationen von Hyperparametern ausprobieren Methoden zur Konfiguration von Gruppenhyperparametern.
Wählen Sie mehrere „Erfahrungswerte“ aus. Beispielsweise können wir die Lernrate α festlegen α ∈ {0,01, 0,1, 0,5, 1,0}.
Zufallssuche
Legen Sie den Bereich der Hyperparameter fest und nehmen Sie zufällig Stichproben aus dem festgelegten Bereich der Hyperparameter
Bewerten Sie die Erkennungsgenauigkeit anhand von Verifizierungsdaten (stellen Sie die Epoche jedoch sehr klein ein).
Wiederholen Sie den oben genannten Vorgang (100 Mal usw.) und grenzen Sie den Bereich der Hyperparameter basierend auf den Ergebnissen ihrer Erkennungsgenauigkeit ein
Bayesianische Optimierung
Dynamische Ressourcenzuteilung
Netzwerk-Regularisierung
Zweck: Überanpassung unterdrücken
Gewichtsverlust
Der Gewichtsabfall ist eine Methode, die häufig zur Unterdrückung einer Überanpassung eingesetzt wird. Diese Methode bestraft große Gewichte während des Lernprozesses.
Einfach ausgedrückt wird die Verlustfunktion
λ ist ein Hyperparameter, der die Stärke der Regularisierung steuert
Methode zum Verwerfen
Dropout-Methode
Wenn das Netzwerkmodell sehr komplex wird, wird es schwierig, es nur mithilfe der Gewichtsabnahme zu handhaben.
Bei der Methode zum zufälligen Löschen von Neuronen während des Lernprozesses werden Neuronen jedes Mal zufällig verworfen. Der einfachste Weg besteht darin, eine feste Wahrscheinlichkeit p festzulegen. Für jedes Neuron gibt es eine Wahrscheinlichkeit p, um zu bestimmen, ob es behalten werden soll.
Datenerweiterung
Drehen, spiegeln, skalieren, verschieben, Rauschen hinzufügen
Etikettenglättung
Fügen Sie den Ausgabebeschriftungen Rauschen hinzu, um eine Überanpassung des Modells zu vermeiden
Modellunabhängige Lernmethode
Ensemble-Lernen
Integrieren Sie mehrere Modelle mithilfe einer bestimmten Strategie, um die Entscheidungsgenauigkeit durch Gruppenentscheidungen zu verbessern. Das Hauptproblem beim Ensemble-Lernen ist die Integration mehrerer Modelle. Zu den am häufigsten verwendeten Integrationsstrategien gehören der direkte Durchschnitt, der gewichtete Durchschnitt usw.
Selbsttraining und gemeinsames Training
Alle gehören zum halbüberwachten Lernen
Selbsttraining
Beim Selbsttraining werden zunächst markierte Daten verwendet, um ein Modell zu trainieren, und dieses Modell wird verwendet, um die Etiketten unbeschrifteter Proben vorherzusagen, Proben mit relativ hohem Vorhersagevertrauen und deren vorhergesagte Pseudoetiketten zum Trainingssatz hinzuzufügen und dann das neue Modell neu zu trainieren. und wiederholen Sie diesen Vorgang immer wieder.
gemeinsames Training
Co-Training ist eine verbesserte Methode des Selbsttrainings
Zwei auf unterschiedlichen Ansichten basierende Klassifikatoren fördern sich gegenseitig. Viele Daten haben unterschiedliche Perspektiven, die relativ unabhängig sind.
Aufgrund der bedingten Unabhängigkeit unterschiedlicher Perspektiven sind Modelle, die auf unterschiedlichen Perspektiven trainiert werden, gleichbedeutend mit dem Verständnis des Problems aus unterschiedlichen Perspektiven und weisen eine gewisse Komplementarität auf. Kollaboratives Training ist eine Methode, die diese Komplementarität nutzt, um Selbsttraining durchzuführen. Zuerst werden zwei Modelle f1 und f2 aus unterschiedlichen Perspektiven auf dem Trainingssatz trainiert, und dann werden mit f1 und f2 Stichproben mit relativ hoher Vorhersagesicherheit ausgewählt, die dem Trainingssatz hinzugefügt werden sollen Es werden zwei unterschiedliche Perspektiven modelliert und dieser Vorgang wiederholt.
Multitasking-Lernen
Allgemeine Modelle des maschinellen Lernens zielen auf eine einzelne spezifische Aufgabe ab, z. B. handschriftliche Ziffernerkennung, Objekterkennung usw. Modelle für verschiedene Aufgaben werden separat in ihren jeweiligen Trainingssätzen erlernt.
Wenn zwei Aufgaben miteinander verbunden sind, gibt es zwischen ihnen gemeinsames Wissen, und dieses Wissen wird für beide Aufgaben hilfreich sein. Bei diesem geteilten Wissen kann es sich um Darstellungen (Merkmale), Modellparameter oder Lernalgorithmen usw. handeln.
Typ
Transferlernen
Wenn es eine verwandte Aufgabe gibt, die bereits über eine große Menge an Trainingsdaten verfügt, gehen wir aufgrund des relativ großen Umfangs der Trainingsdaten davon aus, dass wir einige lernen können, obwohl sich die Verteilung dieser Trainingsdaten von der der Zielaufgabe unterscheidet Verallgemeinerbares Wissen daraus, dann wird dieses Wissen für Zielaufgaben hilfreich sein. Wie das verallgemeinerbare Wissen in den Trainingsdaten verwandter Aufgaben auf die Zielaufgabe übertragen werden kann, ist das Problem, das durch Transferlernen gelöst werden muss.
Transferlernen bezieht sich auf den Prozess des Wissenstransfers zwischen zwei verschiedenen Bereichen, wobei das in der Quelldomäne (Quelldomäne) DS erlernte Wissen genutzt wird, um die Lernaufgaben in der Zieldomäne (Zieldomäne) DT zu unterstützen. Die Anzahl der Trainingsbeispiele in der Quelldomäne ist im Allgemeinen viel größer als die in der Zieldomäne.
Einstufung
induktives Transferlernen
Auf dem Trainingsdatensatz wird ein Modell gelernt, das das erwartete Risiko (d. h. die Fehlerrate bei der realen Datenverteilung) minimiert.
Transferlernen ableiten
Lernen Sie ein Modell, das Fehler bei einem bestimmten Testsatz minimiert
Feinabstimmung ist eine Anwendungsmethode des Transferlernens. Dabei handelt es sich in der Regel um die Verwendung neuer, aufgabenspezifischer Datensätze zur Durchführung zusätzlicher Schulungen auf der Grundlage eines bereits trainierten Modells, um die Leistung des Modells bei einer bestimmten Aufgabe zu verbessern. Der Zweck der Feinabstimmung besteht darin, das vom vorab trainierten Modell erlernte allgemeine Wissen über große Datenmengen zu nutzen, um den Lernprozess für bestimmte Aufgaben zu beschleunigen und zu optimieren.
lebenslanges Lernen
Frage
Sobald das Training abgeschlossen ist, bleibt das Modell unverändert und wird nicht mehr iterativ aktualisiert.
Für ein Modell ist es immer noch sehr schwierig, bei vielen verschiedenen Aufgaben gleichzeitig erfolgreich zu sein.
Lebenslanges Lernen, auch kontinuierliches Lernen genannt, bezieht sich auf die Fähigkeit des Menschen, kontinuierlich zu lernen und die in historischen Aufgaben erworbenen Erfahrungen und Kenntnisse zu nutzen, um beim Erlernen neuer Aufgaben zu helfen, die ständig auftauchen. Diese Erfahrungen und Kenntnisse werden kontinuierlich angesammelt und ändern sich dadurch nicht neue Aufgaben und altes Wissen vergessen.
Beim lebenslangen Lernen wird davon ausgegangen, dass ein Algorithmus für lebenslanges Lernen ein Modell für historische Aufgaben T1, T2, · · ·, Tm gelernt hat. Wenn eine neue Aufgabe Tm 1 erscheint, kann dieser Algorithmus ein Modell basierend auf den in der Vergangenheit gelernten Aufgaben lernen m Aufgaben. Wissen zur Unterstützung der m 1. Aufgabe, während Wissen über alle m 1 Aufgaben angesammelt wird.
Diese Einstellung ist dem induktiven Transferlernen sehr ähnlich, das Ziel des induktiven Transferlernens besteht jedoch darin, die Leistung der Zielaufgabe zu optimieren, ohne sich um die Anhäufung von Wissen zu kümmern. Das Ziel des lebenslangen Lernens ist kontinuierliches Lernen und Wissensanhäufung. Darüber hinaus umfasst lebenslanges Lernen im Gegensatz zum Multitasking-Lernen nicht das gleichzeitige Lernen aller Aufgaben.
Meta-Lernen
Gemäß dem No-Free-Lunch-Theorem ist kein universeller Lernalgorithmus für alle Aufgaben wirksam. Daher müssen wir bei der Verwendung von Algorithmen für maschinelles Lernen zur Implementierung einer bestimmten Aufgabe normalerweise „die Angelegenheit diskutieren“ und das geeignete Modell, die Verlustfunktion, den Optimierungsalgorithmus und die Hyperparameter basierend auf der spezifischen Aufgabe auswählen.
Die Fähigkeit, die eigenen Lernmethoden dynamisch anzupassen, nennt man Meta-Learning, auch Learning of Learning genannt.
Ein weiteres Problem des maschinellen Lernens im Zusammenhang mit Meta-Learning ist das Lernen kleiner Stichproben
Zwei typische Meta-Lernmethoden
Optimiererbasiertes Meta-Lernen
Der Unterschied zwischen verschiedenen Optimierungsalgorithmen liegt in den unterschiedlichen Regeln zum Aktualisieren von Parametern. Daher besteht ein natürliches Meta-Lernen darin, automatisch eine Regel zum Aktualisieren von Parametern zu lernen, dh den Gradientenabstiegsprozess durch ein anderes neuronales Netzwerk (z. B. ein wiederkehrendes neuronales Netzwerk) zu modellieren Netzwerk).
Modellunabhängiges Meta-Lernen
Es handelt sich um einen einfachen modell- und aufgabenunabhängigen Meta-Lernalgorithmus.