Skillbook Logo
foto profilo

Skill Factory

Lista post > 3.Intelligenza Artificiale: le reti neurali artificiali

3.Intelligenza Artificiale: le reti neurali artificiali

Gino Visciano | Skill Factory - 20/10/2024 11:55:49 | in Home

In questa lezione parleremo di reti neurali artificiali, i modelli computazionali ispirati alla struttura e al funzionamento delle reti neurali biologiche presenti nel nostro cervello. Questi modelli matematici e statistici sono importanti perché sono la parte fondamentale degli LLM, la mente utilizzata da tutti  gli strumenti d'Intelligenza Artificiale.

L'area dell'Intelligenza Artificiale  che si occupa di apprendimento delle macchine è quella del Machine Learning, in quest'area il settore che si occupa di apprendimento profondo attraverso l'uso delle reti neurali artificiali,  è il "Deep Learning".

Il termine "profondo" si riferisce all'architettura delle reti neurali, composte da uno strato esterno, chiamato di input, molti strati nascosti, composti da neuroni artificiali, chiamati anche nodi e uno strato di output.

Maggiore è il numero di strati interni (nodi verdi), maggiore è la profondità della rete.


LA DIFFUSIONE DEL DEEP LEARNING

Le prime reti neurali artificiali sono apparse tra gli anni 50 e 60, ma non hanno avuto una grande diffusione per mancanza di potenza computazionale e perché non c'erano ancora algoritmi capaci di addestrarle in modo adeguato.

A favorire la grande diffusione del Deep Learning e delle reti neurali artificiali, tra gli anni '80 e gli anni '90,  sono stati gli eventi seguenti:

1) La grande disponibilità di dati in forma digitale, dopo la nascita di Internet
2) L'aumento della capacità di calcolo, dopo che alla fine degli anni '90, NVIDIA  ha lanciato le GPU (Graphics Processing Unit – Unità di elaborazione grafica), progettate per accelerare la creazione di immagini;
3) La grande disponibilità di spazio su cui archiviare dati in forma digitale,  dopo la diffusione del Cloud computing;
4) I grandi progressi fatti nel campo degli algoritmi di addestramento, come ad esempio quelli di backpropagation.

Negli anni 2000 l'interesse verso le reti neurali artificiali cresce soprattutto nell'ambito del riconoscimento vocale, per esplodere dopo il 2012 grazie alla creazione di ImageNET, la raccolta d'immagini ideata per addestrare le macchine a riconoscere gli oggetti, nel campo della visione artificiale, come ad esempio:

- guida autonoma;
- sorveglianza;
- ricerca medica;
- e-commerce.

Clicca qui per accedere al sito www.image-net.org

Tutto questo diventa possibile perché le macchine, attraverso il Deep Learning, riescono a svolgere le seguenti attività:

- Classificazione immagini;
- Riconoscimento facciale;
- Localizzazione di oggetti;
- Generazione d'immagini;
- Segmentazione semantica.


COME FUNZIONANO LE RETI NEURALI ARTIFICIALI

Una rete neurale artificiale in pratica è un modello computazionale, che esegue operazioni e funzioni, in base agli input ricevuti, capaci di simulare l'apprendimento del cervello umano.

Il funzionamento di questo modello matematico è garantito da mini-processori, chiamati neuroni artificiali, che contengono funzioni di attivazione che regolano il comportamento del modello.

L'interconnessione tra i neuroni, si comporta come un circuito elettrico complesso, capace di apprendere i contenuti con cui viene addestrato.

La rivoluzione delle reti neurali sta nel fatto che questi modelli sono capaci di fare previsioni non lineari, per questo motivo riescono a gestire la complessità dei linguaggi naturali o della classificazione delle immagini.

Anche l'analisi lineare permette di fare previsioni, ma meno complesse, come ad esempio: la previsione dei prezzi, la valutazione del rischio di credito, la previsione delle vendite, la segmentazione dei clienti, la predizione delle malattie, l'analisi delle relazioni sociali.

Ricordate che quando parliamo di previsioni, siamo sempre nel campo della statistica e del calcolo delle probabilità; quindi, anche le risposte degli LLM non sono mai precise, ma sono sempre basate sulla previsione più probabile.

In sintesi, possiamo dire che Il comportamento di una rete neurale artificiale è definito da:

- Dataset di dati: grandi quantità di dati acquisiti sotto forma di numeri durante la fase di addestramento;
- Un algoritmo di addestramento: un algoritmo avanzato come il backpropagation, che attraverso una funzione di perdita misura il livello di errore della rete neurale e ottimizza i parametri per migliorare le prestazioni del modello;
- Neuroni artificiali: nodi organizzati a strati nascosti, che attraverso funzioni di attivazione si comportano come mini-processori in grado di generare o no un output in base all'input ricevuto; grazie ai neuroni artificiali e al tipo di funzioni di attivazione associata, il modello può fare previsioni lineari oppure previsioni non lineari.
- Parametri: numeri, chiamati pesi o bias, che regolano il comportamento dei neuroni artificiali della rete neurale, con l'obiettivo di ridurre gli errori di previsione e migliorare le prestazioni della rete. Questi valori vengono ottimizzati attraverso iterazioni continue dall'algoritmo di addestramento e dalla funzione di perdita associata.

Per fare un'analogia, dovete immaginare una rete neurale come a un'orchestra. Ogni musicista (neurone) può suonare o non suonare delle note, ma è l'insieme delle note suonate da tutti i musicisti che crea la melodia (previsione o risposta). Nessun singolo musicista "conosce" la melodia intera, ma la melodia emerge dalla loro collaborazione. Per raggiungere questo obiettivo vengono fatte tante prova e durante ogni prova, con l'aiuto di un maestro (l'algoritmo di addestramento), ciascun musicista corregge le sue note attraverso l'uso dei parametri.

In una rete neurale maggiore è il numero di parametri, tanto maggiori sono le prestazioni e la potenza dell'LLM associato. 


ALGORITMI DI BACKPROPAGATION
Gli algoritmi di backpropagation sono fondamentali per l'addestramento delle reti neurali artificiali, perché attraverso una funzione di perdita riescono a misura la discrepanza tra le predizioni del modello e i valori reali. In altre parole, l'algoritmo è capace di quantificare "quanto sbaglia" il modello; questo permette di apportare correzioni per migliorare le prestazioni del modello nel tempo.

Le funzioni di perdita sono un componente essenziale per l'addestramento delle reti neurali artificiali, perché, attraverso un apprendimento profondo, permettono alla rete di minimizzare gli errori fatti sulle previsioni o sulle risposte, facendo diventare la rete sempre più precisa.

L'intenso addestramento delle reti neurali, attraverso iterazioni continue (epiche), permette agli algoritmi di backpropagation di tarare sempre di più i parametri che servono alla rete per diventare sempre più precisa, come una persona che man mano che ripete una lezione diventa sempre più brava.

In sintesi, i parametri di una rete neurale sono i valori numerici che la rete "impara" durante l'addestramento e che determinano il successo o meno delle sue previsioni.

Le informazioni fornite in input ad una rete neurale, vengono convertite in numeri ad esempio a, b, c.

Successivamente ciascun numero viene moltiplicato per un peso specifico, ad esempio:

1. a * p1
2. b * p2
3. c * p3

La somma dei risultati delle moltiplicazioni fornisce la somma ponderata:

somma ponderata = (a * p1) + (b * p2) + (c * p3)

Il risultato della somma ponderata viene passato alla funzione di attivazione che decide se attivare o meno il neurone attraverso un valore di output. Se verrà generato un nuovo valore di output,  diventerà l'input del prossimo neurone dello strato più interno o corrisponderà l'output finale.

Durante l'addestramento, i pesi vengono aggiornati continuamente in modo da regolare il comportamento dei neuroni e minimizzare l'errore tra le previsioni del modello e i valori reali.

Il bias è un valore di correzione, che può essere aggiunto alla somma ponderata, come mostra l'esempio seguente:

somma ponderata = (a * p1) + (b * p2) + (c * p3) + bias.

Lo scopo è quello di rendere ancora più preciso il valore di input fornito alla funzione di attivazione per ottimizzare il comportamento del neurone.


I NEURONI ARTIFICIALI
Per capire il funzionamento delle reti neurali artificiali dobbiamo capire che cosa sono i neuroni artificiali.

Il primo neurone artificiale è stato creato da Warren McCulloch e Walter Pitts nel 1943

Il neurone di McCulloch-Pitts era estremamente semplice rispetto ai modelli di neuroni artificiali utilizzati oggi nelle reti neurali artificiali (ANN, Artificial Neural Networks). Si basava su una funzione di soglia: il neurone attivava un segnale di output solo se la somma dei segnali di input superava una determinata soglia.

La funzione di soglia era un meccanismo binario. Se la somma ponderata degli input superava una certa soglia, il neurone si attivava; altrimenti, rimaneva inattivo. Era un po' come un interruttore: acceso o spento.

Questo modello rappresentò uno dei primi tentativi di simulare il funzionamento del cervello umano utilizzando sistemi matematici non lineari, ponendo le basi per lo sviluppo delle reti neurali artificiali moderne e, più in generale, dell'intelligenza artificiale.

Nei neuroni delle reti neurali moderne, la semplice funzione di soglia è stata sostituita con funzioni di attivazione più sofisticate; queste funzioni rendono questi modelli di apprendimento molto più potenti ed efficaci.


La funzioni di attivazione più comuni sono:

Sigmoide: produce un output compreso tra 0 e 1.
Tanh (Tangente iperbolica): simile alla sigmoide, ma l'output è compreso tra -1 e 1.
ReLU (Rectified Linear Unit - Unità lineare rettificata): chiamata anche raddrizzatore, restituisce 0 per input negativi e l'input stesso per input positivi.


Il neurone artificiale simula il comportamento di un neurone biologico. 

I neuroni raccolgono gli impulsi (INPUT) dell'ambiente esterno attraverso i dendriti. Questi segnali energetici vengono memorizzati nel soma, sotto forma d'impulsi elettrici. il soma è corpo cellulare che contiene il nucleo del neurone e si comporta come un condensatore elettrico. Quando l'energia accumulata supera la soglia consentita, quella in eccesso, attraverso l'assone viene trasferita, in modo parallelo ai dendriti di altri neuroni.

Il passaggio dell'impulso elettrico attraverso l'assone versi i dendriti degli altri neuroni si chiama sinapsi

Un neurone biologico ha le seguenti analogie con un neurone artificiale:

Segnali: entrambi i tipi di neuroni ricevono segnali in ingresso.
Peso dei segnali: nei neuroni artificiali, i segnali hanno un peso che ne determina l'importanza; nei neuroni biologici, l'efficacia di una sinapsi (la connessione tra due neuroni) può variare, influenzando l'impatto di un segnale.
Soglia: entrambi i tipi di neuroni hanno una soglia che deve essere superata per attivarsi.
Output: Il neurone artificiale produce un output numerico, mentre il neurone biologico genera un potenziale d'azione.
Funzioni: I neuroni biologici sono specializzati in diverse funzioni, a seconda della loro posizione nel cervello. Nei neuroni artificiali, la funzione di soglia è sostituita dalle funzioni di attivazione. Queste funzioni, come la funzione sigmoidale, la ReLU oppure la Tanh, offrono una maggiore flessibilità e permettono ai modelli di apprendere informazioni più complesse. Il concetto di base rimane lo stesso: c'è un valore di soglia che determina se il neurone si attiva o meno; la collaborazione tra tutti neuroni della rete, e il loro stato determina la qualità della predizione.

Le funzioni di attivazione sono importanti perché determinano la linearità o la non linearità del modello. 

La non linearità permette alle reti neurali di apprendere relazioni complesse tra i dati ; una rivoluzione importante rispetto ai comuni algoritmi di Machine Learning, che seguono una logica lineare.

Nelle reti neurali artificiali i neuroni artificiali sono interconnessi tra loro come un grafo e caratterizzano gli stati interni nascosti.

Gli strati nascosti, composti da neuroni artificiali, sono il cuore delle reti neurali. E' qui che avviene la maggior parte dell'elaborazione delle informazioni e dove la rete "impara" a riconoscere pattern e a prendere decisioni.


IL PERCETTRONE

Il percettrone è il "nonno" delle reti neurali, ma le architetture moderne hanno superato di gran lunga le sue capacità. Comprendere il percettrone è fondamentale per apprezzare l'evoluzione e la complessità delle reti neurali attuali. È costituito da un singolo strato di neuroni, ognuno dei quali riceve un input, calcola una somma ponderata e applica una funzione di attivazione.


Il percettrone è in grado di separare solo dati linearmente separabili. Ciò significa che non può risolvere problemi complessi che richiedono rappresentazioni non lineari.
Ha gettato le basi per lo sviluppo delle reti neurali moderne, introducendo concetti fondamentali come pesi, soglie e funzioni di attivazione.


Come si comporta un percettrone per prendere una decisione?

Immaginate che il percettrone deve decidere se un frutto è maturo o no. Ogni caratteristica del frutto (colore, dimensione, consistenza) viene valutata e a ciascuna di queste caratteristiche viene assegnato un peso. il valore del peso rappresenta l'importanza che attribuiamo a ciascuna caratteristica nel processo decisionale. Supponiamo che percettrone classifichi un frutto come maturo o acerbo in base a due caratteristiche: il colore (rosso o verde) e la dimensione (grande o piccola). Assegniamo un peso a ciascuna caratteristica e una soglia.

Caratteristiche:

Colore rosso: peso = 2
Colore verde: peso = -1
Dimensione grande: peso = 1
Dimensione piccola: peso = -1
Soglia: 1

Funzione di attivazione:

Utilizziamo una funzione a gradino: se la somma ponderata delle caratteristiche supera la soglia, il frutto viene classificato come maturo (output = 1), altrimenti come acerbo (output = 0).

Calcolo della somma ponderata:

Se il frutto è rosso e grande: 2 (rosso) + 1 (grande) = 3.
Se il frutto è verde e piccolo: -1 (verde) - 1 (piccolo) = -2.

Confronto con la soglia:

Nel primo caso, 3 > 1, quindi il frutto viene classificato come maturo.
Nel secondo caso, -2 < 1, quindi il frutto viene classificato come acerbo.

Interpretazione dei pesi e della soglia:

Pesi positivi: Indicano che una caratteristica aumenta la probabilità che il frutto sia maturo.
Pesi negativi: Indicano che una caratteristica diminuisce la probabilità che il frutto sia maturo.
Soglia: Rappresenta il valore limite oltre il quale il percettrone si attiva e classifica il frutto come maturo.

In sintesi:

I pesi definiscono l'importanza relativa di ciascuna caratteristica nell'influenzare la decisione finale.
La soglia determina il punto di "taglio" tra le due classi (maturo/acerbo).
La funzione di attivazione trasforma la somma ponderata in una decisione binaria.


TIPI DI RETI NEURALI ARTIFICIALI

I principali tipi di reti neurali artificiali sono: 

1) Feed-forward
2) Ricorrenti
3) Convoluzionali
4) Generative Adversariali
5) Trasformatori

Nel prossimo articolo vi parlerò delle differenze e in quali campi vengono impiegati.


1.Intelligenza Artificiale: se la conosci non la temi
2.Intelligenza Artificiale: i modelli linguistici di grandi dimensioni
4.Intelligenza Artificiale: tipi di reti neurali artificiali


- Abiti in Campania?
- Sei diplomato in ambito contabile, economico o amministrativo?
- Sei alla ricerca di un percorso di formazione gratuito perché 
vuoi acquisire competenze in amministrazione e contabilità, con un focus sulla piattaforma SAP?

Non perdere questa opportunità, il 18 novembre, presso la "Skill Factory"l'Academy delle professioni digitali, in collaborazione con Keytech - SAP S/4® Solution Operations, parte il corso PAR GOL 10778 finanziato dalla Regione Campania:

 

๐Ÿ“š ๐——๐—ฒ๐˜๐˜๐—ฎ๐—ด๐—น๐—ถ ๐—ฑ๐—ฒ๐—น ๐—ฐ๐—ผ๐—ฟ๐˜€๐—ผ:
210 ore di formazione online (teoria/laboratorio: dal lunedì al venerdì, dalle 9:30 alle 13:30 e dalle 14:30 alle 16:30)
110 ore di tirocinio in presenza presso l'azienda Keytech di Napoli (8 ore al giorno, dal lunedì al venerdì)

๐ŸŽฏ ๐—ฅ๐—ฒ๐—พ๐˜‚๐—ถ๐˜€๐—ถ๐˜๐—ถ: Diploma o Laurea in Contabilità/Economia o Status di disoccupazione o inoccupazione

Al termine del corso, otterrai la ๐—พ๐˜‚๐—ฎ๐—น๐—ถ๐—ณ๐—ถ๐—ฐ๐—ฎ ๐—ฝ๐—ฟ๐—ผ๐—ณ๐—ฒ๐˜€๐˜€๐—ถ๐—ผ๐—ป๐—ฎ๐—น๐—ฒ ๐—˜๐—ค๐—™๐Ÿฑ, riconosciuta a livello internazionale.

I posti sono limitati! Invia subito il tuo CV a recruiting@skillfactory.it o contattaci ai numeri:
- 3270870141
- 08118181361

Per maggiori dettagli sui corsi PAR GOL, visita il nostro sito: www.skillfactory.it

 

reti neurali artificiali modelli matematici reti neurali biologiche intelligenza artificiale machine learning deep learning neuroni artificiali funzione di perdita funzione di attivazione parametri pesi bias soglia sigmoide tanh relu percettrone

Share Button
TOP