Dlaczego DQN wymaga dwóch różnych sieci?

12

Przechodziłem przez implementację DQN i widzę, że na linii 124 i 125 zainicjowano dwie różne sieci Q. Z mojego zrozumienia, myślę, że jedna sieć przewiduje odpowiednie działanie, a druga sieć przewiduje docelowe wartości Q dla znalezienia błędu Bellmana.

Dlaczego nie możemy stworzyć jednej sieci, która po prostu przewiduje wartość Q i używać jej w obu przypadkach? Moje najlepsze przypuszczenie, że zrobiono to w celu skrócenia czasu obliczeń, w przeciwnym razie musielibyśmy znaleźć wartość q dla każdej akcji, a następnie wybrać najlepszą. Czy to jedyny powód? Czy coś brakuje?

amitection
źródło

Odpowiedzi:

9

Moje najlepsze przypuszczenie, że zrobiono to w celu skrócenia czasu obliczeń, w przeciwnym razie musielibyśmy znaleźć wartość q dla każdej akcji, a następnie wybrać najlepszą.

Nie ma realnego wpływu na czas obliczeń, poza niewielkim wzrostem (z powodu dodatkowej pamięci używanej przez dwie sieci). Państwo mogli buforować wyniki sieci docelowej jak sądzę, ale to chyba nie warto byłoby to dla większości środowisk, a ja nie widziałem implementację, która to robi.

Czy coś brakuje?

Ma to związek ze stabilnością algorytmu Q-uczenia się podczas korzystania z aproksymacji funkcji (tj. Sieci neuronowej). Korzystanie z oddzielnej sieci docelowej, aktualizowanej co tyle kroków o kopię najnowszych wyuczonych parametrów, pomaga uchronić się przed niekontrolowanym ładowaniem od zdominowania systemu numerycznie, powodując rozbieżności szacunkowych wartości Q.

Wyobraź sobie, że jeden z punktów danych (at S, A, R, S') powoduje, że obecnie słabe przeszacowanie Q(S', A')się pogarsza. Być S', A'może nawet jeszcze nie odwiedzono, lub wartość Rwidzianego do tej pory jest wyższa niż średnia, przypadkowo. Jeśli próbka zostanie (S,A)przycięta wiele razy w powtórce, za każdym razem pogorszy się, ponieważ aktualizacja Q(S,A)jest oparta na R + max_a Q(S',a). Naprawienie sieci docelowej ogranicza szkody, jakie mogą wyrządzić takie przeszacowania, dając sieci uczącej się czas na zebranie się i utratę większej części początkowego obciążenia.

Pod tym względem korzystanie z oddzielnej sieci docelowej ma bardzo podobny cel - odtwarzanie. Stabilizuje algorytm, który inaczej miałby problemy ze zbieżnością.

Możliwe jest również posiadanie DQN z „podwójnym uczeniem się”, aby rozwiązać osobny problem: błąd maksymalizacji. W takim przypadku możesz zobaczyć implementacje DQN z 4 sieciami neuronowymi.

Neil Slater
źródło
Dodatkowe informacje można znaleźć na stronie aaai.org/ocs/index.php/AAAI/AAAI16/paper/download/12389/11847
amitection