For Dummies - L'introduzione alle reti neurali di cui tutti abbiamo bisogno! (Parte 1)

Questa sarà una serie di 2 articoli. Questo articolo fornisce un'introduzione ai percettroni (reti neurali a singolo strato)

Aggiornamento: la parte 2 della serie è ora disponibile per la lettura qui!

Un neurone nel nostro cervello

Il nostro cervello utilizza l'enorme rete interconnessa di neuroni per l'elaborazione delle informazioni e per modellare il mondo che ci circonda. In poche parole, un neurone raccoglie input da altri neuroni usando i dendriti. Il neurone somma tutti gli input e se il valore risultante è maggiore di una soglia, si attiva. Il segnale sparato viene quindi inviato ad altri neuroni collegati attraverso l'assone.

Ora, come modelliamo i neuroni artificiali?

Modello di un neurone artificiale

La figura raffigura un neurone collegato con n altri neuroni e quindi riceve n input (x1, x2, ... xn). Questa configurazione è chiamata Perceptron.

Gli ingressi (x1, x2,…. Xn) e i pesi (w1, w2,…. Wn) sono numeri reali e possono essere positivi o negativi.

Il percettrone è costituito da pesi, processore di somma e una funzione di attivazione.

Nota: contiene anche un processore di soglia (noto come bias) ma ne parleremo più avanti!

Tutti gli ingressi sono ponderati individualmente, aggiunti insieme e passati alla funzione di attivazione. Esistono molti tipi diversi di funzioni di attivazione, ma una delle più semplici sarebbe la funzione Step. Una funzione a gradino genererà in genere un 1 se l'ingresso è superiore a una determinata soglia, altrimenti sarà 0.

Nota: ci sono anche altre funzioni di attivazione come sigmoid, ecc. Che vengono utilizzate nella pratica.

Un esempio potrebbe essere,

Ingresso 1 (x1) = 0.6
Ingresso 2 (x2) = 1.0
Peso 1 (w1) = 0,5
Peso 2 (w2) = 0,8
Soglia = 1.0

Pesare gli input e sommarli insieme dà,

x1w1 + x2w2 = (0,6 x 0,5) + (1 x 0,8) = 1,1

Qui, l'input totale è superiore alla soglia e quindi il neurone si attiva.

Allenarsi in percetrons!

Prova a insegnare a un bambino a riconoscere un autobus? Le mostri esempi, dicendole: “Questo è un autobus. Quello non è un autobus ”fino a quando il bambino non impara il concetto di cosa sia un autobus. Inoltre, se la bambina vede nuovi oggetti che non ha mai visto prima, potremmo aspettarci che riconosca correttamente se il nuovo oggetto è un bus o no.

Questa è esattamente l'idea alla base del perceptron.

Allo stesso modo, i vettori di input da un set di allenamento vengono presentati al percettrone uno dopo l'altro e i pesi vengono modificati secondo la seguente equazione,

Per tutti gli ingressi i,
W (i) = W (i) + a * (T-A) * P (i), dove a è il tasso di apprendimento

Nota: in realtà l'equazione è W (i) = W (i) + a * g '(somma di tutti gli input) * (T-A) * P (i), dove g' è la derivata della funzione di attivazione. Poiché è problematico trattare la derivata della funzione step, la eliminiamo dall'equazione qui.

Qui, W è il vettore del peso. P è il vettore di input. T è l'output corretto che il percettrone avrebbe dovuto conoscere e A è l'output dato dal perctron.

Quando un intero passaggio attraverso tutti i vettori di addestramento di input viene completato senza errori, il perctron ha imparato!

In questo momento, è un vettore di input P (già nel set di allenamento) dato al perctron, che genererà il valore corretto. Se P non è nel set di addestramento, la rete risponderà con un output simile ad altri vettori di addestramento vicino a P.

Cosa sta realmente facendo il perctron?

Il perceptron sta aggiungendo tutti gli input e li separando in 2 categorie, quelli che causano il fuoco e quelli che non lo fanno. Cioè, sta disegnando la linea:

w1x1 + w2x2 = t, dove t è la soglia

e guardando dove si trova il punto di ingresso. I punti su un lato della linea rientrano in 1 categoria, i punti sull'altro lato rientrano nell'altra categoria. E poiché i pesi e le soglie possono essere qualsiasi cosa, questa è solo una linea nello spazio di input bidimensionale.

Limitazione dei perceptroni

Non tutti i set di input possono essere divisi da una linea come questa. Quelle che possono essere chiamate sono linearmente separabili. Se i vettori non sono separabili linearmente, l'apprendimento non raggiungerà mai un punto in cui tutti i vettori siano classificati correttamente. L'esempio più famoso dell'incapacità del percettrone di risolvere problemi con vettori linearmente non separabili è il problema booleano di XOR.

La parte successiva di questa serie di articoli mostrerà come fare ciò usando le reti neurali muti-layer, usando il metodo di addestramento di propagazione posteriore.

Se ti è piaciuto leggere questo articolo, premi il piccolo pulsante a cuore verde per mostrare il tuo amore!

Per rimanere aggiornato per il prossimo articolo della serie, seguire :)

E se vuoi che anche i tuoi amici leggano questo, fai clic su condividi!

Riferimenti: http://www.codeproject.com/Articles/16508/AI-Neural-Network-for-beginners-Part-of

http://www.theprojectspot.com/tutorial-post/introduction-to-artificial-neural-networks-part-1/7