TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

リバーシ

リバーシ(オセロ)で深層強化学習 その7(Prioritized Experience Replay)

リバーシ(オセロ)で深層強化学習を試すシリーズ、前回からしばらく空いたが、今回はPrioritized Experience Replayを試す。 Prioritized Experience Replay 強化学習では、サンプルの時間依存の相関を弱めるために、サンプルを乱択する経験再生(experience …

リバーシ(オセロ)で深層強化学習 その6(Dueling Network)

前回はリバーシでDDQNを試したが、今回は同じくDQNの発展形であるDueling Networkを試す。 Dueling Network [1511.06581] Dueling Network Architectures for Deep Reinforcement LearningDQNでは行動価値を行動価値関数Qで推定するが、Dueling Networkでは…

リバーシ(オセロ)で深層強化学習 その5(DDQN)

前回は、環境を並列実行することでDQNの高速化を行った。今回は、DQNの派生形である、Double DQN(DDQN)を試す。 Double DQN(DDQN) 一般的にQ学習は、の項が行動価値を過大評価する傾向があり、それを抑制する手法としてDouble Q学習という手法がDQN以前から…

リバーシ(オセロ)で深層強化学習 その4(並列実行)

前回、DQNでリバーシ(オセロ)の強化学習を試して、ランダムより強くなることを確認した。 しかし、シングルステッドでシングルゲームを繰り返しているため1万イテレーションの実行に約14時間かかった。方策勾配法のアルゴリズムであるA2Cでは、環境を並列実…

リバーシ(オセロ)で深層強化学習 その3(DQN)

前回、DQNのネットワークを教師ありでQ学習で学習した。 今回は、DQNを強化学習で学習する。実装するアルゴリズムは、Nature に掲載された論文「Human-level control through deep reinforcement learning」に基づく。 DeepMindによる公式の実装は、TensorFl…

リバーシ(オセロ)で深層強化学習 その2(教師ありQ学習)

前回、オセロの棋譜の終端の報酬を使用して(TD(1))、教師ありで学習することでランダムより強くなることを確認した。今回は、教師ありでQ学習を試す。 Q学習 Q学習の学習則は以下の式で表される。 は、遷移に対応する即時報酬で、リバーシ(オセロ)の場合、終…

リバーシ(オセロ)で深層強化学習

先日作成した高速なリバーシライブラリを使って、深層強化学習のアルゴリズムをいろいろ試してみたいと思っている。 DQNの実装 将棋でDQNによる強化学習を試したときはまったく学習しなかったので、まずは教師ありでDQNのネットワークが学習できるか試すこと…

高速なPythonのリバーシ(オセロ)ライブラリ

将棋で強化学習のアルゴリズムをいろいろ試そうとしたが、DQNが全く学習しないので、もう少し簡単なゲームを先に試そうと思う。 ということで、リバーシ(オセロ)で試すことにした。Pythonで使えるリバーシのライブラリがないか探したが良さそうなのが見つか…