Anteprima
Vedrai una selezione di 6 pagine su 21
Reti neurali artificiali: dal modello di McCulloch e Pitts alle reti MLP Pag. 1 Reti neurali artificiali: dal modello di McCulloch e Pitts alle reti MLP Pag. 2
Anteprima di 6 pagg. su 21.
Scarica il documento per vederlo tutto.
Reti neurali artificiali: dal modello di McCulloch e Pitts alle reti MLP Pag. 6
Anteprima di 6 pagg. su 21.
Scarica il documento per vederlo tutto.
Reti neurali artificiali: dal modello di McCulloch e Pitts alle reti MLP Pag. 11
Anteprima di 6 pagg. su 21.
Scarica il documento per vederlo tutto.
Reti neurali artificiali: dal modello di McCulloch e Pitts alle reti MLP Pag. 16
Anteprima di 6 pagg. su 21.
Scarica il documento per vederlo tutto.
Reti neurali artificiali: dal modello di McCulloch e Pitts alle reti MLP Pag. 21
1 su 21
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

L’entità dell’aggiornamento dipende dal learning rate, oltre che dal valore della feature i-esima

dell’ingresso. Il learning rate è, infatti, un parametro cruciale nell'addestramento delle reti neurali e degli

algoritmi di apprendimento come il percettrone. Esso determina l'entità con cui i pesi vengono aggiornati

ad ogni iterazione, in risposta a un singolo campione di ingresso. In altre parole, il learning rate controlla la

velocità con cui l'algoritmo si adatta ai dati.

Un learning rate appropriato è essenziale per garantire che l'algoritmo converga verso una soluzione

ottimale. Se il tasso di apprendimento è troppo alto, l'aggiornamento dei pesi potrebbe essere troppo

drastico, portando a un comportamento oscillante o addirittura impedendo la convergenza, poiché

l'algoritmo potrebbe "saltare" oltre il minimo dell'errore senza mai stabilizzarsi. D'altra parte, un learning

rate troppo basso rallenta il processo di apprendimento, poiché i cambiamenti ai pesi saranno minimi e

l'algoritmo potrebbe richiedere molte iterazioni per avvicinarsi a una soluzione accettabile. Pertanto, il

learning rate deve essere scelto con attenzione: deve essere sufficientemente alto da permettere

all'algoritmo di apprendere in modo efficiente, ma non così elevato da causare instabilità. In pratica, può

essere utile iniziare con un valore moderato e poi, eventualmente, adattarlo dinamicamente durante

l'addestramento per bilanciare la velocità di apprendimento con la stabilità della convergenza. Alcuni

algoritmi più avanzati utilizzano tecniche come il learning rate scheduling o l'ottimizzazione adattiva per

regolare automaticamente il tasso di apprendimento nel corso del tempo, migliorando ulteriormente la

probabilità di convergenza verso una soluzione ottimale.

Un aspetto interessante dell'algoritmo di addestramento del percettrone è che si tratta di un algoritmo on-

line. Ciò significa che l'algoritmo lavora elaborando un campione alla volta. Non è necessario elaborare tutti

i dati di addestramento contemporaneamente. Durante la fase di addestramento, il percettrone riceve un

singolo campione dall'insieme dei dati e genera un output che viene poi confrontato con la risposta

desiderata associata a quel campione. In base a questo confronto, i pesi vengono aggiornati in modo da

avvicinare l'output del neurone al risultato corretto. Questo processo viene ripetuto iterativamente fino a

quando l'apprendimento raggiunge un livello soddisfacente.

Quindi, utilizzando un algoritmo relativamente semplice, possiamo costruire un classificatore binario

capace di apprendere e risolvere problemi di classificazione. Questo metodo è, inoltre, particolarmente

efficiente in termini di memoria, poiché elabora un campione alla volta, senza dover gestire l'intero set di

dati contemporaneamente.

Il percettrone rappresenta il primo passo concreto verso le reti neurali artificiali come le conosciamo oggi,

ponendo le basi per lo sviluppo di algoritmi più complessi e reti neurali più sofisticate. Tuttavia, tale

modello ha una limitazione significativa: può risolvere solo problemi che sono linearmente separabili. In

altre parole, se le due classi non possono essere separate da un iperpiano, l'algoritmo non sarà in grado di

trovare una soluzione adeguata. Se il problema è linearmente separabile, l'algoritmo convergerà, ma per

affrontare problemi più complessi è necessario ricorrere a modelli più avanzati o all’utilizzo di una rete di

5

percettroni connessi tra loro, ma per un algoritmo di apprendimento per una rete di neuroni dobbiamo

attendere il 1986. 6

Reti di neuroni

Una rete neurale è composta da diversi neuroni artificiali che lavorano insieme per elaborare informazioni.

A differenza di un singolo neurone, dove l'output è direttamente collegato all'input, in una rete neurale

l'output è il risultato dell'interazione tra più neuroni, che sono interconnessi tra di loro. La maniera in cui

questi neuroni sono collegati tra loro definisce la topologia della rete neurale, che è uno degli aspetti

fondamentali della sua architettura.

Tipi di architetture

In linea di principio, possiamo interconnettere i neuroni in qualsiasi modo, ma il modo più utilizzato è il

feed-forward. In una rete neurale feed-forward, i neuroni sono organizzati in strati (layer), e ogni neurone

in uno strato è collegato a ogni neurone nello strato successivo. L'informazione fluisce in una sola direzione:

dagli strati di input, attraverso eventuali strati nascosti, fino allo strato di output. Non ci sono connessioni

che riportano l'output a un livello precedente, per cui la rete “alimenta” i neuroni solo in avanti, per questo

detta feed-forward.

Figura 2 Rete feed-forward costituita da un input layer che prende in ingresso un input a tre variabili (features), un hidden layer con

tre neuroni e un output layer con un neurone.

Questa architettura è molto utilizzata per compiti di classificazione e regressione perché è semplice da

implementare e da addestrare. Tuttavia, ci sono altre architetture che possono essere utilizzate per

affrontare compiti specifici, come:

• Reti Neurali Ricorrenti (RNN): Utilizzate principalmente per elaborare sequenze temporali di dati.

In una RNN, i neuroni sono collegati anche a se stessi, rimandando l’output di un neurone indietro

come input del neurone stesso. Tale meccanismo permette alla rete di mantenere una "memoria"

degli input precedenti. Figura 3 Rete ricorrente 7

• Reti Neurali Convoluzionali (CNN): Comunemente utilizzate per l'elaborazione delle immagini e il

riconoscimento di pattern visivi. In una CNN, la connessione tra neuroni è locale, cioè ogni neurone

è collegato solo a una parte dell'input, che viene elaborato attraverso operazioni di convoluzione.

• Reti Neurali Ricorrenti con LSTM o GRU: Una variante delle RNN che include meccanismi per

gestire la memoria a lungo termine e mitigare i problemi di “gradiente che svanisce”,

particolarmente utile per sequenze di lunga durata.

• Reti con connessioni laterali: I neuroni di uno strato non sono solo connessi con i neuroni dello

strato precedente e successivo, ma anche con i neuroni dello stesso strato. Neuroni dello stesso

strato possono quindi scambiarsi informazioni, realizzando un meccanismo di competizione tra

neuroni. Figura 4 Rete con connessioni laterali

Infine, se ogni neurone di uno strato è collegato a tutti i neuroni dello strato precedente e dello strato

successivo, si dice che la rete è completamente connessa (fully connected). Altrimenti, si dice che la rete

presenta connessioni sparse (sparse connections).

Ogni architettura ha i suoi punti di forza e debolezza e la scelta di una specifica topologia dipende dal

problema che si sta cercando di risolvere.

Multi-Layer Perceptron (MLP)

Il Multilayer Perceptron (MLP) è una tipologia di rete neurale artificiale appartenente alla categoria delle

reti neurali feedforward, tipicamente fully connected. È uno dei modelli più semplici e comuni di reti

neurali e rappresenta una generalizzazione del percettrone di Rosenblatt.

Un MLP è costituito da tre tipi di strati di neuroni:

1. Strato di Input (Input Layer): È lo strato iniziale che riceve i dati in ingresso. Ogni neurone in questo

strato corrisponde a una feature (caratteristica) dell'input. Non fa elaborazioni, riceve solo

l’ingresso in input e lo passa allo strato successivo.

2. Strati Nascosti (Hidden Layers): Si trovano tra lo strato di input e lo strato di output. Un MLP può

avere uno o più strati nascosti. Ogni strato nascosto è composto da un certo numero di neuroni,

ciascuno dei quali riceve input dagli strati precedenti e li elabora attraverso una funzione di

attivazione. La presenza di strati nascosti consente alla rete di apprendere rappresentazioni più

complesse dei dati e di catturare le relazioni non lineari. 8

3. Strato di Output (Output Layer): È l'ultimo strato della rete, che fornisce l'output finale della rete. Il

numero di neuroni in questo strato dipende dal tipo di problema: per esempio, in un problema di

classificazione binaria ci sarà, ad esempio, un solo neurone con un'uscita che può essere 0 o 1,

mentre in un problema di classificazione multiclasse ci sarà un neurone per ogni classe.

I neuroni sono percettroni, ma a differenza del modello di Rosenblatt visto in precedenza, non utilizzano la

funzione gradino come funzione di attivazione, bensì una funzione di attivazione derivabile (proprietà di cui

la funzione a gradino non gode).

Nel 1989, il matematico G. Cybenko ha dimostrato il teorema dell’approssimazione universale, che

afferma che ogni funzione continua (anche a tratti) può essere approssimata con precisione arbitraria da

una rete MLP con uno strato nascosto e funzione di attivazione non polinomiale continua derivabile.

Per cui un MLP è un approssimatore di funzioni universale.

Nota: il fatto che un solo strato sia teoricamente sufficiente ad approssimare qualsiasi funzione non è detto

che sia rappresenti la soluzione più efficiente. 9

Algoritmo di back propagation

L’algoritmo per addestrare le reti neurali, in particolare le reti MLP, fu introdotto David E. Rumelhart,

Geoffrey E. Hinton, e Ronald J. Williams in un articolo del 1986. Questo algoritmo è essenziale per

ottimizzare i pesi e i bias della rete in modo che l'output prodotto dalla rete sia il più vicino possibile al

valore desiderato, minimizzando l'errore.

L'algoritmo di back propagation si svolge in quattro fasi principali:

1. forward propagation:

o L'input viene passato attraverso la rete neurale, strato per strato, fino allo strato di output.

o Ad ogni strato, i neuroni calcolano l'output applicando una funzione di attivazione alla

somma pesata degli input ricevuti.

o L'output finale della rete viene confrontato con il valore desiderato per calcolare l'errore.

2. calcolo dell'errore:

o La differenza tra l'output predetto dalla rete e l'output desiderato viene calcolata

utilizzando una funzione di perdita (o funzione di costo). Una delle funzioni di perdita più

comuni è l'errore quadratico medio (MSE) per problemi di regressione o l'entropia

incrociata (cross-entropy) per problemi di classificazione.

o Il valore dell'errore rappresenta quanto la rete si discosta dal risultato corretto.

3. backward propagation (Retropropagazione del Gradiente):

o L'errore calcolato viene propagato all'indietro attraverso la rete, a partire dallo strato di

output fino agli strati nascosti e allo strato di input.

o Durante questa fase, si calcola il gradiente

Dettagli
Publisher
A.A. 2020-2021
21 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher robimel99 di informazioni apprese con la frequenza delle lezioni di Machine Learning e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Salerno o del prof Foggia Pasquale.