Il dropout introduce essenzialmente un po 'più di varianza. In contesti di apprendimento supervisionato, questo in effetti spesso aiuta a ridurre il sovrautilizzo (anche se credo che anche l'abbandono stia già diventando meno alla moda negli ultimi anni rispetto a pochi anni prima; non sono sicuro al 100%, non è il mio principale Area di competenza).
Nell'apprendimento per rinforzo, la varianza aggiuntiva non è proprio ciò che stiamo cercando. Vi è già una grande variazione nei segnali di apprendimento che otteniamo e questa variazione tende già ad essere un grosso problema per la stabilità e / o la velocità di apprendimento. Per esempio:
- La casualità nella selezione dell'azione porta alla varianza dei rendimenti che osserviamo
- Ci può essere casualità inerente all'ambiente stesso, portando a una maggiore varianza nelle nostre osservazioni (alcuni ambienti non sono deterministici)
- r + maxun''Q ( s', a')r'' problema, che può essere visto come ulteriore varianza nei nostri segnali di apprendimento.
Molte parti importanti degli algoritmi Deep RL (senza le quali i nostri processi di formazione si trasformano empiricamente in destabilizzazione e degradazione) sono molto su misura per ridurre quella varianza. Ad esempio, le reti target in DQN sono state introdotte specificamente per ridurre il problema dei target mobili. Da questo punto di vista, non sorprende che se dovessimo aggiungere di nuovo una varianza artificiale attraverso altri mezzi (come l'abbandono), ciò danneggerebbe le prestazioni / destabilizzerebbe l'apprendimento.
Esistono altri meccanismi per provare a gestire il sovradimensionamento? O in molti esempi di RL non importa? ad esempio, potrebbe esserci un solo vero modo per ottenere il punteggio più alto nel gioco "breakout", quindi potresti anche impararlo esattamente e non è necessario generalizzare?
Nella maggior parte delle attuali ricerche sull'apprendimento del rinforzo (profondo), il sovrautilizzo non è effettivamente considerato un problema. La stragrande maggioranza della ricerca RL consiste nella formazione in un ambiente (ad esempio Cartpole o Breakout, o in un livello particolare in Pacman, o nella navigazione in un labirinto specifico, ecc.) E nella valutazione costante delle prestazioni durante quel processo di apprendimento o nella valutazione prestazioni dopo un tale processo di apprendimento nello stesso ambiente .
Se dovessimo confrontare tale metodologia di valutazione con ciò che accade nell'apprendimento supervisionato ... fondamentalmente stiamo valutando le prestazioni sul set di formazione * . Nell'apprendimento supervisionato, ciò sarebbe assolutamente inaccettabile, ma in RL è trattato come accettabile e più regola che eccezione. Alcuni dicono che questo è semplicemente un problema nella ricerca RL attuale, qualcosa che deve cambiare. Si potrebbe anche sostenere che non è necessariamente un problema; se siamo davvero in grado di addestrare l'agente esattamente nello stesso ambiente in cui vorremmo implementarlo in un secondo momento ... beh, allora qual è il problema con il suo adattamento a quell'ambiente?
Pertanto, quando utilizziamo la metodologia di valutazione sopra descritta, in effetti ci stiamo adattando a un ambiente specifico, ma il sovradimensionamento è buono anziché negativo in base ai nostri criteri di valutazione . È chiaro che questa metodologia non porta ad agenti che possono generalizzare bene comunque; se alleni costantemente un agente per navigare in un particolare labirinto, probabilmente non sarà in grado di navigare in un labirinto diverso dopo l'allenamento.
* Nota: la verità, secondo me, è leggermente più sfumata di quella che stiamo davvero "valutando sul set di addestramento" in RL. Vedi, ad esempio, questo bel thread di tweet: https://twitter.com/nanjiang_cs/status/1049682399980908544
Ho creato un ambiente che simula i prezzi delle valute e un semplice agente, utilizzando DQN, che tenta di imparare quando acquistare e vendere. Addestrandolo su quasi un milione di timestep tratti da una serie specifica di dati che consiste in un mese di dati sui prezzi di 5 minuti, sembra sovralimentare molto. Se poi valuto gli agenti e il modello rispetto a un valore di un mese diverso di dati viene eseguito in modo abissale. Quindi suona come un overfitting classico.
Si noti che la metodologia di valutazione qui descritta non si adatta più alla metodologia di valutazione più "comune". Hai un problema con la deriva dei concetti , con la non stazionarietà nell'ambiente. Ciò significa che un overfitting può essere un problema per te.
Tuttavia, non sono sicuro che il dropout possa aiutare (è ancora una varianza aggiuntiva che potrebbe ferire). Innanzitutto, vorrai assicurarti che ci sia un modo per tenere traccia del tempo / mese nei tuoi input, in modo tale che almeno avrai la possibilità di apprendere una politica che si adatta nel tempo. Se hai un confine chiaro e solido tra "fase di allenamento" e "fase di valutazione" e sai che la deriva del concetto si verifica oltre quel limite (sai che il tuo ambiente si comporta diversamente nella fase di addestramento dalla fase di valutazione) ... in realtà non hanno molte speranze di apprendere una politica solo dall'esperienza nella fase di formazione che funziona ancora bene nella fase di valutazione. Sospetto che dovrai sbarazzarti di quel confine chiaro e solido. Voi' Vorrei continuare a studiare anche durante la fase di valutazione. Ciò consente al tuo algoritmo di apprendimento di raccogliere effettivamente esperienze nell'ambiente modificato e di adattarsi ad esso.