Intuizione matematica per l'uso di Re-Lu in Machine Learning


10

Quindi, attualmente le funzioni di attivazione più comunemente utilizzate sono quelle di Re-Lu. Quindi ho risposto a questa domanda Qual è lo scopo di una funzione di attivazione in Neural Networks? e mentre scrivevo la risposta mi ha colpito, come può esattamente la funzione non lineare approssimativa di Re-Lu?

Per pura definizione matematica, certo, è una funzione non lineare a causa della curva acuta, ma se ci limitiamo alla parte positiva o negativa dell'asse x, allora è lineare in quelle regioni. Diciamo che prendiamo anche l'intero asse x, quindi anche un po 'lineare (non in senso matematico rigoroso) nel senso che non può approssimare in modo soddisfacente funzioni curvilinee come l'onda sinusoidale ( 0 --> 90) con un singolo strato nascosto come è possibile da un sigmoide funzione di attivazione.

Allora, qual è l'intuizione dietro il fatto che i Re-Lu sono usati in NN, offrendo prestazioni soddisfacenti (non sto chiedendo lo scopo di quelli di Re-lu) anche se sono un po 'lineari? Oppure a volte funzioni non lineari come sigmoide e tanh nel mezzo della rete?

EDIT: Secondo il commento di @ Eka Re-Lu deriva la sua capacità dalla discontinuità che agisce negli strati profondi della rete neurale. Questo significa che i Re-Lu sono buoni fintanto che li usiamo nei Deep NN e non in quelli poco profondi?


2
Non sono un esperto, ma ho trovato questo link quora.com/…
Eka

1
@Eka bel link .... ma stanno affermando fatti
concreti

3
Questa è un'ipotesi; La capacità della relù di approssimare funzioni non lineari può essere il risultato della sua proprietà di discontinuità, cioè di max(0,x)agire in strati profondi della rete neurale. C'è una ricerca openai in cui hanno calcolato le funzioni non lineari usando una rete lineare profonda ecco il link blog.openai.com/nonlinear-computation-in-linear-networks
Eka

Risposte:


2

Le uscite di una rete ReLU sono sempre "lineari" e discontinue. Possono approssimare le curve, ma potrebbero essere necessarie molte unità ReLU. Tuttavia, allo stesso tempo, le loro uscite saranno spesso interpretate come uscite continue e curve.

Immagina di aver addestrato una rete neurale che prende x 3 e genera | x 3 | (che è simile a una parabola). Questo è facile per la funzione ReLU per fare perfettamente. In questo caso l'uscita è curva.

Ma in realtà non è curvo. Gli ingressi qui sono "linearmente" correlati alle uscite. Tutto ciò che la rete neurale fa è prendere l'input e restituire il valore assoluto dell'input. Svolge una funzione 'lineare', non curva. Si può vedere che l'output non è lineare quando lo si rappresenta in base ai valori x originali (la x in x 3 ).

Quindi, quando tracciamo l'output su un grafico e sembra curvo, di solito è perché abbiamo associato diversi valori x all'input, quindi abbiamo tracciato l'output come coordinata y in relazione a tali valori x.

Va bene, quindi vuoi sapere come modellare senza problemi sin (x) usando ReLU. Il trucco è che non vuoi mettere x come input. Metti invece qualcosa di curvo rispetto a x come input, come x 3 . Quindi l'ingresso è x 3 e l'uscita è sin (x). Il motivo per cui questo dovrebbe funzionare è che non sta calcolando il seno dell'input, ma sta calcolando il seno della radice cubica dell'input. Non potrebbe mai calcolare senza problemi il seno dell'input stesso. Per rappresentare graficamente l'output sin (x), inserisci l'originale x come coordinata x (non inserire l'input) e inserisci l'output come coordinata y.


Il mio approccio richiederebbe molti relus è la mia ipotesi ... Stai discretizzando la curva ... Quindi per curve più fini abbiamo bisogno di più relus ... Corretto?
DuttaA

Non proprio, IMO. Se prendi un sacco di diverse combinazioni lineari dell'input nel primo livello, avrai molti tipi diversi di curve disponibili da unire nel livello successivo, sempre con combinazioni più lineari. Ciò può produrre risultati impeccabili. Immagina, ad esempio, se tagli e incolli le curve solo nel loro extrema locale. Quindi le curve risultanti sarebbero quasi perfettamente continue. Dipende anche da quanto bene vuoi che sia l'output. È vero però che ci sono funzioni di attivazione migliori di ReLU a causa della loro eccessiva linearità (ad es. ELU)
Immagine predefinita

Non riuscivo a capire come avremo molte curve diverse disponibili con un semplice Re-lu..sarà solo una combinazione di 2 linee rette
DuttaA

@DuttaA Le linee rette sono solo la funzione di mappatura. È possibile mappare una curva su una curva usando una mappatura Relu. Tutto ciò che serve è avere una curva come dati di input.
Immagine predefinita

@DuttaA La linea del numero di input è una linea retta e la linea del numero di output è una linea retta, ma ciò non dice nulla sulla forma dei dati sulla linea del numero. Il piano xy è spazio euclideo rettangolare, ma puoi avere curve all'interno dello spazio rettangolare.
Immagine predefinita
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.