Neural Network e Multi-Layer Perceptron (MLP)


Articoli di approfondimento

La rete neurale e un sistema di calcolo (o processore) che nasce dall’idea di simulare artificialmente il comportamento del cervello umano, per sfruttarne le sue caratteristiche di Possiamo infatti definire, in maniera precisa, una rete neurale come un processore parallelo composto di singole unita di calcolo, dette neuroni, che possiede una naturale predisposizione a memorizzare le conoscenze sperimentalmente acquisite ed a renderle disponibili per l’uso. La sua somiglianza con il cervello umano si riferisce a:

L’uso delle reti, quindi, consente la possibilita di generalizzare la conoscenza acquisita durante la fase di apprendimento.

L’idea che sta alla base delle reti neurali consiste nel neurone che, basandosi sul funzionamento del cervello umano, consiste in una unita di processamento di informazioni.

Il neurone e costituito da un’unita che riceve in ingresso un valore numerico che consiste in una somma pesata di diversi segnali, e lo elabora attivandosi oppure rimanendo inattivo a seconda che venga superata (o meno) la soglia di attivazione.

Piu specificatamente, il neurone artificiale usa il dato in ingresso come argomento per una funzione, detta appunto di attivazione \(s()\) e che restituisce in uscita i valori 0, 1 oppure un valore compreso in [0, 1].

Pertanto, il neurone sara caratterizzato dalla funzione e dalla soglia di attivazione. Quest’ultima viene solitamente introdotta mediante un ingresso costante, uguale ad 1, opportunamente modulato da un coefficiente che si indica con il nome di bias, il cui effetto e quello di controllare la traslazione della soglia di attivazione rispetto all’origine dei segnali. Formalmente, il bias ha un ruolo non diverso da quello dei pesi che funzionano da regolatori dell’intensita del segnale emesso (o ricevuto).

E d’uso adottare diverse funzioni di attivazione, a seconda del ruolo che il neurone e la rete neurale sono destinati a svolgere. Le piu comuni funzioni di attivazione sono:

Ipotizzando una rete neurale semplice:



Per addestrare questa semplice rete per un problema, ad esempio, di classificazione binaria e ipotizzando che le due variabili di inputs siano \(X_1\) e \(X_2\) e che l’output si una variabile dicotomica \(Y\) occorre adottare due processi chiamati Back-propagation e Foward-propagation:

Quindi nelle reti neurali, si propaga in avanti per ottenere l’output e confrontarlo con il valore reale per ottenere l’errore e successivamente, per ridurre al minimo l’errore, si propaga all’indietro trovando la derivata dell’errore rispetto ad ogni peso e quindi sottraendo questo valore ponderato per il learnng rate dal valore del peso.

L’algoritmo si arresta o per il raggiungimento dell’errore minimo accettabile o per il raggiungimento del numero massimo di epoche stabilite in fase di progetto (per evitare che il processo di addestramento termini all’infinito). Un’epoca e un ciclo di aggiornamento completo di tutti i pesi, dando in input l’intero set di training

L’apprendimento profondo (in inglese deep learning) e quel campo di ricerca del machine learning che si basa su diversi livelli di rappresentazione, corrispondenti a gerarchie di caratteristiche di fattori o concetti, dove i concetti di alto livello sono definiti sulla base di quelli di basso. In altre parole si intende un insieme di tecniche basate su reti neurali artificiali organizzate in diversi strati, dove ogni strato calcola i valori per quello successivo affinche l’informazione venga elaborata in maniera sempre piu completa.

Una Multi-Layers Perceptron net (MLP) combina diversi livelli di elaborazione, utilizzando neuroni artificiali. E formata da un layer di input, uno o piu layer nascosti e un layer di output. I livelli sono interconnessi tramite nodi o neuroni, con ogni layer che utilizza l’output del layer precedente come input.



L’idea dietro questo metodo e esattamente quella spiegata antecedentemente nella costruzione di una rete semplice ma al posto dei neuroni si utilizzano i percettroni (Perceptron). Il percettrone e un semplice neurone dotato del circuito “teacher” per l’apprendimento: