1章 “強くなる”ロボティック・ゲームプレイヤーを作るには 001 |
1.1 “学習機能”の必要性 001 |
1.2 NPC(Non-PlayerCharacter)の行動戦略の学習 002 |
1.3 ロボットの動作の学習004 |
2章 学習とは? 007 |
2.1 学習の定義 007 |
2.1.1 心理学における学習 007 |
2.1.2 認知心理学における学習 010 |
2.1.3 脳科学における学習 010 |
2.2 コンピュータの学習 011 |
教師付き学習問題(Supervised Learning) 012 |
教師なし学習問題(Unsupervised Learning) 012 |
強化学習問題(Reinforcement Learning) 012 |
2.3 答えを知らないロボット 013 |
3章 強化学習 015 |
3.1 強化学習の背景 015 |
3.1.1 最適制御理論(Optimal Control Theory) 015 |
3.1.2 動的計画法(Dynamyc Programming) 016 |
3.2 強化学習の構成 017 |
3.3 マルコフ決定過程(Markov Decision Process) 019 |
3.4 最適政策関数(Optimal Policy Function) 021 |
3.5 状態価値関数(State Value Function) 022 |
3.6 状態・行動価値関数(State-Action Value Function) 023 |
3.7 動的計画法の問題点 024 |
4章 離散的な空間での学習 027 |
4.1 はじめに 027 |
4.2 ルックアップテーブルで表される価値関数の例 028 |
4.3 標本を抽出する 030 |
4.4 モンテカルロ法(Monte-CarIo Method) 031 |
4.4.1 モンテカルロ法の基礎 051 |
4.4.2 標本の独立性 032 |
4.4.3 政策改善(Policy Improvement) 033 |
4.4.4 政策反復(PClicy Iteration) 034 |
4.4.5 モンテカルロ法を用いた政策反復法のアルゴリズム 036 |
4.4.6 モンテカルロ法の問題点 039 |
4.5 価値関数近似における教師付き学習 039 |
4.6 TD法(Temporal Difference Method) 041 |
4.6.1 TD法の基礎 041 |
4.6.2 SARSA法を用いた政策反復アルゴリズム 044 |
4.6.3 TD(λ)法 045 |
4.6.4 TD(λ)法を用いた政策反復アルゴリズム 048 |
4.7 Q学習(Q-Iearning) 049 |
4.7.1 Q学習の基礎 049 |
4.7.2 Q学習のアルゴリズム 050 |
4.8 三目並べ(Ti-Tac-Toe)の例 051 |
4.8.1 三目並べとは 051 |
4.8.2 状態空間と行動空間の設計 052 |
4.8.3 プログラム 055 |
4.8.4 モンテカルロ法の実装 055 |
4.8.5 SARSA法の実装 060 |
4.8.6 TD(λ)法の実装 063 |
4.8.7 Q学習の実装 065 |
4.9 実行例 068 |
4.9.1 設定 068 |
4.9.2 学習用プログラムの実行例 069 |
4.9.3 結果 071 |
4.9.4 対戦用プログラムの実行例 073 |
5章 連続的な空間での学習 075 |
5.1 はじめに 075 |
5.2 台車の山登りゲーム 075 |
5.3 価値関数の近似誤差 079 |
5.3.1 TD二乗誤差 079 |
5.3.2 ベルマ二乗残差(Square of Bellman Residual) 080 |
5.3.3 TD(λ)二乗誤差 081 |
5.4 価値関数のモデル 081 |
5.4.1 線形モデル 081 |
5.5 カーネルモデル 082 |
5.6 線形モデルの最小二乗推定 083 |
5.6.1 最良線形不偏推定量(Best Linear Unbiased Estimator) 084 |
5.6.2 線形モデル最小二乗法による政策反復アルゴリズム 086 |
5.6.3 価値関数近似の例 086 |
5.7 カーネルモデルの最小二乗推定 088 |
5.7.1 カーネルモデル最小二乗法による政策反復アルゴリズム 089 |
5.7.2 価値関数近似の例 089 |
5.8 アクロボットの例 090 |
5.8.1 状態空間と行動空間の設計 091 |
5.8.2 報酬関数の設計 091 |
5.8.3 プログラム 092 |
5.8.4 線形モデル用最小二乗法による政策反復アルゴリズムの実装 093 |
5.8.5 カーネルモデル最小二乗法による政策反復アルゴリズムの実装 098 |
5.8.6 実行例 102 |
5.8.7 結果 104 |
6章 政策を直接近似する 107 |
6.1 はじめに 107 |
6.2 政策勾配法(PoIicy Gradient Method) 107 |
6.3 最小分散ベースライン 110 |
6.4 ガウスモデル政策モデル 110 |
6.5 自然政策勾配法 112 |
6.6 政策勾配の例 116 |
6.7 4足歩行ロボットへの実装 118 |
6.7.1 実装するロボットの定義 118 |
6.7.2 状態空間と行動空間の設計 119 |
6.7.3 報酬関数の設計 119 |
6.7.4 プログラム 119 |
6.7.5 政策勾配アルゴリズムの実装 120 |
6.7.6 自然政策勾配法アルゴリズムの実装 125 |
6.7.7 実行例 128 |
6.7.8 結果 129 |
7章 強化学習最前線 133 |
7.1 政策オフ型強化学習 133 |
7.2 半教師あり学習(Semi-supervised Learning) 134 |
指導学習(ApprenticeshIp Learning) 134 |
見真似学習(Imitation Learning) 135 |
7.3 転移学習(Transfer Learning) 135 |
7.4 表現政策反復(Representation Policy Iteration) 135 |
7.5 リスクを考慮した強化学習(Risk-sensitive Learning) 135 |
7.6 階層的強化学習(Hierarchical Reinforcement Learning) 136 |
7.7 能動学習(Active Learning) 136 |
7.8 次元削減(Dimensionality Reduction) 137 |
7.9 モデル選択(Model Selection) 137 |
7.10 部分観測マルコフ過程(Partiall Observable Markov Decision Process) 137 |
Appendix A ソフトウェアのインストール 139 |
A.1 Octaveのインストール方法 139 |
A.2 ODEのインストール方法 142 |
A.3 OpenGLのインストール方法 145 |
A.4 FLTKのインストール方法 146 |
A.5 三目並べゲームプログラムのインストール方法 148 |
A.6 アクロボット用プログラムのインストール方法 150 |
A.7 4足ロボット用プログラムのインストール方法 155 |
Appendix B プログラムリスト 159 |
B.1 三目並べ 159 |
B.2 アクロボット 171 |
B.3 4足ロボット 192 |
索引 213 |
1章 “強くなる”ロボティック・ゲームプレイヤーを作るには 001 |
1.1 “学習機能”の必要性 001 |
1.2 NPC(Non-PlayerCharacter)の行動戦略の学習 002 |