2016-06-17 12 views
21

Ich versuche derzeit, die Architektur hinter dem word2vec neuronalen Netzlernalgorithmus zu verstehen, um Wörter als Vektoren basierend auf ihrem Kontext darzustellen.Was ist eine Projektionsschicht im Kontext neuronaler Netze?

Nach dem Lesen Tomas Mikolov paper stieß ich auf, was er definiert als Projektionsschicht. Obwohl dieser Begriff häufig verwendet wird, wenn er auf word2vec verwiesen wird, konnte ich keine genaue Definition dessen finden, was es tatsächlich im Kontext des neuronalen Netzes ist.

Word2Vec Neural Net architecture

Meine Frage ist, in dem neuronalen Netz Kontext, was ist eine Projektionsschicht? Ist es der Name einer versteckten Ebene, deren Links zu früheren Knoten dieselben Gewichtungen haben? Haben seine Einheiten tatsächlich eine Aktivierungsfunktion?

Another Ressource, die auch im weiteren Sinne bezieht sich auf das Problem kann in this tutorial, gefunden werden, die auf eine Schicht Projektion bezieht sich auch rund Seite 67.

+0

"dieses Tutorial" link dead! –

Antwort

14

Die Projektionsschicht bildet die diskreten Wortindizes eines N-Gram-Kontexts auf einen kontinuierlichen Vektorraum ab.

Wie in diesem thesis

Die Projektions Schicht derart geteilt wird, dass für die Zusammenhänge das gleiche Wort mehrmals enthält, wird der gleiche Satz von Gewichten angewendet jeden Teil des Projektionsvektor zu bilden. Diese Organisation erhöht effektiv die Menge an Daten, die zum Trainieren der Gewichtungen der Projektionsschicht verfügbar sind, da jedes Wort jedes Kontexttrainingsmusters individuell Änderungen an den Gewichtungswerten beiträgt.

enter image description here

Diese Figur zeigt den trivialen Topologie, wie die Ausgabe des Projektionsschicht kann effizient durch Kopieren von Spalten aus der Projektionsschichtgewichte Matrix zusammengesetzt werden.

Nun, die verborgene Schicht:

Die verborgene Schicht verarbeitet die Ausgabe der Projektionsschicht und ist auch mit einer Anzahl von Neuronen angegeben in der Topologie-Konfigurationsdatei erstellt.

bearbeiten: Eine Erklärung dessen, was in dem Diagramm geschieht

Jedes Neuron in der Projektionsschicht durch eine Anzahl von Gewichten gleich der Größe des Vokabulars dargestellt. Die Projektionsschicht unterscheidet sich von den versteckten und den Ausgangsschichten dadurch, dass keine nichtlineare Aktivierungsfunktion verwendet wird. Ihr Zweck besteht einfach darin, ein effizientes Mittel zum Projizieren des gegebenen n-Gram-Kontextes auf einen reduzierten kontinuierlichen Vektorraum für die nachfolgende Verarbeitung durch verborgene und zur Klassifizierung solcher Vektoren trainierte Ausgabeschichten bereitzustellen. Angesichts der Ein-oder-Null-Natur der Eingabevektorelemente ist die Ausgabe für ein bestimmtes Wort mit Index i einfach die i-te Spalte der trainierten Matrix von Projektionsschichtgewichten (wobei jede Zeile der Matrix die Gewichte eines einzelnen Neurons darstellt)).

3

Die continuous bag of words wird verwendet, um ein einzelnes Wort gegeben seine vorherigen vorherzusagen und zukünftige Einträge: somit ist es ein kontextuelles Ergebnis.

Die Eingaben sind die berechneten Gewichtungen aus den früheren und zukünftigen Einträgen: und alle erhalten neue Gewichtungen identisch: daher ist die Komplexität/Anzahl der Merkmale dieses Modells viel kleiner als bei vielen anderen NN-Architekturen.

RE: what is the projection layer: aus dem Papier, das Sie zitiert

die nicht-lineare verborgene Schicht entfernt wird und die Projektionsschicht für alle Worte geteilt (nicht nur die Projektionsmatrix); somit werden alle Wörter in die gleiche Position projiziert (ihre Vektoren werden gemittelt).

Also die Projektionsschicht ist ein einzelner Satz von shared weights und keine Aktivierungsfunktion wird angezeigt.

beachte, daß die Gewichtungsmatrix zwischen dem Eingang und dem Projektionsschicht wird, wie in dem NNLM

die hidden layer wird in der Tat durch diesen einzelnen Satz dargestellt, so auf die gleiche Weise für alle Wortpositionen geteilt von geteilten Gewichtungen - wie Sie richtig impliziert haben, dass das über alle Eingabeknoten identisch ist.