Layer e architettura: com’è strutturato un modello di intelligenza artificiale

Immagine realizzata con IA
Le immagini presenti nel post possono essere realizzate o elaborate con strumenti di Intelligenza Artificiale. Questa scelta nasce anche dalla necessità di prevenire le continue contestazioni e richieste economiche improprie che ricevo relative a fotografie utilizzate che sono sempre state acquistate con regolare licenza.
Contenuti dell'articolo

Immagina una fabbrica che lavora una materia prima passaggio dopo passaggio. All’ingresso arriva qualcosa di grezzo, poi ogni reparto lo trasforma un po’ e alla fine esce un prodotto finito. In un modello di intelligenza artificiale questa catena di reparti si chiama architettura e i singoli reparti sono i layer.

Capire come è organizzato un modello aiuta a smettere di vederlo come una scatola magica. Non c’è magia: ci sono strati di operazioni matematiche messe in fila in un certo ordine. L’ordine è il progetto e il progetto è quello che decide cosa il modello può imparare a fare.

Cosa sono i layer, in parole semplici

Un layer (in italiano si dice anche “strato”) è un gruppo di neuroni artificiali che lavorano sulle stesse informazioni nello stesso momento. Riceve dei numeri in ingresso, applica un calcolo e restituisce dei numeri in uscita. Quelli diventano l’ingresso del layer successivo.

Il punto chiave è che ogni layer non vede il mondo. Vede solo l’output del layer precedente. È come la catena di montaggio: chi serra i bulloni non guarda il progetto originale, guarda il pezzo che gli arriva davanti.

Ed è proprio questo che rende i layer potenti. Il primo strato impara a riconoscere cose semplici, quelli intermedi combinano quelle cose in concetti più complessi e gli strati finali usano quei concetti per prendere una decisione. Nessuno ha programmato a mano cosa impara ogni strato: emerge dall’addestramento.

Tip: quando leggi “modello a 12 layer”, “a 48 layer” o “a 96 layer”, non si parla del numero di neuroni. Si parla di quanti passaggi di trasformazione i dati devono attraversare dall’ingresso all’uscita. Più passaggi, più il modello può ragionare su livelli di astrazione diversi.

Come è fatto un layer: pesi, bias e attivazione

Dentro ogni layer succedono due cose, sempre le stesse. Prima una somma pesata, poi una funzione di attivazione. Sembra poco, ma è tutto quello che serve.

La somma pesata prende i numeri in ingresso, li moltiplica per dei valori chiamati pesi e aggiunge un termine chiamato bias. I pesi dicono quanta importanza dare a ciascun ingresso, il bias sposta il risultato di un po’. Se hai già letto la lezione su pesi e bias, è esattamente quel meccanismo, ripetuto in parallelo su migliaia di neuroni.

Poi entra in scena la funzione di attivazione. Serve a introdurre una non linearità, cioè a impedire che tutta la catena di layer si riduca a una sola moltiplicazione gigante. Senza di essa, impilare cento strati sarebbe identico ad averne uno solo. È la piega che rende utile la profondità.

Tip: i pesi e i bias sono i parametri del modello. L’architettura invece è la struttura fissa: quanti layer, di che tipo, come collegati. Si progetta una volta, mentre i parametri si imparano durante l’addestramento.

Schema di come funziona un layer: input, somma pesata con pesi e bias, funzione di attivazione, output
Dentro un layer: somma pesata e funzione di attivazione.

I tre tipi di layer di una rete neurale

In una rete neurale classica i layer si dividono in tre categorie, in base a dove si trovano nella catena.

Schema dei tre tipi di layer di una rete neurale: input layer, hidden layer e output layer
I tre tipi di layer: input, hidden e output.

Input layer

È il primo strato. Non calcola quasi nulla: riceve i dati grezzi e li passa avanti. Se il modello analizza un’immagine di 28×28 pixel, l’input layer avrà 784 valori in entrata, uno per pixel. Se analizza una frase già trasformata in numeri, riceverà quei numeri.

Hidden layer

Sono gli strati nascosti, quelli in mezzo. Svolgono il vero lavoro di trasformazione e possono essere uno solo oppure decine. Quando un modello è definito deep (profondo) è perché ha molti hidden layer in sequenza. È da lì che viene il nome “deep learning”.

Output layer

È l’ultimo strato, quello che produce la risposta finale. La sua forma dipende dal compito: un solo valore se il modello deve dire sì o no, tanti valori quante sono le classi se deve scegliere tra più opzioni, una sequenza di valori se deve generare testo.

Che cos’è l’architettura di un modello

L’architettura è il progetto complessivo: quanti layer ci sono, che tipo sono, come sono collegati tra loro, come fluiscono i dati e come tornano indietro durante l’addestramento. È la planimetria della fabbrica, non i suoi operai.

Due modelli con lo stesso numero di parametri possono comportarsi in modo molto diverso se hanno architetture diverse. È come due edifici con lo stesso numero di mattoni: uno è una torre, l’altro un capannone. I materiali sono identici, la forma cambia tutto.

L’architettura si sceglie prima dell’addestramento e di solito non cambia più. Si può modificare durante il progetto, ma farlo vuol dire ricominciare l’addestramento da capo, perché i pesi imparati non hanno più senso su una struttura diversa.

Un esempio concreto: come i dati attraversano i layer

Prendiamo un modello semplicissimo che deve capire se in una foto c’è un gatto. I dati entrano come una griglia di numeri che rappresentano i pixel.

  • Il primo layer impara a riconoscere bordi e contorni: linee chiare che finiscono contro linee scure.
  • Il secondo layer combina quei bordi in forme più definite: un cerchio, una punta, una curva.
  • Il terzo layer mette insieme le forme: due cerchi sopra una punta possono diventare “orecchie”.
  • Gli strati finali usano quelle parti per dire “gatto” oppure “non gatto”, con una probabilità associata.

Nessuno di questi livelli è stato programmato a mano. Il modello ha scoperto da solo che certi schemi tornano utili, semplicemente perché riducevano l’errore durante l’addestramento. Questa è la parte che sorprende chi studia queste cose per la prima volta.

Le architetture più comuni

Negli anni i ricercatori hanno inventato diversi modi di collegare i layer, ognuno adatto a un tipo di problema.

  • Feedforward: i dati vanno solo in avanti, da un layer al successivo. È la forma più semplice e la base di tutte le altre.
  • Convoluzionale (CNN): usa layer che scorrono su piccole porzioni di immagine. Perfetta per il riconoscimento visivo.
  • Ricorrente (RNN): ha collegamenti che tornano indietro nel tempo, così tiene memoria di ciò che ha visto prima. Storica per le sequenze, oggi meno usata.
  • Transformer: usa il meccanismo di attenzione per pesare contemporaneamente tutte le parti dell’input. È l’architettura dietro i grandi modelli linguistici come quelli di oggi.

Un modello linguistico moderno è fatto quasi solo di layer Transformer impilati uno sull’altro, spesso decine. La differenza tra un modello piccolo e uno enorme sta in gran parte in quanto è profondo e in quanto è largo ogni singolo layer.

Layer speciali che si incontrano spesso

Oltre ai tre strati di base, nelle architetture reali si trovano layer con compiti specifici. Non calcolano la trasformazione principale, ma tengono in ordine la rete e la aiutano a lavorare meglio.

  • Embedding: prende un simbolo, come una parola, trasformandolo in un vettore di numeri. È il ponte tra il linguaggio e la matematica del modello.
  • Pooling: riduce la dimensione dei dati tenendo solo le informazioni più rilevanti. Molto usato nelle reti convoluzionali per le immagini.
  • Dropout: durante l’addestramento spegne a caso alcuni neuroni, così il modello non si abitua a contare sempre sugli stessi. Serve a ridurre l’overfitting.
  • Normalizzazione: riporta i valori su una scala stabile tra un layer e l’altro, rendendo l’addestramento più rapido e prevedibile.

Vederli elencati tutti insieme può spaventare, ma ognuno risponde a un problema concreto. Il pool riduce il lavoro, il dropout combatte la memoria eccessiva, la normalizzazione evita che i numeri esplodano. Sono gli attrezzi del mestiere, non concetti separati.

Profondità e larghezza: come cambia la capacità del modello

Due misure descrivono la forma di una rete. La profondità è il numero di layer in sequenza. La larghezza è quanti neuroni ci sono dentro ogni layer.

Aumentare la profondità permette al modello di costruire concetti più astratti, mettendo insieme le idee degli strati precedenti. Aumentare la larghezza gli dà più spazio per rappresentare tante sfumature nello stesso passaggio.

C’è un limite pratico a entrambe. Reti troppo profonde diventano difficili da addestrare, perché il segnale di errore si affievolisce mentre torna indietro. Reti troppo larghe costano molta memoria e molta potenza di calcolo. Il progetto giusto è sempre un compromesso tra quello che serve e quello che si può permettere.

Tip: quando senti dire che un modello ha “N miliardi di parametri”, quel numero dipende dall’architettura. Ogni connessione tra un neurone e l’altro porta con sé un peso, quindi più layer e più neuroni significano automaticamente più parametri da addestrare e da conservare.

Architettura e addestramento: due facce diverse

Vale la pena tenere separati due concetti che spesso si confondono. L’architettura è la struttura, decisa da chi progetta il modello. L’addestramento è il processo che riempie quella struttura con i valori giusti dei parametri.

Puoi avere l’architettura perfetta e un addestramento pessimo, ottenendo un modello inutile. Puoi avere un’architettura modesta e un addestramento curato, ottenendo un modello sorprendentemente utile. Le due cose si sommano, non si sostituiscono.

Per questo, quando un nuovo modello esce e promette risultati migliori, vale sempre la pena chiedersi cosa è cambiato davvero: la struttura, i dati, il metodo di addestramento o tutte e tre le cose insieme. Il titolo dice quasi sempre “modello nuovo”, ma la sostanza sta nei dettagli.

Domande frequenti

Cos’è una funzione di attivazione?

Una funzione di attivazione è il passaggio finale di un neurone artificiale: prende il risultato ottenuto combinando gli input con pesi e bias e decide come quel valore deve essere trasformato prima di essere inviato ai neuroni successivi.

In pratica, serve a stabilire quanto e in che modo il neurone deve “attivarsi”. Senza funzioni di attivazione, anche una rete con molti strati si comporterebbe sostanzialmente come un modello matematico lineare, perdendo gran parte della capacità di imparare relazioni complesse.

Un layer è la stessa cosa di un neurone?

No. Il neurone è la singola unità di calcolo, il layer è il gruppo di neuroni che lavorano insieme sullo stesso ingresso. Un layer può contenere da pochi neuroni a migliaia.

Quanti layer servono per un modello utile?

Dipende dal compito. Problemi semplici si risolvono con uno o due hidden layer. Compiti complessi come capire il linguaggio richiedono decine di layer. Non esiste un numero giusto in assoluto.

L’architettura si può cambiare dopo l’addestramento?

In teoria sì, in pratica no. Modificare la struttura invalida i pesi imparati, quindi si deve ricominciare l’addestramento da zero. Per questo l’architettura si decide prima, con attenzione.

Perché i layer si chiamano “nascosti”?

Perché non sono visibili né dall’ingresso né dall’uscita del modello. Sono strati interni: l’utente fornisce i dati e riceve la risposta, ma non vede direttamente cosa succede nel mezzo.

Che differenza c’è tra architettura e algoritmo?

L’architettura descrive come è fatta la rete, cioè la sua struttura. L’algoritmo è la procedura matematica che aggiorna i pesi durante l’addestramento. Sono due pezzi distinti dello stesso sistema.

Newsletter settimanale con le ultime novità sull’intelligenza artificiale

Corso gratuito sull’Intelligenza Artificiale, dalle nozioni base ai concetti più complessi

Condividi:

Potrebbero interessarti