Articles

Funzione Sigmoid

Qual è la funzione Sigmoid?

Una funzione sigmoidea è una funzione matematica che ha una caratteristica curva a forma di S. Esistono numerose funzioni sigmoidali comuni, come la funzione logistica, la tangente iperbolica e l’arctangente

. Nell’apprendimento automatico, il termine

funzione sigmoid viene normalmente utilizzato per riferirsi specificamente alla funzione logistica, chiamata anche funzione sigmoid logistica.

Tutte le funzioni sigmoid hanno la proprietà di mappare l’intera linea numerica in un piccolo intervallo tra 0 e 1, o -1 e 1, quindi un uso di una funzione sigmoid è convertire un valore reale in uno che può essere interpretato come una probabilità.

Una delle funzioni sigmoid più utilizzate è la funzione logistica, che mappa qualsiasi valore reale all’intervallo (0, 1). Si noti la caratteristica forma a S che ha dato alle funzioni sigmoidee il loro nome (dalla lettera greca sigma).

Le funzioni Sigmoid sono diventate popolari nell’apprendimento profondo perché possono essere utilizzate come funzione di attivazione in una rete neurale artificiale. Sono stati ispirati dal potenziale di attivazione nelle reti neurali biologiche.

Le funzioni Sigmoid sono anche utili per molte applicazioni di apprendimento automatico in cui un numero reale deve essere convertito in una probabilità. Una funzione sigmoid posizionata come ultimo livello di un modello di apprendimento automatico può servire a convertire l’output del modello in un punteggio di probabilità, che può essere più facile da lavorare e interpretare.

Le funzioni Sigmoid sono una parte importante di un modello di regressione logistica. La regressione logistica è una modifica della regressione lineare per la classificazione a due classi e converte uno o più input a valore reale in una probabilità, ad esempio la probabilità che un cliente acquisti un prodotto. Lo stadio finale di un modello di regressione logistica è spesso impostato sulla funzione logistica, che consente al modello di produrre una probabilità.

Formula della funzione sigmoide

Tutte le funzioni sigmoidali sono monotoniche e hanno una derivata prima a forma di campana. Ci sono diverse funzioni sigmoidee e alcune delle più note sono presentate di seguito.

Tre delle funzioni sigmoidee più comuni: la funzione logistica, la tangente iperbolica e l’arcotangente. Tutti condividono la stessa forma S di base.

Funzione Sigmoid logistica Formula

Una delle funzioni sigmoid più comuni è la funzione sigmoid logistica. Questo è spesso indicato come la funzione Sigmoid nel campo dell’apprendimento automatico. La funzione sigmoide logistica è definita come segue:

Definizione matematica della funzione sigmoide logistica, una funzione sigmoide comune

La funzione logistica accetta qualsiasi input a valore reale e emette un valore compreso tra zero e uno.

Funzione tangente iperbolica Formula

Un’altra funzione sigmoide comune è la funzione iperbolica. Questo mappa qualsiasi input a valore reale nell’intervallo tra -1 e 1.

Definizione matematica della tangente iperbolica

Formula della funzione arctangente

Una terza funzione sigmoide alternativa è l’arctangente, che è l’inverso della funzione tangente.

La funzione arctangent

La funzione arctangent mappa qualsiasi input a valore reale nell’intervallo da-π/2 a π / 2.

Nei grafici sottostanti possiamo vedere sia la curva tangente, una ben nota funzione trigonometrica, sia l’arcotangente, la sua inversa:

Calcolo della Funzione Sigmoidale

Esempio di Calcolo della Logistica Funzione Sigmoidale

Prendere la logistica funzione sigmoidale, siamo in grado di valutare il valore della funzione in diversi punti chiave per comprendere la funzione del modulo.

A x = 0, la funzione sigmoid logistica valuta:

Questo è utile per l’interpretazione del sigmoide come probabilità in un modello di regressione logistica, perché mostra che un input zero produce un output di 0.5, indicando probabilità uguali di entrambe le classi.

A x = 1, troviamo un valore leggermente più grande:

e per x = 5, il valore della funzione sigmoid diventa molto vicino a 1.

Infatti, nel limite di x tendente all’infinito, la funzione sigmoide converge a 1 e verso -1 nel caso dell’infinito negativo, ma la derivata della funzione non raggiunge mai lo zero. Queste sono proprietà molto utili della funzione sigmoidea, in quanto tende verso un limite ma ha sempre un gradiente diverso da zero.

Esempio Calcolo della funzione tangente iperbolica

Allo stesso modo, possiamo calcolare il valore della funzione tanh in questi punti chiave. Piuttosto che essere centrato intorno a 0.5, la funzione tanh è centrata su 0.

1, la funzione tanh è aumentato relativamente molto più rapidamente della funzione logistica:

E, infine, da 5, la funzione tanh convergenza molto più strettamente a 1, all’interno di 5 cifre decimali:

In effetti, sia la tangente iperbolica e arcotangente funzioni convergono molto più rapidamente della logistica funzione sigmoidale.

Esempio calcolo della funzione Arctangente

Possiamo valutare la funzione arctangente negli stessi punti per vedere dove converge:

Si noti che in contrasto con le altre due funzioni sigmoidali mostrate sopra, l’arctangente converge a π/2 anziché 1. Inoltre, l’arctangente converge più lentamente, poiché a x = 5 non è nemmeno vicino al suo valore finale. Solo con numeri abbastanza grandi, come x = 5000, l’arctangente si avvicina molto a π/2.

Riepilogo di tre funzioni sigmoidali

Possiamo confrontare le proprietà chiave delle tre funzioni sigmoidali mostrate sopra in una tabella:

Sigmoid function Logistic function tanh arctan
Value in the limit x →-∞ 0 -1 -π/2
Value at x = 0 0.5 0 0
Value in the limit x →∞ 1 1 π/2
Converges Fast Very fast Very slow

Sigmoid Function vs. ReLU

Nelle moderne reti neurali artificiali, è comune vedere al posto della funzione sigmoide, il raddrizzatore, noto anche come unità lineare rettificata, o ReLU, utilizzato come funzione di attivazione. Il ReLU è definito come:

Definizione del raddrizzatore funzione di attivazione

Grafico della ReLU funzione

Il ReLU funzione ha diversi vantaggi di una funzione sigmoidale in una rete neurale. Il vantaggio principale è che la funzione ReLU è molto veloce da calcolare. Inoltre, un potenziale di attivazione in una rete neurale biologica non continua a cambiare per input negativi, quindi il ReLU sembra più vicino alla realtà biologica se un obiettivo è quello di imitare i sistemi biologici.

Inoltre, per x positivo

la funzione ReLU ha un gradiente costante di 1, mentre una funzione sigmoide ha un gradiente che converge rapidamente verso 0. Questa proprietà rende le reti neurali con funzioni di attivazione sigmoid lenta da addestrare. Questo fenomeno è noto come il problema del gradiente di fuga. La scelta di ReLU come funzione di attivazione allevia questo problema perché il gradiente del ReLU è sempre 1 per positivo

x e quindi il processo di apprendimento non sarà rallentato dal gradiente che diventa piccolo.

Tuttavia, il gradiente zero per x negativo può rappresentare un problema simile, noto come problema del gradiente zero, ma è possibile compensare questo aggiungendo un piccolo termine lineare in x per dare alla funzione ReLU una pendenza diversa da zero in tutti i punti.

Applicazioni della funzione Sigmoid

Funzione sigmoid logistica nella regressione logistica

Un’area chiave dell’apprendimento automatico in cui la funzione sigmoid è essenziale è un modello di regressione logistica. Un modello di regressione logistica viene utilizzato per stimare la probabilità di un evento binario, come dead vs alive, sick vs well, fraudolent vs honest transaction, ecc. Emette un valore di probabilità compreso tra 0 e 1.

Nella regressione logistica, una funzione sigmoid logistica è adatta a un insieme di dati in cui le variabili indipendenti possono assumere qualsiasi valore reale e la variabile dipendente è 0 o 1.

Ad esempio, immaginiamo un set di dati di misurazioni e diagnosi del tumore. Il nostro obiettivo è prevedere la probabilità che un tumore si diffonda, date le sue dimensioni in centimetri.

Alcune misure di tumore dimensioni e risultati

tracciare l’intero set di dati, abbiamo una tendenza generale che, maggiore è il tumore, il più probabile è di aver diffuso, anche se c’è una sovrapposizione di entrambe le classi nell’intervallo da 2,5 cm a 3,5 cm:

Un terreno di tumore risultati contro il tumore dimensioni

Utilizzando la regressione logistica, siamo in grado di modellare il tumore di stato y (0 o 1) in funzione delle dimensioni del tumore x utilizzando la logistica sigma formula:

dove abbiamo bisogno di trovare i valori ottimali m e b, che ci permettono di spostare e allungare la curva sigmoidea per abbinare i dati.

In questo caso, il montaggio del sigma curva ci dà i seguenti valori:

E ‘ possibile inserire questi valori in sigma formula e tracciare la curva:

Questo significa che, per esempio, dato un tumore di dimensioni 3cm, il nostro modello di regressione logistica in grado di prevedere la probabilità di questo tumore di diffondersi:

Intuitivamente, questo ha senso. Nei dati originali, possiamo vedere che i tumori di circa 3 cm sono distribuiti più o meno uniformemente tra entrambe le classi.

Consideriamo un tumore di dimensioni 6 cm. Tutti i tumori nel set di dati originale di dimensioni 4 cm o superiori si erano diffusi, quindi ci aspetteremmo che il nostro modello restituisse un’alta probabilità di diffusione del tumore:

Il modello ha restituito una probabilità molto vicina a 1, indicando la quasi certezza che y = 1.

Questo mostra come le funzioni sigmoidee, e la funzione logistica in particolare, sono estremamente potenti per la modellazione di probabilità.

Perché la funzione logistica viene utilizzata nella regressione logistica e non un’altra funzione sigmoid?

La ragione per cui la funzione logistica viene utilizzata nella regressione logistica, e nessuna delle altre varianti sigmoid, non è dovuta solo al fatto che restituisce comodamente valori compresi tra 0 e 1. La regressione logistica deriva dal presupposto che i dati in entrambe le classi siano normalmente distribuiti.

Immaginiamo che i tumori che non si diffondono e i tumori che si diffondono seguano ciascuno una distribuzione normale. I tumori non diffondenti sono normalmente distribuiti con media 1,84 cm e deviazione standard 1 cm, e i tumori diffondenti sono normalmente distribuiti con media 4,3 cm, anche con deviazione standard 1 cm. Possiamo tracciare sia la funzione di densità di probabilità di entrambe queste distribuzioni normali:

In ogni punto possiamo calcolare l’odds ratio delle due distribuzioni, che è la funzione di densità di probabilità della diffusione dei tumori, diviso per la somma di entrambe le funzioni di densità di probabilità (non la diffusione di + spread tumori):

tracciare il rapporto di probabilità in funzione di x, possiamo vedere che il risultato è originale logistica curva sigmoidale.

La ragione per cui la funzione logistica viene scelta per la regressione logistica è dovuta a un’ipotesi che stiamo modellando due classi che sono entrambe normalmente distribuite, e la funzione logistica deriva naturalmente dal rapporto tra le normali funzioni di densità di probabilità.

Funzione Sigmoid come funzione di attivazione nelle reti neurali artificiali

Una rete neurale artificiale è costituita da diversi strati di funzioni, sovrapposti l’uno all’altro:

Una rete neurale feedforward con due livelli nascosti

Ogni livello in genere contiene alcuni pesi e pregiudizi e funzioni come una piccola regressione lineare. Una parte cruciale dei livelli è anche la funzione di attivazione.

Formula per il primo livello nascosto di una rete neurale feedforward, con pesi indicati da W e pregiudizi da b e funzione di attivazione g.

Tuttavia, se ogni livello nella rete neurale dovesse contenere solo pesi e pregiudizi, ma nessuna funzione di attivazione, l’intera rete sarebbe equivalente a una singola combinazione lineare di pesi e pregiudizi. In altre parole, la formula per la rete neurale potrebbe essere fattorizzata e semplificata fino a un semplice modello di regressione lineare. Un tale modello sarebbe in grado di raccogliere dipendenze lineari molto semplici ma in grado di eseguire i compiti impressionanti per cui le reti neurali sono rinomate, come il riconoscimento di immagini e voci.

Le funzioni di attivazione sono state introdotte tra i livelli nelle reti neurali al fine di introdurre una non linearità. Originariamente venivano utilizzate funzioni sigmoidali come la funzione logistica, arctangente e tangente iperbolica, e oggi ReLU e le sue varianti sono molto popolari. Tutte le funzioni di attivazione hanno lo stesso scopo: introdurre una non linearità nella rete. Le funzioni sigmoidee sono state scelte come alcune delle prime funzioni di attivazione grazie alla loro somiglianza percepita con il potenziale di attivazione nelle reti neurali biologiche.

Grazie all’uso di una funzione sigmoid in vari punti all’interno di una rete neurale multistrato, le reti neurali possono essere costruite per far sì che i livelli successivi raccolgano caratteristiche sempre più sofisticate di un esempio di input.

Funzione Sigmoidale Storia

Nel 1798, il chierico inglese e l’economista Thomas Robert Malthus pubblicato un libro con uno pseudonimo chiamato ” Saggio sul Principio della Popolazione, affermando che la popolazione è in aumento in progressione geometrica (raddoppiando ogni 25 anni) mentre le scorte di cibo erano in aumento aritmeticamente, e che la differenza tra i due è stato a causa di una diffusa carestia.

Alla fine del 1830, il matematico belga Pierre François Verhulst stava sperimentando diversi modi di modellare la crescita della popolazione, e voleva spiegare il fatto che la crescita di una popolazione è in ultima analisi auto-limitante, e non aumenta esponenzialmente per sempre. Verhulst ha scelto la funzione logistica come adeguamento logico al semplice modello esponenziale, al fine di modellare il rallentamento della crescita di una popolazione che si verifica quando una popolazione inizia a esaurire le sue risorse.

Nel corso del secolo successivo, biologi e altri scienziati hanno iniziato a utilizzare la funzione sigmoide come strumento standard per modellare la crescita della popolazione, dalle colonie batteriche alle civiltà umane.

Nel 1943, Warren McCulloch e Walter Pitts svilupparono un modello di rete neurale artificiale utilizzando un cutoff rigido come funzione di attivazione, in cui un neurone emette 1 o 0 a seconda che il suo ingresso sia al di sopra o al di sotto di una soglia.

Nel 1972, i biologi Hugh Wilson e Jack Cowan dell’Università di Chicago stavano tentando di modellare i neuroni biologici computazionalmente e pubblicarono il modello Wilson–Cowan, in cui un neurone invia un segnale a un altro neurone se riceve un segnale maggiore di un potenziale di attivazione. Wilson e Cowan scelsero la funzione sigmoide logistica per modellare l’attivazione di un neurone in funzione di uno stimolo.

Dagli anni 1970 e 1980 in poi, un certo numero di ricercatori ha iniziato a utilizzare le funzioni sigmoidee nelle formulazioni di reti neurali artificiali, prendendo ispirazione dalle reti neurali biologiche. Nel 1998, Yann LeCun ha scelto la tangente iperbolica come funzione di attivazione nella sua innovativa rete neurale convoluzionale LeNet, che è stato il primo a essere in grado di riconoscere le cifre scritte a mano ad un livello pratico di precisione.

Negli ultimi anni, le reti neurali artificiali si sono allontanate dalle funzioni sigmoidee a favore della funzione ReLU, poiché tutte le varianti della funzione sigmoid sono computazionalmente intensive da calcolare, e il ReLU fornisce la non linearità necessaria per sfruttare la profondità della rete, pur essendo molto veloce da calcolare.