Che cos'è maxout nella rete neurale?


42

Qualcuno può spiegare cosa fanno le unità maxout in una rete neurale? Come si comportano e in che cosa differiscono dalle unità convenzionali?

Ho provato a leggere il documento "Maxout Network" del 2013 di Goodfellow et al. (dal gruppo del professor Yoshua Bengio), ma non capisco bene.

Risposte:


26

Un livello maxout è semplicemente un livello in cui la funzione di attivazione è il massimo degli input. Come indicato nel documento, anche un MLP con 2 unità maxout può approssimare qualsiasi funzione. Forniscono un paio di motivi per cui il maxout può avere un buon rendimento, ma il motivo principale che danno è il seguente:

L'abbandono può essere considerato come una forma di media del modello in cui una sottorete casuale viene allenata ad ogni iterazione e alla fine vengono calcolati i pesi delle diverse reti casuali. Poiché non è possibile calcolare la media dei pesi esplicitamente, viene utilizzata un'approssimazione. Questa approssimazione è esatta per una rete lineare
In maxout, non rilasciano gli input al livello maxout. Pertanto, l'identità dell'ingresso che genera il valore massimo per un punto dati rimane invariata. Pertanto, il dropout si verifica solo nella parte lineare dell'MLP, ma si può ancora approssimare qualsiasi funzione a causa del layer maxout.
Poiché il dropout si verifica solo nella parte lineare, ipotizzano che ciò porta a una media del modello più efficiente poiché l'approssimazione della media è esatta per le reti lineari.

Il loro codice è disponibile qui .


1
Grazie! Capisco come fare maxout ora. Ho alcune domande. (1) Quindi non esegui il dropout prima del maxout secondo quanto hai scritto "In maxout, non rilasciano gli input al livello maxout."? (2) Cosa significa la parte lineare di MLP? "Pertanto, il dropout si verifica solo nella parte lineare dell'MLP, ma si può ancora approssimare qualsiasi funzione a causa del layer maxout." (3) Perché una media migliore? "Poiché il dropout si verifica solo nella parte lineare, ipotizzano che ciò porti a una media del modello più efficiente poiché l'approssimazione della media è esatta per le reti lineari."
RockTheStar,

2
(1) Quindi, da quello che ho capito, un nodo layer maxout è e . Quindi i nodi di input al livello maxout stessi sono combinazioni lineari di nodi negli strati più profondi. Il dropout non viene eseguito per il livello massimo o per il livello z, ma per i livelli più profondi. (2) Per parte lineare, significa strati nascosti che hanno solo funzioni di attivazione lineare (3) migliore media come per le reti lineari, lo schema di media usato dal dropout è esatto. In generale gli NN non sono lineari ma con maxout, rendono la maggior parte degli NN lineari e eseguono solo dropout sulla parte lineare. max(zi)zi=kxk
Opt

Grazie! Per (3) cosa significa "esatto", e perché NN diventa lineare con maxout? Grazie mille per il tuo aiuto.
RockTheStar

1
Nah maxout è un'architettura di rete. L'abbandono è una tecnica di regolarizzazione
Opt

1
-1 Questa non è una definizione corretta della funzione di attivazione maxout di Goodfellow. La risposta di @ toussaint-louverture ha ragione. stats.stackexchange.com/a/298705/20587
Trisoloriansunscreen

15

Un'unità maxout può apprendere una funzione convessa lineare a tratti con un massimo di k pezzi. 1

Quindi, quando k è 2, è possibile implementare ReLU, ReLU assoluto, ReLU che perde, ecc., Oppure può imparare a implementare una nuova funzione. Se k è diciamo 10, puoi persino apprendere approssimativamente la funzione convessa.

Quando k è 2:

il neurone Maxout calcola la funzione . Sia ReLU che Leaky ReLU sono un caso speciale di questo modulo (ad esempio, per ReLU abbiamo ). Il neurone Maxout pertanto gode di tutti i vantaggi di un'unità ReLU (regime di funzionamento lineare, nessuna saturazione) e non presenta i suoi svantaggi (ReLU morente).max(w1Tx+b1,w2Tx+b2)w1,b1=0

Tuttavia, a differenza dei neuroni ReLU, raddoppia il numero di parametri per ogni singolo neurone, portando a un elevato numero totale di parametri. 2

Puoi leggere i dettagli qui:
1. DL book
2. http://cs231n.github.io/neural-networks-1


Raddoppia solo il numero di parametri di polarizzazione, non tutti i pesi.
hans
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.