Neulich hat Google die Deep-Learning-Bibliothek TensorFlow veröffentlicht. Viele Leute haben es bereits versucht und ihre Eindrücke und Verwendung wurden geschrieben. Ich würde es gerne selbst anfassen und schreiben, was ich dachte.
Bei der Erklärung des allgemeinen tiefen Lernens wird die folgende Abbildung verwendet.
Es wird als Mechanismus eingeführt, der an den Mechanismus der Nerven erinnert. Daten werden durch Synapse von Nervenzelle zu Nervenzelle übertragen, und die Nervenzelle, die die Daten empfängt, sieht die Daten und sendet erneut neue Daten.
Wenn es jedoch darum geht, diese Figur zu betrachten und im Programm wiederzugeben, befürchte ich, dass ich viele Zellen reproduzieren muss. Daher ist es einfacher zu verstehen, wenn Sie an Nervenzellen mit der gleichen Funktion wie eine Masse denken und die Figur mithilfe eines hochdimensionalen Vektorraums vereinfachen.
Stellen Sie sich Nervenzellen als synaptische Verbindungen im Vektorraum als eine Art Mapping vor (diejenigen, die es nicht verstehen, sind Funktionen). Diese Abbildung ist oft nicht linear, aber ich denke, viele verwenden etwas, das durch eine Zusammensetzung aus einer linearen Abbildung (dargestellt durch eine Matrix) und einer einfachen nicht linearen Funktion dargestellt wird. Beim maschinellen Lernen wird die Leistung dieses Mappings durch Lernen verbessert. Wenn Sie eine Kombination aus einer linearen Abbildung und einer nichtlinearen Funktion haben, können Sie den Teil der linearen Abbildung als Matrix darstellen und die Matrix jedes Mal aktualisieren, wenn Sie lernen.
Aufgrund dieses Verständnisses war ich beim Lesen der Erklärung von TensorFlow sofort davon überzeugt, dass ich mithilfe von Diagrammen tiefes Lernen mache, aber ich fragte mich manchmal: "Was?" Das heißt, obwohl es viele Erklärungen zu Eckpunkten gibt, gibt es fast keine Teile, die Kanten entsprechen. In der vorherigen Abbildung wird der Teil des Mappings, dh die Seite des Diagramms, durch Lernen verstärkt, aber es gibt keine Erklärung für diese Seite. Stattdessen gibt es Variable, und es scheint, dass Sie durch Aktualisieren lernen sollten.
Anscheinend muss ich das Bild des tiefen Lernens in mir selbst neu schreiben.
Beachten Sie, dass der Teil der Zuordnung normalerweise in einen variablen und lernaktualisierten Teil (den linearen Zuordnungsteil) und einen invarianten Teil (den nichtlinearen Funktionsteil) unterteilt ist. Der variable Teil wird durch eine Zahlenspalte dargestellt. Es versteht sich, dass TensorFlows Stil darin besteht, dies als Variable und als Scheitelpunkt zu behandeln, anstatt es in eine Seite einzubetten. Durch Trennen von der Seite zum Scheitelpunkt werden die Daten und die Funktion getrennt, und die Daten, die von der Eingabe und den Trainingsdaten stammen, werden auf die gleiche Weise behandelt. Das Bild sieht dann wie in der folgenden Abbildung gezeigt aus.
Zum Zeitpunkt des Lernens fließt die Seite rückwärts und der Lerndatenteil wird aktualisiert. Wenn Sie anhand eines solchen Bildes darüber nachdenken, können Sie sich Deep Learning als etwas vorstellen, das dem Mechanismus anderer Anwendungen ähnelt.