Apprendimento per rinforzo

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

L'apprendimento per rinforzo (o reinforcement learning) è una tecnica di apprendimento automatico che punta a realizzare agenti autonomi in grado di scegliere azioni da compiere per il conseguimento di determinati obiettivi tramite interazione con l'ambiente in cui sono immersi.

L'apprendimento per rinforzo è uno dei tre paradigmi principali dell'apprendimento automatico, insieme all'apprendimento supervisionato e a quello non supervisionato. A differenza degli altri due, questo paradigma si occupa di problemi di decisioni sequenziali, in cui l'azione da compiere dipende dallo stato attuale del sistema e ne determina quello futuro.

La qualità di un'azione è data da un valore numerico di "ricompensa", ispirata al concetto di rinforzo, che ha lo scopo di incoraggiare comportamenti corretti dell'agente. Questo tipo di apprendimento è solitamente modellizzato tramite i processi decisionali di Markov[1] e può essere effettuato con diverse tipologie di algoritmi, classificabili in base all'utilizzo di un modello che descriva l'ambiente, alle modalità di raccolta dell'esperienza (in prima persona o da parte di terzi), al tipo di rappresentazione degli stati del sistema e delle azioni da compiere (discreti o continui).

Descrizione[modifica | modifica wikitesto]

Questa tecnica si basa sul presupposto che all'interno di un sistema si possano predisporre[2]:

  1. un meccanismo logico A in grado di scegliere degli output sulla base degli input ricevuti.
  2. un meccanismo logico B in grado di valutare l'efficacia degli output rispetto ad un preciso parametro di riferimento.
  3. un meccanismo logico C capace di cambiare il meccanismo A per massimizzare la valutazione di efficacia effettuata da B.

Il modo in cui questi meccanismi dovrebbero collaborare è descritto dai seguenti punti:

  • Se il meccanismo A effettua una scelta efficace allora il meccanismo B manda in output un premio proporzionale all'efficacia della scelta di A.
  • Se il meccanismo A effettua una scelta inefficace allora il meccanismo B manda in output una penalità proporzionale all'inefficacia della scelta di A.
  • Il meccanismo C, osservando l'agire di A e B, cerca di modificare la funzione matematica che regola il comportamento di A in modo da massimizzare la quantità e la qualità dei "premi".

I meccanismi B e C sono quelli che vanno a costituire il metodo di rinforzo proprio di questa metodica di apprendimento.

Per attuare i meccanismi ed i comportamenti descritti nelle righe precedenti, dal punto di vista logico, si necessita delle seguenti componenti:

  • Insieme di Input: rappresenta i possibili input che il sistema può ricevere (servono per determinare lo stato del sistema).
  • Funzione valore di stato: questa funzione associa un parametro di valutazione ad ogni stato del sistema.
  • Funzione valore di azione: questa funzione associa un parametro di valutazione ad ogni possibile coppia stato-azione.
  • Tecnica di rinforzo: consiste in una funzione di rinforzo che, a seconda delle prestazioni attuali e dell'esperienza passata, fornisce delle direttive con cui cambiare la funzione di valore di stato e la funzione di valore d'azione.
  • Insieme di Output: rappresenta le possibili decisioni che il sistema può intraprendere.

Input[modifica | modifica wikitesto]

Gli input al sistema possono provenire dai più svariati sensori. Ad esempio, nel caso di un robot che deve imparare a muoversi all'interno di un percorso, gli input potrebbero essere forniti da dei sensori di prossimità che dovrebbero essere poi rimappati in opportuni stati che nel caso dell'esempio potrebbero essere "ostacolo di fronte", "strada libera", "muro sul lato" ecc. Per mappare i valori dei sensori a particolari stati si sono rivelate particolarmente efficaci le tecniche basate su controllori fuzzy.

Funzione di valore di stato[modifica | modifica wikitesto]

La funzione valore di stato è quella che ad ogni stato identificato dal sistema e determinato sulla base degli input, associa un valore relativo al grado di bontà della situazione. Viene generalmente espressa nella seguente forma:

Funzione di valore di azione[modifica | modifica wikitesto]

La funzione di valore di azione è quella che ad ogni coppia composta da stato e azione associa un valore relativo al grado di bontà della combinazione. Viene generalmente espressa nella forma:

Tecnica di rinforzo[modifica | modifica wikitesto]

A seconda di come si progetta e si decide di implementare il sistema di apprendimento, possono essere utilizzate diverse funzioni di rinforzo per cambiare la funzione di valore di stato e diverse politiche per determinare premi e penalità.

Dal punto di vista modellistico tutte le funzioni di rinforzo possono essere ricondotte alla seguente formula base:

dove

e è il "premio" o la "penalità" che è stata associata alla corrente azione da parte della funzione di azione.

Questa funzione, come si può intuire dalla formula, altera la funzione di valore di stato a partire dal prossimo istante in cui verrà richiamata e in base alla valutazione dell'azione corrente effettuata dalla politica di premio (o di penalità).

Le più diffuse politiche di premio (o di penalità) sono:

  • Rinforzo con premio ad orizzonte infinito: il rinforzo ha sempre la stessa intensità ed è valutato per tutti gli istanti temporali.
  • Rinforzo con premio ad orizzonte finito: il rinforzo ha sempre la stessa intensità ed è valutato per un periodo di tempo limitato.
  • Rinforzo con premio medio: il rinforzo ha intensità via via decrescente ma viene valutato per tutti gli istanti temporali. In pratica man mano che il tempo passa, i valori di rinforzo vengono attenuati dando più importanza alle valutazioni effettuate negli istanti iniziali.
  • Rinforzo con premio scontato: il rinforzo è distribuito per tutti gli istanti temporali ma aumenta a seconda di un parametro legato agli istanti temporali in cui viene applicato.

Output[modifica | modifica wikitesto]

L'output consiste in una delle azioni che il sistema può intraprendere. La scelta è effettuata in modo da massimizzare il valore della funzione di valore di azione ed è strettamente dipendente dal rinforzo distribuito durante gli istanti passati.

Algoritmi di apprendimento per rinforzo[modifica | modifica wikitesto]

  • Q-learning: è uno degli algoritmi di apprendimento con rinforzo più diffusi ed utilizzati. Fa utilizzo di un rinforzo con premio scontato e costituisce una variante della funzione di rinforzo di "base" presentata nei paragrafi precedenti.

Note[modifica | modifica wikitesto]

  1. ^ Martijn van Otterlo e Marco Wiering, Reinforcement Learning and Markov Decision Processes, Springer Berlin Heidelberg, 2012, pp. 3–42, ISBN 978-3-642-27644-6. URL consultato il 20 maggio 2022.
  2. ^ (EN) Sezione 8, Apprendimento con rinforzo di A.Bonarini, M. Matteucci, Politecnico di Milano. [collegamento interrotto]

Bibliografia[modifica | modifica wikitesto]

Voci correlate[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Controllo di autoritàThesaurus BNCF 69813 · LCCN (ENsh92000704 · GND (DE4825546-4 · BNF (FRcb17127232k (data) · J9U (ENHE987007546785305171
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica