【DL、RL、A3C+】pseudo-countを画像化しました
Tensorflowの実験をしていると、Tensorflowを使った他の実験はGPUメモリ不足でエラーとなり、あまり色々なことができないので、以前の記事で書いたpseudo-countのデータを視覚化してみました。
期待値画像
pseudo-countの計算のために、ゲーム画面の各画素に対して、その画素が取る値毎に、その値の出現回数を保持しています。これにより、各画素の値毎の出現確率が求められるので、これに画素の値を掛けて総計することにより、画素の値の期待値が求まります。画素全体を集めると、期待値画像が求められます。下記は、そのようにして求めた画像です。
下記に3M STEPと、45M STEPでの期待画像を示します。3M STEPでは、出発地点の部屋(後述のROOM#01)の画像のみが見えますが、45M STEPSではその他の部屋の画像が重なっているように見えると思います。具体的には、ROOM#2とROOM#6の画像が重なっているように見えます。
3M STEP
45M STEP
出現確率が高い画像
上記では全ての部屋の画像が重なって見えるので、画素毎の値を出現確率でソートすることにより、1番出現確率が高い画素値を集めた画像、2番めに出現確率が高い画素値を集めた画像などを計算してみました。結果としては、あまりうまく分離できませんでした。
3M STEP
3M STEPでは、1番目に出発地点の部屋の画像が見えるのみで、2番目以降は、あまり意味がわからない画像になっています。おそらく、動いている部分やゲームキャラクターが通った痕跡ではないかと思います。
1番目に確率が高い画素値の画像
2番目に確率が高い画素値の画像
3番目に確率が高い画素値の画像
4番目に確率が高い画素値の画像
45M STEP
1番目に確率が高い画素値の画像
1番目は出発地点の部屋の画像が見えます。
2番目に確率が高い画素値の画像
2番めは色々な部屋の痕跡が見えます。次のように推測できます。
- 画面左上部のY字型と上部の十字は、ROOM#6のSWORD(取得前+取得後)
- 中央上部のハシゴはROOM#6のハシゴ
- 画面中段以下のハシゴは、ROOM#0、#2、#7などのハシゴ
- 画面中央の黒く横に長い長方形は、ROOM#1の中央の動く部分
- 画面上部には、ゲームキャラクターの痕跡のようなもの
3番目に確率が高い画素値の画像
3番めは、ROOM#6の中段以降の画像が主体に見えます。斑点のようなものは、ゲームキャラクターの痕跡でしょう。
4番目に確率が高い画素値の画像
4番めはROOM#5、#7の画像が重なっているように見えます。
感想
画素毎の値を出現確率でソートすれば、かなり明確に各ROOMの画像が分離できる思って試しましたが、思ったほど、分離できませんでした。残念です。