Google Inception-Modell: Warum gibt es mehrere Softmax?


12

Die Topologie des Google Inception-Modells finden Sie hier: Google Inception Netowrk

Mir ist aufgefallen, dass dieses Modell 3 Softmax-Schichten enthält (Nr. 154, Nr. 152, Nr. 145), von denen 2 eine Art frühes Entkommen dieses Modells darstellen.

Soweit ich weiß, ist die Softmax-Ebene für die endgültige Ausgabe vorgesehen. Warum gibt es also so viele? Was ist der Zweck der anderen 2 Schicht?

Antworten:


26

Kurze Antwort: Tiefe Architekturen und insbesondere GoogLeNet (22 Schichten) sind während des Trainings vom Problem des Verschwindens von Gradienten bedroht (Back-Propagation-Algorithmus). Die Ingenieure von GoogLeNet haben dieses Problem behoben, indem sie auch Klassifizierer in die Zwischenschichten eingefügt haben, sodass der endgültige Verlust eine Kombination aus dem mittleren Verlust und dem endgültigen Verlust ist. Aus diesem Grund sehen Sie im Gegensatz zur üblichen Einzelschicht als letzte Schicht des Netzwerks insgesamt drei Verlustschichten.

Längere Antwort: Beim klassischen maschinellen Lernen wird normalerweise zwischen Feature-Engineering und Klassifizierung unterschieden. Neuronale Netze sind am bekanntesten für ihre Fähigkeit, Probleme "durchgehend" zu lösen, dh sie kombinieren die Stufen des Lernens einer Darstellung für die Daten und des Trainings eines Klassifikators. Daher können Sie sich ein neuronales Netzwerk mit einer Standardarchitektur (z. B. AlexNet) so vorstellen, dass es aus einer "Repräsentationslern" -Phase (die Schichten bis zum vorletzten) und einer "Klassifizierungs" -Phase besteht, die erwartungsgemäß umfasst eine Verlustfunktion.

Bei der Schaffung tieferer Netzwerke tritt ein Problem auf, das als Problem der "verschwindenden Gradienten" bezeichnet wird. Es ist eigentlich nicht spezifisch für neuronale Netze; eher zu irgendwelchen gradientenbasierten Lernmethoden. Es ist nicht so trivial und verdient daher eine angemessene Erklärung für sich selbst; siehe hier für eine gute Referenz. Intuitiv können Sie über die Gradienten nachdenken, die immer weniger Informationen enthalten, je tiefer wir in das Netzwerk eindringen. Dies ist natürlich ein großes Problem, da wir die Parameter (Gewichte) des Netzwerks ausschließlich anhand der Gradienten mithilfe der "Back-Prop" abstimmen "Algorithmus.

Wie haben die Entwickler von GoogLeNet mit diesem Problem umgegangen? Sie erkannten die Tatsache, dass nicht nur die Merkmale der letzten Schichten alle diskriminierenden Informationen enthalten: Zwischenmerkmale können auch verschiedene Bezeichnungen unterscheiden; und vor allem sind ihre Werte "zuverlässiger", da sie aus früheren Schichten extrahiert werden, in denen der Gradient mehr Informationen enthält. Aufbauend auf dieser Intuition fügten sie "Hilfsklassifikatoren" in zwei Zwischenschichten hinzu. Dies ist der Grund für die Verlustschichten "Early Escape" in der Mitte des Netzwerks, auf die Sie in Ihrer Frage verwiesen haben.

Der Gesamtverlust ist dann eine Kombination dieser drei Verlustschichten. Ich zitiere aus dem Originalartikel:

Diese Klassifizierer haben die Form kleinerer Faltungsnetzwerke, die über die Ausgabe der Inception (4a) - und (4d) -Module gelegt werden. Während des Trainings wird ihr Verlust mit einem Abzinsungsgewicht zum Gesamtverlust des Netzwerks addiert (die Verluste der Hilfsklassifizierer wurden mit 0,3 gewichtet). Zur Inferenzzeit werden diese Hilfsnetzwerke verworfen.

Visuell:

Geben Sie hier die Bildbeschreibung ein


1
"... frühere Schichten, in denen der Gradient mehr Informationen enthält" - warum ist das so?
Max

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.