Fondamenti di IA
Che cos’è l’Apprendimento per Rinforzo?
Che cos’è l’Apprendimento per Rinforzo?
In semplici parole, l’apprendimento per rinforzo è una tecnica di apprendimento automatico che consiste nell’addestrare un agente di intelligenza artificiale attraverso la ripetizione di azioni e ricompense associate. Un agente di apprendimento per rinforzo sperimenta in un ambiente, esegue azioni e riceve ricompense quando le azioni corrette vengono eseguite. Nel tempo, l’agente impara a eseguire le azioni che massimizzeranno la sua ricompensa. Questa è una definizione rapida dell’apprendimento per rinforzo, ma prendere uno sguardo più attento ai concetti alla base dell’apprendimento per rinforzo ti aiuterà a ottenere una comprensione migliore e più intuitiva di esso.
Il termine “apprendimento per rinforzo” è stato adottato dal concetto di rinforzo in psicologia. Per questo motivo, prendiamo un momento per capire il concetto psicologico di rinforzo. In senso psicologico, il termine rinforzo si riferisce a qualcosa che aumenta la probabilità che una particolare risposta/azione si verifichi. Questo concetto di rinforzo è un’idea centrale della teoria del condizionamento operante, inizialmente proposta dallo psicologo B.F. Skinner. In questo contesto, il rinforzo è qualcosa che causa l’aumento della frequenza di un determinato comportamento. Se pensiamo a possibili rinforzi per gli esseri umani, questi possono essere cose come lode, un aumento di stipendio, caramelle e attività divertenti.
Nel senso tradizionale, psicologico, ci sono due tipi di rinforzo. C’è il rinforzo positivo e il rinforzo negativo. Il rinforzo positivo è l’aggiunta di qualcosa per aumentare un comportamento, come dare un trattamento al tuo cane quando si comporta bene. Il rinforzo negativo coinvolge la rimozione di uno stimolo per provocare un comportamento, come spegnere rumori forti per convincere un gatto timido a uscire.
Rinforzo Positivo e Negativo
Il rinforzo positivo aumenta la frequenza di un comportamento mentre il rinforzo negativo la diminuisce. In generale, il rinforzo positivo è il tipo più comune di rinforzo utilizzato nell’apprendimento per rinforzo, poiché aiuta i modelli a massimizzare le prestazioni in un determinato compito. Non solo, ma il rinforzo positivo porta i modelli a fare cambiamenti più sostenibili, cambiamenti che possono diventare modelli coerenti e persistere per lunghi periodi di tempo.
Al contrario, mentre il rinforzo negativo rende anche più probabile un comportamento, viene utilizzato per mantenere uno standard di prestazione minima piuttosto che raggiungere la prestazione massima di un modello. Il rinforzo negativo nell’apprendimento per rinforzo può aiutare a garantire che un modello si tenga lontano da azioni indesiderabili, ma non può realmente far esplorare al modello azioni desiderabili.
Addestramento di un Agente di Apprendimento per Rinforzo
Quando un agente di apprendimento per rinforzo viene addestrato, ci sono quattro ingredienti diversi o stati utilizzati nell’addestramento: stati iniziali (Stato 0), nuovo stato (Stato 1), azioni e ricompense.
Immagina che stiamo addestrando un agente di apprendimento per rinforzo a giocare a un videogioco a piattaforme in cui l’obiettivo dell’IA è raggiungere la fine del livello muovendosi a destra sullo schermo. Lo stato iniziale del gioco viene tratto dall’ambiente, ovvero il primo frame del gioco viene analizzato e dato al modello. Sulla base di queste informazioni, il modello deve decidere un’azione.
Durante le fasi iniziali dell’addestramento, queste azioni sono casuali, ma man mano che il modello viene rinforzato, alcune azioni diventeranno più comuni. Dopo che l’azione è stata eseguita, l’ambiente del gioco viene aggiornato e viene creato un nuovo stato o frame. Se l’azione eseguita dall’agente ha prodotto un risultato desiderabile, diciamo in questo caso che l’agente è ancora vivo e non è stato colpito da un nemico, viene data una ricompensa all’agente e diventa più probabile che lo faccia di nuovo in futuro.
Questo sistema di base viene costantemente ripetuto, avviene di nuovo e di nuovo, e ogni volta l’agente cerca di imparare un po’ di più e massimizzare la sua ricompensa.
Compiti Episodici vs Compiti Continui
I compiti di apprendimento per rinforzo possono essere generalmente classificati in due categorie diverse: compiti episodici e compiti continui.
I compiti episodici eseguiranno il ciclo di apprendimento/addestramento e miglioreranno le loro prestazioni fino a quando non vengono soddisfatte alcune condizioni di fine e l’addestramento viene terminato. In un gioco, potrebbe trattarsi di raggiungere la fine del livello o cadere in un pericolo come spuntoni. Al contrario, i compiti continui non hanno condizioni di terminazione, essenzialmente continuando a essere addestrati per sempre fino a quando l’ingegnere sceglie di interrompere l’addestramento.
Monte Carlo vs Temporal Difference
Ci sono due modi principali di apprendimento, o addestramento, di un agente di apprendimento per rinforzo. Nell’approccio Monte Carlo, le ricompense vengono consegnate all’agente (il suo punteggio viene aggiornato) solo alla fine dell’episodio di addestramento. In altre parole, solo quando la condizione di terminazione viene raggiunta, il modello apprende quanto ha eseguito bene. Può quindi utilizzare queste informazioni per aggiornare e, quando il prossimo round di addestramento viene avviato, risponderà in base alle nuove informazioni.
Il metodo della differenza temporale differisce dal metodo Monte Carlo in quanto la stima del valore, o la stima del punteggio, viene aggiornata durante il corso dell’episodio di addestramento. Una volta che il modello avanza al prossimo passo temporale, i valori vengono aggiornati.
Esplorazione vs Sfruttamento
L’addestramento di un agente di apprendimento per rinforzo è un atto di equilibrio, che coinvolge l’equilibrio di due metriche diverse: esplorazione e sfruttamento.
L’esplorazione è l’atto di raccogliere più informazioni sull’ambiente circostante, mentre lo sfruttamento è l’uso delle informazioni già note sull’ambiente per guadagnare punti di ricompensa. Se un agente esplora solo e non sfrutta mai l’ambiente, le azioni desiderate non verranno mai eseguite. D’altra parte, se l’agente sfrutta solo e non esplora mai, l’agente imparerà a eseguire solo un’azione e non scoprirà altre possibili strategie per guadagnare ricompense. Pertanto, è fondamentale bilanciare esplorazione e sfruttamento quando si crea un agente di apprendimento per rinforzo.
Casi d’Uso per l’Apprendimento per Rinforzo
L’apprendimento per rinforzo può essere utilizzato in una vasta gamma di ruoli e si adatta meglio alle applicazioni in cui i compiti richiedono automazione.
L’automazione dei compiti da eseguire da robot industriali è un’area in cui l’apprendimento per rinforzo si dimostra utile. L’apprendimento per rinforzo può anche essere utilizzato per problemi come la raccolta di testi, creando modelli in grado di riassumere lunghi corpi di testo. I ricercatori stanno anche sperimentando l’uso dell’apprendimento per rinforzo nel campo sanitario, con agenti di apprendimento per rinforzo che gestiscono compiti come l’ottimizzazione delle politiche di trattamento. L’apprendimento per rinforzo potrebbe anche essere utilizzato per personalizzare il materiale didattico per gli studenti.
Riepilogo dell’Apprendimento per Rinforzo
L’apprendimento per rinforzo è un metodo potente per la costruzione di agenti di intelligenza artificiale che possono portare a risultati impressionanti e a volte sorprendenti. Addestrare un agente attraverso l’apprendimento per rinforzo può essere complesso e difficile, poiché richiede molte iterazioni di addestramento e un delicato equilibrio della dicotomia esplorazione/sfruttamento. Tuttavia, se ha successo, un agente creato con l’apprendimento per rinforzo può eseguire compiti complessi in una vasta gamma di ambienti diversi.












