In questo post (tecnico e spudoratamente infarcito di espressioni gergali in lingua inglese), il termine “certo” è usato come sinonimo di “deterministico” e il termine “incerto” come sinonimo di probabilistico, aleatorio, stocastico. “Incerto” non significa in alcun modo privo di rigore teorico o metodologico. Analogamente, “approssimato” qui non è sinonimo di approssimativo, non significa privo di accuratezza, come conseguenza della sciatteria, frettolosità, imperizia, vaghezza, che in genere sottendono il significato colloquiale di questo termine; qualifica invece un ben precisato metodo di calcolo numerico e si contrappone ad “analitico”.
La progettazione di gran parte dei sistemi di AI consiste nell’ottimizzazione di una funzione obiettivo, che si traduce nell’individuazione del punto di minimo di un’opportuna funzione di “costo”. Se (come capita assai raramente) la funzione è abbastanza semplice e, al più, bivariata, tutto si riduce alla soluzione analitica di una o due derivate. Ma se la funzione ha una forma un po’ articolata ed è multivariata (come succede nella generalità delle applicazioni non puramente didattiche), la via della soluzione analitica diventa impraticabile e si ricorre comunemente al metodo del gradiente discendente.
Ora, la scelta della misura del tasso di apprendimento (learning rate) e la scelta dei criteri di arresto della procedura sono arbitrarie e determinano il grado di approssimazione della soluzione ottenuta. Soluzione che, tra l’altro, potrebbe essere raggiunta in corrispondenza di un punto di minimo solo locale, non del tutto soddisfacente, senza che l’algoritmo sia in grado di rilevarlo.
Seguire però tutte le vie, che nella discesa del gradiente portano alla soluzione del problema, spesso può rallentare in modo insostenibile la procedura. Per questo motivo, in certe circostanze il percorso viene semplificato, campionando ad ogni passaggio un sottoinsieme delle alternative possibili. Ma così facendo il disegno campionario introduce elementi d’incertezza, che possono influire in modo più o meno marcato sul risultato finale.
Gli sviluppi dell’AI, quanto meno nella versione ML, hanno fatto e fanno largo uso di metodi statistici (come regressione, discriminazione, clustering), acquisendone quindi tutti i contenuti non deterministici e le approssimazioni dovute alla non perfetta aderenza empirica al modello teorico (vedi p.e. lo scostamento dall’ipotesi d’indipendenza nel modello multinomiale).
Inoltre, approcci come quello “generativo” si basano esplicitamente sulla nozione di probabilità, anche soggettiva; sulle distribuzioni di probabilità (in primis multinomiale e gaussiana multivariata); sulla stima (per esempio di massima verosimiglianza – ML maximum likelihood, da non confondere con ML machine learning) e sulla previsione (nel senso di prediction). Per non dire dell’essenza non-deterministica delle probabilità di transizione dei processi decisionali di Markov, in uso p.e. nell’apprendimento con rinforzo (reinforcement learning).
Anche solo la scelta di uno di questi modelli aleatori, tra i diversi possibili, comporta la possibilità di introdurre degli elementi opinabili. In alcuni casi la scelta del modello è addirittura duplice, come nelle misture (mixture models) e può aggiungersi anche un terzo livello d’incertezza, come negli unobserved mixture models; che si articolano nella scelta: 1) del modello di distribuzione delle osservazioni, 2) del modello di pesi da attribuire alle componenti della mistura, 3) della funzione indicatore, che da continua nell’intervallo 0-1 diventa qualitativa, con modalità “più o meno verosimile”, nella versione soft assignment of points to clusters. Ma le fonti d’incertezza diventano quattro, se si considera anche la versione bayesiana del modello.
Le procedure iterative sono fonte d’incertezza; l’assegnazione di valori iniziali random è fonte d’incertezza – un esempio è il ricorso all’approccio iterativo dell’algoritmo EM, che, in presenza di variabili latenti, cicla tra due modalità: nella prima (detta E-step o estimation step) si cerca di stimare le variabili latenti; nella seconda (detta M-step o maximization step) si ottimizzano i parametri del modello inteso a spiegare i dati; e così via. Ora, anche con l’algoritmo EM è garantita solo la convergenza locale; il che significa che differenti valori iniziali portano a soluzioni differenti.
Ma non solo – in tutti i casi nei quali si procede fino ad un risultato ritenuto “buono” (come appunto nell’algoritmo EM), anche questo target predefinito, rispetto al quale decidere quando fermarsi, diventa un elemento d’incertezza, perché può essere legittimamente diverso da ricercatore a ricercatore.
A differenza dell’apprendimento supervisionato (supervised learning), nel quale si segue fase per fase il processo di apprendimento, nell’apprendimento con rinforzo (reinforcement learning) quello che conta è il risultato finale, che viene globalmente “premiato” o “punito” (reward positivo o negativo), a seconda che sia più o meno conforme con l’obiettivo dell’applicazione. Questo comporta due conseguenze rilevanti: 1) si perde sostanzialmente il controllo dei passaggi che portano al risultato finale (che diventano una pericolosa scatola nera) e 2) si incentiva l’impiego di ogni e qualsiasi mezzo per arrivare al perseguimento del risultato finale.
Comunque, anche nelle applicazioni di apprendimento non-supervisionato, il ricercatore introduce indirettamente una certa dose di supervisione e di relativi elementi controvertibili, p.e. nella scelta del modello di similarità e del numero di clusters.
Da ultimo (ma in realtà è logicamente il primo passaggio da affrontare nelle applicazioni di machine learning) va ricordato il delicatissimo argomento della scelta della knowledge base (base di conoscenza) sulla quale l’applicazione si istruisce, rispetto ai due requisiti: 1) che sia sufficientemente ampia ed accurata, e 2) che sia sufficientemente rappresentativa della realtà, senza significative distorsioni. Non mi soffermo su questa questione, peraltro ben nota, se non per osservare che, per quanto sia scelta accuratamente sotto entrambi i profili, la base di dati sulla quale si sviluppa l’apprendimento rappresenta sempre un forte elemento di conservazione. La sfida principale consiste proprio nel mettere l’AI (o meglio i fruitori umani di quella particolare applicazione di AI) in sicurezza di fronte al possibile sorgere di un evento inaspettato, imprevisto e magari imprevedibile; di quel caso mai osservato o rilevato, e per questo non presente nella base di dati iniziale o in quella poi aggiornata automaticamente dalla stessa AI per piccoli scostamenti dalla prima.
Riassumendo: per quanto detto sopra (e per tante altre analoghe ragioni), i risultati delle applicazioni di AI non sono né certe né esatte (nell’accezione precisata in premessa). Esistono cioè intrinsecamente i margini per osservare outliers di varia natura – accadimenti “estremi”, anche molto lontani dal target dell’applicazione. Poco male, finché si tratti di rispondere in una chat di un sito di e-commerce; di consigliare un film o un brano musicale; di tradurre un testo non asseverato. Del resto anche le azioni umane sono (nella medesima accezione) largamente incerte e approssimate. Più preoccupanti sono le possibili conseguenze quando si tratti di applicazioni avanzate, suscettibili d’influire sulla sicurezza, sulla salute o addirittura sulla vita delle persone. E qui qualche importante differenza con il versante umano c’è, perché la nostra intelligenza (cognitiva) non è l’unico motore delle nostre azioni ed è soggetta a delle forme di controllo e bilanciamento non ancora sviluppate, per quanto ne so, sul fronte della AI.