Dalla regola Perceptron alla Discesa del gradiente: in che modo Perceptrons con una funzione di attivazione sigmoidea differisce dalla regressione logistica?


21

In sostanza, la mia domanda è che nei Perceptron multistrato, i percettroni sono usati con una funzione di attivazione sigmoidea. In modo che nella regola di aggiornamento sia calcolato comey^

y^=11+exp(wTxi)

In che modo questo "sigmoide" Perceptron differisce quindi da una regressione logistica?

Direi che un percettrone sigmoideo a strato singolo equivale a una regressione logistica nel senso che entrambi usano nella regola di aggiornamento. Inoltre, entrambi restituisconoy^=11+exp(wTxi)sign(y^=11+exp(wTxi)) nella previsione. Tuttavia, nei percetroni multistrato, la funzione di attivazione sigmoidea viene utilizzata per restituire una probabilità, non un segnale on / off in contrasto con la regressione logistica e un percettrone a strato singolo.

Penso che l'uso del termine "Perceptron" possa essere un po 'ambiguo, quindi lasciatemi fornire alcuni retroscena basati sulla mia attuale comprensione dei percetroni a strato singolo:

Regola percettiva classica

Innanzitutto, il classico perceptron di F. Rosenblatt in cui abbiamo una funzione di passaggio:

Δwd=η(yiyi^)xidyi,yi^{1,1}

per aggiornare i pesi

wk:=wk+Δwk(k{1,...,d})

In modo che sia calcolato comey^

y^=sign(wTxi)=sign(w0+w1xi1+...+wdxid)


Discesa a gradiente

Usando la discesa gradiente, ottimizziamo (minimizziamo) la funzione di costo

J(w)=i12(yiyi^)2yi,yi^R

dove abbiamo numeri "reali", quindi vedo questo sostanzialmente analogo alla regressione lineare con la differenza che il nostro output di classificazione è soglia.

Qui, facciamo un passo nella direzione negativa del gradiente quando aggiorniamo i pesi

Δwk=ηJwk=ηi(yiyi^)(xik)=ηi(yiyi^)xik

Ma qui abbiamo invece diy^=wTxiy^=sign(wTxi)

wk:=wk+Δwk(k{1,...,d})

Inoltre, calcoliamo la somma degli errori al quadrato per un passaggio completo sull'intero set di dati di allenamento (nella modalità di apprendimento batch) in contrasto con la classica regola percettrone che aggiorna i pesi all'arrivo di nuovi campioni di allenamento (analogico alla discesa gradiente stocastica - online apprendimento).


Funzione di attivazione sigmoide

Ora, ecco la mia domanda:

Nei Perceptron multistrato, i percettroni sono usati con una funzione di attivazione sigmoidea. In modo che nella regola di aggiornamento sia calcolato comey^

y^=11+exp(wTxi)

In che modo questo "sigmoide" Perceptron differisce quindi da una regressione logistica?


4
Incredibile, questa domanda da sola mi ha permesso di condensare il mio apprendimento automatico e le basi della rete neurale!
varun,

Risposte:


4

Usando la discesa gradiente, ottimizziamo (minimizziamo) la funzione di costo

J(w)=i12(yiyi^)2yi,yi^R

Se minimizzi l'errore al quadrato medio, allora è diverso dalla regressione logistica. La regressione logistica è normalmente associata alla perdita di entropia crociata, ecco una pagina introduttiva della libreria scikit-learn .


(Presumo che i percettroni multistrato siano la stessa cosa chiamata reti neurali.)

Se hai usato la perdita di entropia incrociata (con regolarizzazione) per una rete neurale a singolo strato, sarà lo stesso modello (modello log-lineare) della regressione logistica. Se si utilizza invece una rete multistrato, può essere considerata una regressione logistica con funzioni di base parametriche non lineari.


Tuttavia, nei percetroni multistrato, la funzione di attivazione sigmoidea viene utilizzata per restituire una probabilità, non un segnale on / off in contrasto con la regressione logistica e un percettrone a strato singolo.

L'output della regressione logistica e delle reti neurali con funzione di attivazione sigmoidea può essere interpretato come probabilità. Poiché la perdita di entropia incrociata è in realtà la probabilità di log negativa definita attraverso la distribuzione di Bernoulli.


2

Perché la discesa gradiente aggiorna ogni parametro in modo da ridurre l'errore di output che deve essere la funzione continua di tutti i parametri. L'attivazione basata su soglia non è differenziabile, per questo motivo viene utilizzata l'attivazione sigmoid o tanh.

Ecco un NN a strato singolo

dJ(w,b)dωkj=dJ(w,b)dzkdzkdωkj

dJ(w,b)dzk=(akyk)(ak(1ak))

dzkdωkj=xk

J(w,b)=12(ykak)2

ak=sigm(zk)=sigm(Wkjxk+bk)

se funzione di attivazione fosse una funzione passo base (soglia), derivato di wrt sarebbe non differenziabile.Jzk

ecco un link che lo spiega in generale.

Modifica: Forse, ho capito male cosa intendi per perceptron. Se non sbaglio, perceptron è la somma ponderata degli input. Se si modifica la ritenuta con la funzione logistica, si trasforma in regressione logistica. NN multistrato con funzioni di attivazione sigmoide (logistica) sono strati in cascata composti da regressioni logistiche.


3
Questo non risponde alla domanda.
Neil G,

Grazie per aver scritto questo bel commento, ma non era quello che stavo chiedendo. La mia domanda non era "perché la discesa gradiente" ma "cosa rende un percettrone con una funzione di attivazione sigmoidea diversa dalla regressione logistica"

y=WTX

1
y=wjTxji

η(ysign(wTxi))xη(ywTxi)xi

2

Intuitivamente, penso a un percettrone multistrato come calcolare una trasformazione non lineare sulle mie caratteristiche di input e quindi alimentare queste variabili trasformate in una regressione logistica.

βiXiβiXjβjX

Non so te, ma nei miei corsi di modellistica e ricerca ho provato tutti i tipi di trasformazioni sensate e stupide delle funzionalità di input per migliorare il loro significato e la previsione generale del modello. Squadrando le cose, prendendo i tronchi, combinandone due in un ritmo, ecc. Non avevo vergogna, ma avevo una pazienza limitata.

Xβi

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.