Qual è il ruolo del bias nelle reti neurali?


807

Sono a conoscenza della discesa del gradiente e dell'algoritmo di retro-propagazione. Quello che non capisco è: quando è importante usare un bias e come lo usi?

Ad esempio, quando si mappa la ANDfunzione, quando uso 2 ingressi e 1 uscita, non fornisce i pesi corretti, tuttavia, quando utilizzo 3 ingressi (1 dei quali è un errore), fornisce i pesi corretti.


17
Dai un'occhiata a questa domanda: stackoverflow.com/questions/1697243/help-with-perceptron per un esempio di un problema reale in cui l'OP non utilizzava un termine di errore
Amro

6
Ed ecco un bell'esempio in Python del perché la distorsione è importante :) stackoverflow.com/questions/38248657/…
minerali

3
ecco un grande articolo pieno di backprop per la matematica, che copre anche gli aggiornamenti di bias: theclevermachine.wordpress.com/2014/09/06/…
Andy

Risposte:


1361

Penso che i pregiudizi siano quasi sempre utili. In effetti, un valore di polarizzazione consente di spostare la funzione di attivazione a sinistra o a destra , che può essere fondamentale per l'apprendimento riuscito.

Potrebbe aiutare a guardare un semplice esempio. Considera questa rete a 1 input e 1 output che non ha distorsioni:

rete semplice

L'output della rete viene calcolato moltiplicando l'ingresso (x) per il peso (w 0 ) e passando il risultato attraverso un qualche tipo di funzione di attivazione (ad es. Una funzione sigmoid.)

Ecco la funzione che questa rete calcola, per vari valori di w 0 :

output di rete, dati diversi pesi w0

La modifica del peso w 0 modifica sostanzialmente la "pendenza" del sigmoide. È utile, ma cosa succede se si desidera che la rete produca 0 quando x è 2? Il solo cambiamento della pendenza del sigmoide non funzionerà davvero - vuoi essere in grado di spostare l'intera curva a destra .

Questo è esattamente ciò che il pregiudizio ti consente di fare. Se aggiungiamo un pregiudizio a quella rete, in questo modo:

rete semplice con un pregiudizio

... quindi l'uscita della rete diventa sig (w 0 * x + w 1 * 1.0). Ecco come appare l'output della rete per vari valori di w 1 :

uscita di rete, dati diversi pesi w1

Avere un peso di -5 per w 1 sposta la curva a destra, il che ci consente di avere una rete che emette 0 quando x è 2.


6
@ user1621769: l'approccio più semplice è una rete con un singolo nodo di polarizzazione che si connette a tutti i nodi non di input nella rete.
Nate Kohl,

65
@ user1621769: La funzione principale di un bias è quella di fornire ad ogni nodo un valore costante trainabile (oltre agli input normali che il nodo riceve). È possibile ottenere ciò con un singolo nodo di polarizzazione con connessioni a N nodi o con N nodi di polarizzazione ciascuno con una singola connessione; il risultato dovrebbe essere lo stesso.
Nate Kohl,

4
@ user1621769: potresti non riuscire a tenere conto dei coefficienti correttori? Ogni connessione ha una ponderazione allenabile e il nodo di polarizzazione ha un valore fisso.
Dimpl

4
@ user132458, se l'algoritmo di training scopre che non è necessario il bias shift, i pesi di bias probabilmente si avvicineranno a 0. Eliminando così il segnale di bias.
Jorgenkg,

8
@Gabriel: dovrebbe esserci un pregiudizio per neurone nascosto.

343

Solo per aggiungere i miei due centesimi.

Un modo più semplice per capire qual è il bias: è in qualche modo simile alla costante b di una funzione lineare

y = ax + b

Ti consente di spostare la linea su e giù per adattare meglio la previsione ai dati. Senza b la linea passa sempre attraverso l'origine (0, 0) e potresti ottenere una misura più scadente.


5
bella anologia ma se impostiamo il bias su 1, allora perché fa differenza con l'adattamento ora che ogni linea ora passerà attraverso (0,1) anziché (0,0)? Poiché tutte le linee sono ora distorte da y = 1 invece di y = 0 perché è utile?
cielo blu,

36
@ cielo blu Perché moltiplicando un bias per un peso, è possibile spostarlo di un importo arbitrario.
Carcigenicato,

3
È corretto chiamare b un "coefficiente"? Un "coefficiente" non è un numero utilizzato per moltiplicare una variabile?
Ben

8
b non è "coefficiente" piuttosto è intercetta.
Espanta,

22
b è il coefficiente di $ x ^ 0 $. a è il coefficiente di $ x ^ 1 $

65

Questo thread mi ha davvero aiutato a sviluppare il mio progetto. Ecco alcune ulteriori illustrazioni che mostrano il risultato di una semplice rete neurale feed forward a 2 strati con e senza unità di polarizzazione su un problema di regressione a due variabili. I pesi vengono inizializzati in modo casuale e viene utilizzata l'attivazione ReLU standard. Come hanno concluso le risposte prima di me, senza il pregiudizio la rete ReLU non è in grado di deviare da zero a (0,0).

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


1
Puoi aggiungere la funzione tracciata con le etichette degli assi?
Komal-SkyNET il

46

Due diversi tipi di parametri possono essere regolati durante l'allenamento di una ANN, i pesi e il valore nelle funzioni di attivazione. Ciò non è pratico e sarebbe più semplice se solo uno dei parametri fosse regolato. Per far fronte a questo problema viene inventato un neurone diagonale. Il neurone bias si trova in uno strato, è collegato a tutti i neuroni nel livello successivo, ma nessuno nel livello precedente ed emette sempre 1. Poiché il neurone bias emette 1, i pesi, collegati al neurone bias, vengono aggiunti direttamente a la somma combinata degli altri pesi (equazione 2.1), proprio come il valore t nelle funzioni di attivazione. 1

Il motivo per cui non è pratico è perché stai regolando contemporaneamente il peso e il valore, quindi qualsiasi modifica al peso può neutralizzare la modifica al valore che era utile per una precedente istanza di dati ... l'aggiunta di un neurone di polarizzazione senza un valore di modifica consente voi per controllare il comportamento del livello.

Inoltre, la distorsione consente di utilizzare un'unica rete neurale per rappresentare casi simili. Considera la funzione booleana AND rappresentata dalla seguente rete neurale:

ANN
(fonte: aihorizon.com )

  • w0 corrisponde a b .
  • w1 corrisponde a x1 .
  • w2 corrisponde a x2 .

Un singolo percettrone può essere usato per rappresentare molte funzioni booleane.

Ad esempio, se assumiamo valori booleani di 1 (vero) e -1 (falso), un modo per utilizzare un percettrone a due ingressi per implementare la funzione AND è impostare i pesi w0 = -3 e w1 = w2 = .5. Questo percettrone può essere fatto per rappresentare la funzione OR invece modificando la soglia in w0 = -.3. In effetti, AND e OR possono essere visti come casi speciali di funzioni m-of-n: cioè funzioni in cui almeno m degli n input al perctron devono essere veri. La funzione OR corrisponde a m = 1 e la funzione AND a m = n. Qualsiasi funzione m-of-n viene rappresentata facilmente utilizzando un perctron impostando tutti i pesi di input sullo stesso valore (ad es. 0,5) e quindi impostando la soglia w0 di conseguenza.

I perceptroni possono rappresentare tutte le funzioni booleane primitive AND, OR, NAND (1 AND) e NOR (1 OR). Machine Learning - Tom Mitchell)

La soglia è il bias e w0 è il peso associato al neurone bias / soglia.


8
Pensala come una regola empirica generale: aggiungi pregiudizi! Le reti neurali sono "imprevedibili" fino a un certo punto, quindi se aggiungi un neurone bias hai maggiori probabilità di trovare soluzioni più velocemente rispetto a quando non usi un bias. Naturalmente questo non è matematicamente provato, ma è quello che ho osservato in letteratura e in generale.
Kiril

25

Il pregiudizio non è un NNtermine, è un termine generico di algebra da considerare.

Y = M*X + C (equazione in linea retta)

Ora, se è C(Bias) = 0così, la linea passerà sempre attraverso l'origine, vale a dire (0,0), e dipende solo da un parametro, cioè M, che è la pendenza, quindi abbiamo meno cose con cui giocare.

C, che è il pregiudizio prende qualsiasi numero e ha l'attività di spostare il grafico, e quindi in grado di rappresentare situazioni più complesse.

In una regressione logistica, il valore atteso del target viene trasformato da una funzione di collegamento per limitare il suo valore all'intervallo di unità. In questo modo, le previsioni del modello possono essere viste come probabilità di risultato primarie, come mostrato: funzione Sigmoid su Wikipedia

Questo è lo strato di attivazione finale nella mappa NN che accende e spegne il neurone. Anche in questo caso la distorsione ha un ruolo da svolgere e sposta la curva in modo flessibile per aiutarci a mappare il modello.


1
quindi quali problemi nell'allenamento / apprendimento della rete neurale si verificano quando la linea passa sempre attraverso l'origine quando non si usa il bias?
Daniyal Javaid,

@DaniyalJavaid Potrebbe essere una possibilità e non un problema
Pradi KL,

23

Uno strato in una rete neurale senza distorsione non è altro che la moltiplicazione di un vettore di input con una matrice. (Il vettore di output potrebbe essere passato attraverso una funzione sigmoide per la normalizzazione e per l'uso in ANN multi-strato in seguito, ma questo non è importante.)

Ciò significa che stai usando una funzione lineare e quindi un input di tutti gli zeri verrà sempre associato a un output di tutti gli zeri. Questa potrebbe essere una soluzione ragionevole per alcuni sistemi, ma in generale è troppo restrittiva.

Usando un bias, stai effettivamente aggiungendo un'altra dimensione al tuo spazio di input, che assume sempre il valore uno, quindi stai evitando un vettore di input di tutti gli zeri. Non perdi alcuna generalità in questo modo perché la tua matrice di peso allenata non deve necessariamente essere suriettiva, quindi può comunque essere mappata su tutti i valori precedentemente possibili.

2d ANN:

Per una ANN che associa due dimensioni a una dimensione, come nel riprodurre le funzioni AND o OR (o XOR), puoi pensare a una rete neuronale nel modo seguente:

Sul piano 2d contrassegnare tutte le posizioni dei vettori di input. Quindi, per i valori booleani, si desidera contrassegnare (-1, -1), (1,1), (-1,1), (1, -1). Quello che fa la tua ANN ora è disegnare una linea retta sul piano 2d, separando l'uscita positiva dai valori di uscita negativi.

Senza pregiudizi, questa linea retta deve passare attraverso zero, mentre con pregiudizi sei libero di metterlo ovunque. Quindi, vedrai che senza pregiudizi stai affrontando un problema con la funzione AND, dal momento che non puoi mettere entrambi (1, -1) e (-1,1) sul lato negativo. (Non possono essere sulla linea.) Il problema è uguale per la funzione OR. Con un pregiudizio, tuttavia, è facile disegnare la linea.

Si noti che la funzione XOR in quella situazione non può essere risolta nemmeno con bias.


4
Se si utilizza una funzione di trasferimento sigmoideo, si introduce la non linearità. Affermare che questa è una funzione lineare è sbagliato e anche in qualche modo pericoloso, poiché la non linearità del sigmoide è la chiave per la soluzione di diversi problemi. Inoltre, sigmoid (0) = 0,5, e non c'è x per cui sigmoid (x) = 0.
bayer

2
Sì, ma è 0,5 per qualsiasi input di 0 senza distorsione, indipendentemente da come appare la funzione lineare prima. E questo è il punto. Normalmente non alleni la tua funzione sigmoidea, vivi solo con essa. Il problema della linearità si verifica molto prima della funzione sigmoide.
Debilski,

Ottengo il tuo punto: il layer non è in grado di apprendere un output diverso per 0 rispetto a quello con cui è iniziato. È corretto e importante. Tuttavia, a mio avviso, l '"argomento della funzione lineare" non si applica. Anche con un bias, la funzione è ancora lineare. La proprietà di linearità è fuorviante qui. (Sì, potrei essere un pignolo.)
Bayer,

Direi che con un pregiudizio è affine . ( en.wikipedia.org/wiki/Affine_transformation#Representation )
Debilski

Sì, hai ragione. Grazie per avermi sottolineato questa differenza. (Perché allora la chiamiamo regressione lineare, a proposito, sebbene sia affine?)
Bayer,

20

Quando usi le ANN, raramente conosci gli interni dei sistemi che vuoi imparare. Alcune cose non possono essere apprese senza pregiudizi. Ad esempio, dai un'occhiata ai seguenti dati: (0, 1), (1, 1), (2, 1), sostanzialmente una funzione che mappa qualsiasi x su 1.

Se hai una rete a più livelli (o una mappatura lineare), non puoi trovare una soluzione. Tuttavia, se hai un pregiudizio è banale!

In un'impostazione ideale, un bias potrebbe anche mappare tutti i punti sulla media dei punti target e lasciare che i neuroni nascosti modellino le differenze da quel punto.


18

La modifica del solo PESO neuronale serve solo a manipolare la forma / curvatura della funzione di trasferimento e non il suo equilibrio / punto di attraversamento zero .

L'introduzione del pregiudizio neuroni consente di spostare la curva della funzione di trasferimento in orizzontale (sinistra / destra) lungo l'asse di input lasciando inalterata la forma / curvatura. Ciò consentirà alla rete di produrre output arbitrari diversi dai valori predefiniti e quindi è possibile personalizzare / spostare la mappatura input-to-output in base alle proprie esigenze.

Vedi qui per una spiegazione grafica: http://www.heatonresearch.com/wiki/Bias


16

Solo per aggiungere a tutto questo qualcosa che è molto mancante e che il resto, molto probabilmente, non sapeva.

Se stai lavorando con le immagini, potresti in realtà preferire non usare alcun pregiudizio. In teoria, in questo modo la tua rete sarà più indipendente dalla grandezza dei dati, come nel caso in cui l'immagine sia scura o chiara e vivida. E la rete imparerà a fare il suo lavoro studiando la relatività all'interno dei tuoi dati. Molte moderne reti neurali utilizzano questo.

Per altri dati avere distorsioni potrebbe essere fondamentale. Dipende dal tipo di dati con cui hai a che fare. Se le tue informazioni sono invarianti di magnitudo --- se l'immissione di [1,0,0,1] dovrebbe portare allo stesso risultato di se l'immissione di [100,0,10], potresti stare meglio senza distorsioni.


probabilmente stai meglio con la normalizzazione. Qual è un esempio di una rete moderna che utilizza la "mancanza di parzialità" per produrre invariabilità di grandezza?
AwokeConoscendo il

@AwokeKnowing, credo, il solito ResNet lo utilizza, poiché fa parte della sua "inizializzazione", ma non sono esattamente sicuro che lo abbiano fatto rigorosamente per questo scopo o, forse, per considerazioni sulla dimensione / efficienza del modello e io ' Non sono sicuro che questo concetto sia pubblicato ovunque. Ma penso che sia completamente comprensibile a livello teorico. Se non si ha un bias che non si ridimensiona, quando si ridimensionano i valori, tutti gli output si ridimensionano semplicemente di conseguenza. Consapevoli di questo concetto, o no, gran parte delle architetture moderne non ha pregiudizi almeno in gran parte delle loro strutture.
Íhor Mé,

16

In un paio di esperimenti nella mia tesi di master (ad es. Pagina 59), ho scoperto che il bias potrebbe essere importante per il primo strato (i), ma soprattutto agli strati completamente collegati alla fine sembra non avere un ruolo importante.

Ciò potrebbe dipendere fortemente dall'architettura di rete / dal set di dati.


Sembra del tutto analogo al processo di modellazione dei sistemi "a mano" con regressione lineare. Il modello più semplice sarebbe Y_bar = mean (Y). Quindi aggiungi complessità includendo vari termini X, fermandoti quando non c'è un significativo guadagno di informazioni.
IRTFM

15

La deviazione decide di quanto angolo vuoi ruotare il tuo peso.

Nel grafico bidimensionale, peso e distorsione ci aiutano a trovare il limite decisionale degli output. Diciamo che dobbiamo costruire la funzione AND, la coppia input (p) -output (t) dovrebbe essere

{p = [0,0], t = 0}, {p = [1,0], t = 0}, {p = [0,1], t = 0}, {p = [1,1] , t = 1}

inserisci qui la descrizione dell'immagine

Ora dobbiamo trovare il confine decisionale, il confine dell'idea dovrebbe essere:

inserisci qui la descrizione dell'immagine

Vedere? W è perpendicolare al nostro confine. Quindi, diciamo che W ha deciso la direzione del confine.

Tuttavia, è difficile trovare W corretto per la prima volta. Principalmente, scegliamo il valore W originale in modo casuale. Pertanto, il primo limite può essere questo: inserisci qui la descrizione dell'immagine

Ora il confine è pareller all'asse y.

Vogliamo ruotare i confini, come?

Cambiando il W.

Quindi, usiamo la funzione della regola di apprendimento: W '= W + P: inserisci qui la descrizione dell'immagine

W '= W + P è equivalente a W' = W + bP, mentre b = 1.

Pertanto, modificando il valore di b (bias), è possibile decidere l'angolo tra W 'e W. Questa è "la regola di apprendimento di ANN".

Potresti anche leggere Neural Network Design di Martin T. Hagan / Howard B. Demuth / Mark H. Beale, capitolo 4 "Perceptron Learning Rule"


1
Illustrazione / illustrazione utile
javadba

10

In particolare, di Nate risposta , di ZFY risposta , e di Pradi risposta sono grandi.

In termini più semplici, i pregiudizi consentono di apprendere / memorizzare sempre più variazioni di pesi ... ( nota a margine : a volte data una certa soglia). Comunque, più variazioni significano che i pregiudizi aggiungono una rappresentazione più ricca dello spazio di input ai pesi appresi / memorizzati del modello. (Dove pesi migliori possono accrescere il potere d'ipotesi della rete neurale)

Ad esempio, nei modelli di apprendimento, l'ipotesi / ipotesi è desiderabilmente limitata da y = 0 o y = 1 dato un certo input, in forse un compito di classificazione ... cioè un po y = 0 per alcuni x = (1,1) e alcuni y = 1 per alcuni x = (0,1). (La condizione sull'ipotesi / risultato è la soglia di cui ho parlato sopra. Nota che i miei esempi impostano gli ingressi X in modo che ciascuno sia x = un doppio o 2 valori-valutati, anziché gli ingressi x singoli valutati di Nate di alcune raccolte X).

Se ignoriamo la distorsione, molti input potrebbero finire per essere rappresentati da molti degli stessi pesi (cioè i pesi appresi si verificano principalmente vicino all'origine (0,0). Il modello sarebbe quindi limitato a quantità più scarse di pesi buoni, invece di molti altri buoni pesi che potrebbe imparare meglio con distorsione (dove pesi poco appresi portano a ipotesi più scarse o una diminuzione del potere di indovinare della rete neurale)

Pertanto, è ottimale che il modello apprenda sia vicino all'origine, sia anche nel maggior numero possibile di punti all'interno del limite di soglia / decisione. Con il pregiudizio possiamo consentire gradi di libertà vicini all'origine, ma non limitati alla regione immediata dell'origine.


9

Espandendo sulla spiegazione di @zfy ... L'equazione per un input, un neurone e un output dovrebbe apparire:

y = a * x + b * 1    and out = f(y)

dove x è il valore dal nodo di input e 1 è il valore del nodo di polarizzazione; y può essere direttamente il tuo output o essere passato a una funzione, spesso una funzione sigmoid. Nota anche che il pregiudizio potrebbe essere qualsiasi costante, ma per rendere tutto più semplice scegliamo sempre 1 (e probabilmente è così comune che @zfy lo ha fatto senza mostrarlo e spiegarlo).

La tua rete sta cercando di apprendere i coefficienti aeb per adattarsi ai tuoi dati. Quindi puoi capire perché l'aggiunta dell'elemento gli b * 1consente di adattarsi meglio a più dati: ora puoi cambiare sia l'inclinazione che l'intercettazione.

Se hai più di un input, la tua equazione sarà simile a:

y = a0 * x0 + a1 * x1 + ... + aN * 1

Si noti che l'equazione descrive ancora un neurone, una rete di uscita; se hai più neuroni aggiungi semplicemente una dimensione alla matrice dei coefficienti, per multiplexare gli input a tutti i nodi e riassumere il contributo di ciascun nodo.

Che puoi scrivere in formato vettoriale come

A = [a0, a1, .., aN] , X = [x0, x1, ..., 1]
Y = A . XT

cioè mettendo i coefficienti in un array e (input + bias) in un altro hai la soluzione che desideri come punto prodotto dei due vettori (devi trasporre X affinché la forma sia corretta, ho scritto XT una 'X trasposta')

Quindi alla fine puoi anche vedere il tuo pregiudizio poiché è solo un altro input per rappresentare la parte dell'output che è effettivamente indipendente dal tuo input.


Mi sembra di ricordare dalla classe di Andrew Ng che il pregiudizio è stato lasciato fuori durante una parte del processo di formazione. potresti aggiornare la tua risposta per spiegare che considerando la tua conclusione che è "solo un altro input"?
AwokeConoscendo il

@AwokeKnowing Non me lo ricordo dalla lezione di Andrew Ng, ma è stato qualche anno fa. Inoltre, Bias può essere attivato o disattivato a seconda di ciò che si sta tentando di imparare. Ho letto che nell'elaborazione delle immagini non lo usano per consentire il ridimensionamento. Per me se lo usi, lo usi anche in allenamento. L'effetto è stabilizzare i coefficienti quando tutti o parte degli input sono nulli o quasi nulli. Perché non usare la distorsione durante l'allenamento e poi usarla quando si utilizza l'NN per prevedere gli output per i nuovi input? Come potrebbe essere utile?
RobMcZag,

No, era più simile, usalo nel passaggio in avanti, ma non usarlo quando calcoli il gradiente per il backprop o qualcosa del genere.
Awoke

@AwokeKnowing Suppongo che sia un modo per risparmiare un po 'di memoria e tempo. Puoi decidere che non ti interessa apprendere i coefficienti per le unità di polarizzazione. Questo può andare bene se hai almeno un livello nascosto poiché il bias fornirà un input a quel layer e l'output può essere appreso dai coefficienti dal primo al secondo layer. Non sono sicuro che la velocità di convergenza cambierà. Nel mio esempio di un livello sei costretto a imparare anche il coefficiente di polarizzazione mentre viene applicato all'output.
RobMcZag,

In molti semplici problemi, i dati di destinazione sono stati sminuiti e ridimensionati, quindi non è necessaria alcuna distorsione e il potenziale per un'eccessiva influenza esterna nelle variabili con ampi intervalli è ridotto.
IRTFM

9

Oltre alle risposte menzionate, vorrei aggiungere altri punti.

Il bias funge da nostra ancora. È un modo per noi di avere una sorta di baseline in cui non andiamo al di sotto di questo. In termini di un grafico, pensa come y = mx + b è come un'intercetta y di questa funzione.

output = input moltiplica il valore del peso e aggiunge un valore di polarizzazione, quindi applica una funzione di attivazione.


8

Per pensare in modo semplice, se hai y = w1 * x dove y è il tuo output e w1 è il peso immagina una condizione in cui x = 0 allora y = w1 * x è uguale a 0 , se vuoi aggiornare il tuo peso hai per calcolare la quantità di modifiche di delw = target-y dove target è l'output di destinazione, in questo caso 'delw' non cambierà poiché y viene calcolato come 0, quindi supponiamo che se puoi aggiungere un valore extra, ti aiuterà y = w1 * x + w0 * 1 , dove polarizzazione = 1 e peso possono essere regolati per ottenere una polarizzazione corretta. Considerare l'esempio seguente.

In termini di linea, l'intercetta è una forma specifica di equazioni lineari.

y = mx + b

controlla l'immagine

Immagine

qui b è (0,2)

se vuoi aumentarlo a (0,3) come lo farai cambiando il valore di b quale sarà il tuo pregiudizio


7

Per tutti i libri ML che ho studiato, la W è sempre definita come l'indice di connettività tra due neuroni, il che significa che maggiore è la connettività tra due neuroni, più forti saranno i segnali che verranno trasmessi dal neurone che spara al neurone bersaglio o Y = w * X come risultato per mantenere il carattere biologico dei neuroni, dobbiamo mantenere 1> = W> = -1, ma nella regressione reale, la W finirà con | W | > = 1 che contraddicono il funzionamento dei neuroni, di conseguenza propongo W = cos (theta), mentre 1> = | cos (theta) | e Y = a * X = W * X + b mentre a = b + W = b + cos (theta), b è un numero intero


7

Nelle reti neurali:

  1. Ogni neurone ha un pregiudizio
  2. È possibile visualizzare la distorsione come soglia (valori generalmente opposti della soglia)
  3. La somma ponderata dagli strati di input + bias decide l'attivazione del neurone
  4. Bias aumenta la flessibilità del modello.

In assenza di distorsioni, il neurone potrebbe non essere attivato considerando solo la somma ponderata dallo strato di input. Se il neurone non è attivato, le informazioni da questo neurone non passano attraverso il resto della rete neurale.

Il valore del bias è apprendibile.

inserisci qui la descrizione dell'immagine

In effetti, bias = - soglia. Puoi pensare al bias come è facile far sì che il neurone emetta un 1 - con un bias molto grande, è molto facile per il neurone emettere un 1, ma se il bias è molto negativo, allora è difficile.

in sintesi: la distorsione aiuta a controllare il valore al quale si attiverà la funzione di attivazione.

Segui questo video per maggiori dettagli

Pochi altri link utili:

geeksforgeeks

towardsdatascience


1
Bella interpretazione. Ma non sono chiaro come il pregiudizio sia apprendibile (o allenabile?). In un semplice caso in cui la perdita = ReLU (omega * x + a), l'omega del peso può essere allenata attraverso la regola della catena, ma come si può aallenare la distorsione quando il gradiente aè sempre costante?
Libin Wen,

4

Il termine bias viene utilizzato per regolare la matrice di output finale come fa l'intercetta y. Ad esempio, nell'equazione classica, y = mx + c, se c = 0, la linea passerà sempre attraverso 0. L'aggiunta del termine di polarizzazione fornisce maggiore flessibilità e una migliore generalizzazione al nostro modello di rete neurale.


0

In generale, nell'apprendimento automatico abbiamo questa formula di base Bias-Variance Tradeoff Perché in NN abbiamo un problema di Overfitting (problema di generalizzazione del modello in cui piccole variazioni nei dati portano grandi cambiamenti nel risultato del modello) e per questo abbiamo una grande varianza, introducendo un un piccolo pregiudizio potrebbe aiutare molto. Considerando la formula al di sopra del compromesso di bias-varianza , in cui il bias è quadrato, quindi l'introduzione di piccoli bias potrebbe portare a ridurre molto la varianza. Quindi, introduci il pregiudizio, quando hai una grande varianza e un pericolo eccessivo.


3
Le unità di polarizzazione e il compromesso di variazione di polarizzazione sono concetti separati. La domanda riguarda la prima.
SigmaX,

0

La distorsione aiuta a ottenere un'equazione migliore

Immagina l'input e l'output come una funzione y = ax + be devi mettere la linea giusta tra input (x) e output (y) per minimizzare l'errore globale tra ogni punto e la linea, se mantieni l'equazione in questo modo y = ax, avrai un parametro solo per l'adattamento, anche se si trova il modo migliore per aridurre al minimo l'errore globale sarà un po 'lontano dal valore desiderato

Puoi dire che la distorsione rende l'equazione più flessibile per adattarsi ai migliori valori

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.