エージェント(agent.py)ビデオゲームではプレイヤーに当たります。情報を受け取り、強化学習によってアクションを決定し、環境に伝えます。多くの報酬を得ることが目的になります。環境(environment.py+game_reversi.py)ビデオゲームそのものに当たります。エージェントのアクションに対して、応答するアクションを行いゲームの状態、報酬を与えます。エージェントはこれに勝つことで報酬を得ます。二つのスクリプトを合わせて、環境を構成します。オセロゲームのロジックを実現します(ゲーム機本体と、カートリッジやディスクの関係と似ています)。実験(experiment.py)ビデオゲームではスタート、終了、スコアランキングなどを制御する部分にあたります。このスクリプトを実行することで、エージェントと環境が対戦を始めます。ディープラーニング」の三目並べの起動手順と基本的に同じです。起動し、それぞれ以下を実行します。サイズのボードを使用します。起動時のサイズと同じ値にしてください。起動すると、以下の動画のようにオセロゲームが始まります。エージェントになります。現時点では実行後にモデルをファイルに書き出す実装は行っていません。実施)いずれも最終的には7割程度の勝率。環境のオセロが完全にランダムではなく、ある程度「勝ち」に行くロジックであること、またオセロには完璧な必勝法がないことから、勝率自体は妥当と思われます。エピソード付近で一旦下がっているといった問題点が見られます。いずれも、学習のロジックの改善が必要であると考えられます。活性化関数に使用しています。出力する、つまり入力に対して出力が固定してしまう可能性があります。返す状態、いわゆるニューロンが死んだ状態になりえます。使用すれば、ニューロンの死亡を避けられるため、よりよい学習速度を得られ、勝率も上がるかもしれません。Replay"(2015Schaul)も効果があるかもしれません。サンプルデータに優先度をつけておき、それぞれの優先度のサンプルデータを取得して学習を行うというものです。サンプルへの優先度の付け方など、まだ学ばなければならないことがありますが、今後時間があったら試してみたいと思います。いずれにしても、今回のコードをたたき台に、様々なことが試せそうなので、引き続き遊んでみたいと思います。次回は、コードの解説をしてみたいと思います。参考にさせていただいた書籍・サイト参考にさせていただいた情報はこの他にも多数ありますが、特にお世話になったのは以下になります。