Soft Actor-Critic
- Detto anche: SAC
- Categoria: Learning & autonomy › RL & simulation
- Tag: reinforcement-learning, off-policy, actor-critic, maximum-entropy, robot-learning, continuous-control
Un algoritmo di apprendimento per rinforzo off-policy che addestra una policy stocastica a massimizzare sia la ricompensa sia l'entropia delle azioni, riutilizzando l'esperienza passata da un replay buffer per essere efficiente in termini di campioni.
Definizione
Soft Actor-Critic (SAC) è un algoritmo di apprendimento per rinforzo off-policy di tipo actor-critic per spazi di azione continui, presentato da Tuomas Haarnoja e colleghi nel 2018. Si basa sul quadro della massima entropia: invece di massimizzare solo la ricompensa attesa, la policy massimizza la ricompensa più un bonus per l'entropia, cioè la casualità, delle proprie azioni. Un parametro di temperatura stabilisce l'equilibrio tra i due. Il termine di entropia incoraggia un'esplorazione ampia e scoraggia la policy dal collassare presto su un unico comportamento.
SAC apprende una policy stocastica (l'actor), di solito una gaussiana i cui campioni vengono compressi con una funzione tanh per rispettare i limiti delle azioni, e due critic di tipo Q-function. Prendere il minimo dei due critic nel calcolo dei target di apprendimento riduce il bias di sovrastima comune nel Q-learning, una tecnica condivisa con l'algoritmo TD3, e le reti target aggiornate lentamente stabilizzano l'apprendimento. Una versione successiva di SAC regola automaticamente la temperatura per mantenere l'entropia della policy vicina a un obiettivo scelto, eliminando uno degli iperparametri più sensibili.
Poiché SAC è off-policy, ogni transizione vissuta dal robot viene memorizzata in un replay buffer e riutilizzata per molti aggiornamenti del gradiente. Questo lo rende notevolmente più efficiente in termini di campioni rispetto ai metodi on-policy come PPO, che scartano i dati dopo ogni aggiornamento. Questa proprietà ha fatto di SAC una scelta comune per apprendere direttamente su robot fisici, dove ogni minuto di interazione costa tempo e usura, e per compiti in cui la simulazione è lenta o non disponibile.
I compromessi riguardano il calcolo e la scalabilità. SAC esegue molti aggiornamenti della rete per ogni passo dell'ambiente e storicamente ha tratto meno vantaggio di PPO dalla simulazione massivamente parallela su GPU, dove i dati nuovi costano poco. L'addestramento può anche diventare instabile in spazi di azione ad alta dimensionalità o con reti grandi, e la ricerca in corso studia come scalare metodi off-policy come SAC a molti ambienti paralleli e a robot con molti giunti.
Perché è importante
SAC ha reso praticabile l'apprendimento per rinforzo profondo in contesti in cui i dati sono costosi, compreso l'apprendimento direttamente su hardware robotico reale. Resta uno dei riferimenti standard per il controllo continuo, e la sua formulazione regolarizzata con l'entropia influenza molti metodi successivi off-policy e basati su modello.
Applicazioni principali
- Apprendimento su hardware reale — addestrare abilità di manipolazione e locomozione con un tempo limitato sul robot
- Benchmark di controllo continuo — un riferimento standard per compiti robotici simulati
- Manipolazione — apprendere policy di presa, spinta e inserimento con ricompense sparse o sagomate
- Fine-tuning di policy preaddestrate — migliorare policy ottenute con behavior cloning tramite apprendimento per rinforzo online
- Controllo di veicoli e droni — apprendere comandi continui di sterzata e spinta
In pratica
Un team che usa SAC di solito incapsula il robot o il simulatore in un'interfaccia di ambiente standard, sceglie un'implementazione di libreria come Stable-Baselines3 e imposta la dimensione del replay buffer, la dimensione del batch, i learning rate e il rapporto tra aggiornamenti del gradiente e passi dell'ambiente. Quando apprende su hardware, aggiunge limiti di sicurezza alle azioni, reset automatici e segnali di ricompensa misurabili dai sensori di bordo, e spesso inizializza il replay buffer con dimostrazioni o dati di esecuzioni precedenti. Gli ingegneri osservano la loss del critic, il valore della temperatura e l'entropia della policy; una temperatura che scende quasi a zero o stime del critic che crescono senza limite sono segnali comuni che l'addestramento va regolato.
Idee sbagliate comuni
- SAC è sempre migliore di PPO — SAC è più efficiente in termini di campioni, ma PPO spesso addestra più velocemente in termini di tempo effettivo quando migliaia di ambienti simulati girano in parallelo
- Il bonus di entropia rende casuale la policy finale — in esercizio si usa di solito l'azione media, e la regolazione automatica della temperatura abbassa l'entropia man mano che l'apprendimento procede
- SAC gestisce le azioni discrete senza modifiche — l'algoritmo standard è pensato per azioni continue; le varianti discrete richiedono modifiche
- Off-policy significa che va bene qualsiasi dato vecchio — dati lontani dal comportamento della policy corrente possono comunque causare stime di valore instabili, specialmente in contesti completamente offline
Chi dovrebbe saperlo
- Ricercatori di apprendimento robotico che addestrano su hardware fisico
- Professionisti dell'apprendimento per rinforzo che lavorano sul controllo continuo
- Ingegneri di manipolazione che usano il fine-tuning online
- Studenti che imparano i metodi actor-critic
Tecnologie correlate
- Proximal Policy Optimization
- TD3
- Deep Deterministic Policy Gradient (DDPG)
- Replay buffer
- Apprendimento per rinforzo a massima entropia (Maximum Entropy Reinforcement Learning)
- Stable-Baselines3
Termini correlati
Progetti correlati
- LeRobot: HuggingFace ML library for real-world robotics in PyTorch
- MuJoCo: DeepMind physics engine for robotics and ML research
- PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
- OpenPI: Physical Intelligence VLA foundation models for general robot control
- Microduck: Pollen Robotics' $399 walking duck robot: open-source software, closed hardware
- Isaac Lab: NVIDIA robot learning framework: one task API across Newton, PhysX and Isaac Sim
Video
- L5 DDPG and SAC (Foundations of Deep RL Series): Pieter Abbeel