SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
人工知能 第7回
強化学習の応用
2018年6月1日 八谷 大岳
1
講義内容
2
機械学習のアルゴリズム
構成
3
 強化学習の基礎の復習
 データを用いた価値関数の最適化
 行動価値関数とQテーブル
 Q学習
 Q学習の実装例
 openAIを用いたQ学習の実装・実行例
 その他
 方策オン型の方策反復法
機械学習手法の種類
4
 問題(データの条件など)と目的に合わせて適切な
機械学習方法を選択する必要がある
問題 定義 代表的な方法 応用例
教師あり学習 入力と出力のデータに基づき、
入力を出力に変換する関数を
学習
SVM, 最小二乗法、
決定木、ランダム
フォーレストなど
スパム分類、顔検出、一
般物体認識、将棋局面
の評価など
教師なし学習 入力のみのデータに基づき、
入力の特性 (パターン、構造)
を学習
PCA, LDA、HMMなど データの可視化
(クラスタリング、次元圧
縮)
半教師学習 入力のうち部分的に付与された
出力の事例に基づき
入力を出力に変換する関数を
学習
transductiveSVM,
Laplacian SVMなど
画像、音声、Webログな
どの大量データで、コス
トの問題で一部のデータ
のみしか出力(答え)が
付与されていない場合
強化学習 入力と、出力に対する報酬
(評価)のデータに基づき、
入力を出力に変換する関数を
学習
Q-learning、policy
iteration, policy
gradient
ロボット制御、Web広告
選択、マーケティング
ロボット制御での強化学習
5
 方策:状態𝑥𝑥が観測したもとで行動𝑦𝑦を選択する条件付き確率分布
 報酬関数:状態𝑥𝑥で行動𝑦𝑦をとり、次の状態𝑥𝑥𝑥に遷移した時の報酬𝑟𝑟
 強化学習の目的:報酬和の期待値を最大化する方策𝜋𝜋∗
を獲得
出力:行動𝑦𝑦入力:状態𝑥𝑥
センサ
アクチュエータ
𝜋𝜋 𝑦𝑦|𝑥𝑥
報酬𝑟𝑟
環境
𝑟𝑟 = 𝑅𝑅 𝑥𝑥, 𝑦𝑦, 𝑥𝑥𝑥
𝜋𝜋∗
= argmax
𝜋𝜋
Ε
𝜋𝜋 𝑌𝑌𝑡𝑡|𝑋𝑋𝑡𝑡
𝑃𝑃𝑇𝑇(𝑋𝑋𝑡𝑡+1|𝑋𝑋𝑡𝑡,𝑌𝑌𝑡𝑡)
�
𝑡𝑡=0
∞
𝛾𝛾𝑡𝑡
𝑅𝑅 𝑋𝑋𝑡𝑡
, 𝑌𝑌𝑡𝑡
, 𝑋𝑋𝑡𝑡+1 𝛾𝛾 ∈ (0,1] :割引率
遠い先の報酬ほど割り引く
方策𝜋𝜋 𝑦𝑦|𝑥𝑥
価値関数
6
 価値関数𝑉𝑉𝜋𝜋
0
(𝑥𝑥):時刻ステップ0から始まる報酬和の期待値
𝑉𝑉𝜋𝜋
0
(𝑥𝑥) = Ε
𝜋𝜋 𝑌𝑌𝑡𝑡|𝑋𝑋𝑡𝑡
𝑃𝑃𝑇𝑇(𝑋𝑋𝑡𝑡+1|𝑋𝑋𝑡𝑡,𝑌𝑌𝑡𝑡)
��
𝑡𝑡=0
𝑁𝑁
𝛾𝛾𝑡𝑡 𝑅𝑅 𝑋𝑋𝑡𝑡, 𝑌𝑌𝑡𝑡, 𝑋𝑋𝑡𝑡+1 𝑋𝑋0 = 𝑥𝑥
= Ε
𝜋𝜋 𝑌𝑌0|𝑋𝑋0
𝑃𝑃𝑇𝑇(𝑋𝑋1|𝑋𝑋0,𝑌𝑌0)
|𝑅𝑅 𝑋𝑋0
, 𝑌𝑌0
, 𝑋𝑋1
+ 𝛾𝛾𝑉𝑉𝜋𝜋
1
(𝑋𝑋1
) 𝑋𝑋0
= 𝑥𝑥
漸化式表現
𝑃𝑃𝑇𝑇 𝑋𝑋1|𝑋𝑋0, 𝑌𝑌0
状態𝑋𝑋0
で行動𝑌𝑌0
をとったとき状態𝑋𝑋1
に遷移する状態遷移確率
状態𝑋𝑋1
𝑥𝑥1
𝑥𝑥2
𝑥𝑥3
𝜋𝜋 𝑌𝑌0|𝑋𝑋0
状態𝑋𝑋0
で行動𝑌𝑌0
を
選択する方策関数
𝑦𝑦1
行動𝑌𝑌0
𝑦𝑦2
𝑦𝑦3
𝜋𝜋 𝑌𝑌1
|𝑋𝑋1
状態𝑋𝑋1
に遷移したときの報酬
𝑥𝑥1
𝑥𝑥2
𝑥𝑥3
初期状態𝑋𝑋0
𝑅𝑅 𝑋𝑋1
, 𝑌𝑌1
, 𝑋𝑋2
状態𝑋𝑋 𝑁𝑁+1
𝑥𝑥1
𝑥𝑥2
𝑥𝑥3
𝑅𝑅 𝑋𝑋0
, 𝑌𝑌0
, 𝑋𝑋1
状態𝑋𝑋2
に遷移したときの報酬
状態・行動・報酬が、方策𝜋𝜋、状態遷移確率𝑃𝑃𝑇𝑇、報酬関数𝑅𝑅に基づき時々刻々と変化
状態𝑋𝑋0
は
与えられている
演習1
7
1. 顧客の「年齢」と「収入」のデータを活用して、以下の分析を
行いたい。それぞれ適切な機械学習手法を選択しなさい。
2. 強化学習を選択した場合は、状態𝑥𝑥 、行動𝑦𝑦 、および報酬𝑟𝑟
を定義しなさい
 タイトル「演習レポート」、日付、学生番号、氏名を用紙の一
番上に記載
「年齢」から「収入」を予測したい
「年齢と収入」から似ている回答者を
グループ化したい
顧客に送る、商品のダイレクト
メールを選択をしたい
教師あり学習
教師なし学習
強化学習
機械学習の手法
価値の列挙法
12
 決定的な方策と、価値を列挙し、最大価値の方策を選択
 必要な演算数(価値関数の計算回数)
 3ステップ2状態チェインウォークの場合:(2×2)×(2×3)=24回
 実問題では状態数が膨大
なので計算量が爆発
(状態数×行動数) × (状態数 × ステップ数)
方策の数 各方策で計算する価値の数
ゲーム 局面の数
将棋 10の226乗
囲碁 10の360乗
方策 価値
𝜋𝜋1 𝑉𝑉𝜋𝜋1
0
𝐴𝐴 = 0, 𝑉𝑉𝜋𝜋1
0
𝐵𝐵 = 2.71
𝜋𝜋2 𝑉𝑉𝜋𝜋2
0
𝐴𝐴 = 0, 𝑉𝑉𝜋𝜋2
0
𝐵𝐵 = 0
𝜋𝜋3 𝑉𝑉𝜋𝜋3
0
𝐴𝐴 = 0, 𝑉𝑉𝜋𝜋3
0
𝐵𝐵 = 0
𝜋𝜋4 𝑉𝑉𝜋𝜋4
0
𝐴𝐴 = 1.71, 𝑉𝑉𝜋𝜋4
0
𝐵𝐵 = 2.71
最大の価値を持つ方策関数𝜋𝜋4を選択
状態:𝑋𝑋 ∈ A,B 行動:𝑌𝑌 ∈ L, R
𝐴𝐴 B
L R
RL
報酬関数:𝑅𝑅 𝐵𝐵, 𝑅𝑅, B = 1
割引率:γ = 0.9
ステップ数:𝑁𝑁 = 2 初期状態確率:𝑃𝑃𝐼𝐼 A = 1
𝜋𝜋1 𝑌𝑌 = 𝐿𝐿 𝑋𝑋 = 𝐴𝐴 = 1 𝜋𝜋1 𝑌𝑌 = 𝑅𝑅 𝑋𝑋 = 𝐵𝐵 = 1
𝜋𝜋2 𝑌𝑌 = 𝐿𝐿 𝑋𝑋 = 𝐴𝐴 = 1 𝜋𝜋2 𝑌𝑌 = 𝐿𝐿 𝑋𝑋 = 𝐵𝐵 = 1
𝜋𝜋3 𝑌𝑌 = 𝑅𝑅 𝑋𝑋 = 𝐴𝐴 = 1 𝜋𝜋3 𝑌𝑌 = 𝐿𝐿 𝑋𝑋 = 𝐵𝐵 = 1
𝜋𝜋4 𝑌𝑌 = 𝑅𝑅 𝑋𝑋 = 𝐴𝐴 = 1 𝜋𝜋4 𝑌𝑌 = 𝑅𝑅 𝑋𝑋 = 𝐵𝐵 = 1
スキップ>>
動的計画法
13
 価値関数の最大化を2ステップずつ解く
 𝑁𝑁ステップ目の価値を計算し、最大の価値𝑉𝑉𝜋𝜋∗
𝑁𝑁
𝑥𝑥 を選択
 次の1と2を𝑡𝑡 = 𝑁𝑁 − 1, 𝑁𝑁 − 2, … , 2,1,0と繰り返す
1. 𝑡𝑡ステップの価値𝑉𝑉𝜋𝜋
𝑡𝑡
(𝑥𝑥)を、 𝑡𝑡+1ステップの最大価値𝑉𝑉𝜋𝜋∗
𝑡𝑡+1
𝑥𝑥 を用いて計算
2. 最大の価値𝑉𝑉𝜋𝜋∗
𝑡𝑡
𝑥𝑥 を選択
𝑉𝑉𝜋𝜋
𝑡𝑡
(𝑥𝑥) = Ε
𝜋𝜋 𝑌𝑌 𝑡𝑡|𝑋𝑋𝑡𝑡
𝑃𝑃𝑇𝑇(𝑋𝑋𝑡𝑡+1|𝑋𝑋𝑡𝑡,𝑌𝑌𝑡𝑡)
|𝑅𝑅 𝑋𝑋𝑡𝑡, 𝑌𝑌𝑡𝑡, 𝑋𝑋𝑡𝑡+1 + 𝛾𝛾𝑉𝑉𝜋𝜋∗
𝑡𝑡+1
(𝑋𝑋𝑡𝑡+1) 𝑋𝑋𝑡𝑡+1 = 𝑥𝑥
𝑉𝑉𝜋𝜋
𝑁𝑁
(𝑥𝑥) = Ε
𝜋𝜋 𝑌𝑌 𝑁𝑁|𝑋𝑋 𝑁𝑁
𝑃𝑃𝑇𝑇(𝑋𝑋 𝑁𝑁+1|𝑋𝑋 𝑁𝑁,𝑌𝑌 𝑁𝑁)
|𝑅𝑅 𝑋𝑋 𝑁𝑁, 𝑌𝑌 𝑁𝑁, 𝑋𝑋 𝑁𝑁+1 𝑋𝑋 𝑁𝑁 = 𝑥𝑥
スキップ>>
動的計画法の例
14
 価値の計算回数は12回、最適な方策は𝜋𝜋 R 𝐴𝐴 = 1、𝜋𝜋 𝑅𝑅 𝐵𝐵 = 1
𝑉𝑉𝜋𝜋
2
𝐴𝐴 = 0
𝑉𝑉𝜋𝜋′
2
𝐴𝐴 = 0
𝐴𝐴
ステップ2
𝐵𝐵 𝑉𝑉𝜋𝜋′
2
𝐵𝐵 = 1
𝑉𝑉𝜋𝜋
2
𝐵𝐵 = 0
𝑉𝑉𝜋𝜋∗
2
𝐴𝐴 = 0
𝑉𝑉𝜋𝜋
1
𝐴𝐴 = 0
𝑉𝑉𝜋𝜋′
1
𝑥𝑥 = 0.9
𝑉𝑉𝜋𝜋′
1
𝑥𝑥 = 1.9
𝑉𝑉𝜋𝜋
1
𝑥𝑥 = 0
𝑉𝑉𝜋𝜋∗
1
𝐵𝐵 = 1.9
𝑉𝑉𝜋𝜋∗
1
𝐴𝐴 = 0.9
𝑉𝑉𝜋𝜋∗
2
𝐵𝐵 = 1
𝐴𝐴
𝐵𝐵
ステップ3
𝐴𝐴
𝐵𝐵
ステップ1
𝑉𝑉𝜋𝜋
0
𝐴𝐴 = 0.81
𝑉𝑉𝜋𝜋′
0
𝑥𝑥 = 1.71
𝑉𝑉𝜋𝜋′
0
𝑥𝑥 = 2.71
𝑉𝑉𝜋𝜋
0
𝑥𝑥 = 0.81
𝑉𝑉𝜋𝜋∗
1
𝐵𝐵 = 2.71
𝑉𝑉𝜋𝜋∗
1
𝐴𝐴 = 1.71
𝐴𝐴
𝐵𝐵
ステップ0
状態:𝑋𝑋 ∈ A,B 行動:𝑌𝑌 ∈ L, R
𝐴𝐴 B
L R
RL
報酬関数:𝑅𝑅 𝐵𝐵, 𝑅𝑅, B = 1
状態遷移確率
割引率:γ = 0.9
次の状態
ステップ数:𝑁𝑁 = 2 初期状態確率:𝑃𝑃𝐼𝐼 A = 1
𝑉𝑉𝜋𝜋
𝑡𝑡
(𝑥𝑥) = Ε
𝜋𝜋 𝑌𝑌0|𝑋𝑋0
𝑃𝑃𝑇𝑇(𝑋𝑋1|𝑋𝑋0,𝑌𝑌0)
|𝑅𝑅 𝑋𝑋0
, 𝑌𝑌0
, 𝑋𝑋1
+ 𝛾𝛾𝑉𝑉𝜋𝜋
𝑡𝑡+1
(𝑋𝑋𝑡𝑡+1
) 𝑋𝑋𝑡𝑡
= 𝑥𝑥
A B
𝑃𝑃𝑇𝑇 � |A, L 1 0
𝑃𝑃𝑇𝑇 � |A, R 0 1
𝑃𝑃𝑇𝑇 � |B , L 1 0
𝑃𝑃𝑇𝑇 � |B, R 0 1
価値列挙法と動的計画法の課題
15
 状態遷移確率𝑃𝑃𝑇𝑇を既知と仮定
 実際には、状態遷移確率𝑃𝑃𝑇𝑇は未知の場合が多い
 ゲーム:状態遷移は対戦相手の打ち手(戦略)に依存
 ロボット制御:
状態遷移は周辺の環境に依存
状態𝑋𝑋𝑡𝑡
行動𝑌𝑌𝑡𝑡
例えば、「ドアを開ける」行動の後の状態:
ロボットが利用される環境
によって大きく異なる
・フルーツがある: 80%
・何もない:20%
次の状態𝑋𝑋𝑡𝑡+1
対戦相手の戦略に依存
強化学習手法の一覧
16
 価値列挙と動的計画以外にも様々な手法がある
方法 遷移確率 概要
価値列挙法
動的計画法
など
既知 遷移確率関数𝑃𝑃𝑇𝑇に基づき、方策関数
の候補𝜋𝜋1、𝜋𝜋2、 … の価値関数𝑉𝑉𝜋𝜋1
𝑡𝑡
(𝑥𝑥)、𝑉𝑉𝜋𝜋2
𝑡𝑡
(𝑥𝑥)、… を
漸化式を活用して計算。最大の価値を持つ方策𝜋𝜋∗
を選択。
モンテカルロ法、
TD法、TD(λ)法
SARSA法、Q学習法
最小二乗TD法など
未知 方策𝜋𝜋𝑡𝑡
に従いランダムに行動を選択し、データを
収集。データを用いて行動価値関数𝑄𝑄𝜋𝜋
𝑡𝑡
(𝑥𝑥, 𝑦𝑦)を改善
し、最適な行動関数𝑄𝑄∗
𝑡𝑡
(𝑥𝑥, 𝑦𝑦)を獲得。
方策勾配法
貪欲方策勾配法
パラメータベース方策
探索法など
未知 方策𝜋𝜋𝑡𝑡に従いランダムに行動を選択し、データを
収集。データを用いて方策関数𝜋𝜋𝑡𝑡(𝑦𝑦|𝑥𝑥)を改善し、
最適な方策関数𝜋𝜋∗(𝑦𝑦|𝑥𝑥)を獲得。
今回は将棋や囲碁で実績のあるQ学習法を紹介
構成
17
 強化学習の基礎の復習
 データを用いた価値関数の最適化
 行動価値関数とQテーブル
 Q学習
 Q学習の実装例
 openAIを用いたQ学習の実装・実行例
 その他
 方策オン型の方策反復法
行動価値関数
18
 行動価値関数: Q関数と呼ばれる価値関数𝑉𝑉の拡張版
 状態𝑥𝑥で行動𝑦𝑦を取った後、方策𝜋𝜋に従った場合に将来得られる報酬和期待値
 Q関数:状態𝑥𝑥で行動𝑦𝑦を選択する方策𝜋𝜋 𝑦𝑦|𝑥𝑥 を求めるのに用いられる
𝑄𝑄𝜋𝜋 (𝑥𝑥, 𝑦𝑦) = Ε
𝜋𝜋 𝑌𝑌 𝑡𝑡|𝑋𝑋 𝑡𝑡
𝑃𝑃𝑇𝑇(𝑋𝑋 𝑡𝑡+1|𝑋𝑋 𝑡𝑡,𝑌𝑌 𝑡𝑡)
��
𝑡𝑡=0
∞
𝛾𝛾𝑡𝑡
𝑅𝑅 𝑋𝑋𝑡𝑡
, 𝑌𝑌𝑡𝑡
, 𝑋𝑋𝑡𝑡+1
𝑋𝑋0
= 𝑥𝑥, 𝑌𝑌0
= 𝑦𝑦
強くなるロボティック・ゲームプレイヤーの作り方 八谷、杉山 2016
𝑄𝑄𝜋𝜋
(𝑋𝑋𝑡𝑡
, 𝑌𝑌𝑡𝑡
= 𝑦𝑦1)
𝑋𝑋𝑡𝑡状態
𝑄𝑄𝜋𝜋(𝑋𝑋𝑡𝑡, 𝑌𝑌𝑡𝑡 = 𝑦𝑦2)
𝑄𝑄𝜋𝜋(𝑋𝑋𝑡𝑡, 𝑌𝑌𝑡𝑡 = 𝑦𝑦3)
状態𝑋𝑋𝑡𝑡
で行動𝑦𝑦1を取る価値
𝑃𝑃𝑇𝑇 𝑋𝑋𝑡𝑡
|𝑋𝑋𝑡𝑡−1
, 𝑌𝑌𝑡𝑡−1
状態𝑋𝑋0
と行動𝑌𝑌0
は
与えられている
𝑃𝑃𝑇𝑇 𝑋𝑋𝑡𝑡+1
|𝑋𝑋𝑡𝑡
, 𝑌𝑌𝑡𝑡
行動
𝑦𝑦1の価値:
𝑦𝑦2の価値:
𝑦𝑦3の価値:
𝑌𝑌𝑡𝑡
状態𝑋𝑋𝑡𝑡
で行動𝑦𝑦3を取る価値最大の価値の行動を
高い確率で選択!
𝜋𝜋 𝑌𝑌𝑡𝑡
|𝑋𝑋𝑡𝑡
どの行動?
行動価値関数のテーブル表現
20
 状態と行動が有限でかつ離散的と仮定した単純な表現方法
 行に状態、列に行動、各要素に状態と行動の組に対する価値
 2状態チェインウォークの場合のQテーブルの例
𝑦𝑦1 𝑦𝑦𝟐𝟐 ⋯
𝑥𝑥1 𝑄𝑄𝜋𝜋(𝑥𝑥1, 𝑦𝑦1) 𝑄𝑄𝜋𝜋(𝑥𝑥1, 𝑦𝑦2) ⋯
𝑥𝑥2 𝑄𝑄𝜋𝜋(𝑥𝑥2, 𝑦𝑦1) 𝑄𝑄𝜋𝜋(𝑥𝑥2, 𝑦𝑦2) ⋯
⋮ ⋮ ⋮ ⋮
状態の種類
行動の種類
𝐴𝐴 𝐵𝐵
𝐿𝐿
𝐿𝐿
𝑅𝑅
𝑅𝑅
「Qテーブル」と呼ばれる
𝐿𝐿 𝑅𝑅
𝐴𝐴 𝑄𝑄 𝜋𝜋
(𝐴𝐴, 𝐿𝐿) 𝑄𝑄 𝜋𝜋
(𝐴𝐴, 𝑅𝑅)
𝐵𝐵 𝑄𝑄 𝜋𝜋
(𝐵𝐵, 𝐿𝐿) 𝑄𝑄 𝜋𝜋
(𝐵𝐵, 𝑅𝑅)
Qテーブルを用いた行動選択
21
 貪欲方策:最大の価値を持つ行動を選択
 ソフトマックス方策:試行錯誤のために確率的に行動を選択
𝜋𝜋(𝑦𝑦|𝑥𝑥) = �
1 if 𝑦𝑦 = 𝑎𝑎𝑎𝑎𝑎𝑎max
𝑦𝑦′
𝑄𝑄(𝑥𝑥, 𝑦𝑦𝑦)
0 otherwise
𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅
𝐴𝐴 0.23 0.4
𝐵𝐵 0.15 0.98
𝜋𝜋(𝑅𝑅|𝐴𝐴) = 1
𝜋𝜋(𝐿𝐿|𝐵𝐵) = 0
貪欲方策 𝜋𝜋(𝐿𝐿|𝐴𝐴) = 0
𝜋𝜋(𝑅𝑅|𝐵𝐵) = 1
𝜋𝜋(𝑦𝑦|𝑥𝑥) =
exp(𝑄𝑄 𝑥𝑥, 𝑦𝑦 )
∑𝑦𝑦𝑦 exp(𝑄𝑄 𝑥𝑥, 𝑦𝑦′ )
𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅
𝐴𝐴 0.23 0.4
𝐵𝐵 0.15 0.98
ソフトマックス 𝜋𝜋(𝑅𝑅|𝐴𝐴) = 0.54
𝜋𝜋(𝐿𝐿|𝐵𝐵) = 0.3
𝜋𝜋(𝐿𝐿|𝐴𝐴) = 0.46
𝜋𝜋(𝑅𝑅|𝐵𝐵) = 0.7
演習2
22
 以下のQテーブルに基づき、貪欲方策と
ソフトマックス方策を求めなさい。
 タイトル「演習レポート」、日付、学生番号、氏名を
用紙の 一番上に記載
𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅
𝐴𝐴 0.98 0.15
𝐵𝐵 0.64 0.32
構成
24
 強化学習の基礎の復習
 データを用いた価値関数の最適化
 行動価値関数とQテーブル
 Q学習
 Q学習の実装例
 openAIを用いたQ学習の実装・実行例
 その他
 方策オン型の方策反復法
動物の行動学習:試行錯誤学習
25
 心理学の行動主義者の学習の定義
 行動や反応の変化として表れ、外部から観察できる現象
 試行錯誤学習
Edward Thorndike(1874年‒1949年)
迷路のような箱の中で,猫は試行錯誤的に様々な行動を取る。
偶然にでも外に出る行動を取り,それを何度か繰り返すと,
やがて同じ行動が出現する頻度が高くなることを実験的に確認
猫が様々な行動をとる 偶然に外に出られた
強くなるロボティック・ゲームプレイヤーの作り方 八谷、杉山 2016
また箱にいれる
試行錯誤の過程を経て何度か繰り返すと、やがて同じ行動が出現する頻度が高くなる
【猫の問題箱実験】
行動後の「満足」または「不快」の度合いに応じて、
行動の出現頻度が学習の過程を経て変化
試行データ
26
𝑑𝑑 ≡ 𝑥𝑥0
, 𝑦𝑦0
, 𝑟𝑟0
, 𝑥𝑥1
, 𝑥𝑥1
, 𝑦𝑦1
, 𝑟𝑟1
, 𝑥𝑥2
…エピソードデータ:
1回目の試行
2回目の試行
𝑁𝑁 + 1回連続してランダムに行動を選択し、
状態遷移を繰り返した系列データ
試行データのことを、エピソードデータと呼ぶ
初期状態
初期状態に戻す
初期状態に戻す
エピソードデータの例
27
 5回の試行によるエピソードデータの例(𝑁𝑁 = 1の場合)
𝑑𝑑1 = 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵)
状態:𝑋𝑋 ∈ 𝐴𝐴, 𝐵𝐵 行動:𝑌𝑌 ∈ 𝐿𝐿, 𝑅𝑅
𝐴𝐴 𝐵𝐵
𝐿𝐿
𝐿𝐿
𝑅𝑅
𝑅𝑅
報酬関数:𝑅𝑅 𝐵𝐵, 𝑅𝑅, 𝐵𝐵 = 1
状態遷移確率
割引率:γ = 0.9
次の状態
初期状態確率:𝑃𝑃𝐼𝐼 𝐴𝐴 =1ステップ数:𝑇𝑇 = 2
𝑑𝑑2 = 𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝑅𝑅, 1, 𝐵𝐵)
𝑑𝑑3
= 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵)
𝑑𝑑4
= 𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝐿𝐿, 0, 𝐴𝐴)
方策𝜋𝜋1 𝑅𝑅 𝐿𝐿
𝜋𝜋 � |𝐴𝐴 0.5 0.5
𝜋𝜋 � |𝐵𝐵 0.5 0.5
状態
行動
𝑑𝑑5 = 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴)
ランダムに試行錯誤
𝑑𝑑 ≡ 𝑥𝑥0, 𝑦𝑦0, 𝑟𝑟0, 𝑥𝑥1 , 𝑥𝑥1, 𝑦𝑦1, 𝑟𝑟1, 𝑥𝑥2
A B
𝑃𝑃𝑇𝑇 � |A, L 1 0
𝑃𝑃𝑇𝑇 � |A, R 0 1
𝑃𝑃𝑇𝑇 � |B , L 1 0
𝑃𝑃𝑇𝑇 � |B, R 0 1
最大行動価値関数の展開
30
𝑄𝑄∗ (𝑥𝑥, 𝑦𝑦) = max
𝜋𝜋
Ε
𝜋𝜋 𝑌𝑌 𝑡𝑡|𝑋𝑋 𝑡𝑡
𝑃𝑃𝑇𝑇(𝑋𝑋 𝑡𝑡+1|𝑋𝑋𝑡𝑡,𝑌𝑌𝑡𝑡)
��
𝑡𝑡=0
∞
𝛾𝛾𝑡𝑡
𝑅𝑅 𝑋𝑋𝑡𝑡
, 𝑌𝑌𝑡𝑡
, 𝑋𝑋𝑡𝑡+1
𝑋𝑋0
= 𝑥𝑥, 𝑌𝑌0
= 𝑦𝑦
= Ε
𝑃𝑃𝑇𝑇(𝑋𝑋1|𝑋𝑋0,𝑌𝑌0)
�𝑅𝑅 𝑋𝑋0
, 𝑌𝑌0
, 𝑋𝑋1
+ 𝛾𝛾max
𝜋𝜋
Ε
𝜋𝜋 𝑌𝑌1|𝑋𝑋1
|𝑄𝑄𝜋𝜋 𝑋𝑋1
, 𝑌𝑌1
𝑋𝑋1
𝑋𝑋0
= 𝑥𝑥, 𝑌𝑌0
= 𝑦𝑦
= max
𝜋𝜋
Ε
𝜋𝜋 𝑌𝑌 𝑡𝑡|𝑋𝑋 𝑡𝑡
𝑃𝑃𝑇𝑇(𝑋𝑋 𝑡𝑡+1|𝑋𝑋 𝑡𝑡,𝑌𝑌𝑡𝑡)
�𝑅𝑅 𝑋𝑋0
, 𝑌𝑌0
, 𝑋𝑋1
+ �
𝑡𝑡=1
∞
𝛾𝛾𝑡𝑡
𝑅𝑅 𝑋𝑋𝑡𝑡
, 𝑌𝑌𝑡𝑡
, 𝑋𝑋𝑡𝑡+1
𝑋𝑋0
= 𝑥𝑥, 𝑌𝑌0
= 𝑦𝑦
= max
𝜋𝜋
Ε
𝜋𝜋 𝑌𝑌 𝑡𝑡|𝑋𝑋 𝑡𝑡
𝑃𝑃𝑇𝑇(𝑋𝑋 𝑡𝑡+1|𝑋𝑋 𝑡𝑡,𝑌𝑌𝑡𝑡)
�𝑅𝑅 𝑋𝑋0
, 𝑌𝑌0
, 𝑋𝑋1
+ 𝛾𝛾 �
𝑡𝑡=1
∞
𝛾𝛾𝑡𝑡−1
𝑅𝑅 𝑋𝑋𝑡𝑡
, 𝑌𝑌𝑡𝑡
, 𝑋𝑋𝑡𝑡+1
𝑋𝑋0
= 𝑥𝑥, 𝑌𝑌0
= 𝑦𝑦
= max
𝜋𝜋
Ε
𝜋𝜋 𝑌𝑌1|𝑋𝑋1
𝑃𝑃𝑇𝑇(𝑋𝑋1|𝑋𝑋0,𝑌𝑌0)
�𝑅𝑅 𝑋𝑋0
, 𝑌𝑌0
, 𝑋𝑋1
+ 𝛾𝛾 Ε
𝜋𝜋 𝑌𝑌𝑡𝑡|𝑋𝑋𝑡𝑡
𝑃𝑃𝑇𝑇(𝑋𝑋𝑡𝑡+1|𝑋𝑋𝑡𝑡,𝑌𝑌𝑡𝑡)
��
𝑡𝑡=1
∞
𝛾𝛾𝑡𝑡−1
𝑅𝑅 𝑋𝑋𝑡𝑡
, 𝑌𝑌𝑡𝑡
, 𝑋𝑋𝑡𝑡+1
𝑋𝑋1
, 𝑌𝑌1
𝑋𝑋0
= 𝑥𝑥, 𝑌𝑌0
= 𝑦𝑦
= max
𝜋𝜋
Ε
𝑃𝑃𝑇𝑇(𝑋𝑋1|𝑋𝑋0,𝑌𝑌0)
�𝑅𝑅 𝑋𝑋0
, 𝑌𝑌0
, 𝑋𝑋1
+ 𝛾𝛾 Ε
𝜋𝜋 𝑌𝑌1|𝑋𝑋1
|𝑄𝑄𝜋𝜋 𝑋𝑋𝑡𝑡
, 𝑌𝑌𝑡𝑡
𝑋𝑋1
𝑋𝑋0
= 𝑥𝑥, 𝑌𝑌0
= 𝑦𝑦
= max
𝜋𝜋
Ε
𝜋𝜋 𝑌𝑌1|𝑋𝑋1
𝑃𝑃𝑇𝑇(𝑋𝑋1|𝑋𝑋0,𝑌𝑌0)
|𝑅𝑅 𝑋𝑋0
, 𝑌𝑌0
, 𝑋𝑋1
+ 𝛾𝛾𝑄𝑄𝜋𝜋 𝑋𝑋1
, 𝑌𝑌1
𝑋𝑋0
= 𝑥𝑥, 𝑌𝑌0
= 𝑦𝑦
Q学習法
31
 目的:最大行動価値関数を獲得
 最大行動価値関数の漸化式表現:
 Q学習法:最大行動価値関数の漸化式を満たすように、
エピソードデータを用いて以下のルールで行動価値関数を更新
𝑄𝑄 𝑥𝑥𝑡𝑡, 𝑦𝑦𝑡𝑡 ← 𝑄𝑄 𝑥𝑥𝑡𝑡, 𝑦𝑦𝑡𝑡 + 𝛼𝛼 𝑟𝑟𝑡𝑡 + 𝛾𝛾 max
𝑦𝑦
𝑄𝑄 𝑥𝑥𝑡𝑡+1, 𝑦𝑦 − 𝑄𝑄 𝑥𝑥𝑡𝑡, 𝑦𝑦𝑡𝑡
𝑄𝑄 𝑥𝑥, 𝑦𝑦 :方策に依存しない価値関数
𝑄𝑄∗ 𝑥𝑥, 𝑦𝑦 = Ε
𝑃𝑃𝑇𝑇(𝑋𝑋1|𝑋𝑋0,𝑌𝑌0)
�𝑅𝑅 𝑋𝑋0
, 𝑌𝑌0
, 𝑋𝑋1
+ 𝛾𝛾max
𝜋𝜋
Ε
𝜋𝜋 𝑌𝑌1|𝑋𝑋1
|𝑄𝑄𝜋𝜋 𝑋𝑋1
, 𝑌𝑌1
𝑋𝑋1
𝑋𝑋0
= 𝑥𝑥, 𝑌𝑌0
= 𝑦𝑦
𝛼𝛼:学習率、𝛾𝛾:割引率
𝑄𝑄∗(𝑥𝑥, 𝑦𝑦) = max
𝜋𝜋
𝑄𝑄𝜋𝜋 (𝑥𝑥, 𝑦𝑦) 最適な行動価値関数が求まれば、
貪欲方策により最適な方策が求まる
演習3
32
1. 以下の1つのエピソードデータを用いて、Qテーブルを更新
する式を2つ書き、Qテーブルの値を更新しなさい。
 タイトル「演習レポート」、日付、学生番号、氏名を用紙の
一番上に記載
𝑄𝑄 𝑥𝑥𝑡𝑡
, 𝑦𝑦𝑡𝑡
← 𝑄𝑄 𝑥𝑥𝑡𝑡
, 𝑦𝑦𝑡𝑡
+ 𝛼𝛼 𝑟𝑟𝑡𝑡
+ 𝛾𝛾 max
𝑦𝑦
𝑄𝑄 𝑥𝑥𝑡𝑡+1
, 𝑦𝑦 − 𝑄𝑄 𝑥𝑥𝑡𝑡
, 𝑦𝑦𝑡𝑡
𝑑𝑑2 = 𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝑅𝑅, 1, 𝐵𝐵)
Qテーブルの初期値:𝑄𝑄 �,� = 0
学習率𝛼𝛼 = 0.5、割引率𝛾𝛾 = 0.9
Q学習の例
34
 2状態マルコフチェーン
 Q学習による価値関数の更新
価値関数の更新式:
𝛼𝛼 = 0.5 𝛾𝛾 = 0.9 価値関数の初期値𝑄𝑄(�,�) = 0
状態:𝑋𝑋 ∈ 𝐴𝐴, 𝐵𝐵 行動:𝑌𝑌 ∈ 𝐿𝐿, 𝑅𝑅
𝐴𝐴 𝐵𝐵
𝐿𝐿
𝐿𝐿
𝑅𝑅
𝑅𝑅
報酬関数:𝑅𝑅 𝐵𝐵, 𝑅𝑅, 𝐵𝐵 = 1
状態遷移確率
割引率:γ = 0.9
次の状態
初期状態確率:𝑃𝑃𝐼𝐼 𝐴𝐴 =1ステップ数:𝑇𝑇 = 2
𝑑𝑑1
= 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵)
𝑑𝑑2
= 𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝑅𝑅, 1, 𝐵𝐵)
𝑑𝑑3
= 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵)
𝑑𝑑4
= 𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝐿𝐿, 0, 𝐴𝐴)
𝑑𝑑5
= 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴)
エピソードデータ:
𝑑𝑑6
= 𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝑅𝑅, 0, 𝐵𝐵)
𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅
𝐴𝐴 0 0
𝐵𝐵 0 0
𝑄𝑄 𝑥𝑥𝑡𝑡
, 𝑦𝑦𝑡𝑡
← 𝑄𝑄 𝑥𝑥𝑡𝑡
, 𝑦𝑦𝑡𝑡
+ 𝛼𝛼 𝑟𝑟𝑡𝑡
+ 𝛾𝛾 max
𝑦𝑦
𝑄𝑄 𝑥𝑥𝑡𝑡+1
, 𝑦𝑦 − 𝑄𝑄 𝑥𝑥𝑡𝑡
, 𝑦𝑦𝑡𝑡
Qテーブル
A B
𝑃𝑃𝑇𝑇 � |A, L 1 0
𝑃𝑃𝑇𝑇 � |A, R 0 1
𝑃𝑃𝑇𝑇 � |B , L 1 0
𝑃𝑃𝑇𝑇 � |B, R 0 1
Q学習の例2
35
 各データを用いてQテーブルを更新
 エピソード𝑑𝑑1
= 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵)
 エピソード 𝑑𝑑2
= 𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝑅𝑅, 1, 𝐵𝐵)
 エピソード 𝑑𝑑3
= 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵)
𝑄𝑄 A, 𝐿𝐿 = 0 + 0.5 0 + 0.9 ∗ 0 − 0 = 0
𝑄𝑄 A, 𝑅𝑅 = 0 + 0.5 0 + 0.9 ∗ 0 − 0 = 0
𝑄𝑄 A, 𝑅𝑅 = 0 + 0.5 0 + 0.9 ∗ 0 − 0 = 0
𝑄𝑄 𝐵𝐵, 𝑅𝑅 = 0 + 0.5 1 + 0.9 ∗ 0 − 0 =0.5
𝑄𝑄 A, 𝐿𝐿 = 0 + 0.5 0 + 0.9 ∗ 0 − 0 = 0
𝑄𝑄 𝐴𝐴, 𝑅𝑅 = 0 + 0.5 0 + 0.9 ∗ 0.5 − 0 =0.23
𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅
𝐴𝐴 0 0
𝐵𝐵 0 0
𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅
𝐴𝐴 0 0
𝐵𝐵 0 0.5
𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅
𝐴𝐴 0 0.23
𝐵𝐵 0 0.5
𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅
𝐴𝐴 0 0
𝐵𝐵 0 0
価値関数の更新式:
𝛼𝛼 = 0.5 𝛾𝛾 = 0.9
𝑄𝑄 𝑥𝑥𝑡𝑡
, 𝑦𝑦𝑡𝑡
← 𝑄𝑄 𝑥𝑥𝑡𝑡
, 𝑦𝑦𝑡𝑡
+ 𝛼𝛼 𝑟𝑟𝑡𝑡
+ 𝛾𝛾 max
𝑦𝑦
𝑄𝑄 𝑥𝑥𝑡𝑡+1
, 𝑦𝑦 − 𝑄𝑄 𝑥𝑥𝑡𝑡
, 𝑦𝑦𝑡𝑡
Q学習の例3
36
 各データを用いてQテーブルを更新
 エピソード𝑑𝑑4
= 𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝐿𝐿, 0, 𝐴𝐴)
 エピソード 𝑑𝑑5 = 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵)
 エピソード 𝑑𝑑6 = 𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝑅𝑅, 1, 𝐵𝐵)
𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅
𝐴𝐴 0 0.34
𝐵𝐵 0.15 0.5
𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅
𝐴𝐴 0.23 0.34
𝐵𝐵 0.15 0.5
𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅
𝐴𝐴 0.23 0.4
𝐵𝐵 0.15 0.98
𝑄𝑄 A, 𝑅𝑅 = 0.23 + 0.5 0 + 0.9 ∗ 0.5 − 0.23 = 0.34
𝑄𝑄 𝐵𝐵, 𝐿𝐿 = 0 + 0.5 0 + 0.9 ∗ 0.34 − 0 = 0.15
𝑄𝑄 A, 𝐿𝐿 = 0 + 0.5 0 + 0.9 ∗ 0.34 − 0 =0.15
𝑄𝑄 𝐴𝐴, 𝐿𝐿 = 0.15 + 0.5 0 + 0.9 ∗ 0.34 − 0.15 = 0.23
𝑄𝑄 A, 𝑅𝑅 = 0.34 + 0.5 0 + 0.9 ∗ 0.5 − 0.34 = 0.4
𝑄𝑄 𝐵𝐵, 𝑅𝑅 = 0.5 + 0.5 1 + 0.9 ∗ 0.5 − 0.5 = 0.98
𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅
𝐴𝐴 0 0.23
𝐵𝐵 0 0.5
価値関数の更新式:
𝛼𝛼 = 0.5 𝛾𝛾 = 0.9
𝑄𝑄 𝑥𝑥𝑡𝑡
, 𝑦𝑦𝑡𝑡
← 𝑄𝑄 𝑥𝑥𝑡𝑡
, 𝑦𝑦𝑡𝑡
+ 𝛼𝛼 𝑟𝑟𝑡𝑡
+ 𝛾𝛾 max
𝑦𝑦
𝑄𝑄 𝑥𝑥𝑡𝑡+1
, 𝑦𝑦 − 𝑄𝑄 𝑥𝑥𝑡𝑡
, 𝑦𝑦𝑡𝑡
課題1
37
 2状態チェインウォーク
 Q学習法を用いてQテーブルを更新しなさい
状態:𝑋𝑋 ∈ 𝐴𝐴, 𝐵𝐵 行動:𝑌𝑌 ∈ 𝐿𝐿, 𝑅𝑅
𝐴𝐴 𝐵𝐵
𝐿𝐿
𝐿𝐿
𝑅𝑅
𝑅𝑅
報酬関数:𝑅𝑅 𝐴𝐴, 𝐿𝐿, 𝐴𝐴 = 1
状態遷移確率
割引率:γ = 0.9
次の状態
初期状態確率:𝑃𝑃𝐼𝐼 𝐵𝐵 =1ステップ数:𝑇𝑇 = 2
𝑅𝑅 𝐿𝐿
𝜋𝜋 � |𝐴𝐴 0.5 0.5
𝜋𝜋 � |𝐵𝐵 0.5 0.5
状態
行動
方策 𝜋𝜋1
𝛼𝛼 = 0.5 価値関数の初期値𝑄𝑄(�,�) = 0 𝑑𝑑1
= 𝐵𝐵, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝐿𝐿, 1, 𝐴𝐴)
𝑑𝑑2
= 𝐵𝐵, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝐿𝐿, 0, 𝐴𝐴)
𝑑𝑑3
= 𝐵𝐵, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵)
𝑑𝑑4
= 𝐵𝐵, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝑅𝑅, 0, 𝐵𝐵)
𝑑𝑑5
= 𝐵𝐵, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝐿𝐿, 1, 𝐴𝐴)
エピソードデータ:
𝑑𝑑6
= 𝐵𝐵, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝐿𝐿, 0, 𝐴𝐴)
𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅
𝐴𝐴 0 0
𝐵𝐵 0 0
Qテーブル
A B
𝑃𝑃𝑇𝑇 � |A, L 1 0
𝑃𝑃𝑇𝑇 � |A, R 0 1
𝑃𝑃𝑇𝑇 � |B , L 1 0
𝑃𝑃𝑇𝑇 � |B, R 0 1
課題2
41
 方策𝜋𝜋4のステップ0の価値関数Vを以下の漸化式を用い
て求め、方策𝜋𝜋4について考察しなさい。
 𝜋𝜋4 𝑅𝑅 𝐴𝐴 = 1、𝜋𝜋4 𝑅𝑅 𝐵𝐵 = 1
A B
𝑃𝑃𝑇𝑇 � |A, L 1 0
𝑃𝑃𝑇𝑇 � |A, R 0 1
𝑃𝑃𝑇𝑇 � |B , L 1 0
𝑃𝑃𝑇𝑇 � |B, R 0 1
状態:X ∈ A,B 行動:Y ∈ L, R
𝐴𝐴 B
L R
RL
報酬関数:𝑅𝑅 𝐵𝐵, 𝑅𝑅, B = 1
それ以外は0
状態遷移確率
割引率:γ = 0.9
次の状態
ステップ数:𝑁𝑁 = 2 初期状態確率:𝑃𝑃𝐼𝐼 A = 1
𝑉𝑉𝜋𝜋4
0
(𝑥𝑥) = Ε
𝜋𝜋 𝑌𝑌0|𝑋𝑋0
𝑃𝑃𝑇𝑇(𝑋𝑋1|𝑋𝑋0,𝑌𝑌0)
�𝑅𝑅 𝑋𝑋0, 𝑌𝑌0, 𝑋𝑋1 + 𝛾𝛾𝑉𝑉𝜋𝜋4
1
(𝑋𝑋1) 𝑋𝑋0 = 𝑥𝑥
時刻ステップ1の価値関数:
時刻ステップ0
𝑉𝑉𝜋𝜋4
1
𝐴𝐴 = 0.9 𝑉𝑉𝜋𝜋4
1
𝐵𝐵 = 1.9
構成
43
 強化学習の基礎の復習
 データを用いた価値関数の最適化
 行動価値関数とQテーブル
 Q学習
 Q学習の実装例
 openAIを用いたQ学習の実装・実行例
 その他
 方策オン型の方策反復法
OpenAI Gym (https://gym.openai.com/)
44
 強化学習のアルゴリズムを評価するための様々な
ベンチマークツールが動作するプラットフォーム
 ベンチマークツールの例:Atariゲーム、古典制御、ロボット
Atariゲーム:Pacman, Pongなど
古典制御:mountaincar, Acrobot, cartpoleなど
ロボット:PickAndPlace, HandManiPulateBlockなど
WindowでのOpenAI Gymの利用方法
45
 OpenAI Gymは基本的にLinux環境でしか動作しない
 ただし、Windows subsystem for Linuxを用いてwindowsに
Ubuntuをインストールした環境でもOpen AI Gymは動作可
 必要な構成:
 Windows subsystem for Linux, Ubuntu
 Python3: Anaconda
 Xming: Xサーバ
 openAI Gym一式
 詳細は以下を参照:
http://hirotaka-hachiya.hatenablog.com/entry/2018/05/28/185128
Pythonを用いたQ学習の実装例
46
 状態の離散化、行動の選択・実行の処理が必要
 Qテーブルの更新は、単純な計算で数行で書ける
 詳細は以下を参照:
https://github.com/hhachiya/intelligentSystemTraining/blob/master/
mountainCar.py
 学習時:「isdemo = False」にして、「python mountainCar.py」を実行
 デモ時:「isdemo = True」にして、「python mountainCar.py」を実行
次の状態next_stateにおける最大
の価値を取得
現在の状態stateにおける価値を取得
Qテーブルの更新
Q学習の実行例
47
 Mountain Car(車の山登り)タスク
 車の馬力が足りないため、アクセルを踏むだけではゴールに到達不可
状態X:車の位置と、速度
行動Y:アクセルの強さ
-10(左向き)、0、+10(右向き)
車
ゴール
報酬R:
-ゴールに到達時:0
-それ以外:-1
レポートの提出方法
48
 演習レポート:
 タイトル「演習レポート」、日付・学生番号・氏名を用紙の一番上に記載
 課題レポート :
 タイトル「課題レポート」、出題日・学生番号・氏名を用紙の一番上に記載
 2ページ以上になる場合は、ホッチキス留め
 A4サイズの用紙を使用
 一度に複数の課題レポートを提出する場合出題日ごとに別々に綴じる
構成
49
 強化学習の基礎の復習
 データを用いた価値関数の最適化
 行動価値関数とQテーブル
 Q学習
 Q学習の実装例
 openAIを用いたQ学習の実装・実行例
 その他
 方策オン型の方策反復法
方策反復法
50
 Q関数の近似(方策評価)と、方策改善を繰り返す
 方策評価:現在の方策 に対する価値関数 を計算
 方策改善:価値関数を用いて方策を更新
 最適な政策への収束が保証
 どうやってQテーブルを近似する?
方策評価 方策改善
価値関数
方策
初期政策 :反復インデックス𝜋𝜋1
𝑄𝑄𝜋𝜋𝑙𝑙
(𝑠𝑠, 𝑎𝑎)
𝜋𝜋𝑙𝑙+1 (𝑎𝑎|𝑠𝑠)
𝑙𝑙
𝜋𝜋𝑙𝑙+1
𝑎𝑎 𝑠𝑠 = �
1
0
if a = argmax
𝑎𝑎𝑎
𝑄𝑄 𝜋𝜋𝑙𝑙
(𝑠𝑠, 𝑎𝑎𝑎)
otherwise
𝑄𝑄𝜋𝜋𝑙𝑙+1
(𝑠𝑠, 𝑎𝑎) ≥ 𝑄𝑄 𝜋𝜋𝑙𝑙
𝑠𝑠, 𝑎𝑎 ∀(𝑠𝑠, 𝑎𝑎)
𝑄𝑄 𝜋𝜋𝑙𝑙
𝜋𝜋𝑙𝑙
モンテカルロ法による価値の近似
51
 モンテカルロ法
 解析的に解けない問題をデータを用いて近似する方法の総称
 カジノで有名なモナコのモンテカルロ地区が名前の由来
 エピソードデータを用いて価値関数を近似的
𝑄𝑄𝜋𝜋
(𝑠𝑠, 𝑎𝑎) ≈
1
𝑁𝑁𝐷𝐷(𝑠𝑠,𝑎𝑎)
�
𝑚𝑚∈𝐷𝐷(𝑠𝑠,𝑎𝑎)
�
𝑡𝑡=𝑡𝑡(𝑠𝑠,𝑎𝑎)
𝑚𝑚
𝑇𝑇
𝛾𝛾𝑡𝑡−𝑡𝑡(𝑠𝑠,𝑎𝑎)
𝑚𝑚
𝑟𝑟𝑚𝑚,𝑡𝑡
𝑁𝑁𝐷𝐷(𝑠𝑠,𝑎𝑎): 𝐷𝐷(𝑠𝑠, 𝑎𝑎)の数
𝐷𝐷(𝑠𝑠, 𝑎𝑎):状態𝑠𝑠と行動𝑎𝑎を含むエピソードの集合
𝑡𝑡(𝑠𝑠,𝑎𝑎)
𝑚𝑚
: エピソード𝑚𝑚で(𝑠𝑠, 𝑎𝑎)が最初に現れるステップ
価値関数近似と方策改善の例
52
 エピソードデータを用いて価値関数を近似
 方策を改善
𝑄𝑄𝜋𝜋
(𝑠𝑠, 𝑎𝑎) ≈
1
𝑁𝑁𝐷𝐷(𝑠𝑠,𝑎𝑎)
�
𝑚𝑚∈𝐷𝐷(𝑠𝑠,𝑎𝑎)
�
𝑡𝑡=𝑡𝑡(𝑠𝑠,𝑎𝑎)
𝑚𝑚
𝑇𝑇
𝛾𝛾𝑡𝑡−𝑡𝑡(𝑠𝑠,𝑎𝑎)
𝑚𝑚
𝑟𝑟𝑚𝑚,𝑡𝑡
𝐷𝐷 ≡ 𝑑𝑑 𝑚𝑚 𝑚𝑚=1
5
𝑑𝑑1 ≡ 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 1, 𝐵𝐵)
𝑑𝑑2 ≡ 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴)
𝑑𝑑3 ≡ 𝐴𝐴, 𝑅𝑅, 1, 𝐵𝐵 , (𝐵𝐵, 𝑅𝑅, 1, 𝐵𝐵)
𝑑𝑑4 ≡ 𝐴𝐴, 𝑅𝑅, 1, 𝐵𝐵 , (𝐵𝐵, 𝐿𝐿, 0, 𝐴𝐴)
𝑑𝑑5 ≡ 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 1, 𝐵𝐵)
エピソードデータ:
価値関数の近似式:
𝑄𝑄 𝜋𝜋1
A, 𝐿𝐿 ≈
1
3
0 + 0.9 ∗ 1 + 0 + 0.9 ∗ 0 + 0 + 0.9 ∗ 1 = 0.6
𝑄𝑄𝜋𝜋1
A, 𝑅𝑅 ≈
1
4
1 + 1 + 0.9 ∗ 1 + 1 + 0.9 ∗ 0 + 1 = 1.225
𝑄𝑄𝜋𝜋1
𝐵𝐵, 𝐿𝐿 ≈
1
1
(0) = 0 𝑄𝑄𝜋𝜋1
𝐵𝐵, 𝑅𝑅 ≈
1
1
1 = 1
𝜋𝜋𝑙𝑙+1
𝑎𝑎 𝑠𝑠 = �
1
0
if a = argmax
𝑎𝑎𝑎
𝑄𝑄 𝜋𝜋𝑙𝑙
(𝑠𝑠, 𝑎𝑎𝑎)
otherwise
𝜋𝜋2 𝑅𝑅 𝐴𝐴 = 1
𝜋𝜋2
𝐿𝐿 𝐴𝐴 = 0
𝜋𝜋2 𝑅𝑅 𝐵𝐵 = 1
𝜋𝜋2 𝐿𝐿 𝐵𝐵 = 0

Más contenido relacionado

La actualidad más candente

2013.12.26 prml勉強会 線形回帰モデル3.2~3.4
2013.12.26 prml勉強会 線形回帰モデル3.2~3.42013.12.26 prml勉強会 線形回帰モデル3.2~3.4
2013.12.26 prml勉強会 線形回帰モデル3.2~3.4Takeshi Sakaki
 
データ解析7 主成分分析の基礎
データ解析7 主成分分析の基礎データ解析7 主成分分析の基礎
データ解析7 主成分分析の基礎Hirotaka Hachiya
 
PRML上巻勉強会 at 東京大学 資料 第1章後半
PRML上巻勉強会 at 東京大学 資料 第1章後半PRML上巻勉強会 at 東京大学 資料 第1章後半
PRML上巻勉強会 at 東京大学 資料 第1章後半Ohsawa Goodfellow
 
状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38horihorio
 
因果探索: 観察データから 因果仮説を探索する
因果探索: 観察データから因果仮説を探索する因果探索: 観察データから因果仮説を探索する
因果探索: 観察データから 因果仮説を探索するShiga University, RIKEN
 
カップルが一緒にお風呂に入る割合をベイズ推定してみた
カップルが一緒にお風呂に入る割合をベイズ推定してみたカップルが一緒にお風呂に入る割合をベイズ推定してみた
カップルが一緒にお風呂に入る割合をベイズ推定してみたhoxo_m
 
for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力imuyaoti
 
単純ベイズ法による異常検知 #ml-professional
単純ベイズ法による異常検知  #ml-professional単純ベイズ法による異常検知  #ml-professional
単純ベイズ法による異常検知 #ml-professionalAi Makabi
 
PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)Yasunori Ozaki
 
PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半Ohsawa Goodfellow
 
PRML輪読#1
PRML輪読#1PRML輪読#1
PRML輪読#1matsuolab
 
RStanとShinyStanによるベイズ統計モデリング入門
RStanとShinyStanによるベイズ統計モデリング入門RStanとShinyStanによるベイズ統計モデリング入門
RStanとShinyStanによるベイズ統計モデリング入門Masaki Tsuda
 
【解説】 一般逆行列
【解説】 一般逆行列【解説】 一般逆行列
【解説】 一般逆行列Kenjiro Sugimoto
 
深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計
深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計
深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計Yuta Sugii
 
Sliced Wasserstein距離と生成モデル
Sliced Wasserstein距離と生成モデルSliced Wasserstein距離と生成モデル
Sliced Wasserstein距離と生成モデルohken
 
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章Shushi Namba
 
Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理wada, kazumi
 
ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介Naoki Hayashi
 

La actualidad más candente (20)

2013.12.26 prml勉強会 線形回帰モデル3.2~3.4
2013.12.26 prml勉強会 線形回帰モデル3.2~3.42013.12.26 prml勉強会 線形回帰モデル3.2~3.4
2013.12.26 prml勉強会 線形回帰モデル3.2~3.4
 
データ解析7 主成分分析の基礎
データ解析7 主成分分析の基礎データ解析7 主成分分析の基礎
データ解析7 主成分分析の基礎
 
PRML上巻勉強会 at 東京大学 資料 第1章後半
PRML上巻勉強会 at 東京大学 資料 第1章後半PRML上巻勉強会 at 東京大学 資料 第1章後半
PRML上巻勉強会 at 東京大学 資料 第1章後半
 
機械学習と主成分分析
機械学習と主成分分析機械学習と主成分分析
機械学習と主成分分析
 
状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38
 
因果探索: 観察データから 因果仮説を探索する
因果探索: 観察データから因果仮説を探索する因果探索: 観察データから因果仮説を探索する
因果探索: 観察データから 因果仮説を探索する
 
カップルが一緒にお風呂に入る割合をベイズ推定してみた
カップルが一緒にお風呂に入る割合をベイズ推定してみたカップルが一緒にお風呂に入る割合をベイズ推定してみた
カップルが一緒にお風呂に入る割合をベイズ推定してみた
 
for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力
 
単純ベイズ法による異常検知 #ml-professional
単純ベイズ法による異常検知  #ml-professional単純ベイズ法による異常検知  #ml-professional
単純ベイズ法による異常検知 #ml-professional
 
PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)
 
PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半
 
PRML輪読#1
PRML輪読#1PRML輪読#1
PRML輪読#1
 
因果推論の基礎
因果推論の基礎因果推論の基礎
因果推論の基礎
 
RStanとShinyStanによるベイズ統計モデリング入門
RStanとShinyStanによるベイズ統計モデリング入門RStanとShinyStanによるベイズ統計モデリング入門
RStanとShinyStanによるベイズ統計モデリング入門
 
【解説】 一般逆行列
【解説】 一般逆行列【解説】 一般逆行列
【解説】 一般逆行列
 
深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計
深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計
深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計
 
Sliced Wasserstein距離と生成モデル
Sliced Wasserstein距離と生成モデルSliced Wasserstein距離と生成モデル
Sliced Wasserstein距離と生成モデル
 
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
 
Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理
 
ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介
 

Similar a 人工知能2018 強化学習の応用

人工知能2018 6 強化学習の基礎
人工知能2018 6 強化学習の基礎人工知能2018 6 強化学習の基礎
人工知能2018 6 強化学習の基礎Hirotaka Hachiya
 
これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法kenyanonaka
 
[Dl輪読会]introduction of reinforcement learning
[Dl輪読会]introduction of reinforcement learning[Dl輪読会]introduction of reinforcement learning
[Dl輪読会]introduction of reinforcement learningDeep Learning JP
 
強化学習その3
強化学習その3強化学習その3
強化学習その3nishio
 
Quantum Support Vector Machine
Quantum Support Vector MachineQuantum Support Vector Machine
Quantum Support Vector MachineYuma Nakamura
 
Computing for Isogeny Kernel Problem by Groebner Basis
Computing for Isogeny Kernel Problem by Groebner BasisComputing for Isogeny Kernel Problem by Groebner Basis
Computing for Isogeny Kernel Problem by Groebner BasisYasu Math
 
続・わかりやすいパターン認識第5章
続・わかりやすいパターン認識第5章続・わかりやすいパターン認識第5章
続・わかりやすいパターン認識第5章Roy Ray
 
データ解析5 単回帰分析
データ解析5 単回帰分析データ解析5 単回帰分析
データ解析5 単回帰分析Hirotaka Hachiya
 
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へZansa
 
クラシックな機械学習の入門  9. モデル推定
クラシックな機械学習の入門  9. モデル推定クラシックな機械学習の入門  9. モデル推定
クラシックな機械学習の入門  9. モデル推定Hiroshi Nakagawa
 
PRML第9章「混合モデルとEM」
PRML第9章「混合モデルとEM」PRML第9章「混合モデルとEM」
PRML第9章「混合モデルとEM」Keisuke Sugawara
 
コンピュータビジョン最先端ガイド6 第2章:4~4.2節
コンピュータビジョン最先端ガイド6 第2章:4~4.2節コンピュータビジョン最先端ガイド6 第2章:4~4.2節
コンピュータビジョン最先端ガイド6 第2章:4~4.2節nonane
 
場の量子論
場の量子論場の量子論
場の量子論M M
 
Analyze by StatsModels or Numpy
Analyze by StatsModels or NumpyAnalyze by StatsModels or Numpy
Analyze by StatsModels or NumpyToshiki NOGUCHI
 
1017 論文紹介第四回
1017 論文紹介第四回1017 論文紹介第四回
1017 論文紹介第四回Kohei Wakamatsu
 
機械学習モデルの列挙
機械学習モデルの列挙機械学習モデルの列挙
機械学習モデルの列挙Satoshi Hara
 
NN, CNN, and Image Analysis
NN, CNN, and Image AnalysisNN, CNN, and Image Analysis
NN, CNN, and Image AnalysisYuki Shimada
 

Similar a 人工知能2018 強化学習の応用 (20)

人工知能2018 6 強化学習の基礎
人工知能2018 6 強化学習の基礎人工知能2018 6 強化学習の基礎
人工知能2018 6 強化学習の基礎
 
これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法
 
[Dl輪読会]introduction of reinforcement learning
[Dl輪読会]introduction of reinforcement learning[Dl輪読会]introduction of reinforcement learning
[Dl輪読会]introduction of reinforcement learning
 
強化学習その3
強化学習その3強化学習その3
強化学習その3
 
Quantum Support Vector Machine
Quantum Support Vector MachineQuantum Support Vector Machine
Quantum Support Vector Machine
 
Computing for Isogeny Kernel Problem by Groebner Basis
Computing for Isogeny Kernel Problem by Groebner BasisComputing for Isogeny Kernel Problem by Groebner Basis
Computing for Isogeny Kernel Problem by Groebner Basis
 
続・わかりやすいパターン認識第5章
続・わかりやすいパターン認識第5章続・わかりやすいパターン認識第5章
続・わかりやすいパターン認識第5章
 
データ解析5 単回帰分析
データ解析5 単回帰分析データ解析5 単回帰分析
データ解析5 単回帰分析
 
【論文紹介】PGQ: Combining Policy Gradient And Q-learning
【論文紹介】PGQ: Combining Policy Gradient And Q-learning【論文紹介】PGQ: Combining Policy Gradient And Q-learning
【論文紹介】PGQ: Combining Policy Gradient And Q-learning
 
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
 
クラシックな機械学習の入門  9. モデル推定
クラシックな機械学習の入門  9. モデル推定クラシックな機械学習の入門  9. モデル推定
クラシックな機械学習の入門  9. モデル推定
 
PRML第9章「混合モデルとEM」
PRML第9章「混合モデルとEM」PRML第9章「混合モデルとEM」
PRML第9章「混合モデルとEM」
 
Deep learning入門
Deep learning入門Deep learning入門
Deep learning入門
 
コンピュータビジョン最先端ガイド6 第2章:4~4.2節
コンピュータビジョン最先端ガイド6 第2章:4~4.2節コンピュータビジョン最先端ガイド6 第2章:4~4.2節
コンピュータビジョン最先端ガイド6 第2章:4~4.2節
 
場の量子論
場の量子論場の量子論
場の量子論
 
Analyze by StatsModels or Numpy
Analyze by StatsModels or NumpyAnalyze by StatsModels or Numpy
Analyze by StatsModels or Numpy
 
1017 論文紹介第四回
1017 論文紹介第四回1017 論文紹介第四回
1017 論文紹介第四回
 
実機で動かす深層強化学習(画像なし)
実機で動かす深層強化学習(画像なし)実機で動かす深層強化学習(画像なし)
実機で動かす深層強化学習(画像なし)
 
機械学習モデルの列挙
機械学習モデルの列挙機械学習モデルの列挙
機械学習モデルの列挙
 
NN, CNN, and Image Analysis
NN, CNN, and Image AnalysisNN, CNN, and Image Analysis
NN, CNN, and Image Analysis
 

Más de Hirotaka Hachiya

人工知能2018 5 機械学習の基礎
人工知能2018 5 機械学習の基礎人工知能2018 5 機械学習の基礎
人工知能2018 5 機械学習の基礎Hirotaka Hachiya
 
AI2018 8 ニューラルネットワークの基礎
AI2018 8 ニューラルネットワークの基礎AI2018 8 ニューラルネットワークの基礎
AI2018 8 ニューラルネットワークの基礎Hirotaka Hachiya
 
データ解析14 ナイーブベイズ
データ解析14 ナイーブベイズデータ解析14 ナイーブベイズ
データ解析14 ナイーブベイズHirotaka Hachiya
 
データ解析13 線形判別分析
データ解析13 線形判別分析データ解析13 線形判別分析
データ解析13 線形判別分析Hirotaka Hachiya
 
データ解析12 k平均法
データ解析12 k平均法データ解析12 k平均法
データ解析12 k平均法Hirotaka Hachiya
 
データ解析11 因子分析の応用
データ解析11 因子分析の応用データ解析11 因子分析の応用
データ解析11 因子分析の応用Hirotaka Hachiya
 
データ解析10 因子分析の基礎
データ解析10 因子分析の基礎データ解析10 因子分析の基礎
データ解析10 因子分析の基礎Hirotaka Hachiya
 
データ解析8 主成分分析の応用
データ解析8 主成分分析の応用データ解析8 主成分分析の応用
データ解析8 主成分分析の応用Hirotaka Hachiya
 
データ解析4 確率の復習
データ解析4 確率の復習データ解析4 確率の復習
データ解析4 確率の復習Hirotaka Hachiya
 
データ解析2 線形代数の復習
データ解析2 線形代数の復習データ解析2 線形代数の復習
データ解析2 線形代数の復習Hirotaka Hachiya
 
データ解析1 ベクトルの復習
データ解析1 ベクトルの復習データ解析1 ベクトルの復習
データ解析1 ベクトルの復習Hirotaka Hachiya
 
人工知能12 確率モデル
人工知能12 確率モデル人工知能12 確率モデル
人工知能12 確率モデルHirotaka Hachiya
 
人工知能13 deep learning
人工知能13 deep learning人工知能13 deep learning
人工知能13 deep learningHirotaka Hachiya
 
人工知能10 サポートベクトルマシン
人工知能10 サポートベクトルマシン人工知能10 サポートベクトルマシン
人工知能10 サポートベクトルマシンHirotaka Hachiya
 
人工知能11 カーネルモデル
人工知能11 カーネルモデル人工知能11 カーネルモデル
人工知能11 カーネルモデルHirotaka Hachiya
 

Más de Hirotaka Hachiya (15)

人工知能2018 5 機械学習の基礎
人工知能2018 5 機械学習の基礎人工知能2018 5 機械学習の基礎
人工知能2018 5 機械学習の基礎
 
AI2018 8 ニューラルネットワークの基礎
AI2018 8 ニューラルネットワークの基礎AI2018 8 ニューラルネットワークの基礎
AI2018 8 ニューラルネットワークの基礎
 
データ解析14 ナイーブベイズ
データ解析14 ナイーブベイズデータ解析14 ナイーブベイズ
データ解析14 ナイーブベイズ
 
データ解析13 線形判別分析
データ解析13 線形判別分析データ解析13 線形判別分析
データ解析13 線形判別分析
 
データ解析12 k平均法
データ解析12 k平均法データ解析12 k平均法
データ解析12 k平均法
 
データ解析11 因子分析の応用
データ解析11 因子分析の応用データ解析11 因子分析の応用
データ解析11 因子分析の応用
 
データ解析10 因子分析の基礎
データ解析10 因子分析の基礎データ解析10 因子分析の基礎
データ解析10 因子分析の基礎
 
データ解析8 主成分分析の応用
データ解析8 主成分分析の応用データ解析8 主成分分析の応用
データ解析8 主成分分析の応用
 
データ解析4 確率の復習
データ解析4 確率の復習データ解析4 確率の復習
データ解析4 確率の復習
 
データ解析2 線形代数の復習
データ解析2 線形代数の復習データ解析2 線形代数の復習
データ解析2 線形代数の復習
 
データ解析1 ベクトルの復習
データ解析1 ベクトルの復習データ解析1 ベクトルの復習
データ解析1 ベクトルの復習
 
人工知能12 確率モデル
人工知能12 確率モデル人工知能12 確率モデル
人工知能12 確率モデル
 
人工知能13 deep learning
人工知能13 deep learning人工知能13 deep learning
人工知能13 deep learning
 
人工知能10 サポートベクトルマシン
人工知能10 サポートベクトルマシン人工知能10 サポートベクトルマシン
人工知能10 サポートベクトルマシン
 
人工知能11 カーネルモデル
人工知能11 カーネルモデル人工知能11 カーネルモデル
人工知能11 カーネルモデル
 

人工知能2018 強化学習の応用

  • 3. 構成 3  強化学習の基礎の復習  データを用いた価値関数の最適化  行動価値関数とQテーブル  Q学習  Q学習の実装例  openAIを用いたQ学習の実装・実行例  その他  方策オン型の方策反復法
  • 4. 機械学習手法の種類 4  問題(データの条件など)と目的に合わせて適切な 機械学習方法を選択する必要がある 問題 定義 代表的な方法 応用例 教師あり学習 入力と出力のデータに基づき、 入力を出力に変換する関数を 学習 SVM, 最小二乗法、 決定木、ランダム フォーレストなど スパム分類、顔検出、一 般物体認識、将棋局面 の評価など 教師なし学習 入力のみのデータに基づき、 入力の特性 (パターン、構造) を学習 PCA, LDA、HMMなど データの可視化 (クラスタリング、次元圧 縮) 半教師学習 入力のうち部分的に付与された 出力の事例に基づき 入力を出力に変換する関数を 学習 transductiveSVM, Laplacian SVMなど 画像、音声、Webログな どの大量データで、コス トの問題で一部のデータ のみしか出力(答え)が 付与されていない場合 強化学習 入力と、出力に対する報酬 (評価)のデータに基づき、 入力を出力に変換する関数を 学習 Q-learning、policy iteration, policy gradient ロボット制御、Web広告 選択、マーケティング
  • 5. ロボット制御での強化学習 5  方策:状態𝑥𝑥が観測したもとで行動𝑦𝑦を選択する条件付き確率分布  報酬関数:状態𝑥𝑥で行動𝑦𝑦をとり、次の状態𝑥𝑥𝑥に遷移した時の報酬𝑟𝑟  強化学習の目的:報酬和の期待値を最大化する方策𝜋𝜋∗ を獲得 出力:行動𝑦𝑦入力:状態𝑥𝑥 センサ アクチュエータ 𝜋𝜋 𝑦𝑦|𝑥𝑥 報酬𝑟𝑟 環境 𝑟𝑟 = 𝑅𝑅 𝑥𝑥, 𝑦𝑦, 𝑥𝑥𝑥 𝜋𝜋∗ = argmax 𝜋𝜋 Ε 𝜋𝜋 𝑌𝑌𝑡𝑡|𝑋𝑋𝑡𝑡 𝑃𝑃𝑇𝑇(𝑋𝑋𝑡𝑡+1|𝑋𝑋𝑡𝑡,𝑌𝑌𝑡𝑡) � 𝑡𝑡=0 ∞ 𝛾𝛾𝑡𝑡 𝑅𝑅 𝑋𝑋𝑡𝑡 , 𝑌𝑌𝑡𝑡 , 𝑋𝑋𝑡𝑡+1 𝛾𝛾 ∈ (0,1] :割引率 遠い先の報酬ほど割り引く 方策𝜋𝜋 𝑦𝑦|𝑥𝑥
  • 6. 価値関数 6  価値関数𝑉𝑉𝜋𝜋 0 (𝑥𝑥):時刻ステップ0から始まる報酬和の期待値 𝑉𝑉𝜋𝜋 0 (𝑥𝑥) = Ε 𝜋𝜋 𝑌𝑌𝑡𝑡|𝑋𝑋𝑡𝑡 𝑃𝑃𝑇𝑇(𝑋𝑋𝑡𝑡+1|𝑋𝑋𝑡𝑡,𝑌𝑌𝑡𝑡) �� 𝑡𝑡=0 𝑁𝑁 𝛾𝛾𝑡𝑡 𝑅𝑅 𝑋𝑋𝑡𝑡, 𝑌𝑌𝑡𝑡, 𝑋𝑋𝑡𝑡+1 𝑋𝑋0 = 𝑥𝑥 = Ε 𝜋𝜋 𝑌𝑌0|𝑋𝑋0 𝑃𝑃𝑇𝑇(𝑋𝑋1|𝑋𝑋0,𝑌𝑌0) |𝑅𝑅 𝑋𝑋0 , 𝑌𝑌0 , 𝑋𝑋1 + 𝛾𝛾𝑉𝑉𝜋𝜋 1 (𝑋𝑋1 ) 𝑋𝑋0 = 𝑥𝑥 漸化式表現 𝑃𝑃𝑇𝑇 𝑋𝑋1|𝑋𝑋0, 𝑌𝑌0 状態𝑋𝑋0 で行動𝑌𝑌0 をとったとき状態𝑋𝑋1 に遷移する状態遷移確率 状態𝑋𝑋1 𝑥𝑥1 𝑥𝑥2 𝑥𝑥3 𝜋𝜋 𝑌𝑌0|𝑋𝑋0 状態𝑋𝑋0 で行動𝑌𝑌0 を 選択する方策関数 𝑦𝑦1 行動𝑌𝑌0 𝑦𝑦2 𝑦𝑦3 𝜋𝜋 𝑌𝑌1 |𝑋𝑋1 状態𝑋𝑋1 に遷移したときの報酬 𝑥𝑥1 𝑥𝑥2 𝑥𝑥3 初期状態𝑋𝑋0 𝑅𝑅 𝑋𝑋1 , 𝑌𝑌1 , 𝑋𝑋2 状態𝑋𝑋 𝑁𝑁+1 𝑥𝑥1 𝑥𝑥2 𝑥𝑥3 𝑅𝑅 𝑋𝑋0 , 𝑌𝑌0 , 𝑋𝑋1 状態𝑋𝑋2 に遷移したときの報酬 状態・行動・報酬が、方策𝜋𝜋、状態遷移確率𝑃𝑃𝑇𝑇、報酬関数𝑅𝑅に基づき時々刻々と変化 状態𝑋𝑋0 は 与えられている
  • 7. 演習1 7 1. 顧客の「年齢」と「収入」のデータを活用して、以下の分析を 行いたい。それぞれ適切な機械学習手法を選択しなさい。 2. 強化学習を選択した場合は、状態𝑥𝑥 、行動𝑦𝑦 、および報酬𝑟𝑟 を定義しなさい  タイトル「演習レポート」、日付、学生番号、氏名を用紙の一 番上に記載 「年齢」から「収入」を予測したい 「年齢と収入」から似ている回答者を グループ化したい 顧客に送る、商品のダイレクト メールを選択をしたい 教師あり学習 教師なし学習 強化学習 機械学習の手法
  • 8. 価値の列挙法 12  決定的な方策と、価値を列挙し、最大価値の方策を選択  必要な演算数(価値関数の計算回数)  3ステップ2状態チェインウォークの場合:(2×2)×(2×3)=24回  実問題では状態数が膨大 なので計算量が爆発 (状態数×行動数) × (状態数 × ステップ数) 方策の数 各方策で計算する価値の数 ゲーム 局面の数 将棋 10の226乗 囲碁 10の360乗 方策 価値 𝜋𝜋1 𝑉𝑉𝜋𝜋1 0 𝐴𝐴 = 0, 𝑉𝑉𝜋𝜋1 0 𝐵𝐵 = 2.71 𝜋𝜋2 𝑉𝑉𝜋𝜋2 0 𝐴𝐴 = 0, 𝑉𝑉𝜋𝜋2 0 𝐵𝐵 = 0 𝜋𝜋3 𝑉𝑉𝜋𝜋3 0 𝐴𝐴 = 0, 𝑉𝑉𝜋𝜋3 0 𝐵𝐵 = 0 𝜋𝜋4 𝑉𝑉𝜋𝜋4 0 𝐴𝐴 = 1.71, 𝑉𝑉𝜋𝜋4 0 𝐵𝐵 = 2.71 最大の価値を持つ方策関数𝜋𝜋4を選択 状態:𝑋𝑋 ∈ A,B 行動:𝑌𝑌 ∈ L, R 𝐴𝐴 B L R RL 報酬関数:𝑅𝑅 𝐵𝐵, 𝑅𝑅, B = 1 割引率:γ = 0.9 ステップ数:𝑁𝑁 = 2 初期状態確率:𝑃𝑃𝐼𝐼 A = 1 𝜋𝜋1 𝑌𝑌 = 𝐿𝐿 𝑋𝑋 = 𝐴𝐴 = 1 𝜋𝜋1 𝑌𝑌 = 𝑅𝑅 𝑋𝑋 = 𝐵𝐵 = 1 𝜋𝜋2 𝑌𝑌 = 𝐿𝐿 𝑋𝑋 = 𝐴𝐴 = 1 𝜋𝜋2 𝑌𝑌 = 𝐿𝐿 𝑋𝑋 = 𝐵𝐵 = 1 𝜋𝜋3 𝑌𝑌 = 𝑅𝑅 𝑋𝑋 = 𝐴𝐴 = 1 𝜋𝜋3 𝑌𝑌 = 𝐿𝐿 𝑋𝑋 = 𝐵𝐵 = 1 𝜋𝜋4 𝑌𝑌 = 𝑅𝑅 𝑋𝑋 = 𝐴𝐴 = 1 𝜋𝜋4 𝑌𝑌 = 𝑅𝑅 𝑋𝑋 = 𝐵𝐵 = 1 スキップ>>
  • 9. 動的計画法 13  価値関数の最大化を2ステップずつ解く  𝑁𝑁ステップ目の価値を計算し、最大の価値𝑉𝑉𝜋𝜋∗ 𝑁𝑁 𝑥𝑥 を選択  次の1と2を𝑡𝑡 = 𝑁𝑁 − 1, 𝑁𝑁 − 2, … , 2,1,0と繰り返す 1. 𝑡𝑡ステップの価値𝑉𝑉𝜋𝜋 𝑡𝑡 (𝑥𝑥)を、 𝑡𝑡+1ステップの最大価値𝑉𝑉𝜋𝜋∗ 𝑡𝑡+1 𝑥𝑥 を用いて計算 2. 最大の価値𝑉𝑉𝜋𝜋∗ 𝑡𝑡 𝑥𝑥 を選択 𝑉𝑉𝜋𝜋 𝑡𝑡 (𝑥𝑥) = Ε 𝜋𝜋 𝑌𝑌 𝑡𝑡|𝑋𝑋𝑡𝑡 𝑃𝑃𝑇𝑇(𝑋𝑋𝑡𝑡+1|𝑋𝑋𝑡𝑡,𝑌𝑌𝑡𝑡) |𝑅𝑅 𝑋𝑋𝑡𝑡, 𝑌𝑌𝑡𝑡, 𝑋𝑋𝑡𝑡+1 + 𝛾𝛾𝑉𝑉𝜋𝜋∗ 𝑡𝑡+1 (𝑋𝑋𝑡𝑡+1) 𝑋𝑋𝑡𝑡+1 = 𝑥𝑥 𝑉𝑉𝜋𝜋 𝑁𝑁 (𝑥𝑥) = Ε 𝜋𝜋 𝑌𝑌 𝑁𝑁|𝑋𝑋 𝑁𝑁 𝑃𝑃𝑇𝑇(𝑋𝑋 𝑁𝑁+1|𝑋𝑋 𝑁𝑁,𝑌𝑌 𝑁𝑁) |𝑅𝑅 𝑋𝑋 𝑁𝑁, 𝑌𝑌 𝑁𝑁, 𝑋𝑋 𝑁𝑁+1 𝑋𝑋 𝑁𝑁 = 𝑥𝑥 スキップ>>
  • 10. 動的計画法の例 14  価値の計算回数は12回、最適な方策は𝜋𝜋 R 𝐴𝐴 = 1、𝜋𝜋 𝑅𝑅 𝐵𝐵 = 1 𝑉𝑉𝜋𝜋 2 𝐴𝐴 = 0 𝑉𝑉𝜋𝜋′ 2 𝐴𝐴 = 0 𝐴𝐴 ステップ2 𝐵𝐵 𝑉𝑉𝜋𝜋′ 2 𝐵𝐵 = 1 𝑉𝑉𝜋𝜋 2 𝐵𝐵 = 0 𝑉𝑉𝜋𝜋∗ 2 𝐴𝐴 = 0 𝑉𝑉𝜋𝜋 1 𝐴𝐴 = 0 𝑉𝑉𝜋𝜋′ 1 𝑥𝑥 = 0.9 𝑉𝑉𝜋𝜋′ 1 𝑥𝑥 = 1.9 𝑉𝑉𝜋𝜋 1 𝑥𝑥 = 0 𝑉𝑉𝜋𝜋∗ 1 𝐵𝐵 = 1.9 𝑉𝑉𝜋𝜋∗ 1 𝐴𝐴 = 0.9 𝑉𝑉𝜋𝜋∗ 2 𝐵𝐵 = 1 𝐴𝐴 𝐵𝐵 ステップ3 𝐴𝐴 𝐵𝐵 ステップ1 𝑉𝑉𝜋𝜋 0 𝐴𝐴 = 0.81 𝑉𝑉𝜋𝜋′ 0 𝑥𝑥 = 1.71 𝑉𝑉𝜋𝜋′ 0 𝑥𝑥 = 2.71 𝑉𝑉𝜋𝜋 0 𝑥𝑥 = 0.81 𝑉𝑉𝜋𝜋∗ 1 𝐵𝐵 = 2.71 𝑉𝑉𝜋𝜋∗ 1 𝐴𝐴 = 1.71 𝐴𝐴 𝐵𝐵 ステップ0 状態:𝑋𝑋 ∈ A,B 行動:𝑌𝑌 ∈ L, R 𝐴𝐴 B L R RL 報酬関数:𝑅𝑅 𝐵𝐵, 𝑅𝑅, B = 1 状態遷移確率 割引率:γ = 0.9 次の状態 ステップ数:𝑁𝑁 = 2 初期状態確率:𝑃𝑃𝐼𝐼 A = 1 𝑉𝑉𝜋𝜋 𝑡𝑡 (𝑥𝑥) = Ε 𝜋𝜋 𝑌𝑌0|𝑋𝑋0 𝑃𝑃𝑇𝑇(𝑋𝑋1|𝑋𝑋0,𝑌𝑌0) |𝑅𝑅 𝑋𝑋0 , 𝑌𝑌0 , 𝑋𝑋1 + 𝛾𝛾𝑉𝑉𝜋𝜋 𝑡𝑡+1 (𝑋𝑋𝑡𝑡+1 ) 𝑋𝑋𝑡𝑡 = 𝑥𝑥 A B 𝑃𝑃𝑇𝑇 � |A, L 1 0 𝑃𝑃𝑇𝑇 � |A, R 0 1 𝑃𝑃𝑇𝑇 � |B , L 1 0 𝑃𝑃𝑇𝑇 � |B, R 0 1
  • 11. 価値列挙法と動的計画法の課題 15  状態遷移確率𝑃𝑃𝑇𝑇を既知と仮定  実際には、状態遷移確率𝑃𝑃𝑇𝑇は未知の場合が多い  ゲーム:状態遷移は対戦相手の打ち手(戦略)に依存  ロボット制御: 状態遷移は周辺の環境に依存 状態𝑋𝑋𝑡𝑡 行動𝑌𝑌𝑡𝑡 例えば、「ドアを開ける」行動の後の状態: ロボットが利用される環境 によって大きく異なる ・フルーツがある: 80% ・何もない:20% 次の状態𝑋𝑋𝑡𝑡+1 対戦相手の戦略に依存
  • 12. 強化学習手法の一覧 16  価値列挙と動的計画以外にも様々な手法がある 方法 遷移確率 概要 価値列挙法 動的計画法 など 既知 遷移確率関数𝑃𝑃𝑇𝑇に基づき、方策関数 の候補𝜋𝜋1、𝜋𝜋2、 … の価値関数𝑉𝑉𝜋𝜋1 𝑡𝑡 (𝑥𝑥)、𝑉𝑉𝜋𝜋2 𝑡𝑡 (𝑥𝑥)、… を 漸化式を活用して計算。最大の価値を持つ方策𝜋𝜋∗ を選択。 モンテカルロ法、 TD法、TD(λ)法 SARSA法、Q学習法 最小二乗TD法など 未知 方策𝜋𝜋𝑡𝑡 に従いランダムに行動を選択し、データを 収集。データを用いて行動価値関数𝑄𝑄𝜋𝜋 𝑡𝑡 (𝑥𝑥, 𝑦𝑦)を改善 し、最適な行動関数𝑄𝑄∗ 𝑡𝑡 (𝑥𝑥, 𝑦𝑦)を獲得。 方策勾配法 貪欲方策勾配法 パラメータベース方策 探索法など 未知 方策𝜋𝜋𝑡𝑡に従いランダムに行動を選択し、データを 収集。データを用いて方策関数𝜋𝜋𝑡𝑡(𝑦𝑦|𝑥𝑥)を改善し、 最適な方策関数𝜋𝜋∗(𝑦𝑦|𝑥𝑥)を獲得。 今回は将棋や囲碁で実績のあるQ学習法を紹介
  • 13. 構成 17  強化学習の基礎の復習  データを用いた価値関数の最適化  行動価値関数とQテーブル  Q学習  Q学習の実装例  openAIを用いたQ学習の実装・実行例  その他  方策オン型の方策反復法
  • 14. 行動価値関数 18  行動価値関数: Q関数と呼ばれる価値関数𝑉𝑉の拡張版  状態𝑥𝑥で行動𝑦𝑦を取った後、方策𝜋𝜋に従った場合に将来得られる報酬和期待値  Q関数:状態𝑥𝑥で行動𝑦𝑦を選択する方策𝜋𝜋 𝑦𝑦|𝑥𝑥 を求めるのに用いられる 𝑄𝑄𝜋𝜋 (𝑥𝑥, 𝑦𝑦) = Ε 𝜋𝜋 𝑌𝑌 𝑡𝑡|𝑋𝑋 𝑡𝑡 𝑃𝑃𝑇𝑇(𝑋𝑋 𝑡𝑡+1|𝑋𝑋 𝑡𝑡,𝑌𝑌 𝑡𝑡) �� 𝑡𝑡=0 ∞ 𝛾𝛾𝑡𝑡 𝑅𝑅 𝑋𝑋𝑡𝑡 , 𝑌𝑌𝑡𝑡 , 𝑋𝑋𝑡𝑡+1 𝑋𝑋0 = 𝑥𝑥, 𝑌𝑌0 = 𝑦𝑦 強くなるロボティック・ゲームプレイヤーの作り方 八谷、杉山 2016 𝑄𝑄𝜋𝜋 (𝑋𝑋𝑡𝑡 , 𝑌𝑌𝑡𝑡 = 𝑦𝑦1) 𝑋𝑋𝑡𝑡状態 𝑄𝑄𝜋𝜋(𝑋𝑋𝑡𝑡, 𝑌𝑌𝑡𝑡 = 𝑦𝑦2) 𝑄𝑄𝜋𝜋(𝑋𝑋𝑡𝑡, 𝑌𝑌𝑡𝑡 = 𝑦𝑦3) 状態𝑋𝑋𝑡𝑡 で行動𝑦𝑦1を取る価値 𝑃𝑃𝑇𝑇 𝑋𝑋𝑡𝑡 |𝑋𝑋𝑡𝑡−1 , 𝑌𝑌𝑡𝑡−1 状態𝑋𝑋0 と行動𝑌𝑌0 は 与えられている 𝑃𝑃𝑇𝑇 𝑋𝑋𝑡𝑡+1 |𝑋𝑋𝑡𝑡 , 𝑌𝑌𝑡𝑡 行動 𝑦𝑦1の価値: 𝑦𝑦2の価値: 𝑦𝑦3の価値: 𝑌𝑌𝑡𝑡 状態𝑋𝑋𝑡𝑡 で行動𝑦𝑦3を取る価値最大の価値の行動を 高い確率で選択! 𝜋𝜋 𝑌𝑌𝑡𝑡 |𝑋𝑋𝑡𝑡 どの行動?
  • 15. 行動価値関数のテーブル表現 20  状態と行動が有限でかつ離散的と仮定した単純な表現方法  行に状態、列に行動、各要素に状態と行動の組に対する価値  2状態チェインウォークの場合のQテーブルの例 𝑦𝑦1 𝑦𝑦𝟐𝟐 ⋯ 𝑥𝑥1 𝑄𝑄𝜋𝜋(𝑥𝑥1, 𝑦𝑦1) 𝑄𝑄𝜋𝜋(𝑥𝑥1, 𝑦𝑦2) ⋯ 𝑥𝑥2 𝑄𝑄𝜋𝜋(𝑥𝑥2, 𝑦𝑦1) 𝑄𝑄𝜋𝜋(𝑥𝑥2, 𝑦𝑦2) ⋯ ⋮ ⋮ ⋮ ⋮ 状態の種類 行動の種類 𝐴𝐴 𝐵𝐵 𝐿𝐿 𝐿𝐿 𝑅𝑅 𝑅𝑅 「Qテーブル」と呼ばれる 𝐿𝐿 𝑅𝑅 𝐴𝐴 𝑄𝑄 𝜋𝜋 (𝐴𝐴, 𝐿𝐿) 𝑄𝑄 𝜋𝜋 (𝐴𝐴, 𝑅𝑅) 𝐵𝐵 𝑄𝑄 𝜋𝜋 (𝐵𝐵, 𝐿𝐿) 𝑄𝑄 𝜋𝜋 (𝐵𝐵, 𝑅𝑅)
  • 16. Qテーブルを用いた行動選択 21  貪欲方策:最大の価値を持つ行動を選択  ソフトマックス方策:試行錯誤のために確率的に行動を選択 𝜋𝜋(𝑦𝑦|𝑥𝑥) = � 1 if 𝑦𝑦 = 𝑎𝑎𝑎𝑎𝑎𝑎max 𝑦𝑦′ 𝑄𝑄(𝑥𝑥, 𝑦𝑦𝑦) 0 otherwise 𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅 𝐴𝐴 0.23 0.4 𝐵𝐵 0.15 0.98 𝜋𝜋(𝑅𝑅|𝐴𝐴) = 1 𝜋𝜋(𝐿𝐿|𝐵𝐵) = 0 貪欲方策 𝜋𝜋(𝐿𝐿|𝐴𝐴) = 0 𝜋𝜋(𝑅𝑅|𝐵𝐵) = 1 𝜋𝜋(𝑦𝑦|𝑥𝑥) = exp(𝑄𝑄 𝑥𝑥, 𝑦𝑦 ) ∑𝑦𝑦𝑦 exp(𝑄𝑄 𝑥𝑥, 𝑦𝑦′ ) 𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅 𝐴𝐴 0.23 0.4 𝐵𝐵 0.15 0.98 ソフトマックス 𝜋𝜋(𝑅𝑅|𝐴𝐴) = 0.54 𝜋𝜋(𝐿𝐿|𝐵𝐵) = 0.3 𝜋𝜋(𝐿𝐿|𝐴𝐴) = 0.46 𝜋𝜋(𝑅𝑅|𝐵𝐵) = 0.7
  • 18. 構成 24  強化学習の基礎の復習  データを用いた価値関数の最適化  行動価値関数とQテーブル  Q学習  Q学習の実装例  openAIを用いたQ学習の実装・実行例  その他  方策オン型の方策反復法
  • 19. 動物の行動学習:試行錯誤学習 25  心理学の行動主義者の学習の定義  行動や反応の変化として表れ、外部から観察できる現象  試行錯誤学習 Edward Thorndike(1874年‒1949年) 迷路のような箱の中で,猫は試行錯誤的に様々な行動を取る。 偶然にでも外に出る行動を取り,それを何度か繰り返すと, やがて同じ行動が出現する頻度が高くなることを実験的に確認 猫が様々な行動をとる 偶然に外に出られた 強くなるロボティック・ゲームプレイヤーの作り方 八谷、杉山 2016 また箱にいれる 試行錯誤の過程を経て何度か繰り返すと、やがて同じ行動が出現する頻度が高くなる 【猫の問題箱実験】 行動後の「満足」または「不快」の度合いに応じて、 行動の出現頻度が学習の過程を経て変化
  • 20. 試行データ 26 𝑑𝑑 ≡ 𝑥𝑥0 , 𝑦𝑦0 , 𝑟𝑟0 , 𝑥𝑥1 , 𝑥𝑥1 , 𝑦𝑦1 , 𝑟𝑟1 , 𝑥𝑥2 …エピソードデータ: 1回目の試行 2回目の試行 𝑁𝑁 + 1回連続してランダムに行動を選択し、 状態遷移を繰り返した系列データ 試行データのことを、エピソードデータと呼ぶ 初期状態 初期状態に戻す 初期状態に戻す
  • 21. エピソードデータの例 27  5回の試行によるエピソードデータの例(𝑁𝑁 = 1の場合) 𝑑𝑑1 = 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵) 状態:𝑋𝑋 ∈ 𝐴𝐴, 𝐵𝐵 行動:𝑌𝑌 ∈ 𝐿𝐿, 𝑅𝑅 𝐴𝐴 𝐵𝐵 𝐿𝐿 𝐿𝐿 𝑅𝑅 𝑅𝑅 報酬関数:𝑅𝑅 𝐵𝐵, 𝑅𝑅, 𝐵𝐵 = 1 状態遷移確率 割引率:γ = 0.9 次の状態 初期状態確率:𝑃𝑃𝐼𝐼 𝐴𝐴 =1ステップ数:𝑇𝑇 = 2 𝑑𝑑2 = 𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝑅𝑅, 1, 𝐵𝐵) 𝑑𝑑3 = 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵) 𝑑𝑑4 = 𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝐿𝐿, 0, 𝐴𝐴) 方策𝜋𝜋1 𝑅𝑅 𝐿𝐿 𝜋𝜋 � |𝐴𝐴 0.5 0.5 𝜋𝜋 � |𝐵𝐵 0.5 0.5 状態 行動 𝑑𝑑5 = 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴) ランダムに試行錯誤 𝑑𝑑 ≡ 𝑥𝑥0, 𝑦𝑦0, 𝑟𝑟0, 𝑥𝑥1 , 𝑥𝑥1, 𝑦𝑦1, 𝑟𝑟1, 𝑥𝑥2 A B 𝑃𝑃𝑇𝑇 � |A, L 1 0 𝑃𝑃𝑇𝑇 � |A, R 0 1 𝑃𝑃𝑇𝑇 � |B , L 1 0 𝑃𝑃𝑇𝑇 � |B, R 0 1
  • 22. 最大行動価値関数の展開 30 𝑄𝑄∗ (𝑥𝑥, 𝑦𝑦) = max 𝜋𝜋 Ε 𝜋𝜋 𝑌𝑌 𝑡𝑡|𝑋𝑋 𝑡𝑡 𝑃𝑃𝑇𝑇(𝑋𝑋 𝑡𝑡+1|𝑋𝑋𝑡𝑡,𝑌𝑌𝑡𝑡) �� 𝑡𝑡=0 ∞ 𝛾𝛾𝑡𝑡 𝑅𝑅 𝑋𝑋𝑡𝑡 , 𝑌𝑌𝑡𝑡 , 𝑋𝑋𝑡𝑡+1 𝑋𝑋0 = 𝑥𝑥, 𝑌𝑌0 = 𝑦𝑦 = Ε 𝑃𝑃𝑇𝑇(𝑋𝑋1|𝑋𝑋0,𝑌𝑌0) �𝑅𝑅 𝑋𝑋0 , 𝑌𝑌0 , 𝑋𝑋1 + 𝛾𝛾max 𝜋𝜋 Ε 𝜋𝜋 𝑌𝑌1|𝑋𝑋1 |𝑄𝑄𝜋𝜋 𝑋𝑋1 , 𝑌𝑌1 𝑋𝑋1 𝑋𝑋0 = 𝑥𝑥, 𝑌𝑌0 = 𝑦𝑦 = max 𝜋𝜋 Ε 𝜋𝜋 𝑌𝑌 𝑡𝑡|𝑋𝑋 𝑡𝑡 𝑃𝑃𝑇𝑇(𝑋𝑋 𝑡𝑡+1|𝑋𝑋 𝑡𝑡,𝑌𝑌𝑡𝑡) �𝑅𝑅 𝑋𝑋0 , 𝑌𝑌0 , 𝑋𝑋1 + � 𝑡𝑡=1 ∞ 𝛾𝛾𝑡𝑡 𝑅𝑅 𝑋𝑋𝑡𝑡 , 𝑌𝑌𝑡𝑡 , 𝑋𝑋𝑡𝑡+1 𝑋𝑋0 = 𝑥𝑥, 𝑌𝑌0 = 𝑦𝑦 = max 𝜋𝜋 Ε 𝜋𝜋 𝑌𝑌 𝑡𝑡|𝑋𝑋 𝑡𝑡 𝑃𝑃𝑇𝑇(𝑋𝑋 𝑡𝑡+1|𝑋𝑋 𝑡𝑡,𝑌𝑌𝑡𝑡) �𝑅𝑅 𝑋𝑋0 , 𝑌𝑌0 , 𝑋𝑋1 + 𝛾𝛾 � 𝑡𝑡=1 ∞ 𝛾𝛾𝑡𝑡−1 𝑅𝑅 𝑋𝑋𝑡𝑡 , 𝑌𝑌𝑡𝑡 , 𝑋𝑋𝑡𝑡+1 𝑋𝑋0 = 𝑥𝑥, 𝑌𝑌0 = 𝑦𝑦 = max 𝜋𝜋 Ε 𝜋𝜋 𝑌𝑌1|𝑋𝑋1 𝑃𝑃𝑇𝑇(𝑋𝑋1|𝑋𝑋0,𝑌𝑌0) �𝑅𝑅 𝑋𝑋0 , 𝑌𝑌0 , 𝑋𝑋1 + 𝛾𝛾 Ε 𝜋𝜋 𝑌𝑌𝑡𝑡|𝑋𝑋𝑡𝑡 𝑃𝑃𝑇𝑇(𝑋𝑋𝑡𝑡+1|𝑋𝑋𝑡𝑡,𝑌𝑌𝑡𝑡) �� 𝑡𝑡=1 ∞ 𝛾𝛾𝑡𝑡−1 𝑅𝑅 𝑋𝑋𝑡𝑡 , 𝑌𝑌𝑡𝑡 , 𝑋𝑋𝑡𝑡+1 𝑋𝑋1 , 𝑌𝑌1 𝑋𝑋0 = 𝑥𝑥, 𝑌𝑌0 = 𝑦𝑦 = max 𝜋𝜋 Ε 𝑃𝑃𝑇𝑇(𝑋𝑋1|𝑋𝑋0,𝑌𝑌0) �𝑅𝑅 𝑋𝑋0 , 𝑌𝑌0 , 𝑋𝑋1 + 𝛾𝛾 Ε 𝜋𝜋 𝑌𝑌1|𝑋𝑋1 |𝑄𝑄𝜋𝜋 𝑋𝑋𝑡𝑡 , 𝑌𝑌𝑡𝑡 𝑋𝑋1 𝑋𝑋0 = 𝑥𝑥, 𝑌𝑌0 = 𝑦𝑦 = max 𝜋𝜋 Ε 𝜋𝜋 𝑌𝑌1|𝑋𝑋1 𝑃𝑃𝑇𝑇(𝑋𝑋1|𝑋𝑋0,𝑌𝑌0) |𝑅𝑅 𝑋𝑋0 , 𝑌𝑌0 , 𝑋𝑋1 + 𝛾𝛾𝑄𝑄𝜋𝜋 𝑋𝑋1 , 𝑌𝑌1 𝑋𝑋0 = 𝑥𝑥, 𝑌𝑌0 = 𝑦𝑦
  • 23. Q学習法 31  目的:最大行動価値関数を獲得  最大行動価値関数の漸化式表現:  Q学習法:最大行動価値関数の漸化式を満たすように、 エピソードデータを用いて以下のルールで行動価値関数を更新 𝑄𝑄 𝑥𝑥𝑡𝑡, 𝑦𝑦𝑡𝑡 ← 𝑄𝑄 𝑥𝑥𝑡𝑡, 𝑦𝑦𝑡𝑡 + 𝛼𝛼 𝑟𝑟𝑡𝑡 + 𝛾𝛾 max 𝑦𝑦 𝑄𝑄 𝑥𝑥𝑡𝑡+1, 𝑦𝑦 − 𝑄𝑄 𝑥𝑥𝑡𝑡, 𝑦𝑦𝑡𝑡 𝑄𝑄 𝑥𝑥, 𝑦𝑦 :方策に依存しない価値関数 𝑄𝑄∗ 𝑥𝑥, 𝑦𝑦 = Ε 𝑃𝑃𝑇𝑇(𝑋𝑋1|𝑋𝑋0,𝑌𝑌0) �𝑅𝑅 𝑋𝑋0 , 𝑌𝑌0 , 𝑋𝑋1 + 𝛾𝛾max 𝜋𝜋 Ε 𝜋𝜋 𝑌𝑌1|𝑋𝑋1 |𝑄𝑄𝜋𝜋 𝑋𝑋1 , 𝑌𝑌1 𝑋𝑋1 𝑋𝑋0 = 𝑥𝑥, 𝑌𝑌0 = 𝑦𝑦 𝛼𝛼:学習率、𝛾𝛾:割引率 𝑄𝑄∗(𝑥𝑥, 𝑦𝑦) = max 𝜋𝜋 𝑄𝑄𝜋𝜋 (𝑥𝑥, 𝑦𝑦) 最適な行動価値関数が求まれば、 貪欲方策により最適な方策が求まる
  • 24. 演習3 32 1. 以下の1つのエピソードデータを用いて、Qテーブルを更新 する式を2つ書き、Qテーブルの値を更新しなさい。  タイトル「演習レポート」、日付、学生番号、氏名を用紙の 一番上に記載 𝑄𝑄 𝑥𝑥𝑡𝑡 , 𝑦𝑦𝑡𝑡 ← 𝑄𝑄 𝑥𝑥𝑡𝑡 , 𝑦𝑦𝑡𝑡 + 𝛼𝛼 𝑟𝑟𝑡𝑡 + 𝛾𝛾 max 𝑦𝑦 𝑄𝑄 𝑥𝑥𝑡𝑡+1 , 𝑦𝑦 − 𝑄𝑄 𝑥𝑥𝑡𝑡 , 𝑦𝑦𝑡𝑡 𝑑𝑑2 = 𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝑅𝑅, 1, 𝐵𝐵) Qテーブルの初期値:𝑄𝑄 �,� = 0 学習率𝛼𝛼 = 0.5、割引率𝛾𝛾 = 0.9
  • 25. Q学習の例 34  2状態マルコフチェーン  Q学習による価値関数の更新 価値関数の更新式: 𝛼𝛼 = 0.5 𝛾𝛾 = 0.9 価値関数の初期値𝑄𝑄(�,�) = 0 状態:𝑋𝑋 ∈ 𝐴𝐴, 𝐵𝐵 行動:𝑌𝑌 ∈ 𝐿𝐿, 𝑅𝑅 𝐴𝐴 𝐵𝐵 𝐿𝐿 𝐿𝐿 𝑅𝑅 𝑅𝑅 報酬関数:𝑅𝑅 𝐵𝐵, 𝑅𝑅, 𝐵𝐵 = 1 状態遷移確率 割引率:γ = 0.9 次の状態 初期状態確率:𝑃𝑃𝐼𝐼 𝐴𝐴 =1ステップ数:𝑇𝑇 = 2 𝑑𝑑1 = 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵) 𝑑𝑑2 = 𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝑅𝑅, 1, 𝐵𝐵) 𝑑𝑑3 = 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵) 𝑑𝑑4 = 𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝐿𝐿, 0, 𝐴𝐴) 𝑑𝑑5 = 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴) エピソードデータ: 𝑑𝑑6 = 𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝑅𝑅, 0, 𝐵𝐵) 𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅 𝐴𝐴 0 0 𝐵𝐵 0 0 𝑄𝑄 𝑥𝑥𝑡𝑡 , 𝑦𝑦𝑡𝑡 ← 𝑄𝑄 𝑥𝑥𝑡𝑡 , 𝑦𝑦𝑡𝑡 + 𝛼𝛼 𝑟𝑟𝑡𝑡 + 𝛾𝛾 max 𝑦𝑦 𝑄𝑄 𝑥𝑥𝑡𝑡+1 , 𝑦𝑦 − 𝑄𝑄 𝑥𝑥𝑡𝑡 , 𝑦𝑦𝑡𝑡 Qテーブル A B 𝑃𝑃𝑇𝑇 � |A, L 1 0 𝑃𝑃𝑇𝑇 � |A, R 0 1 𝑃𝑃𝑇𝑇 � |B , L 1 0 𝑃𝑃𝑇𝑇 � |B, R 0 1
  • 26. Q学習の例2 35  各データを用いてQテーブルを更新  エピソード𝑑𝑑1 = 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵)  エピソード 𝑑𝑑2 = 𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝑅𝑅, 1, 𝐵𝐵)  エピソード 𝑑𝑑3 = 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵) 𝑄𝑄 A, 𝐿𝐿 = 0 + 0.5 0 + 0.9 ∗ 0 − 0 = 0 𝑄𝑄 A, 𝑅𝑅 = 0 + 0.5 0 + 0.9 ∗ 0 − 0 = 0 𝑄𝑄 A, 𝑅𝑅 = 0 + 0.5 0 + 0.9 ∗ 0 − 0 = 0 𝑄𝑄 𝐵𝐵, 𝑅𝑅 = 0 + 0.5 1 + 0.9 ∗ 0 − 0 =0.5 𝑄𝑄 A, 𝐿𝐿 = 0 + 0.5 0 + 0.9 ∗ 0 − 0 = 0 𝑄𝑄 𝐴𝐴, 𝑅𝑅 = 0 + 0.5 0 + 0.9 ∗ 0.5 − 0 =0.23 𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅 𝐴𝐴 0 0 𝐵𝐵 0 0 𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅 𝐴𝐴 0 0 𝐵𝐵 0 0.5 𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅 𝐴𝐴 0 0.23 𝐵𝐵 0 0.5 𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅 𝐴𝐴 0 0 𝐵𝐵 0 0 価値関数の更新式: 𝛼𝛼 = 0.5 𝛾𝛾 = 0.9 𝑄𝑄 𝑥𝑥𝑡𝑡 , 𝑦𝑦𝑡𝑡 ← 𝑄𝑄 𝑥𝑥𝑡𝑡 , 𝑦𝑦𝑡𝑡 + 𝛼𝛼 𝑟𝑟𝑡𝑡 + 𝛾𝛾 max 𝑦𝑦 𝑄𝑄 𝑥𝑥𝑡𝑡+1 , 𝑦𝑦 − 𝑄𝑄 𝑥𝑥𝑡𝑡 , 𝑦𝑦𝑡𝑡
  • 27. Q学習の例3 36  各データを用いてQテーブルを更新  エピソード𝑑𝑑4 = 𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝐿𝐿, 0, 𝐴𝐴)  エピソード 𝑑𝑑5 = 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵)  エピソード 𝑑𝑑6 = 𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝑅𝑅, 1, 𝐵𝐵) 𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅 𝐴𝐴 0 0.34 𝐵𝐵 0.15 0.5 𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅 𝐴𝐴 0.23 0.34 𝐵𝐵 0.15 0.5 𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅 𝐴𝐴 0.23 0.4 𝐵𝐵 0.15 0.98 𝑄𝑄 A, 𝑅𝑅 = 0.23 + 0.5 0 + 0.9 ∗ 0.5 − 0.23 = 0.34 𝑄𝑄 𝐵𝐵, 𝐿𝐿 = 0 + 0.5 0 + 0.9 ∗ 0.34 − 0 = 0.15 𝑄𝑄 A, 𝐿𝐿 = 0 + 0.5 0 + 0.9 ∗ 0.34 − 0 =0.15 𝑄𝑄 𝐴𝐴, 𝐿𝐿 = 0.15 + 0.5 0 + 0.9 ∗ 0.34 − 0.15 = 0.23 𝑄𝑄 A, 𝑅𝑅 = 0.34 + 0.5 0 + 0.9 ∗ 0.5 − 0.34 = 0.4 𝑄𝑄 𝐵𝐵, 𝑅𝑅 = 0.5 + 0.5 1 + 0.9 ∗ 0.5 − 0.5 = 0.98 𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅 𝐴𝐴 0 0.23 𝐵𝐵 0 0.5 価値関数の更新式: 𝛼𝛼 = 0.5 𝛾𝛾 = 0.9 𝑄𝑄 𝑥𝑥𝑡𝑡 , 𝑦𝑦𝑡𝑡 ← 𝑄𝑄 𝑥𝑥𝑡𝑡 , 𝑦𝑦𝑡𝑡 + 𝛼𝛼 𝑟𝑟𝑡𝑡 + 𝛾𝛾 max 𝑦𝑦 𝑄𝑄 𝑥𝑥𝑡𝑡+1 , 𝑦𝑦 − 𝑄𝑄 𝑥𝑥𝑡𝑡 , 𝑦𝑦𝑡𝑡
  • 28. 課題1 37  2状態チェインウォーク  Q学習法を用いてQテーブルを更新しなさい 状態:𝑋𝑋 ∈ 𝐴𝐴, 𝐵𝐵 行動:𝑌𝑌 ∈ 𝐿𝐿, 𝑅𝑅 𝐴𝐴 𝐵𝐵 𝐿𝐿 𝐿𝐿 𝑅𝑅 𝑅𝑅 報酬関数:𝑅𝑅 𝐴𝐴, 𝐿𝐿, 𝐴𝐴 = 1 状態遷移確率 割引率:γ = 0.9 次の状態 初期状態確率:𝑃𝑃𝐼𝐼 𝐵𝐵 =1ステップ数:𝑇𝑇 = 2 𝑅𝑅 𝐿𝐿 𝜋𝜋 � |𝐴𝐴 0.5 0.5 𝜋𝜋 � |𝐵𝐵 0.5 0.5 状態 行動 方策 𝜋𝜋1 𝛼𝛼 = 0.5 価値関数の初期値𝑄𝑄(�,�) = 0 𝑑𝑑1 = 𝐵𝐵, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝐿𝐿, 1, 𝐴𝐴) 𝑑𝑑2 = 𝐵𝐵, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝐿𝐿, 0, 𝐴𝐴) 𝑑𝑑3 = 𝐵𝐵, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 0, 𝐵𝐵) 𝑑𝑑4 = 𝐵𝐵, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝑅𝑅, 0, 𝐵𝐵) 𝑑𝑑5 = 𝐵𝐵, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝐿𝐿, 1, 𝐴𝐴) エピソードデータ: 𝑑𝑑6 = 𝐵𝐵, 𝑅𝑅, 0, 𝐵𝐵 , (𝐵𝐵, 𝐿𝐿, 0, 𝐴𝐴) 𝑸𝑸(�,�) 𝐿𝐿 𝑅𝑅 𝐴𝐴 0 0 𝐵𝐵 0 0 Qテーブル A B 𝑃𝑃𝑇𝑇 � |A, L 1 0 𝑃𝑃𝑇𝑇 � |A, R 0 1 𝑃𝑃𝑇𝑇 � |B , L 1 0 𝑃𝑃𝑇𝑇 � |B, R 0 1
  • 29. 課題2 41  方策𝜋𝜋4のステップ0の価値関数Vを以下の漸化式を用い て求め、方策𝜋𝜋4について考察しなさい。  𝜋𝜋4 𝑅𝑅 𝐴𝐴 = 1、𝜋𝜋4 𝑅𝑅 𝐵𝐵 = 1 A B 𝑃𝑃𝑇𝑇 � |A, L 1 0 𝑃𝑃𝑇𝑇 � |A, R 0 1 𝑃𝑃𝑇𝑇 � |B , L 1 0 𝑃𝑃𝑇𝑇 � |B, R 0 1 状態:X ∈ A,B 行動:Y ∈ L, R 𝐴𝐴 B L R RL 報酬関数:𝑅𝑅 𝐵𝐵, 𝑅𝑅, B = 1 それ以外は0 状態遷移確率 割引率:γ = 0.9 次の状態 ステップ数:𝑁𝑁 = 2 初期状態確率:𝑃𝑃𝐼𝐼 A = 1 𝑉𝑉𝜋𝜋4 0 (𝑥𝑥) = Ε 𝜋𝜋 𝑌𝑌0|𝑋𝑋0 𝑃𝑃𝑇𝑇(𝑋𝑋1|𝑋𝑋0,𝑌𝑌0) �𝑅𝑅 𝑋𝑋0, 𝑌𝑌0, 𝑋𝑋1 + 𝛾𝛾𝑉𝑉𝜋𝜋4 1 (𝑋𝑋1) 𝑋𝑋0 = 𝑥𝑥 時刻ステップ1の価値関数: 時刻ステップ0 𝑉𝑉𝜋𝜋4 1 𝐴𝐴 = 0.9 𝑉𝑉𝜋𝜋4 1 𝐵𝐵 = 1.9
  • 30. 構成 43  強化学習の基礎の復習  データを用いた価値関数の最適化  行動価値関数とQテーブル  Q学習  Q学習の実装例  openAIを用いたQ学習の実装・実行例  その他  方策オン型の方策反復法
  • 31. OpenAI Gym (https://gym.openai.com/) 44  強化学習のアルゴリズムを評価するための様々な ベンチマークツールが動作するプラットフォーム  ベンチマークツールの例:Atariゲーム、古典制御、ロボット Atariゲーム:Pacman, Pongなど 古典制御:mountaincar, Acrobot, cartpoleなど ロボット:PickAndPlace, HandManiPulateBlockなど
  • 32. WindowでのOpenAI Gymの利用方法 45  OpenAI Gymは基本的にLinux環境でしか動作しない  ただし、Windows subsystem for Linuxを用いてwindowsに Ubuntuをインストールした環境でもOpen AI Gymは動作可  必要な構成:  Windows subsystem for Linux, Ubuntu  Python3: Anaconda  Xming: Xサーバ  openAI Gym一式  詳細は以下を参照: http://hirotaka-hachiya.hatenablog.com/entry/2018/05/28/185128
  • 33. Pythonを用いたQ学習の実装例 46  状態の離散化、行動の選択・実行の処理が必要  Qテーブルの更新は、単純な計算で数行で書ける  詳細は以下を参照: https://github.com/hhachiya/intelligentSystemTraining/blob/master/ mountainCar.py  学習時:「isdemo = False」にして、「python mountainCar.py」を実行  デモ時:「isdemo = True」にして、「python mountainCar.py」を実行 次の状態next_stateにおける最大 の価値を取得 現在の状態stateにおける価値を取得 Qテーブルの更新
  • 34. Q学習の実行例 47  Mountain Car(車の山登り)タスク  車の馬力が足りないため、アクセルを踏むだけではゴールに到達不可 状態X:車の位置と、速度 行動Y:アクセルの強さ -10(左向き)、0、+10(右向き) 車 ゴール 報酬R: -ゴールに到達時:0 -それ以外:-1
  • 35. レポートの提出方法 48  演習レポート:  タイトル「演習レポート」、日付・学生番号・氏名を用紙の一番上に記載  課題レポート :  タイトル「課題レポート」、出題日・学生番号・氏名を用紙の一番上に記載  2ページ以上になる場合は、ホッチキス留め  A4サイズの用紙を使用  一度に複数の課題レポートを提出する場合出題日ごとに別々に綴じる
  • 36. 構成 49  強化学習の基礎の復習  データを用いた価値関数の最適化  行動価値関数とQテーブル  Q学習  Q学習の実装例  openAIを用いたQ学習の実装・実行例  その他  方策オン型の方策反復法
  • 37. 方策反復法 50  Q関数の近似(方策評価)と、方策改善を繰り返す  方策評価:現在の方策 に対する価値関数 を計算  方策改善:価値関数を用いて方策を更新  最適な政策への収束が保証  どうやってQテーブルを近似する? 方策評価 方策改善 価値関数 方策 初期政策 :反復インデックス𝜋𝜋1 𝑄𝑄𝜋𝜋𝑙𝑙 (𝑠𝑠, 𝑎𝑎) 𝜋𝜋𝑙𝑙+1 (𝑎𝑎|𝑠𝑠) 𝑙𝑙 𝜋𝜋𝑙𝑙+1 𝑎𝑎 𝑠𝑠 = � 1 0 if a = argmax 𝑎𝑎𝑎 𝑄𝑄 𝜋𝜋𝑙𝑙 (𝑠𝑠, 𝑎𝑎𝑎) otherwise 𝑄𝑄𝜋𝜋𝑙𝑙+1 (𝑠𝑠, 𝑎𝑎) ≥ 𝑄𝑄 𝜋𝜋𝑙𝑙 𝑠𝑠, 𝑎𝑎 ∀(𝑠𝑠, 𝑎𝑎) 𝑄𝑄 𝜋𝜋𝑙𝑙 𝜋𝜋𝑙𝑙
  • 38. モンテカルロ法による価値の近似 51  モンテカルロ法  解析的に解けない問題をデータを用いて近似する方法の総称  カジノで有名なモナコのモンテカルロ地区が名前の由来  エピソードデータを用いて価値関数を近似的 𝑄𝑄𝜋𝜋 (𝑠𝑠, 𝑎𝑎) ≈ 1 𝑁𝑁𝐷𝐷(𝑠𝑠,𝑎𝑎) � 𝑚𝑚∈𝐷𝐷(𝑠𝑠,𝑎𝑎) � 𝑡𝑡=𝑡𝑡(𝑠𝑠,𝑎𝑎) 𝑚𝑚 𝑇𝑇 𝛾𝛾𝑡𝑡−𝑡𝑡(𝑠𝑠,𝑎𝑎) 𝑚𝑚 𝑟𝑟𝑚𝑚,𝑡𝑡 𝑁𝑁𝐷𝐷(𝑠𝑠,𝑎𝑎): 𝐷𝐷(𝑠𝑠, 𝑎𝑎)の数 𝐷𝐷(𝑠𝑠, 𝑎𝑎):状態𝑠𝑠と行動𝑎𝑎を含むエピソードの集合 𝑡𝑡(𝑠𝑠,𝑎𝑎) 𝑚𝑚 : エピソード𝑚𝑚で(𝑠𝑠, 𝑎𝑎)が最初に現れるステップ
  • 39. 価値関数近似と方策改善の例 52  エピソードデータを用いて価値関数を近似  方策を改善 𝑄𝑄𝜋𝜋 (𝑠𝑠, 𝑎𝑎) ≈ 1 𝑁𝑁𝐷𝐷(𝑠𝑠,𝑎𝑎) � 𝑚𝑚∈𝐷𝐷(𝑠𝑠,𝑎𝑎) � 𝑡𝑡=𝑡𝑡(𝑠𝑠,𝑎𝑎) 𝑚𝑚 𝑇𝑇 𝛾𝛾𝑡𝑡−𝑡𝑡(𝑠𝑠,𝑎𝑎) 𝑚𝑚 𝑟𝑟𝑚𝑚,𝑡𝑡 𝐷𝐷 ≡ 𝑑𝑑 𝑚𝑚 𝑚𝑚=1 5 𝑑𝑑1 ≡ 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 1, 𝐵𝐵) 𝑑𝑑2 ≡ 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴) 𝑑𝑑3 ≡ 𝐴𝐴, 𝑅𝑅, 1, 𝐵𝐵 , (𝐵𝐵, 𝑅𝑅, 1, 𝐵𝐵) 𝑑𝑑4 ≡ 𝐴𝐴, 𝑅𝑅, 1, 𝐵𝐵 , (𝐵𝐵, 𝐿𝐿, 0, 𝐴𝐴) 𝑑𝑑5 ≡ 𝐴𝐴, 𝐿𝐿, 0, 𝐴𝐴 , (𝐴𝐴, 𝑅𝑅, 1, 𝐵𝐵) エピソードデータ: 価値関数の近似式: 𝑄𝑄 𝜋𝜋1 A, 𝐿𝐿 ≈ 1 3 0 + 0.9 ∗ 1 + 0 + 0.9 ∗ 0 + 0 + 0.9 ∗ 1 = 0.6 𝑄𝑄𝜋𝜋1 A, 𝑅𝑅 ≈ 1 4 1 + 1 + 0.9 ∗ 1 + 1 + 0.9 ∗ 0 + 1 = 1.225 𝑄𝑄𝜋𝜋1 𝐵𝐵, 𝐿𝐿 ≈ 1 1 (0) = 0 𝑄𝑄𝜋𝜋1 𝐵𝐵, 𝑅𝑅 ≈ 1 1 1 = 1 𝜋𝜋𝑙𝑙+1 𝑎𝑎 𝑠𝑠 = � 1 0 if a = argmax 𝑎𝑎𝑎 𝑄𝑄 𝜋𝜋𝑙𝑙 (𝑠𝑠, 𝑎𝑎𝑎) otherwise 𝜋𝜋2 𝑅𝑅 𝐴𝐴 = 1 𝜋𝜋2 𝐿𝐿 𝐴𝐴 = 0 𝜋𝜋2 𝑅𝑅 𝐵𝐵 = 1 𝜋𝜋2 𝐿𝐿 𝐵𝐵 = 0