Was ist maxout im neuronalen Netz?

42

Kann jemand erklären, was maxout-Einheiten in einem neuronalen Netzwerk tun? Wie arbeiten sie und wie unterscheiden sie sich von herkömmlichen Einheiten?

Ich habe versucht, das 2013 erschienene "Maxout Network" -Papier von Goodfellow et al. Zu lesen . (aus der Gruppe von Professor Yoshua Bengio), aber ich verstehe es nicht ganz.

RockTheStar
quelle

Antworten:

26

Ein Maxout-Layer ist einfach ein Layer, bei dem die Aktivierungsfunktion das Maximum der Eingänge ist. Wie in der Veröffentlichung angegeben, kann sogar ein MLP mit 2 maxout-Einheiten jede Funktion approximieren. Sie geben ein paar Gründe an, warum maxout gut abschneiden kann, aber der Hauptgrund, den sie angeben, ist der folgende:

Dropout kann als eine Form der Modellmittelung betrachtet werden, bei der bei jeder Iteration ein zufälliges Teilnetzwerk trainiert wird und am Ende die Gewichte der verschiedenen solcher zufälligen Netze gemittelt werden. Da man die Gewichte nicht explizit mitteln kann, wird eine Näherung verwendet. Diese Näherung gilt genau für ein lineares Netzwerk.
In maxout werden die Eingaben nicht in die maxout-Ebene verworfen. Somit bleibt die Identität des Eingangs, der den Maximalwert für einen Datenpunkt ausgibt, unverändert. Der Dropout tritt also nur im linearen Teil des MLP auf, aber aufgrund der Maxout-Schicht kann man noch jede Funktion approximieren.
Da der Ausfall nur im linearen Teil auftritt, wird vermutet, dass dies zu einer effizienteren Modellmittelung führt, da die Mittelungsnäherung für lineare Netzwerke genau ist.

Ihr Code ist hier verfügbar .

Opt
quelle
1
Vielen Dank! Ich verstehe jetzt, wie man Maxout macht. Ich habe ein paar Fragen. (1) Also machst du kein Dropout vor dem Maxout-Out gemäß dem, was du geschrieben hast "In Maxout lassen sie die Eingaben nicht auf der Maxout-Ebene fallen." (2) Was bedeutet der lineare Teil von MLP? "Somit tritt der Aussetzer nur im linearen Teil des MLP auf, aber aufgrund der Maxout-Schicht kann man noch jede Funktion approximieren." (3) Warum besser mitteln? "Da der Ausfall nur im linearen Teil auftritt, wird vermutet, dass dies zu einer effizienteren Modellmittelung führt, da die Mittelungsnäherung für lineare Netzwerke genau ist."
RockTheStar
2
max(zi)zi=kxk
Vielen Dank! Für (3), was bedeutet es mit "genau" und warum wird NN mit maxout linear? Vielen Dank für Ihre Hilfe.
RockTheStar
1
Nah maxout ist eine Netzwerkarchitektur. Dropout ist eine Regularisierungstechnik
Opt
1
-1 Dies ist keine korrekte Definition der Maxout-Aktivierungsfunktion von Goodfellow. Die Antwort von @ toussaint-louverture stimmt. stats.stackexchange.com/a/298705/20587
Trisoloriansunscreen
15

Eine maxout-Einheit kann eine stückweise lineare, konvexe Funktion mit bis zu k Stücken lernen . 1

Wenn k also 2 ist, können Sie die ReLU, die absolute ReLU, die undichte ReLU usw. implementieren oder lernen, eine neue Funktion zu implementieren. Wenn k beispielsweise 10 ist, können Sie die konvexe Funktion sogar näherungsweise lernen.

Wenn k 2 ist:

Das Neuron Maxout berechnet die Funktion . Sowohl ReLU als auch Leaky ReLU sind ein Sonderfall dieser Form (für ReLU haben wir beispielsweise ). Das Maxout-Neuron genießt daher alle Vorteile einer ReLU-Einheit (lineares Betriebsregime, keine Sättigung) und hat keine Nachteile (sterbende ReLU).max(w1Tx+b1,w2Tx+b2)w1,b1=0

Im Gegensatz zu den ReLU-Neuronen verdoppelt es jedoch die Anzahl der Parameter für jedes einzelne Neuron, was zu einer hohen Gesamtanzahl von Parametern führt. 2

Sie können die Details hier lesen:
1. DL-Buch
2. http://cs231n.github.io/neural-networks-1

Aaron
quelle
Es verdoppelt nur die Anzahl der Bias-Parameter, nicht alle Gewichte.
Hans