[PYTHON] Schreiben Sie Ihre Eindrücke von der Deep Learning 3 Framework Edition, die von Grund auf neu erstellt wurde

image.png

In den letzten Tagen des Jahres habe ich Deep Learning ❸ Framework from Zero (Zero D3 [^ 1]) ausprobiert, das derzeit öffentlich überprüft wird. Es war. Persönlich denke ich, dass es ein besseres Buch als ohne Markenzeichen war, deshalb möchte ich aufschreiben, was attraktiv war und wer es gerne lesen würde.

Inhalt und Eindrücke

Durch die Scratch-Implementierung mit Numpy war es ein Inhalt, die neuesten Frameworks (PyTorch und Chainer) auf Codeebene zu verstehen. Da es sich um eine Framework-Edition handelte, lag der Fokus nicht nur auf DL, sondern auch auf dem Schreiben von effizientem Code und dem Designkonzept von Define-by-Run, das die Grundlage des Frameworks bildet.

Es gab einige Dinge, die ich fühlte und gewann, als ich sie durchlief. Die Bestellung ist Tekito.

- Bedeutung von Backprop

Ich habe das Gefühl, dass es mehr als unmarkiert erschienen ist. Insgesamt gab es 5 Stufen (Kapitel), von denen 2 mit Backprop zu tun hatten.

Insbesondere von der grundlegenden Differenzierung und Backprop gab es einige neue Teile, die nicht unmarkiert behandelt wurden, wie die automatische Differenzierung (AutoGrad), die Differenzierung höherer Ordnung, die Erklärung der Newton-Methode und die Implementierung. Ich fragte mich, ob es kein Backprop, kein Deep Learning war.

- Unterschied zwischen Define-by-Run und Define-and-Run

Es war beeindruckend, dass diese Erklärung nach einiger Lektüre nicht ganz am Anfang herauskam. Da es eine Erklärung für Knoten, Eingabe, Ersteller, Ausgabe usw. gab, dachte ich, dass die Konfiguration so war, dass der Unterschied zwischen den beiden reibungslos verstanden werden konnte.

- Glatter Einstieg in Frameworks (insbesondere PyTorch)

Das ist richtig, weil es darauf abzielt, aber wenn Sie dieses Buch lesen, werden Sie feststellen, dass Sie ziemlich bewusst sind. Wenn Sie PyTorch nicht berührt haben, denke ich, dass dies eine große Sache ist.

Als Beispiel würde ich beim Erlernen von PyTorch den folgenden Code schreiben. In diesem Buch haben wir auf Implementierungsebene behandelt, wie der Code, der der roten Linie entspricht, hinter den Kulissen funktioniert. image.png

Ich konnte das offizielle PyTorch-Buch lesen, das in diesem Frühjahr veröffentlicht wird, also habe ich es gelesen, aber ich habe nur erklärt, wie man es verwendet. Es war ein Eindruck, bei dem ich geblieben bin. In dieser Hinsicht ist dieses Buch einzigartig, und wie der Autor sagt, dachte ich, dass es fast nicht existiert. [^ 2]

- Kenntnis von Python selbst

Ich habe in Python oft spezielle Methoden verwendet, und ich habe auch Methoden verwendet, die ich selten sehe (wie rmul).

Außerdem haben die in x * w + b verwendeten Operatoren (+, * usw.) Nutzungsbedingungen, und der Rechenaufwand wird enorm, sodass der Speicher usw. verwaltet werden kann. Ich berührte.

- Hochstimmung

Nur wenn Sie ein Framework wie PyTorch verwendet haben, kommen Sie dem vertrauten Code später in diesem Buch schrittweise näher. Ich persönlich hatte das erhebende Gefühl, dass der Hintergrund jeder PyTorch-Linie, die ich irgendwie verstanden hatte, miteinander verbunden war.

Zum Beispiel ist es so, als würden Sie zu einem Ziel gehen, das Sie normalerweise mit dem Zug erreichen, und die Karte in Ihrem Gehirn erweitern (vielleicht ist es näher am Bild, wenn diese Straße hier verbunden ist).

Berücksichtigung seiner Position innerhalb der Zero D-Serie

image.png

Da das Hauptthema dieses Buches das Framework ist, war das erste Halbjahr der Implementierung detaillierter Methoden (Transponierung usw.) und Speicherverwaltungsmethoden gewidmet.

Später in diesem Buch wird jedoch die Grundlage des Frameworks gefestigt, und wir werden mit der Implementierung von Optimizer, Loss, CNN, LSTM usw. fortfahren. Da es einige ähnliche Teile wie die nicht markierten gibt, habe ich den persönlichen Eindruck, dass es kein Problem gibt, wenn Sie wissen, wie man Numpy und Python in gewissem Maße verwendet, selbst wenn Sie bei Null D3 beginnen.

Die natürliche Sprache (NLP) wurde nicht berührt, aber RNN und LSTM wurden im Rahmen der Zeitreihenanalyse eingeführt. Wenn Sie den NLP selbst genau kennen möchten, ist er daher Null D2.

Überlegen Sie, wer gerne liest

Ich denke, das Merkmal dieses Buches ist nicht nur die Erklärung von DL selbst, sondern auch "Den Ursprung des Frameworks selbst durch Code verstehen". Ich habe den Eindruck, dass die meisten Bücher bisher entweder "Erklärung von DL selbst + Numpy-Implementierung" oder "Erklärung von DL selbst + Verwendung des Frameworks" enthalten haben (die tatsächliche Situation ist möglicherweise nicht so, da es sich um eine kleine Stichprobe von sich selbst handelt). Ich weiß es nicht).

Als Fall, in den ich geriet, konnte ich DL, Numpy und das Framework grob verstehen, und obwohl es kein Problem gab, das Framework alleine auszuführen, gab es eine Lücke zwischen ihm und dem tatsächlichen Verständnis (es gab keine Brücke). Status).

Daher bietet dieses Buch für diejenigen, die PyTorch verwendet haben, den Wert, die Verbindung zwischen Numpy oder Formeln und PyTorch zu stärken.

Auf der anderen Seite bietet dieses Buch für diejenigen, die an DL interessiert sind, das Framework jedoch noch nie verwendet haben, einen Übergangswert für einen reibungslosen Übergang zum Framework.

abschließend

Unabhängig von der Praktikabilität hat es Spaß gemacht, die Black Boxes einzeln zu entwirren, Beziehungen zwischen bekannten Dingen zu finden und die beiden zu verbinden. Es war ein Buch, das ich gerne ein paar Runden drehen würde, weil ich immer noch nicht genug verstehe.

Es scheint [öffentliche Überprüfung bis zum 13. Januar] zu sein (https://note.com/koki0702/n/na9bf716aca97), daher kann es interessant sein, es während der Überprüfung zu lesen.

[^ 1]: Ich kenne die Abkürzung nicht. Welches ist Zero D, Zero Deep oder Zero? [^ 2]: Ich denke, dass Deep Learning from the Foundations von fast.ai eine enge Position ist. Dies ist der Inhalt der Implementierung der Fastai-Bibliothek mit PyTorch. Es ist überwiegend schwieriger als Zero D3 und hat eine breite Abdeckung.

Recommended Posts

Schreiben Sie Ihre Eindrücke von der Deep Learning 3 Framework Edition, die von Grund auf neu erstellt wurde
Anwendung von Deep Learning 2 von Grund auf neu Spam-Filter
Deep Learning Memo von Grund auf neu gemacht
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 7]
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 5]
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 6]
Deep Learning / Deep Learning von Grund auf neu Kapitel 7 Memo
Lernbericht über das Lesen von "Deep Learning von Grund auf neu"
[Lernnotiz] Deep Learning von Grund auf neu gemacht [~ Kapitel 4]
Deep Learning von Grund auf neu
[Lernnotiz] Deep Learning von Grund auf ~ Implementierung von Dropout ~
[Deep Learning von Grund auf neu] Implementierung der Momentum-Methode und der AdaGrad-Methode
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 1
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 5
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 2
Erstellen Sie mit Docker eine Umgebung für "Deep Learning von Grund auf neu"
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 3
Ein Amateur stolperte in Deep Learning von Grund auf neu. Hinweis: Kapitel 7
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 5
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 1
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 4
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 4
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 2
Tiefes Lernen von Grund auf neu (Kostenberechnung)
Kapitel 2 Implementierung von Perceptron Schneiden Sie nur die guten Punkte des Deeplearning aus, die von Grund auf neu erstellt wurden
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 10-2) Anfangswert des Gewichts
Tiefes Lernen / Tiefes Lernen von Grund auf 2-Versuchen Sie, GRU zu bewegen
Kapitel 1 Einführung in Python Schneiden Sie nur die guten Punkte des Deeplearning aus, die von Grund auf neu erstellt wurden
"Deep Learning von Grund auf neu" mit Haskell (unvollendet)
[Windows 10] Aufbau einer "Deep Learning from Scratch" -Umgebung
[Deep Learning von Grund auf neu] Über die Optimierung von Hyperparametern
"Deep Learning from Grund" Memo zum Selbststudium (Teil 12) Deep Learning
Python vs Ruby "Deep Learning von Grund auf neu" Kapitel 4 Implementierung der Verlustfunktion
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 9) MultiLayerNet-Klasse
Deep Learning von Grund auf neu ① Kapitel 6 "Lerntechniken"
GitHub des guten Buches "Deep Learning von Grund auf neu"
Deep Learning von Grund auf neu Kapitel 2 Perceptron (Memo lesen)
Python vs Ruby "Deep Learning von Grund auf neu" Zusammenfassung
"Deep Learning from Grund" Memo zum Selbststudium (10) MultiLayerNet-Klasse
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 11) CNN
Versuchen Sie, Code aus 1 mit dem Framework Chainer für maschinelles Lernen (Mnist Edition) zu schreiben.
Python vs Ruby "Deep Learning von Grund auf neu" Kapitel 3 Implementierung eines dreischichtigen neuronalen Netzwerks
[Python] [Verarbeitung natürlicher Sprache] Ich habe Deep Learning ausprobiert (auf Japanisch von Grund auf neu erstellt)
Deep Learning von Grund auf neu Die Theorie und Implementierung des mit Python erlernten Deep Learning Kapitel 3
[Für Anfänger] Was ist in Deep Learning von Grund auf neu geschrieben?
[Deep Learning von Grund auf neu] Anfangswert des Gewichts des neuronalen Netzwerks unter Verwendung der Sigmoid-Funktion
[Deep Learning von Grund auf neu] Ich habe die Affine-Ebene implementiert
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 19) Datenerweiterung
Python vs Ruby "Deep Learning von Grund auf neu" Kapitel 3 Diagramm der Schrittfunktion, Sigmoidfunktion, ReLU-Funktion
Deep Learning 1 Übung des Deep Learning
Python vs Ruby "Deep Learning from Grund" Kapitel 1 Diagramm der Sin-Funktion und der Cos-Funktion
Deep Learning 2 von Grund auf 1.3 Verarbeitung natürlicher Sprache 1.3 Zusammenfassung
Othello ~ Aus der dritten Zeile von "Implementation Deep Learning" (4) [Ende]
Ich habe versucht, Dropout zu erklären
[Deep Learning von Grund auf neu] Anfangsgewicht des neuronalen Netzwerks bei Verwendung der Relu-Funktion
[Deep Learning von Grund auf neu] Ich habe versucht, die Gradientenbestätigung auf leicht verständliche Weise zu erklären.
Selbststudien-Memo "Deep Learning from Grund" (Nr. 18) Eins! Miau! Grad-CAM!