Reti neurali: struttura

Per vedere in che modo le reti neurali possono aiutare con i problemi non lineari, iniziamo rappresentando un modello lineare sotto forma di grafico:

Tre cerchi blu in fila collegati da frecce a un cerchio verde sopra di loro

Figura 3. Modello lineare come grafico.

Ogni cerchio blu rappresenta una caratteristica di input, mentre il cerchio verde rappresenta la somma ponderata degli input.

Come possiamo modificare questo modello per migliorarne la capacità di gestire gli errori non lineari? problemi generici?

Strati nascosti

Nel modello rappresentato dal grafico seguente, abbiamo aggiunto uno "strato nascosto" di valori intermedi. Ogni nodo giallo nello strato nascosto è una somma ponderata dei valori blu dei nodi di input. L'output è una somma ponderata del nodi.

Tre cerchi blu in una riga etichettati

Figura 4. Grafico di un modello a due livelli.

Questo modello è lineare? Sì, il suo output è ancora una combinazione lineare di i suoi input.

Nel modello rappresentato dal grafico seguente, abbiamo aggiunto un secondo livello di somme ponderate.

Tre cerchi blu in una riga etichettati

Figura 5. Grafico di un modello a tre livelli.

Questo modello è ancora lineare? Sì. Quando esprimi l'output come funzione dell'input e semplificare, si ottiene solo un'altra somma ponderata gli input. Questa somma non modella in modo efficace il problema non lineare nella Figura 2.

Funzioni di attivazione

Per modellare un problema non lineare, possiamo introdurre direttamente una non linearità. Possiamo invia tramite una pipeline ogni nodo di strato nascosto attraverso una funzione non lineare.

Nel modello rappresentato dal grafico seguente, il valore di ciascun nodo Lo strato nascosto 1 viene trasformato da una funzione non lineare prima di essere passato alle somme ponderate del livello successivo. Questa funzione non lineare è chiamata di attivazione/disattivazione.

Come nella figura precedente, ad eccezione della fila di cerchi rosa con l'etichetta "Non-Linear Transformation Layer" è stata aggiunta tra i due strati nascosti.

Figura 6. Grafico di un modello a tre livelli con funzione di attivazione.

Ora che abbiamo aggiunto una funzione di attivazione, l'aggiunta di livelli ha un impatto maggiore. Sovrapporre le non linearità sulle non lineari ci consente di creare un modello molto complicato relazioni tra gli input e gli output previsti. In breve, ogni di livello superiore apprenderà in modo efficace una funzione più complessa e di livello superiore rispetto come input non elaborati. Se vuoi avere un'idea più chiara di come funziona, vedi Ottimo post del blog di Chris Olah.

Funzioni di attivazione comuni

La seguente funzione di attivazione sigmoid converte la somma ponderata in un valore compreso tra 0 e 1.

$$F(x)=\frac{1} {1+e^{-x}}$$

Ecco un grafico:

Funzione sigmoidea

Figura 7. Funzione di attivazione sigmoidea.

La seguente funzione di attivazione dell'unità lineare rettificata (o ReLU, per brevi) spesso funziona un po' meglio di una funzione fluido come la funzione sigmoidea, semplificando al contempo il calcolo.

$$F(x)=max(0,x)$$

La superiorità della funzione ReLU si basa su risultati empirici, probabilmente basati sulla tecnologia con un intervallo di reattività più utile. La reattività di una sigmoidea diminuisce rapidamente su entrambi i lati.

Funzione di attivazione ReLU

Figura 8. Funzione di attivazione ReLU.

Di fatto, qualsiasi funzione matematica può svolgere una funzione di attivazione. Supponiamo che \(\sigma\) rappresenta la nostra funzione di attivazione (Relu, funzione sigmoidea o altro). Di conseguenza, il valore di un nodo nella rete è dato dal seguente formula:

$$\sigma(\boldsymbol w \cdot \boldsymbol x+b)$$

Riepilogo

Ora il nostro modello ha tutti i componenti standard di ciò che le persone quando dicono "rete neurale":

  • Un insieme di nodi, analoghi ai neuroni, organizzati in strati.
  • Un insieme di pesi che rappresentano le connessioni tra ciascuna rete neurale e il livello sottostante. Il livello sottostante può essere un altro strato della rete neurale o qualche altro tipo di strato.
  • Un insieme di bias, uno per ogni nodo.
  • Una funzione di attivazione che trasforma l'output di ciascun nodo in un livello. Livelli diversi possono avere funzioni di attivazione diverse.

Attenzione: le reti neurali non sono necessariamente sempre migliori di gli incroci di caratteristiche, ma le reti neurali offrono un'alternativa flessibile che funziona bene in molti casi.