ディープラーニング入門
数式なしで理解する!はじめての強化学習
2021/08/31
園田憲一
Oracle Groudbreaker Advocate
強化学習のユースケース
2021/8/31
出典 https://www.hitachi-systems.com/report/specialist/ai-mark/06/index.html
自動運転 ロボティクス
ウェブ広告
マーケティング
アクセスログ解析
ゲーム 医療
強化学習のコンセプト
2021/8/31
システム自身が試行錯誤しながら、最適なシステム制御を実現する機械学習手法
• 訓練士が出す合図にあった反応の
場合、おやつがもらえる
• 合図にあわない反応場合、おやつ
がもらえない
• 正解と間違いを繰り返し、合図に
対する正しい行動を理解する
• 全ての合図に対して正しく反応し、
できるだけ沢山のおやつをもらえ
るように学ぶ
犬
訓練士
• おすわり
• 待て
• お手
• おやつあり
• おやつなし
• 座る
• 待つ
• 手を出す
犬の行動(反応)
訓練士の合図
適切な
反応か
おやつ
Yes
No
強化学習でのコンセプトの定義
2021/8/31
ある環境の中でエージェントが、最大の報酬(r)が得られるよう、状態(s)に応じた最適な行動パターン
を学習する問題
エージェント
(Agent)
環境
(Environment)
状態(s)
合図:お座り、待て、お手
行動(a)
座る、待つ、手を出す
報酬(r)
おやつ 、おやつなし
a
状態 s0
お座りの合図
行動:お座り
r
報酬:おやつ(+1)
s0 s1 s2
a
r
行動:手を出す
状態 s1
待ての合図
報酬:なし(-1)
行動(a)を実行すると状態(s)が遷移
項目 定義内容
エージェント 学習する主体(犬)
環境 エージェントに対して、報酬と状態を提供するも
の(訓練士)
行動(a) ある状態でエージェントが実行する処理(座る、待
つ、手を出す)
状態(s) エージェントが行動を実行した際に遷移する状態
(状態1)お座りの合図が出され、犬が何らかの行動
を起こす
(状態2)待ての合図が出され、犬が何らかの行動を
起こす
報酬(r) 行動に対する報酬(おやつあり、なし)
エピソード 学習の区切り(犬が最適な行動を理解する)
強化学習での定義
状態遷移による最適な行動の変化
2021/8/31
最適な行動(a)
相手の強い駒(飛、角)を取る
最適な行動(a)
強い駒(飛、角)を取らせる
状態(s):対局の序盤
相手の強い駒(飛、角)を奪い、相手
の攻撃力を落とす
状態(s):対局の終盤
自分の強い駒(飛、角)を相手に取らせて、
相手の王を詰む駒を手に入れる
最良の行動選択は「状態」によって異なる
「報酬」と「価値」の違い
2021/8/31
報酬:行動を実行した直後に得られる報酬(即時報酬) 価値:環境の状態の遷移によって生じる報酬の累積
a
r
報酬 +10
s s s
a
r
報酬 +10
s
強い駒を取る 強い駒を取る
a
王を取られる
報酬 -1000
r
価値(報酬の累積総和)
a
r
報酬 -10
s s s
a
r
報酬 -10
s
強い駒を取られる 強い駒を取られる
a
王を取る
報酬 +1000
r
価値(報酬の累積総和)
一時的な「報酬」ではなく、「報酬」の長期的な累積である「価値」を最大にする行動パターンを
学習することが強化学習の最終目標
行動パターンA:即時報酬を重視 行動パターンB:価値を重視
強化学習の基礎理論
2021/8/31
「価値」(報酬の累積)を最大化する行動パターンを見つける
強化学習の最終目標
価値を計算するための関数「状態価値関数」、「行動価値関数」
(マルコフ決定過程)
① 価値の定式化
発生しえる全ての状態の価値を計算し、価値最大時の行動パターン見つける
(動的計画法(ベルマン方程式))
② 価値最大時の行動パターンを算出
強化学習の基礎理論
2021/8/31
「価値」(報酬の累積)を最大化する行動パターンを見つける
強化学習の最終目標
価値を計算するための関数「状態価値関数」、「行動価値関数」
(マルコフ決定過程)
① 価値の定式化
発生しえる全ての状態の価値を計算し、価値最大時の行動パターン見つける
(動的計画法(ベルマン方程式))
② 価値最大時の行動パターンを算出
基礎理論の例題
2021/8/31
項目 定義内容
環境 縦横5x5マスのグリッド
エージェント ロボット
行動(a) 上、下、左、右いずれかへの移動
状態(s) ロボットが座標(x, y)にいる状態
報酬(r) 上、右は +10、下、左は -10
エピソード ロボットがゴールに到達するまで
強化学習の定義に当てはめると…
縦横5x5マスのグリッドで、スタート地点からゴール地点に
効率よく移動できるようロボットを学習させる
問題
a
r
報酬 +10
S
(1,1)
S
(2,1)
S
(x,y)
a
r
報酬 +10
s
(5,5)
右に移動 上に移動
a
Goalに移動
報酬 +10
r
価値(報酬の累積総和)
状態遷移の例
行動と行動ポリシー
2021/8/31
ある状態sのときに、取りえる行動の一つを
選択
行動(a)
ある状態sの時に、ある行動aを選択する“確率”
行動ポリシー:π(s,
a)
ある状態(座標:x=4, y=1)にいるときに上下左右へ
移動する確率が、上 60%、下 10%、右 20%、左
10% の場合
行動ポリシーπ(s, a) =
0.6 (s = (4,1), a = up)
0.1 (s = (4,1), a =
down)
0.2 (s = (4,1), a = right)
0.1 (s = (4,1), a = left)
“行動”と“行動ポリシー”は別の定
義
上、下、左、右の4パターンのうちどれか一つ
を選択
up
down
right
left
状態価値関数
2021/8/31
キーポイント
• ある状態(s)にいるときの状態価値は、それ
までと、将来得られるであろう報酬の総和
(価値と報酬の違い)
• 価値は「行動ポリシーπ 」によって変わる
ある状態sのときに行動ポリシーπ(s)に従って行動するときの価値
状態価値関数:Vπ(s)
状態価値関数 Vπ(s) で算出したイメージ
行動ポリシーπ(s, a) =
0.6 (s = (4,1), a = up)
0.1 (s = (4,1), a =
down)
0.2 (s = (4,1), a = right)
0.1 (s = (4,1), a = left)
行動価値関数
2021/8/31
状態sのとき
• 行動ポリシーπとは無関係に行動aを取った後
• ある方策πに従って行動したときの価値
キーポイント
• 行動価値関数の行動aは行動ポリシーπとは別
• ある状態(s)にいるときの行動価値は、それまでと
将来得られるであろう報酬の総和(価値と報酬の違
い)
ある状態sのときに、行動aを取った後に、行動ポリシーπに従って行動する時の価値
行動価値関数:Qπ(s,a)
行動状態価値関数 Qπ(s,a)で算出したイメージ
up
down
right
left π(s, a) =
0.6 (s = (4,1), a = up)
0.1 (s = (4,1), a =
down)
0.2 (s = (4,1), a = right)
0.1 (s = (4,1), a = left)
状態価値関数と行動価値関数の違い
2021/8/31
状態
s
行動ポリシーπ
70% 上
10% 下
10% 右
10% 左
行動ポリシーπ
70% 上
10% 下
10% 右
10% 左
状態価値関数 Vπ(s)
により「価値」を算
出
行動価値関数
Qπ(s,a)により価値を
算出
比較
行動ポリシーπに行動
aを取り入れるかを決
定
行動価値と状態価値の比較により行動ポリシーπ(s)を繰り返し改善
(最良の行動選択は「状態」によって異なる)
行動a
例:右に移動
報酬
状態価値と
行動価値の違い
ある状態sのときに行動ポリシーπに従って行動す
るときの価値
状態価値関数:Vπ(s)
ある状態sにあるときに、行動aを取った後に、行
動ポリシーπに従って行動する時の価値
行動価値関数:Qπ(s,a)
強化学習の基礎理論
2021/8/31
「価値」(報酬の累積)を最大化する行動パターンを見つける
強化学習の最終目標
価値を計算するための関数「状態価値関数」、「行動価値関数」
(マルコフ決定過程)
① 価値の定式化
発生しえる全ての状態の価値を計算し、価値最大時の行動パターン見つける
(動的計画法(ベルマン方程式))
② 価値最大時の行動パターンを算出
状態遷移のバックアップ図
2021/8/31
S1
S1
S1
S1
バックアップ図で状態遷移の全パターンを表すことができ、価値関数により全ての状態sの価値
を計算可能
行動ポリシー:π(s, a) の例
0.6 (s = (1,1), a = up)
0.1 (s = (1,1), a = down)
0.2 (s = (1,1), a = right)
0.1 (s = (1,1), a = left)
S0
a = a up
r = r up
a = a down
r= r down
a = a right
r = r right
a = a left
r = r left
π(s, a)
a = a up
r = r up
a = a down
r= r down
a = a right
r = r right
a = a left
r = r left
π(s, a)
S2
S2
S2
S2
Sn
スタート ゴール
改善された行動
ポリシー
動的計画法(ベルマン方程式)
2021/8/31
S1
S1
S1
S1
バックアップ図で状態遷移の全パターンを表すことができ、価値関数により全ての状態sの価値
を計算可能
行動ポリシー:π(s, a) の例
0.6 (s = (1,1), a = up)
0.1 (s = (1,1), a = down)
0.2 (s = (1,1), a = right)
0.1 (s = (1,1), a = left)
S0
a = a up
r = r up
a = a down
r= r down
a = a right
r = r right
a = a left
r = r left
π(s, a)
a = a up
r = r up
a = a down
r= r down
a = a right
r = r right
a = a left
r = r left
π(s, a)
S2
S2
S2
S2
Sn
スタート ゴール
価値が最大になる経路を高効率で計算する手法 = 動的計画法(ベルマン方程式)
改善された行動
ポリシー
動的計画法(ベルマン方程式)を実装する際の課題(1)
2021/8/31
• 環境の定義が困難なケース
• 不確定要素多数で環境が定義しきれない
課題
• 価値関数による計算値ではなく、エージェント動き回らせ、実際に行動をおこし、そこから得
られた情報で学習(サンプリング)
• サンプリングによる学習のため厳密解は得られない(動的計画法の代替手段)
解決策
モデルフリーの学習手法(モンテカルロ法、Q学習、SARSAなど)
実装法
動的計画法(ベルマン方程式)を実装する際の課題(2)
2021/8/31
• 環境が複雑すぎるため、状態・行動空間が爆発的に膨張するケース
• 必要な計算リソース、処理時間が膨大となり現実的でなくなる
状態・行動空間
課題
ベルマン方程式をニューラルネットワークで関数近似
解決策
最大価値
ベルマン方程式
𝒇 𝒙 ≒最大価値
ニューラル・ネットワーク
計算困難
Deep Q Network
実装法
• 強化学習の最終目的
• 「価値」を最大にする行動パターンを学習すること
• 「価値」を計算
• マルコフ決定過程「状態価値関数」、「行動価値関数」
• 「価値」を高効率で計算し、最適な行動パターン(行動ポリシー)を導出
• 動的計画法(ベルマン方程式)で高効率な価値計算
• 動的計画法の課題:環境の定義が困難なケース
• サンプリングによる情報取得、学習
• モデルフリーの学習手法(モンテカルロ法、Q学習、SARSA、etc.)
• 動的計画法の課題:環境の定義が複雑なケース
• 動的計画法では膨大な計算リソース、時間が必要
• ベルマン方程式をニューラルネットワークで関数近似(Deep Q Network)
まとめ
2021/8/31
• ディープラーニングの基礎から転移学習まで
• 資料 https://www.slideshare.net/KenichiSonoda/20210226oracle-code-night
• 動画 https://www.youtube.com/watch?v=hrsvcZrzphk&t=388s&ab_channel=JapanOracleDevelopers
• 画像データと機械学習
~OpenCVの画像処理からニューラルネットワークの画像認識まで~
• 資料 https://www.slideshare.net/KenichiSonoda/20200812-cbject-detection-with-opencv-and-cnn
• 動画 https://www.youtube.com/watch?v=olPF7MXhDhk&t=3428s&ab_channel=JapanOracleDevelopers
• 自然言語と機械学習
~自然言語の基本処理からBERTのファイン・チューニングまで~
• 資料 https://www.slideshare.net/KenichiSonoda/code-night-natural-language-proccessing-and-machine-learning
• 動画 https://www.youtube.com/watch?v=Q4MsoJoGeEY&t=4968s&ab_channel=JapanOracleDevelopers
• 機械学習入門:次世代AI「GAN」による仮想現実の生成
• 資料 https://www.slideshare.net/KenichiSonoda/code-night-20200531machine-learning-for-begginer-generation-of-virtual-reality-by-next-generation-
ai-gan-248962151
• 動画 https://www.youtube.com/watch?v=t5EqEoVAdfk&feature=youtu.be&ab_channel=JapanOracleDevelopers
過去のOrajamの資料、動画
2021/8/31
20210831 code night  はじめての強化学習

20210831 code night はじめての強化学習

Editor's Notes

  • #21 過去のOrajamの資料、動画 ディープラーニングの基礎から転移学習まで 資料 https://www.slideshare.net/KenichiSonoda/20210226oracle-code-night 動画 https://www.youtube.com/watch?v=hrsvcZrzphk&t=388s&ab_channel=JapanOracleDevelopers 画像データと機械学習 ~OpenCVの画像処理からニューラルネットワークの画像認識まで~ 資料  https://www.slideshare.net/KenichiSonoda/20200812-cbject-detection-with-opencv-and-cnn 動画  https://www.youtube.com/watch?v=olPF7MXhDhk&t=3428s&ab_channel=JapanOracleDevelopers 自然言語と機械学習 ~自然言語の基本処理からBERTのファイン・チューニングまで~ 資料 https://www.slideshare.net/KenichiSonoda/code-night-natural-language-proccessing-and-machine-learning 動画 https://www.youtube.com/watch?v=Q4MsoJoGeEY&t=4968s&ab_channel=JapanOracleDevelopers 機械学習入門:次世代AI「GAN」による仮想現実の生成 資料 https://www.slideshare.net/KenichiSonoda/code-night-20200531machine-learning-for-begginer-generation-of-virtual-reality-by-next-generation-ai-gan-248962151 動画 https://www.youtube.com/watch?v=t5EqEoVAdfk&feature=youtu.be&ab_channel=JapanOracleDevelopers