Genaue Definition von Maxout


8

Ich habe versucht herauszufinden, was genau es mit der Aktivierungsfunktion "Maxout" in neuronalen Netzen bedeutet. Es gibt diese Frage, dieses Papier und sogar das Deep Learning-Buch von Bengio et al. , außer mit nur ein paar Informationen und einem großen TODO daneben.

Ich werde die hier beschriebene Notation zur Verdeutlichung verwenden. Ich möchte es einfach nicht erneut eingeben und Fragen aufblähen lassen. Kurz gesagt, aji=σ(zji)=σ(kaki1wjki+bji) , mit anderen Worten, ein Neuron hat eine einzelne Vorspannung, ein einzelnes Gewicht für jede Eingabe, und dann summiert es die Eingaben mal die Gewichte, addiert dann die Vorspannung und wendet die Aktivierungsfunktion an, um den Ausgabewert (auch Aktivierungswert genannt) zu erhalten.

Bisher weiß ich, dass Maxout eine Aktivierungsfunktion ist, die "das Maximum ihrer Eingänge ausgibt". Was bedeutet das? Hier sind einige Ideen, die ich daraus interpretieren könnte:

  1. aji=maxk(aki1)
  2. aji=maxk(aki1wjki)+bji , wobei einfach die Summe ersetzt wird, die normalerweise durch eine max.
  3. aji=maxk(aki1wjki+bjki) , wobei für jedes Neuron jetzt ein Bias-Wert für jeden Eingang anstelle eines einzelnen Bias-Werts angewendet wird nach dem Summieren aller Eingaben. Dies würde die Rückausbreitung anders machen, aber immer noch möglich.
  4. Jedes wird wie berechnet, und jedes Neuron hat eine einzelne Vorspannung und ein Gewicht für jede Eingabe. Jedoch ähnlich wie Softmax ( ), dies das Maximum aller nimmt ist darin aktuelle Ebene ist . Formal ist . a i j = exp ( z i j )zjizaji=exp(zji)kexp(zki)zaji=maxkzki

Sind einige davon richtig? Oder ist es etwas anderes?

Antworten:


9

Nichts des oben Genannten; Maxout-Netzwerke folgen nicht der von Ihnen angenommenen Architektur.

Ab dem Beginn des Abschnitts "Beschreibung von Maxout" in dem von Ihnen verlinkten Artikel, in dem Maxout definiert wurde:

Bei einer Eingabe ( kann oder der Zustand einer verborgenen Schicht sein) implementiert eine maximal verborgene Schicht die Funktion x vxRdxv

hi=maxj[1,k]zij

wobei und und sind gelernte Parameter. W R d × m × k b R m × kzij=xTWij+bijWRd×m×kbRm×k

Jede Einheit der Einheiten hat also verschiedene affine Kombinationen der vorherigen Schicht und gibt das Maximum dieser affinen Funktionen aus. Stellen Sie sich vor, jede Ebene wird mit verschiedenfarbigen Verbindungen mit der vorherigen Ebene verbunden und nimmt das Maximum der Farben.k k kmkkk

Alternativ können Sie sich eine Maxout-Einheit als zwei Schichten vorstellen: Jede der Einheiten der vorherigen Schicht ist mit der Identitätsaktivierungsfunktion mit jeder der Einheiten verbunden , und dann verbindet eine einzelne Einheit diese linearen Einheiten mit einer Max-Pooling-Aktivierung .kkk

Dies bedeutet, dass die Einheit, die als Funktion von bis , das stückweise Maximum affiner Funktionen ist. Die Abbildung 1 des Papiers zeigt einige Beispiele für verschiedene Funktionen, wie sie aussehen könnten:R.RdR

Geben Sie hier die Bildbeschreibung ein

Jede der gestrichelten Linien repräsentiert ein . Sie können jede konvexe Funktion auf diese Weise darstellen, was sehr schön ist.WTx+b


Da also ist, bedeutet dies, dass . Wie nimmt man das Maximum davon? Ist es die Größe der Vektoren? z i 1 , z i 2 , . . . R mzijRm×kzi1,zi2,...Rm
Phylliida

@DanielleEnsign Die Indizierung ist hier etwas unüblich, aber jedes , , also . Es ist eine normale, skalare max. x R d b i jR z i jR.WijRdxRdbijRzijR
Dougal

2
Ah, ich verstehe es jetzt endlich, danke. Grundsätzlich besteht jedes Neuron aus vielen "Subneuronen", die die Eingabe in dieses Neuron aufnehmen, ihre eigenen Gewichte und Vorurteile haben und über die Identitätsaktivierungsfunktion ausgegeben werden. Dann ist die Ausgabe an dieses Neuron das Maximum aller Ausgaben seines Subneurons.
Phylliida

Wäre es richtig zu sagen, dass Sie dies modellieren können, indem Sie k mehrere Verbindungen zwischen jedem Paar verbundener Neuronen (anstatt wie üblich eine einzelne Verbindung) verwenden, k Aktivierungen für jedes Paar berechnen und dann die oberste als Gewinner auswählen? Oder ist es manchmal notwendig, separate Verzerrungen für jede Unterverbindung zu verwenden, wodurch es notwendig wird, jede Verbindung so zu modellieren, als ob sie zu einem anderen Unterneuron gehört?
SQLServerSteve

1
@SQLServerSteve Jede der Verbindungen kann unterschiedliche Verzerrungen aufweisen (dies ist beispielsweise für das "Quadrat" im obigen Bild erforderlich). Aber Sie können immer noch so darüber nachdenken, wie Sie es beschrieben haben. Sie müssen nur auch eine Verzerrung für jede der Verbindungen hinzufügen. Manchmal spricht man von einer imaginären "Bias-Einheit", die immer 1 ausgibt; In diesem Fall funktioniert Ihr Modell einwandfrei, solange die Bias-Einheit auch mehrere Verbindungen hat. k
Dougal
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.