DQNで迷路を解くプログラムでtarget_networkの出力がNaNになる
Q&A
Closed
解決したいこと
DQNで迷路を解くプログラムを
作っています。しかし、学習している途中に急激にtarget-networkの出力が変化することがあり困っています。
ちなみにGoogle colaboratoryでやっています。
発生している問題
(写真の2つ数値を持つのtuple型のデータは迷路上の位置です。)
こんな感じで最終的には出力がNaNになり、学習が止まってしまうのです。Q-networkに問題があるものとみていますが解決方法がわかりませんでした。
迷路の説明
[[3, 2, 0, 1],
[0, 0, 0, 2],
[0, 0, 2, 0],
[2, 0, 2, 0],
[0, S, 0, 0]]
0は通常の道、1はゴール、2は壁、3はトラップで、Sはスタートで、わかりやすくするためにSと書いています(本当は通常の道です)
ゴールかトラップに着いたらスタートに戻ります。
報酬はゴールに着いたら1,トラップに着いたら-1,壁に着いたら-1で、通常の道に着いたら0です。
自分で試してみたこと
NaNを0.0に置き換えるコードを追加したら、出力が全て0.0になってしまいました。
隠れ層の層の数を減らしても問題が発生しなくなることはありませんでした。
Deeplearningののプログラム
参考文献
https://qiita.com/birdwatcher/items/75541ca2b14ba22e64a7
https://www.tcom242242.net/entry/ai-2/強化学習/【強化学習、入門】q学習_迷路を例に/