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.
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.
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.
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.
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.
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]
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.
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).
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.
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.
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