Tutti gli algoritmi che compongono l’IA devono essere valutati in relazione al potenziale impatto sui diritti e le libertà degli interessati.
Un sistema di Intelligenza Artificiale (IA) è composto da diversi elementi: interfacce, sensori, comunicazioni… e almeno un modello di IA in cui sarà presente l’algoritmo di IA. Tuttavia, l’implementazione di tale modello nel sistema di IA va oltre, ad esempio, l’algoritmo di una rete neurale. In genere, tale modello di IA sarà configurato combinando diversi algoritmi. Tutti questi algoritmi dovranno essere valutati in relazione al potenziale impatto sui diritti e sulle libertà degli interessati. In realtà, dovranno essere valutati anche rispetto al resto degli elementi che compongono il sistema di IA. L’intera valutazione deve tenere conto dell’intervento umano nel processo decisionale che dà forma a tali algoritmi, al fine di soddisfare i requisiti di trasparenza e spiegabilità del sistema di IA.
Un sistema di IA è caratterizzato, tra gli altri elementi, dall’inclusione di un modello di IA. L’importanza della trasparenza e della spiegabilità dei sistemi di IA è sottolineata nella proposta dell’AIA (regolamento legislativo dell’UE sull’IA) e in altre sedi. Nel caso di modelli di IA implementati con reti neurali e apprendimento automatico, si evidenziano le difficoltà di tale operazione.
In breve, possiamo dire che una rete neurale è rappresentata come una rete di nodi (o neuroni) interconnessi. In sintesi, ogni nodo funziona sommando i valori di ingresso e, se il risultato raggiunge una soglia, genera un’uscita o un’altra. Il nodo è configurato con un valore di offset e una serie di parametri o “pesi” collegati a ciascun ingresso del nodo. Il peso è un numero che viene utilizzato per bilanciare l’influenza di ciascun ingresso nel calcolo dell’uscita del nodo.

Figura 1: Rappresentazione classica di una rete neurale e dettaglio del nodo tipico (il neurone).
La figura precedente ha uno scopo didattico. Un insieme di nodi non esiste fisicamente. L’algoritmo della rete neurale potrebbe essere semplice come il seguente codice:
Risultato_intermedio = input
Per i da 2 a numero_strato
Per j da 1 a numero_nodi_per_strato
Risultato_intermedio(j) = attivazione(Risultato_intermedio,pesi(i,j));
Risultato = Risultato_intermedio;
Il codice precedente potrebbe rappresentare una rete neurale di qualsiasi dimensione: da un nodo a milioni di nodi, regolando il numero di strati e il numero di nodi per strato. Naturalmente, tale codice potrebbe essere più complesso per migliorare le prestazioni. Ciò che fa la differenza in una rete neurale sono i pesi assegnati agli ingressi di ciascun nodo (si consideri l’offset incluso). Le reti neurali, a parità di topologia (numero di ingressi, numero di strati, ecc.), potrebbero svolgere compiti completamente diversi a seconda della configurazione dei pesi.
Tutto questo funziona perché la rete neurale si comporta come una “macchina universale”, cioè la rete neurale può svolgere molti compiti diversi a seconda della matrice dei pesi. Si potrebbe fare un’analogia con un sistema informatico. Anche un computer è una “macchina universale” e il compito che svolge dipende dal programma che vi gira. Naturalmente, il tipo di computer può fare la differenza nel modo in cui un programma viene eseguito. Tuttavia, la spiegazione di come è strutturato un computer non fornisce informazioni sufficienti sul compito e sulle prestazioni del programma che vi gira sopra. La matrice dei pesi di una rete neurale svolge il ruolo di un programma in un computer. Se i pesi vengono modificati, la rete neurale svolgerà una funzione diversa. In un computer, il programmatore scrive codice basato su decisioni che devono essere documentate. Pertanto, in un modello basato sulle reti neurali, dobbiamo spiegare come è stata stabilita la matrice di pesi corretta.
La matrice dei pesi in una rete neurale non viene stabilita da un programmatore, ma attraverso un processo di apprendimento automatico. Tuttavia, la rete neurale non impara da sola, ma elabora solo gli input e i pesi di ciascun nodo per ottenere un risultato. Per regolare la matrice dei pesi sono necessari altri algoritmi. E questi algoritmi non sono solitamente algoritmi di rete neurale.
Il primo gruppo di algoritmi che regolano la matrice dei pesi è quello che valuta se il comportamento della rete neurale è sufficientemente buono rispetto ad alcune metriche. Chiamiamo questo algoritmo Funzione di costo.

Figura 2: Un modello AI completo di un tipico processo di apprendimento automatico di una rete neurale
Per ogni input della rete neurale, la funzione di costo valuta la qualità dell’output risultante. Nel caso dell’apprendimento supervisionato, l’output sarà valutato rispetto a un riferimento noto. Nel caso dell’apprendimento non supervisionato, questo algoritmo potrebbe essere ancora più complesso.
Il set di dati di addestramento non consiste in un singolo input, ma in un insieme di input, e nel Machine Learning ci deve essere un gran numero di input. I risultati di ogni singolo input devono essere valutati e da tutti i risultati si deve trarre una conclusione. Questa conclusione indica se la rete neurale funziona correttamente o se la matrice dei pesi deve essere aggiornata.
La funzione di costo deve svolgere diversi compiti: analizzare il risultato in relazione a una metrica, elaborare tutti i risultati parziali per ottenere informazioni sulle prestazioni attuali della rete neurale e fornire informazioni per l’algoritmo di apprendimento. Tutti questi algoritmi possono variare da molto semplici a molto complicati. Il modo in cui viene impostato l’algoritmo della funzione di costo avrà un impatto sul modo in cui viene impostata la matrice dei pesi, ovvero sul comportamento della rete neurale. Una volta che l’algoritmo della funzione di costo giunge alla conclusione che la matrice dei pesi deve essere aggiornata, la chiave è come aggiornare tale matrice. Questo viene fatto dall’algoritmo di apprendimento. Questo algoritmo ha bisogno di informazioni su come effettuare questo aggiornamento: alcune informazioni provengono dall’algoritmo della funzione di costo, altre dai parametri di configurazione dell’algoritmo di apprendimento (tasso di apprendimento, momentum, dropout, ecc.), altre ancora devono essere generate dall’algoritmo di apprendimento stesso e altre dipendono dal tipo di rete neurale. In generale, l’algoritmo di apprendimento non è una rete neurale. Inoltre, molti sistemi di apprendimento automatico utilizzano più di un algoritmo di apprendimento in diverse fasi di sviluppo. Ad esempio, l’IA generativa utilizza un algoritmo di apprendimento nella fase di pre-addestramento, un altro nella fase di regolazione fine supervisionata e un altro ancora nel Reinforcement Learning from Human Feedback (o RLHF), come minimo.
Non possiamo dimenticare che l’uomo coinvolto in questo ciclo svolge un ruolo importante nell’esecuzione di tali algoritmi. In un caso, potrebbe dipendere da un “singolo” umano che decide la configurazione dei parametri, dei pesi iniziali e delle metriche di tali algoritmi. In un altro caso, potrebbe richiedere l’intervento di migliaia di persone, ad esempio per l’etichettatura dei dati di input, o nel caso della fase RLHF dell’IA generativa, che avrà bisogno del tasso di coinvolgimento del maggior numero possibile di persone. Tutte queste persone prenderanno decisioni che influenzeranno il comportamento finale del sistema di IA, compresa la possibile presenza di pregiudizi.
Tutti gli algoritmi coinvolti nel processo di apprendimento svolgeranno un ruolo più critico quando verranno utilizzati oltre la fase di sviluppo. Cioè, quando il sistema di IA viene riqualificato durante la fase operativa del sistema di IA cambiando dinamicamente la matrice dei pesi, il che equivale a cambiare la sua programmazione.
Questa è un’introduzione puramente didattica all’argomento. Nel mondo reale, è necessario prendere in considerazione molti più fattori. Con lo stesso set di dati di addestramento, ma con un algoritmo di funzione di costo diverso, algoritmi di apprendimento diversi e interventi umani, il sistema di intelligenza artificiale risultante può avere prestazioni diverse e persino svolgere funzioni diverse. La conclusione è che la valutazione della rete neurale e la matrice dei pesi non forniscono informazioni sufficienti sulle prestazioni della rete neurale. Inoltre, è importante notare che, oltre alla valutazione dei dati di addestramento e verifica, è necessario valutare i diversi algoritmi coinvolti nel processo di apprendimento e la loro interazione, le decisioni prese per impostare i parametri di tutti questi algoritmi e l’intervento umano nelle decisioni del processo di apprendimento. Questi sono tutti elementi che devono essere spiegati.