Intelligenza artificiale/Apprendimento con rinforzo

L'apprendimento per rinforzo è una filosofia di programmazione che punta a realizzare algoritmi in grado di apprendere e adattarsi alle mutazioni dell'ambiente. Questa tecnica di programmazione si basa sul presupposto di potere ricevere degli stimoli dall'esterno a seconda delle scelte dell'algoritmo. Quindi una scelta corretta comporterà un premio mentre una scelta scorretta porterà ad una penalizzazione del sistema. L'obiettivo del sistema è il raggiungimento del maggior premio possibile e di conseguenza del migliore risultato possibile. Le tecniche legate all'apprendimento per rinforzo si dividono in due categorie:

  • Algoritmi ad apprendimento continuo:
    Queste tecniche partono dal presupposto di disporre di un meccanismo semplice in grado di valutare le scelte dell'algoritmo e quindi premiare o punire l'algoritmo a seconda del risultato. Queste tecniche sono in grado di adattarsi anche a delle modifiche sostanziali dell'ambiente. Un esempio sono i programmi di riconoscimento del parlato o i programmi di OCR che con l'utilizzo migliorano le loro prestazioni.
  • Algoritmi ad addestramento preventivo:
    Questi algoritmi partono dalla constatazione che valutare costantemente le azioni dell'algoritmo può essere un procedimento non automatizzabile oppure molto costoso e in questo caso si applica una prima fase in cui si istruisce l'algoritmo e quando il sistema viene ritenuto affidabile viene cristallizzato e reso non più modificabile. Molti componenti elettronici usano delle reti neurali al loro interno, e i pesi sinaptici di queste reti non sono modificabili dato che sono fissati durante la realizzazione del circuito.

Da notare che le categorie sopraelencate sono delle scelte implementative più che delle differenze concettuali dell'algoritmo e quindi spesso un algoritmo può ricadere della prima o nella seconda categoria a seconda di come viene implementato dal progettista.

Principali algoritmi: