Questa libreria Python ‘Imitation’ fornisce implementazioni open source degli algoritmi di apprendimento per imitazione e ricompense in PyTorch.

La libreria Python 'Imitation' offre implementazioni open source degli algoritmi di apprendimento per imitazione e ricompense in PyTorch.

Nelle aree con funzioni di ricompensa chiaramente definite, come i giochi, l’apprendimento per rinforzo (RL) ha superato le prestazioni umane. Purtroppo, per molti compiti nel mondo reale è difficile o impossibile progettare la funzione di ricompensa proceduralmente. Invece, devono assorbire immediatamente una funzione di ricompensa o una politica dal feedback dell’utente. Inoltre, anche quando una funzione di ricompensa può essere formulata, come nel caso di un agente che vince un gioco, l’obiettivo risultante potrebbe dover essere più sparso per risolvere efficacemente l’RL. Pertanto, l’apprendimento per imitazione viene spesso utilizzato per inizializzare la politica nei risultati all’avanguardia per l’RL.

In questo articolo, viene presentata l’imitazione, una libreria che offre implementazioni eccellenti, affidabili e modulari di sette algoritmi di ricompensa e apprendimento per imitazione. Importante, le interfacce dei loro algoritmi sono coerenti, rendendo facile addestrare e confrontare vari metodi. Inoltre, vengono utilizzati backend contemporanei come PyTorch e Stable Baselines3 per costruire l’imitazione. Le librerie precedenti, d’altra parte, supportavano frequentemente diversi algoritmi, non venivano più aggiornate attivamente e venivano costruite su framework obsoleti. Come base per gli esperimenti, l’imitazione ha molte importanti applicazioni. Secondo ricerche precedenti, piccoli dettagli di implementazione negli algoritmi di apprendimento per imitazione possono influire significativamente sulle prestazioni.

L’imitazione cerca di rendere più semplice il processo di creazione di nuovi algoritmi di ricompensa e apprendimento per imitazione, oltre a offrire basi affidabili. Se viene utilizzata una base sperimentale povera, ciò può comportare la segnalazione di risultati falsamente positivi. Le loro tecniche sono state attentamente confrontate e confrontate con soluzioni precedenti per superare questa difficoltà. Inoltre, effettuano il controllo statico dei tipi e hanno test che coprono il 98% del loro codice. Le loro implementazioni sono modulari, consentendo agli utenti di modificare in modo flessibile l’architettura della rete di ricompensa o politica, l’algoritmo RL e l’ottimizzatore senza modificare il codice.

Attraverso la sottoclasse e l’override dei metodi richiesti, è possibile espandere gli algoritmi. Inoltre, l’imitazione offre modi pratici per gestire attività di routine come la raccolta di rollout, che aiuta a promuovere la creazione di nuovi algoritmi completi. Il fatto che il modello sia costruito utilizzando framework all’avanguardia come PyTorch e Stable Baselines3 è un ulteriore vantaggio. Al contrario, molte implementazioni attuali di algoritmi di imitazione e apprendimento di ricompensa sono state pubblicate anni fa e devono ancora essere mantenute aggiornate. Questo è particolarmente valido per le implementazioni di riferimento rese disponibili insieme alle pubblicazioni originali, come i codici GAIL e AIRL.

Confronto dell’imitazione con altri algoritmi

Tuttavia, anche librerie popolari come Stable Baselines2 non sono più in fase di sviluppo attivo. Confrontano librerie alternative su una varietà di metriche nella tabella sopra. Sebbene non sia possibile includere ogni implementazione di algoritmi di imitazione e apprendimento di ricompensa, questa tabella comprende tutte le librerie di apprendimento per imitazione ampiamente utilizzate al meglio delle loro conoscenze. Trovano che l’imitazione eguaglia o supera le alternative in tutte le metriche. APRel ottiene punteggi elevati ma si concentra su algoritmi di confronto delle preferenze che apprendono da caratteristiche a bassa dimensionalità. Questo è complementare al modello, che fornisce una gamma più ampia di algoritmi e mette l’accento sulla scalabilità a discapito di una maggiore complessità di implementazione. Le implementazioni di PyTorch possono essere trovate su GitHub.