SlideShare a Scribd company logo
1 of 27
Download to read offline
強化学習勉強会: 第一回
強化学習の概要とロボティクス
勉強会の目標
目標: 強化学習を研究(特にロボット)で使うための知識を身につける
● 基礎を全部説明するのは無理なので...
○ 直感的な基礎:
■ なるべく難しい単語は使いません。
■ ロボット, ニューラルネットを使った例で説明します
○ よくある問題: 新規性が出せそうな部分
の2つを理解しましょう!
アクション報酬
状態
強化学習
目次
● 強化学習の概要
● 新規性が出せそうなポイント
● 潜在空間の学習
強化学習って何?(ゲームでの例)
● 試行錯誤で方策(ニューラルネットなど)をアップデート
● 最終的に1ゲームでの総スコアを最大化する方策をGETしたい
● 試行錯誤で学習するのでモデルがいらない
エージェント
アクション
(コントローラー
の入力)報酬(スコア)
状態(ゲームの画面)
無限回見た!
→もっとわかりや
すくして...
ロボットってどうやって動いてる?
● 時刻t〜Tまで動くとき...
○ なんらかの総コストc(t)+c(t+1)+...c(T)を最小化するといい感じに動く
● 例:ナビゲーション
○ スタートからゴールまでの動きのうち、最も 総コストが低いものを選択
c(t)は...
● 障害物との距離
● 通る経路の長さ
● 加速度の加減
などから計算
なんでコストを最小化できるの?
● ロボットのナビゲーションでは...
○ 入力u(t)に対応するロボットの未来の状態 s(t+1)が計算できる
○ 動きに対応するコスト c(t)が計算できる
● s(t+1)からu(t+1)に対応するs(t+2), c(t+1)も計算できる
● c(t)+...+c(T)を最小化する動きu(t), u(t+1)..., u(T-1)が計算できる
...
複雑なロボットはどうすれば?
● ダイナミクスがわからない→u(t)に対応する状態s(t+1)が予測できない
○ ソフトロボット: 複雑
● タスクが複雑→コスト関数c(t)がわからない
○ 人間の手伝いをするロボット : 人によって手伝いの良さは違う
● u(t)に対応する総コストc(t)+...+c(T)が計算できない...
● 逆に, u(t)に対応する総コストc(t)+....+c(T)が分かれば, 一番良いu(t)が選択できる
● 分からないなら推論しよう!
● 強化学習へ
どれを選択すれば一番
コストが小さい?
複雑なロボットで分かっていること
● 時刻tで分かっていること:
○ 状態s(t)は観測できる: センサーなど
○ 入力可能なu(t): モーターに入力可能な電圧の範囲など
● t+1以降でないと分からないもの
○ モーターに電圧を入力すると動くが、どうなるかは分からない →後からs(t+1)が分かる
○ 最終的に壊れたか?ちゃんと動いたか?は人間が判断可能 →後からc(t)が分かる
● 時刻tで分かっている情報から 一番良いu(t)を選ぶには?
○ s(t), u(t)から対応するc(t)+c(t+1)+...+c(T)が分かれば良い!
○ NNなどで推論!→一番出力が低かった u(t)を選択!
どうやってNNをトレーニングするの?
● 教師データ(入力(s, u), 出力(c(t)+...+c(T))のデータ)はいつ得られる?
○ 時刻Tまで行ってから(モンテカルロ法): c(t)+c(t+1)+...+c(T)が全部得られる
○ 時刻t+1の時点で近似する(TD法): c(t)は分かる、c(t+1)+c(t+2)...c(T)はNNから出力したものを使う
● 時刻tで分かっていること:
○ 状態s(t)は観測できる: センサーなど
○ 入力可能なu(t): モーターに入力可能な電圧の範囲など
○ 学習途中のNN: 完璧ではないが, s(t), u(t)を入力として総コスト c(t)+...+c(T)を計算できる
● t+1以降でないと分からないもの
○ モーターに電圧を入力すると動くが、どうなるかは分からない →後からs(t+1)が分かる
○ 最終的に壊れたか?ちゃんと動いたか?は人間が判断可能 →後からc(t)が分かる
○ 学習途中のNN: 完璧ではないが, s(t+1), u(t+1)を入力として総コスト c(t+1)+...+c(T)を計算できる
どうやってNNをトレーニングするの?(TD法)
● モンテカルロ法はTまで待たないと学習できない
● TD法はt+1の時点で学習可能
● 今あるのは大体これ
このNN は何?
● c(t)+...+c(T)を予測するこのNNをCriticと呼びます
○ Q学習ではCriticのみ、Actor-CriticではCriticの他にもう一つActorと呼ばれるNNが登場します
● 今までは選択肢の中から一番良いu(t)を計算していたけど...
○ u(t)の選択肢が無限に多いとき (u(t)が連続のとき)はどうすれば?
○ u(t)もNNから出そう!→Actor-Critic
● Criticの学習は分かったけどActorは?
○ Criticで出力したc(t)+...+c(T)を元に学習します
○ 詳細は割愛!
一回まとめ
● 時刻t〜Tでの総コストを予測できれば最適な動きが計算できる
● ロボティクス(最適制御)では解析的なダイナミクスから総コストを計算可能
● 計算できない場合, NNなどで近似(強化学習)
● Actor-CriticではCriticの他にu(t)を出すNNが存在
目次
● 強化学習の概要
● 新規性が出せそうなポイント(画像編)
● 潜在空間の学習
強化学習のどこがすごい?
● 画像入力(s(t)が画像のとき)でも扱えるのがすごい
● NNの発達とともに研究が活発化!!
● NNをCNNにすればOK?
○ ホントは色々なテクニックがあるけど ...
○ たくさんシミュレーションすればある程度学習できる!
● 画像入力でロボットを動かせる?
○ 現実世界での学習は、普通にやるとほぼ不可能 (次ページ)
そのままロボットに使える?
● 強化学習の実世界応用は問題が山積み...(Dulac-Arnold et al. 2019)
○ 安全性: 無茶すると壊れる
○ サンプル効率: 現実世界はシミュレーションより遅い
○ 初期化の労力: ロボットを初期状態に戻すのが大変
○ (解釈可能性: NNが何を考えているのか分からない )
Anusha Nagabandi(2017)
そのままロボットに使える?
● 強化学習の実世界応用は問題が山積み...(Dulac-Arnold et al. 2019)
○ 安全性: 無茶すると壊れる
○ サンプル効率: 現実世界はシミュレーションより遅い
○ 初期化の労力: ロボットを初期状態に戻すのが大変
○ (解釈可能性: NNが何を考えているのか分からない )
Anusha Nagabandi(2017)
この辺がControl班の提案手
法で改善されるかも?
サンプル効率の問題
● 強化学習に必要なサンプル数はかなり多い
○ 画像入力だと10^8のオーダーになることも
● なんでたくさん必要なのか?
○ Criticの学習が大変
● どうやって解決すれば?
○ モデルベース強化学習
○ 階層型強化学習
○ メタ強化学習
○ sim to real
○ ...
自分の出力を教師データに使っている...
ほぼ全ての手法がサンプ
ル効率の改善につながる
そもそも画像入力って妥当なの?
● 強化学習では状態にマルコフ性がなければいけない(MDP: マルコフ決定仮定)
○ s(t+1)がs(t)とu(t)のみから決定できる性質
● 移動ロボットの例:
○ 状態s(t): ロボットの位置, 速度, 角速度
○ 入力u(t): ロボットの加速度, 角加速度
○ s(t+1)はs(t)とu(t)から計算可能!→マルコフ性が成立している
● 画像はs(t)にして良い?→あんまりよくない
● 画像入力の場合は、POMDP(部分観測マルコフ決定仮定)に相当します
部分観測マルコフ決定過程(POMDP)って何?
● 状態s(t)が見えない
○ ロボットの位置, 速度などが直接観測できない (センサーがついていない )
● ロボットの画像x(t)は見える
○ ロボットを映すカメラなどが存在
● s(t)についてMDPが成立している
● 強化学習で扱う問題はだいたいこれ(例: Atari)
画像のダメなところ
● 一枚だけだと曖昧
● 複数枚あればいける?
○ ある程度は大丈夫: 速度情報も分かる
○ 次元が大きくなる→学習の難易度が上がる
● とにかく画像から強化学習したくない...
○ 少ない次元で学習したい ...
● 画像x(t)からs(t)って学習できない?
○ 潜在空間の学習
このボールは次にどっ
ちに動くかわからない
(速度情報が欠損してい
る)
数フレームあれば速
度も分かる
目次
● 強化学習の概要
● 新規性が出せそうなポイント(画像編)
● 潜在空間s(t)の学習
潜在空間の学習
● CriticをCNNにするとサンプル効率が悪い
● 画像x(t)を入力, 状態s(t)を出力とするCNNを学習したい
● よくある手法:
○ AE(Auto Encoder)
○ VAE(Variational Auto Encoder)
AutoEncoderってなに?
● 画像をCNNで低次元に圧縮した後, 逆向きにCNNして元に戻す
● 中間層には画像を説明するのに十分な情報が詰まっている
○ →潜在空間が学習できている??
● AEは符号化, 復号化を全力でやる
○ 過学習されがち
○ →獲得された潜在空間は意味のある情報にならないことが多い https://towardsdatascience.com/underst
anding-variational-autoencoders-vaes-f
70510919f73
不十分
AutoEncoderの潜在空間
● 潜在空間が正則化されていない
○ 潜在空間で近い点が必ずしも似たような復号にならない
○ 潜在空間が散らばっている →意味のある情報は潜在空間のどこかに集中している
https://towardsdatascience.com/underst
anding-variational-autoencoders-vaes-f
70510919f73
Variational Auto Encoderを使うと?
● 潜在空間がなるべく標準正規分布に近づくように正則化している
○ 潜在空間で近い点同士が似た情報を持つ
○ 学習された潜在空間は意味のある情報を持つことがある
https://towardsdatascience.com/underst
anding-variational-autoencoders-vaes-f
70510919f73
VAEの潜在空間
MNISTに対してVAEを使うとそれっぽい空間が得られる
https://blog.keras.io/building-autoencod
ers-in-keras.html
AE, VAEをそのまま強化学習に使っていい?
● AE, VAEで獲得した潜在空間は強化学習に必要な情報を全部含んでいるか?
○ ちょっと足りない...
● AE, VAEは一枚の画像しか見ていない
○ ダイナミクスの情報が欠けてる! →ダイナミクスまで考えた潜在空間の学習は次回やります
普通にVAEをや
るとここしか見な
い
速度情報が獲
得できない!

More Related Content

Similar to 強化学習勉強会_No1@産総研

eXtremeProgramming入門
eXtremeProgramming入門eXtremeProgramming入門
eXtremeProgramming入門You&I
 
センパイ!このプログラムクラッシュするんですけど。。。
センパイ!このプログラムクラッシュするんですけど。。。センパイ!このプログラムクラッシュするんですけど。。。
センパイ!このプログラムクラッシュするんですけど。。。yjono Seino
 
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -historia_Inc
 
第2回 すくすく・スクラム
第2回 すくすく・スクラム第2回 すくすく・スクラム
第2回 すくすく・スクラムKazumasa EBATA
 
GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方Hiroyuki Tanaka
 
ど素人向け エンジニア勉強会
ど素人向け エンジニア勉強会ど素人向け エンジニア勉強会
ど素人向け エンジニア勉強会YukiIwasaki2764
 
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さんAkira Shibata
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようKenji NAKAGAKI
 
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!虎の穴 開発室
 
Introduction of Unity ML-Agents
Introduction of Unity ML-AgentsIntroduction of Unity ML-Agents
Introduction of Unity ML-AgentsTomohiro Namba
 
Jag神戸3(共有用)
Jag神戸3(共有用)Jag神戸3(共有用)
Jag神戸3(共有用)takagig
 
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみるasa88
 
UE4 LODs for Optimization -Beginner-
UE4 LODs for Optimization -Beginner-UE4 LODs for Optimization -Beginner-
UE4 LODs for Optimization -Beginner-com044
 
メトリクスによる「見える化」のススメ:No 見える化、No 改善
メトリクスによる「見える化」のススメ:No 見える化、No 改善メトリクスによる「見える化」のススメ:No 見える化、No 改善
メトリクスによる「見える化」のススメ:No 見える化、No 改善Hiroyuki Ito
 

Similar to 強化学習勉強会_No1@産総研 (16)

eXtremeProgramming入門
eXtremeProgramming入門eXtremeProgramming入門
eXtremeProgramming入門
 
センパイ!このプログラムクラッシュするんですけど。。。
センパイ!このプログラムクラッシュするんですけど。。。センパイ!このプログラムクラッシュするんですけど。。。
センパイ!このプログラムクラッシュするんですけど。。。
 
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
 
第2回 すくすく・スクラム
第2回 すくすく・スクラム第2回 すくすく・スクラム
第2回 すくすく・スクラム
 
知能型システム論(後半)
知能型システム論(後半)知能型システム論(後半)
知能型システム論(後半)
 
GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
 
ど素人向け エンジニア勉強会
ど素人向け エンジニア勉強会ど素人向け エンジニア勉強会
ど素人向け エンジニア勉強会
 
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
 
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
 
Introduction of Unity ML-Agents
Introduction of Unity ML-AgentsIntroduction of Unity ML-Agents
Introduction of Unity ML-Agents
 
Jag神戸3(共有用)
Jag神戸3(共有用)Jag神戸3(共有用)
Jag神戸3(共有用)
 
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
 
Enshu1
Enshu1Enshu1
Enshu1
 
UE4 LODs for Optimization -Beginner-
UE4 LODs for Optimization -Beginner-UE4 LODs for Optimization -Beginner-
UE4 LODs for Optimization -Beginner-
 
メトリクスによる「見える化」のススメ:No 見える化、No 改善
メトリクスによる「見える化」のススメ:No 見える化、No 改善メトリクスによる「見える化」のススメ:No 見える化、No 改善
メトリクスによる「見える化」のススメ:No 見える化、No 改善
 

More from robotpaperchallenge (18)

IROS2020 survey
IROS2020 surveyIROS2020 survey
IROS2020 survey
 
ICRA2020 Open Survey
ICRA2020 Open SurveyICRA2020 Open Survey
ICRA2020 Open Survey
 
Icra2020 v1
Icra2020 v1Icra2020 v1
Icra2020 v1
 
Icra2020 v2
Icra2020 v2Icra2020 v2
Icra2020 v2
 
Pre-Survey 2020 05-25:2020-05-31
Pre-Survey 2020 05-25:2020-05-31Pre-Survey 2020 05-25:2020-05-31
Pre-Survey 2020 05-25:2020-05-31
 
Pre-Survey 2020 05-18:2020-05-24
Pre-Survey 2020 05-18:2020-05-24Pre-Survey 2020 05-18:2020-05-24
Pre-Survey 2020 05-18:2020-05-24
 
Pre-Survey 2020 05-11:2020-05-17
Pre-Survey 2020 05-11:2020-05-17Pre-Survey 2020 05-11:2020-05-17
Pre-Survey 2020 05-11:2020-05-17
 
Pre-Survey 2020 05-04:2020-05-10
Pre-Survey 2020 05-04:2020-05-10 Pre-Survey 2020 05-04:2020-05-10
Pre-Survey 2020 05-04:2020-05-10
 
Pre-Survey 2020 04-27:2020-05-03
Pre-Survey 2020 04-27:2020-05-03 Pre-Survey 2020 04-27:2020-05-03
Pre-Survey 2020 04-27:2020-05-03
 
Pre-Survey 2020 04-20:2020-04-26
Pre-Survey 2020 04-20:2020-04-26Pre-Survey 2020 04-20:2020-04-26
Pre-Survey 2020 04-20:2020-04-26
 
Pre-Survey 2020-04-13:2020-04-19
Pre-Survey 2020-04-13:2020-04-19Pre-Survey 2020-04-13:2020-04-19
Pre-Survey 2020-04-13:2020-04-19
 
強化学習勉強会_No3
強化学習勉強会_No3強化学習勉強会_No3
強化学習勉強会_No3
 
強化学習勉強会_No2
強化学習勉強会_No2強化学習勉強会_No2
強化学習勉強会_No2
 
Robotpaper.Challenge 2019-10
Robotpaper.Challenge 2019-10Robotpaper.Challenge 2019-10
Robotpaper.Challenge 2019-10
 
robotpaper.Challenge概略_v2@mixi
robotpaper.Challenge概略_v2@mixirobotpaper.Challenge概略_v2@mixi
robotpaper.Challenge概略_v2@mixi
 
Robotpaper.Challenge 2019-09 ver2
Robotpaper.Challenge 2019-09 ver2Robotpaper.Challenge 2019-09 ver2
Robotpaper.Challenge 2019-09 ver2
 
Robotpaper.Challenge 2019-08
Robotpaper.Challenge 2019-08Robotpaper.Challenge 2019-08
Robotpaper.Challenge 2019-08
 
RobotPaperChallenge 2019-07
RobotPaperChallenge 2019-07RobotPaperChallenge 2019-07
RobotPaperChallenge 2019-07
 

強化学習勉強会_No1@産総研