Posted on

Intelligenza Artificiale : Reti Neurali Artificiali

Le Reti Neurali Artificiali (RNA) rappresentano uno dei pilastri fondamentali e di maggiore successo dell’Intelligenza Artificiale contemporanea. Ispirate vagamente alla struttura e al funzionamento del cervello biologico, le RNA sono modelli computazionali capaci di apprendere rappresentazioni complesse dai dati, ottenendo risultati straordinari in una vasta gamma di applicazioni, dal riconoscimento di immagini e voce all’elaborazione del linguaggio naturale e alla robotica.

Il Neurone Artificiale: Il Modello del Percettrone

L’unità di base di una rete neurale artificiale è il neurone artificiale, spesso chiamato anche nodo o unità. Il modello più semplice di neurone artificiale è il percettrone, introdotto da Frank Rosenblatt negli anni ’50. Il suo compito è prendere una serie di input, elaborarli in modo molto basilare, e produrre un singolo output (una decisione).

Un percettrone riceve uno o più segnali di input (x1​,x2​,…,xn​), a ciascuno dei quali è associato un peso sinaptico (w1​,w2​,…,wn​) che ne determina l’importanza. Gli input pesati vengono sommati, e alla somma viene aggiunto un bias (b), un valore costante che permette di spostare la soglia di attivazione. Il risultato di questa somma ponderata viene poi passato attraverso una funzione di attivazione che determina l’output del neurone (y).

Come Funziona? Gli Ingredienti Chiave:

1.Input (Caratteristiche): Il percettrone riceve uno o più input. Questi input rappresentano le caratteristiche (o features) dell’elemento che stiamo cercando di classificare. Pensa alle caratteristiche come alle diverse “domande” che fai sull’oggetto per decidere a quale categoria appartiene.

    • Esempio: Se stiamo cercando di decidere se un’email è spam o no, gli input potrebbero essere: la frequenza di certe parole (“gratis”, “offerta”), la lunghezza dell’email, se il mittente è sconosciuto, ecc. Ogni input ha un valore numerico.

2. Pesi: Ad ogni input è associato un peso. Questi pesi rappresentano l’importanza di ciascun input nella decisione finale del percettrone.

      • Esempio: Se la presenza della parola “gratis” è un forte indizio di spam, il peso associato a quell’input sarà elevato. Se la lunghezza dell’email è meno importante, il suo peso sarà più basso. I pesi possono essere positivi o negativi.

3. Somma Ponderata: Il percettrone calcola la somma ponderata degli input. Questo significa che ogni input viene moltiplicato per il suo peso corrispondente, e poi tutti questi prodotti vengono sommati insieme.

    • Matematicamente: somma = (input_1 * peso_1) + (input_2 * peso_2) + ... + (input_n * peso_n)

4. Bias (Soglia): Al risultato della somma ponderata viene aggiunto un valore costante chiamato bias (o soglia). Il bias permette al percettrone di essere attivato anche quando tutti gli input sono zero o molto piccoli, oppure di dover superare una certa “inerzia” prima di attivarsi.

    • Matematicamente: somma_con_bias = somma + bias

5. Funzione di Attivazione: Il risultato finale (somma_con_bias) viene passato attraverso una funzione di attivazione. Questa funzione decide l’output del percettrone basandosi sul valore che riceve. Una funzione di attivazione semplice per un percettrone è la funzione a gradino (step function):

    • SE somma_con_bias è maggiore di una certa soglia (spesso 0), l’output è 1 (o “attivato”, o appartenente a una certa classe).
    • ALTRIMENTI (se somma_con_bias è minore o uguale alla soglia), l’output è 0 (o “non attivato”, o appartenente all’altra classe).

In Sintesi: Prendere una Decisione Binaria

Il percettrone è fondamentalmente un classificatore binario: decide se un input appartiene a una di due classi (ad esempio, spam/non spam, gatto/non gatto, vero/falso). Lo fa valutando quanto “pesano” le diverse caratteristiche dell’input e confrontando la loro combinazione con una soglia.

Il percettrone è in grado di apprendere a classificare pattern lineari modificando i suoi pesi e il bias attraverso un algoritmo di apprendimento.

Reti Neurali (Artificiali): Architettura Generale

Una rete neurale artificiale è costituita da un insieme interconnesso di neuroni artificiali organizzati tipicamente in strati. L’architettura più comune è quella delle reti neurali feedforward (o a propagazione in avanti), in cui l’informazione fluisce in una sola direzione, dagli strati di input agli strati nascosti (uno o più) fino allo strato di output.

  • Strato di Input: Riceve i dati di input grezzi (ad esempio, i pixel di un’immagine, le parole di una frase).
  • Strati Nascosti: Interposti tra l’input e l’output, questi strati eseguono trasformazioni complesse sui dati di input, apprendendo rappresentazioni intermedie utili per il compito specifico. Il numero e la dimensione degli strati nascosti (il numero di neuroni in ciascuno strato) determinano la capacità del modello di apprendere funzioni complesse.
  • Strato di Output: Produce il risultato finale del modello (ad esempio, la classe di un’immagine, la previsione di un valore numerico, la probabilità di una sequenza di parole).

Le connessioni tra i neuroni di strati adiacenti sono caratterizzate dai pesi sinaptici, che vengono appresi durante la fase di training.

connessioni ricorrenti

L’architettura di una rete neurale può variare significativamente a seconda del tipo di problema da risolvere, includendo anche connessioni ricorrenti. Le connessioni ricorrenti si riferiscono a connessioni che creano dei cicli all’interno della rete. Invece di avere un flusso di informazioni strettamente direzionale da uno strato all’altro (come nelle reti feedforward), in una rete con connessioni ricorrenti, l’output di un neurone (o di un intero strato) può essere re-immesso come input allo stesso neurone o a neuroni in strati precedenti.


INDICE