強化学習(あるいは、入出力の関係が予測困難なプログラム)のテスト手法を教えて下さい
現在、強化学習の一手法であるREINFORCEをフルスクラッチで実装しています。
一応動く様にはなったものの、細かいバグがまだ多数あると思われます。
そこで、一度きちんとテストしたいのですが、単体テストはある程度出来たものの、結合テスト以上がどうすれば良いか分かりません。
構成
プログラムの構成は下記の通りです。
- エージェント:REINFORCE
- 方策:Softmax方策(Boltzmann分布使用)
- 価値関数:線形関数
- 環境:状態遷移・報酬共に確率的では無い環境、ただし、状態数・行動数が非常に多い
状態遷移関数・報酬関数は既知(エージェントが知りうるもの)として扱いますので、nステップ先まで先読みして行動価値を決定しています。
例:迷路の場合ですと、「上、右、右、下と移動するとゴールに到達するので、今から上に移動すれば+1の報酬が得られる」という感じです。
試した事
迷路の場合を例にして記載します。
- 一本道の迷路にしてみる
- 迷路の大きさを小さくしてみる(1000x1000→10x10に)
論文・書籍・ウェブサイト等ソースは問いませんので、テスト手法をご紹介頂ければと思います。
私はこうしている、というご回答も大歓迎です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/28 05:02