こちらは、書籍「Deep Learning ④ 強化学習編」で学習した内容で、大切と思われる部分のメモ書きになります。注意:こちらは個人のための健忘録です。実際の内容は、書籍にてご確認ください。
まえがき | 深層強化学習(ディープラーニング+強化学習) ロボット操作や半導体チップの設計で成功 強化学習は、「汎用人工知能」の実現の鍵 |
本書の コンセプト | 深層強化学習(Deep Reinforcement Learning) DQN(Deep Q-Network) |
全体の流れ | 1~6章 強化学習の基礎 7~10章 ディープラーニングを強化学習の問題に適用する方法 最先端の深層強化学習のアルゴリズムを紐解く 1章 バンディット問題:複数の候補から最も良いものを探す 2章 マルコフ決定過程 3章 ベルマン方程式(マルコフ決定過程の最適解を求める) 4章 動的計画法(ベルマン方程式を解く) 5章 モンテカルロ法 6章 TD法 7章 ディープラーニングを強化学習に適用 8章 DQNの実装 9章 方策勾配法(DQNの別なアプローチ) REINFORCE、Actor-Critic 10章 現代の深層強化学習のアルゴリズム A3C、DDPG、TRPO、Rainbow |
必要な ソフトウェア | Python 3系 NumPy Matplotlib DeZero or PyTorch(フレームワーク) OpenAI Gym(第8章でインストール) |
ファイル構成 | https://github.com/oreilly-japan/deep-learning-from-scratch-4 ch01 1章で使用するソースコード ch02 2章で使用するソースコード ・・・ ch09 9章で使用するソースコード common 共通で使用するソースコード pytorch Pytorch に移植したソースコード |
変わるもの、 変わらないもの | 変わらないもの 強化学習の基本原理、マルコフ決定過程、ベルマン方程式、Q学習、 ニューラルネットワーク |
1章 | バンディット問題 | |
1.1 | 機械学習の分類と強化学習 | 教師あり学習 正解ラベル(ラベリング作業/アノテーション) 教師なし学習 グループ分け、特徴抽出、次元削減 強化学習 エージェントと環境の相互作用 エージェント ⇒(行動)⇒ ⇐(報酬、状態)⇐ 環境 |
1.2 | バンディット問題 | スロットマシンを使った、強化学習に適した単純な問題 正確には、「多腕バンディット問題」 エージェント:プレイヤー 環境:スロットマシン 用語 確率分布表、期待値、価値(行動価値)、確率変数 |
1.3 | バンディットアルゴリズム | アルゴリズム 「プレイヤーが各スロットマシンの価値をできるだけ精度よく 推定する」 標本平均(実際の試行から得られた報酬の平均)は、 報酬の期待値に近づく 活用:経験から最善の行動を選ぶ(greedyな行動) 検索:様々な行動を試す ε-greedy法:εの確率で探索、1-εの確率で活用を行う |
1.4 | バンディットアルゴリズムの実装 | スロットマシンの実装:Banditクラス プレイヤーの実装:Agentクラス 実行結果 試行回数とともに勝率が向上する εの値は、0.1くらいが好ましい |
1.5 | 非定常問題 | 今回のバンディット問題は、スロットマシンの勝率が 変化しない定常問題 勝率が変化する場合は、非定常問題となる |