Esplorazione curiosity driven: la curiosità uccide il gatto ma la soddisfazione l’ha riportato in vita. Nuova frontiera del deep learning?
Cosa vuol dire curiosity driven? La ricerca e l’innovazione in AI ci ha oramai abituato a novità e breakthrou ogni giorno. Oramai siamo abituati ad algoritmi che sanno riconoscere scene e ambienti in tempo reale e muoversi di conseguenza, algoritmi che sanno comprendere il linguaggio naturale (NLP), imparare il lavoro manuale direttamente dall’osservazione, “inventare” video con personaggi noti ricostruendo la mimica sincronizzata all’audio, imitare la voce umana in dialoghi anche non banali, e persino a sviluppare nuovi algoritmi di AI da soli (!).
La gente mette il becco dappertutto. L’uomo non discende dalla scimmia bensì dalla gallina. (L’ombra del vento – Carlos Ruiz Zafón)
Tutto molto bello e impressionante (o inquietante, a seconda dei punti di vista). Ma c’era ancora qualcosa che mancava. Anche con la capacità di perfezionarsi fino a raggiungere risultati paragonabili o anche superiori a quelli degli esseri umani, tutte queste performance partivano sempre da input umani. Sono sempre gli umani a decidere di cimentarsi in un dato task, a preparare gli algoritmi, e a “spingere” le AI verso una data direzione.
In fondo anche automobili totalmente autonome hanno pur sempre bisogno di ricevere una destinazione da raggiungere.
In altre parole, non importa il livello di perfezione nell’esecuzione o di autonomia nel raggiungere un obiettivo: la motivazione rimane sostanzialmente umana.
Diversi tipi di motivazione
Cos’è la motivazione? Da un punto di vista psicologico è la “molla” che ci spinge verso un determinato comportamento. Senza addentrarci nella miriade di teorie psicologiche a riguardo (l’articolo di Ryan e Deci pò essere un buon punto di partenza per chi è interessato ad approfondire, oltre alla voce di Wikipedia), possiamo genericamente distinguere tra motivazione estrinseca, dove l’individuo è motivato da ricompense esterne, e motivazione intrinseca, dove la spinta ad agire deriva da forme di gratificazione interiore.
Queste ricompense o gratificazioni sono convenzionalmente chiamati “rinforzi“, che possono essere positivi (premi), o negativi (punizioni), e sono un meccanismo potente di apprendimento, quindi non sorprende più di tanto che sia stato sfruttato anche nel Machine Learning,
Reinforcement Learning: si impara per premi e punizioni
AlphaGo di DeepMind è stato l’esempio più stupefacente dei risultati che si possono raggiungere con il reinforcement learning, e prima ancora la stessa DeepMind aveva presentato risultati sorprendenti con un algoritmo che imparava a giocare ai videogames da solo (l’algoritmo non sapeva praticamente nulla delle regole e dell’ambiente del gioco).
C’è da dire che questo genere di algoritmi prevedevano rinforzi immediati, cruciali per questo tipo di apprendimento: la macchina riceve istantaneamente un feedback sull’esito (es. il punteggio), per cui è in grado di elaborare strategie che portino ad ottimizzare verso la maggior quantità di “premi” possibile.
Questa situazione in un certo senso assomiglia al dilemma degli incentivi aziendali: sono molto efficaci, ma non sempre nella direzione che ci si sarebbe aspettata (celebre l’esempio dell’incentivo ai programmatori per linee di codice, che risultò efficacissimo nell’incoraggiare a produrre codice lunghissimo, spesso a scapito della qualità).
Tuttavia, nel mondo reale i rinforzi esterni sono spesso rari, o addirittura assenti, e in questi casi la curiosità può funzionare da rinforzo intrinseco (motivazione interna) per innescare un’esplorazione del’ambiente e imparare abilità che possono tornare utili successivamente.
Pochi rinforzi è meglio
Lo scorso anno un gruppo di ricercatori dell’università di Berkeley pubblicò un lavoro notevole, destinato probabilmente a spingere ancora in avanti i limiti del machine learning, il cui titolo era Curiosity Driven Exploration by Self-supervised Prediction. La curiosità in questo contesto veniva definita come “l’errore nella capacità di un agente di prevedere la conseguenza delle proprie azioni in uno spazio di caratteristiche visive apprese da un modello di dinamica inversa auto-supervisionato”.
In altre parole, l’agente si crea un modello dell’ambiente che sta esplorando, e l’errore nelle previsioni (differenza tra modello e realtà) consisterebbe nel rinforzo intrinseco che incoraggerebbe la curiosità di esplorazione.
La ricerca prevedeva tre differenti settings:
- “Sparse extrinsic reward”, ovvero rinforzi estrinseci forniti con bassa frequenza.
- Esplorazione senza rinforzi estrinseci.
- Generalizzazione di scenari inesplorati (es. nuovi livelli del gioco), dove la conoscenza acquisita dalla precedente esperienza agevola un’esplorazione più veloce che non ripartire da zero.
Come si vede dal video qui sopra, l’agente dotato di curiosità intrinseca riesce a completare senza problemi il livello 1 di SuperMario Bros e VizDoom, mentre quello che ne è sprovvisto tende a scontrarsi spesso con le pareti, o incastrarsi in qualche angolo.
Intrinsic Curiosity Module (ICM)
Quello che propongono gli autori è l’Intrinsic Curiosity Module (ICM), che si avvale della metodologia dei gradienti asincroni A3C proposta da Minh e coll. per la determinazione delle policy da perseguire.

Qui sopra ho riproposto il diagramma concettuale del modulo: a sinistra mostra come l’agente interagisce con l’ambiente in relazione alla policy e ai rinforzi che riceve. L’agente si trova in un determinato stato st, ed esegue l’azione αt in accordo con il piano π1. L’azione αt riceverà eventualmente rinforzi intrinseci ed estrinseci (ret+rit), e modificherà l’ambiente E portando a un nuovo stato st+1… e così via.
A destra c’è uno spaccato di ICM: un primo modulo converte gli stati grezzi st dell’agente in feature φ(st) utilizzabili nell’elaborazione. Successivamente il modulo di dinamica inversa (inverse model) utilizza le features di due stati adiacenti φ(st) e φ(st+1) per predire l’azione che ha compiuto l’agente per passare da uno stato all’altro.
Contemporaneamente viene addestrato anche un altro sottosistema (forward model), che predice la prossima feature a partire dall’ultima azione dell’agente. I due sistemi vengono ottimizzati insieme, ovvero Inverse Model impara feature che sono rilevanti solo alle previsioni sulle azioni dell’agente, e Forward Model impara a fare previsioni su queste features.
E quindi?
Il punto saliente è che non essendoci rinforzi per features ambientali che non hanno rilevanza con le azioni dell’agente, la strategia imparata è robusta ad aspetti ambientali incontrollabili (vedi l’esempio con rumore bianco nel video).
Per capirci meglio, il vero rinforzo dell’agente qui è la curiosità, ovvero l’errore nella predizione degli stimoli ambientali: maggiore è la variabilità, maggiori saranno gli errori che l’agente farà nel predire l’ambiente, maggiore sarà il rinforzo intrinseco, mantenendo l’agente “curioso”.
Fare predizioni basate sui pixel non solo è molto difficile, ma rende l’agente troppo “fragile” rispetto a rumore o elementi poco rilevanti. Tanto per fare un esempio, se nell’esplorazione di un labirinto l’agente si trovasse davanti ad alberi con le foglie mosse dal vento, l’agente rischierebbe di “ipnotizzarsi” sulle foglie per la sola ragione che sono difficili da prevedere, trascurando tutto il resto. ICM invece consente di avere features estratte autonomamente dal sistema, in pratica in modo auto-supervisionato, risultando nella robustezza di cui parlavamo.
Generalizzazione
Il modello proposto dagli autori porta un notevole contributo alla ricerca sull’esplorazione curiosity driven. Utilizzando features autoestratte invece che i pixel per le predizioni, rendono il sistema quasi immune a rumore e a elementi irrilevanti, evitando di andare a cacciarsi in vicoli ciechi.
Ma non è ovviamente tutto qui. Questo sistema è infatti in grado di utilizzare la conoscenza acquisita durante l’esplorazione per migliorare la performance. Nella figura sopra l’agente riesce a completare il livello 2 di SuperMario bros molto più velocemente grazie all’esplorazione “curiosa” effettuata nel livello 1. In VizDoom invece, riusciva a percorrere il labirinto molto velocemente senza andare a sbattere contro le pareti.
In SuperMario l’agente è in grado di completare il 30% della mappa senza alcun tipo di rinforzo estrinseco. La ragione però è che al 38% si trova un baratro superabile solo da una ben determinata combinazione di 15-20 tasti. Di conseguenza l’agente cade e muore senza alcun tipo di informazione sull’esistenza di ulteriori porzioni di ambiente esplorabile. Il problema non è in sé collegato all’apprendimento per curiosità, ma è senz’altro uno scoglio da risolvere.
Note
1: La policy di learning, che nel caso specifico è il modello Asynchronous Advantage Actor Critic (A3C) di Minh e coll. Il sottosistema di policy è addestrato appunto per massimizzare i rinforzi ret+rit (dove ret è prossimo allo zero).
Link
Richard M. Ryan, Edward L. Deci: Intrinsic and Extrinsic Motivations: Classic Definitions and New Directions. Contemporary Educational Psychology 25, 54–67 (2000), doi:10.1006/ceps.1999.1020.
In search of the evolutionary foundations of human motivation
D. Pathak et al. Curiosity-driven Exploration by Self-supervised Prediction. arXiv 1705.05363
CLEVER MACHINES LEARN HOW TO BE CURIOUS (AND PLAY SUPER MARIO BROS.)
I. M. de Abril, R. Kanai: Curiosity-driven reinforcement learning with homeostatic regulation – arXiv 1801.07440
Researchers Have Created an AI That Is Naturally Curious
V. Mnih et al.: Asynchronous Methods for Deep Reinforcement Learning – arXiv:1602.01783
Asynchronous Advantage Actor Critic (A3C) – Github (codice sorgente)
Asynchronous methods for deep reinforcement learning – the morning paper