Das Buch "Deep Learning in Python"

Bild Deep Learning ist eine Reihe von Algorithmen für maschinelles Lernen, die Abstraktionen auf hoher Ebene in Daten mithilfe von Architekturen modellieren, die aus vielen nichtlinearen Transformationen bestehen. Stimmen Sie zu, dieser Satz klingt bedrohlich. Aber nicht alles ist so beängstigend, wenn Francois Schollay, der Keras, die mächtigste Bibliothek für die Arbeit mit neuronalen Netzen, geschaffen hat, über tiefes Lernen spricht. Erleben Sie tiefes Lernen mit praktischen Beispielen aus den unterschiedlichsten Bereichen. Das Buch ist in zwei Teile gegliedert: Der erste Teil enthält die theoretischen Grundlagen, der zweite Teil ist der Lösung spezifischer Probleme gewidmet. Auf diese Weise können Sie nicht nur die Grundlagen von DL verstehen, sondern auch lernen, wie Sie neue Möglichkeiten in der Praxis nutzen können.

Lernen ist eine lebenslange Reise, insbesondere im Bereich der künstlichen Intelligenz, wo es mehr Unbekannte als Gewissheiten gibt. Im Inneren befindet sich ein Auszug aus „Erforschung und Überwachung von Deep-Learning-Modellen mithilfe von Keras- und TensorBoard-Rückrufen“.

Über dieses Buch


Das Buch richtet sich an alle, die Deep-Learning-Technologie von Grund auf neu studieren oder ihr Wissen erweitern möchten. Ingenieure für maschinelles Lernen, Softwareentwickler und Studenten werden auf diesen Seiten viel Wert finden.

Dieses Buch bietet eine praktische Studie zum tiefen Lernen. Wir haben versucht, mathematische Formeln zu vermeiden, und es vorgezogen, quantitative Konzepte mithilfe von Codefragmenten zu erklären und ein praktisches Verständnis der Grundideen des maschinellen und tiefen Lernens zu entwickeln.

Sie sehen mehr als 30 Beispiele für Programmcode mit detaillierten Kommentaren, praktischen Empfehlungen und einfachen allgemeinen Erklärungen zu allem, was Sie wissen müssen, um Deep Learning zur Lösung spezifischer Probleme einzusetzen.

In den Beispielen wird das in Python geschriebene Keras Deep Learning Framework und die TensorFlow-Bibliothek als interner Mechanismus verwendet. Keras ist eines der beliebtesten und am schnellsten wachsenden Deep-Learning-Frameworks. Es wird oft als das erfolgreichste Werkzeug für Anfänger empfohlen, um tiefes Lernen zu lernen.

Nachdem Sie dieses Buch gelesen haben, werden Sie klar verstehen, was tiefes Lernen ist, wenn es anwendbar ist und welche Einschränkungen es hat. Sie lernen den Standardprozess zum Interpretieren und Lösen von Problemen des maschinellen Lernens und den Umgang mit allgemeinen Problemen kennen. Sie lernen, wie Sie mit Keras praktische Probleme lösen - von der Mustererkennung bis zur Verarbeitung natürlicher Sprache: Bildklassifizierung, zeitliche Vorhersage, Analyse von Emotionen, Bild- und Texterzeugung und vieles mehr.

Erforschen und überwachen Sie Deep-Learning-Modelle mithilfe von Keras- und TensorBoard-Rückrufen


In diesem Abschnitt werden Möglichkeiten untersucht, wie Sie während der Schulung und des Managements einen umfassenderen Zugriff auf die internen Mechanismen des Modells erhalten. Das Ausführen des Trainingsvorgangs für einen großen Datensatz, der Dutzende von Epochen durch Aufrufen von model.fit () oder model.fit_generator () dauert, ist wie das Starten eines Papierflugzeugs: Wenn Sie einen ersten Impuls geben, können Sie dessen Flugbahn oder Landeplatz nicht mehr steuern. Um negative Ergebnisse (und den Verlust eines Papierflugzeugs) zu vermeiden, ist es besser, kein Papierflugzeug zu verwenden, sondern eine kontrollierte Drohne, die die Umgebung analysiert, Informationen darüber an den Bediener zurücksendet und die Ruder abhängig von ihrem aktuellen Zustand automatisch steuert. Die hier vorgestellten Techniken verwandeln den Aufruf von model.fit () von einem Papierflugzeug in eine intelligente autonome Drohne, die in der Lage ist, ihren Zustand zu bewerten und Steuerungsaktionen rechtzeitig durchzuführen.

Verwenden von Rückrufen, um das Modell während des Trainings zu beeinflussen


Viele Aspekte des Modelltrainings können nicht im Voraus vorhergesagt werden. Beispielsweise kann man die Anzahl der Epochen, die den optimalen Wert der Verluste auf dem Testsatz liefern, nicht im Voraus vorhersagen. In den bisher zitierten Beispielen wurde eine Lernstrategie mit einer ausreichend großen Anzahl von Epochen verwendet. Somit wurde der Effekt der Umschulung erzielt, wenn der erste Lauf zum ersten Mal durchgeführt wird, um die erforderliche Anzahl von Trainingsperioden herauszufinden, und dann ist der zweite von Anfang an neu mit der ausgewählten optimalen Anzahl von Epochen. Dies ist natürlich eine ziemlich verschwenderische Strategie.

Es wäre viel besser, mit dem Lernen aufzuhören, sobald sich herausstellt, dass sich die Schätzung der Verluste am Testsatz nicht mehr verbessert hat. Dies kann mithilfe des Keras-Rückrufmechanismus implementiert werden. Ein Rückruf ist ein Objekt (eine Instanz einer Klasse, die bestimmte Methoden implementiert), das über einen Anpassungsaufruf an das Modell übergeben wird und das vom Modell an verschiedenen Stellen im Lernprozess aufgerufen wird. Er hat Zugriff auf alle Informationen über den Status des Modells und seine Qualität und kann die folgenden Aktionen ausführen: Training unterbrechen, Modelle speichern, verschiedene Gewichtssätze laden oder den Status des Modells auf andere Weise ändern.

Hier einige Beispiele für die Verwendung von Rückrufen:

  • Festlegen des Modellzustands an Kontrollpunkten - Speichern der aktuellen Modellgewichte an verschiedenen Punkten während des Trainings;
  • vorzeitiger Stopp - Unterbrechung des Trainings, wenn sich die Schätzung der Verluste in den Testdaten nicht mehr verbessert (und natürlich die beste Version des während des Trainings erhaltenen Modells beibehalten wird);
  • dynamische Anpassung der Werte einiger Parameter im Lernprozess, beispielsweise des Lernschritts des Optimierers;
  • Protokollieren von Noten für die Trainings- und Testdatensätze während des Trainings oder Visualisieren der vom Modell erhaltenen Darstellungen, wenn diese aktualisiert werden - ein Fortschrittsbalken in Keras, mit dem Sie bereits vertraut sind, ist ein Rückruf!

Das Modul keras.callbacks enthält eine Reihe integrierter Rückrufe. Hier ist eine alles andere als vollständige Liste:

keras.callbacks.ModelCheckpoint keras.callbacks.EarlyStopping keras.callbacks.LearningRateScheduler keras.callbacks.ReduceLROnPlateau keras.callbacks.CSVLogger 

Schauen wir uns einige an, um eine Vorstellung davon zu bekommen, wie man sie verwendet: ModelCheckpoint, EarlyStopping und ReduceLROnPlateau.

ModelCheckpoint und EarlyStopping Callbacks

Der EarlyStopping-Rückruf kann verwendet werden, um den Lernprozess zu unterbrechen, wenn sich die überwachte Zielmetrik in einer bestimmten Anzahl von Epochen nicht verbessert hat. Mit diesem Rückruf können Sie beispielsweise das Training nach dem Einsetzen des Umschulungseffekts unterbrechen und so ein erneutes Training des Modells für weniger Epochen vermeiden. Dieser Rückruf wird normalerweise in Kombination mit ModelCheckpoint verwendet, mit dem Sie den Status des Modells während des Trainings speichern können (und bei Bedarf nur das beste Modell speichern können: die Version des Modells, die am Ende der Ära eine bessere Qualität erreicht hat):

Bild

ReduceLROnPlateau Callback

Dieser Rückruf kann verwendet werden, um die Lerngeschwindigkeit zu verringern, wenn der Verlust an Testdaten nicht mehr abnimmt. Das Verringern oder Erhöhen der Lerngeschwindigkeit am Wendepunkt der Verlustkurve ist eine wirksame Strategie, um während des Trainings aus einem lokalen Minimum auszubrechen. Das folgende Beispiel zeigt die Verwendung des ReduceLROnPlateau-Rückrufs:

Bild

Gestalten Sie Ihren Rückruf

Wenn Sie während des Trainings einige spezielle Aktionen ausführen müssen, die in keinem der integrierten Rückrufe vorgesehen sind, können Sie Ihren eigenen Rückruf schreiben. Rückrufe werden durch Erben von der Klasse keras.callbacks.Callback implementiert. Sie können eine der folgenden Methoden mit sprechenden Namen implementieren, die zu geeigneten Zeiten aufgerufen werden

Bild

Alle diese Methoden werden mit den Argumentprotokollen aufgerufen - einem Wörterbuch, das Informationen über das vorherige Paket, die Ära oder den Trainingszyklus enthält: Trainings- und Verifizierungsmetriken usw. Darüber hinaus hat der Rückruf Zugriff auf die folgenden Attribute:

  • self.model - eine Instanz des Modells, das diesen Rückruf verursacht hat;
  • self.validation_data - Der Wert, der als Validierungsdaten an die Fit-Methode übergeben wird.

Hier ist ein einfaches Beispiel für einen nicht standardmäßigen Rückruf, der die Aktivierung aller Ebenen des Modells nach dem Ende jeder Ära auf der Festplatte speichert (wie Numpy-Arrays), berechnet aus der ersten Stichprobe im Testsatz:

Bild

Dies ist alles, was Sie über Rückrufe wissen müssen, alles andere sind technische Details, Informationen, über die Sie sich leicht finden können. Jetzt können Sie während des Trainings alle Informationen protokollieren oder das Keras-Modell steuern.

Über den Autor


Bild Francois Chollet beschäftigt sich mit Deep Learning bei Google, Mountain View, Kalifornien. Er ist der Schöpfer von Keras, einer Deep-Learning-Bibliothek, und Mitglied des TensorFlow-Framework-Projekts für maschinelles Lernen. Er forscht auch auf dem Gebiet des maschinellen Lernens, wobei er sich auf die Mustererkennung und die Anwendung des maschinellen Lernens auf das formale Denken konzentriert. Er sprach auf wichtigen Konferenzen in diesem Bereich, darunter Konferenz über Computer Vision und Mustererkennung (CVPR), Konferenz und Workshop über neuronale Informationsverarbeitungssysteme (NIPS), Internationale Konferenz über lernende Repräsentationen (ICLR) usw. .

»Weitere Informationen zum Buch finden Sie auf der Website des Herausgebers
» Inhalt
» Auszug

20% Rabatt-Gutschein für Straßenhändler - Deep Learning mit Python

Source: https://habr.com/ru/post/de413291/


All Articles