SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
ML-Agents
で
ペンギナイ
@hiraokusoyprivate only
Unityで強化学習を実装可能にするフレームワークです。
2
Unity ML-Agents
こんなこと👆をアルゴリズムを書かずにできます
学習は Python上(のTensorFlow)で行います。
実行は Unity上(のTensorFlowSharp)で行えます。
3
ML-Agentsの構成
python も TensorFlow も触りません
Pythonで
学習を実行
Unity
Agentを実装
Brainが学習モデルを持つ
Proximal Policy Optimizationという、2017年に発表された
ほぼ最先端の強化学習アルゴリズムがそのまま使えます。
4
強化学習アルゴリズムはPPO
ぶっちゃけ、強化学習を知らなくても使えます
⓪ サンプルは実行できるようにしておきます
① ML-Agentsをコピーします
② TensorFlowSharpアセットをインポートします(※1)
③ Academy, Brainを手順通りに作成します(※2)
※1 https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Using-TensorFlow-Sharp-in-Unity.md
※2 https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Learning-Environment-Create-New.md
5
ML-Agentsを自分のプロジェクトに取り込む
6
Agentを作成する
Agent
Brain/
Academy
行動
行動の
実行
報酬/
ゴール
状況
学習
モデル
① 行動を選択するための状況を与えます
② Brainで決定された行動を実行します
③ 行動の貢献度を決める報酬を与えます
④ エピソードの終わりを教えるゴールを教えます
7
もうちょっとだけ詳しく
行動(確率)状況
エピソード
ゴール
8
Agentのコード
public class PenguinAgent : Agent {
void Start()
{
}
public override void AgentReset()
{
}
public override void CollectObservations()
{
AddVectorObs(rBody.velocity.x);
}
public override void AgentAction(float[] vectorAction, string textAction)
{
AddReward(1.0f);
Done();
}
}
環境からアクションを
受け取って実行します報酬とゴールを環境
に教えます
ゴール後のリセット
処理を書きます
環境にAgentの
状況を教えます
【学習】
① BrainのBrain TypeをExternalにする
② python learn.py –run-id=XXX –train
③ Unityで実行 (Time.timeScale=100にします)
【実行】
① 生成されたモデルファイルをUnityプロジェクトにコピー
② BrainのBrain TypeをInternalにして、コピーしたモデルファイ
ルを参照
③ Unityで実行
9
学習&実行
おしまい
状況:ターゲットの種類, ターゲットとの位置, 疲れ
行動:Enum値でアクション実行
報酬:ターゲットに近づく(+), ドーナツ持つ(+), ドーナツ置く(+)
ゴール:なし
10
PENGUIN AIでやってみました
11
それっぽく動いた(5万step学習)
ドーナツを
持つ
列をつくる
でも
すぐ置く
かなり密着
して固まる
tensorboard --logdir=summaries
http://localhost:6006/
12
学習結果はTensorBoardで見えます
状況と行動の関係ができるだけ密接になるようにします。
ベストプラクティスにしたがって、報酬やハイパーパラメーターを決めます。
という慣例はあるものの、ほとんど試行錯誤です。
例えば、報酬は+1を超えないほうがいいとされています。
でも+10にしないとドーナツを拾ってくれませんでした。
また、「疲れ」を導入すると、集まってくれませんでした。
13
状況設計・報酬設計は試行錯誤
疲れ(-)がある場合、ばらける 疲れ(-)がない場合、集まる
ML-Agentsをダウンロードして1日で動かせました。
とてもかんたんな環境です。
機械学習というと難しそうですが、要は、こういうことです。
出力値 = f( 入力値 )
ぜひいろいろ試してみてください。
14
とにかくかんたん!はじめよう!
Unity Machine Learning Agents Toolkit
https://github.com/Unity-Technologies/ml-agents
これから強化学習を勉強する人のための「強化学習アルゴリズム・マップ」と、実装例まとめ
https://qiita.com/sugulu/items/3c7d6cbe600d455e853b
【強化学習】実装しながら学ぶPPO【CartPoleで棒立て:1ファイルで完結】
https://qiita.com/sugulu/items/8925d170f030878d6582
深層強化学習:ピクセルから『ポン』 – 前編
https://postd.cc/deep-reinforcement-learning-pong-from-pixels-1/
プルプルしている倒立振子を安定させる話
http://ensekitt.hatenablog.com/entry/2018/01/22/200000
Unity ML-Agentsのサンプルを動かす
https://qiita.com/hiraokusoy/items/f18fbaa1c4613154f73b
15
References

Weitere ähnliche Inhalte

Ähnlich wie PENGUIN AI ML-Agents

Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようKenji NAKAGAKI
 
コルネと学ぶコンポーネント
コルネと学ぶコンポーネントコルネと学ぶコンポーネント
コルネと学ぶコンポーネントkorune ☆
 
[Gree] Dialogflowを利用したチャットボット導入事例
[Gree] Dialogflowを利用したチャットボット導入事例[Gree] Dialogflowを利用したチャットボット導入事例
[Gree] Dialogflowを利用したチャットボット導入事例Takashi Suzuki
 
2012/02/25 ヒーロー島 TFS はじめの一歩
2012/02/25 ヒーロー島 TFS はじめの一歩2012/02/25 ヒーロー島 TFS はじめの一歩
2012/02/25 ヒーロー島 TFS はじめの一歩__Black
 
Deep Learning基本理論とTensorFlow
Deep Learning基本理論とTensorFlowDeep Learning基本理論とTensorFlow
Deep Learning基本理論とTensorFlowTadaichiro Nakano
 
こんなに使えるTrainer
こんなに使えるTrainerこんなに使えるTrainer
こんなに使えるTrainerYuta Koreeda
 
ユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイントユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイントMasaki NIWA
 
[DL Hacks]色々と進化しているTensorFlow - 紹介編 -
[DL Hacks]色々と進化しているTensorFlow - 紹介編 -[DL Hacks]色々と進化しているTensorFlow - 紹介編 -
[DL Hacks]色々と進化しているTensorFlow - 紹介編 -Deep Learning JP
 
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦Preferred Networks
 
MTプラグイン入門以前
MTプラグイン入門以前MTプラグイン入門以前
MTプラグイン入門以前Hiroshi Yamato
 
Basic deep learning_framework
Basic deep learning_frameworkBasic deep learning_framework
Basic deep learning_frameworkKazuhiroSato8
 
JUIZ DLK 組込み向けDeep Learningコンパイラ
JUIZ DLK 組込み向けDeep LearningコンパイラJUIZ DLK 組込み向けDeep Learningコンパイラ
JUIZ DLK 組込み向けDeep LearningコンパイラLeapMind Inc
 
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話Hidenori Goto
 
Tensorflow
TensorflowTensorflow
TensorflowHakky St
 
コンピュータビジョン 1章
コンピュータビジョン 1章コンピュータビジョン 1章
コンピュータビジョン 1章motimune
 
Xtextハンズオン(仮)
Xtextハンズオン(仮)Xtextハンズオン(仮)
Xtextハンズオン(仮)You&I
 
Webエンジニアが初めて機械学習に触れてみた話
Webエンジニアが初めて機械学習に触れてみた話Webエンジニアが初めて機械学習に触れてみた話
Webエンジニアが初めて機械学習に触れてみた話Shohei Tai
 
Open ai universe starter-agent触ってみた
Open ai universe starter-agent触ってみたOpen ai universe starter-agent触ってみた
Open ai universe starter-agent触ってみたNakanishi Tetsuhiro
 

Ähnlich wie PENGUIN AI ML-Agents (20)

Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
 
コルネと学ぶコンポーネント
コルネと学ぶコンポーネントコルネと学ぶコンポーネント
コルネと学ぶコンポーネント
 
[Gree] Dialogflowを利用したチャットボット導入事例
[Gree] Dialogflowを利用したチャットボット導入事例[Gree] Dialogflowを利用したチャットボット導入事例
[Gree] Dialogflowを利用したチャットボット導入事例
 
2012/02/25 ヒーロー島 TFS はじめの一歩
2012/02/25 ヒーロー島 TFS はじめの一歩2012/02/25 ヒーロー島 TFS はじめの一歩
2012/02/25 ヒーロー島 TFS はじめの一歩
 
Deep Learning基本理論とTensorFlow
Deep Learning基本理論とTensorFlowDeep Learning基本理論とTensorFlow
Deep Learning基本理論とTensorFlow
 
こんなに使えるTrainer
こんなに使えるTrainerこんなに使えるTrainer
こんなに使えるTrainer
 
ユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイントユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイント
 
Wicket体験談
Wicket体験談Wicket体験談
Wicket体験談
 
[DL Hacks]色々と進化しているTensorFlow - 紹介編 -
[DL Hacks]色々と進化しているTensorFlow - 紹介編 -[DL Hacks]色々と進化しているTensorFlow - 紹介編 -
[DL Hacks]色々と進化しているTensorFlow - 紹介編 -
 
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦
 
MTプラグイン入門以前
MTプラグイン入門以前MTプラグイン入門以前
MTプラグイン入門以前
 
Basic deep learning_framework
Basic deep learning_frameworkBasic deep learning_framework
Basic deep learning_framework
 
JUIZ DLK 組込み向けDeep Learningコンパイラ
JUIZ DLK 組込み向けDeep LearningコンパイラJUIZ DLK 組込み向けDeep Learningコンパイラ
JUIZ DLK 組込み向けDeep Learningコンパイラ
 
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
 
Tensorflow
TensorflowTensorflow
Tensorflow
 
コンピュータビジョン 1章
コンピュータビジョン 1章コンピュータビジョン 1章
コンピュータビジョン 1章
 
Xtextハンズオン(仮)
Xtextハンズオン(仮)Xtextハンズオン(仮)
Xtextハンズオン(仮)
 
Webエンジニアが初めて機械学習に触れてみた話
Webエンジニアが初めて機械学習に触れてみた話Webエンジニアが初めて機械学習に触れてみた話
Webエンジニアが初めて機械学習に触れてみた話
 
Open ai universe starter-agent触ってみた
Open ai universe starter-agent触ってみたOpen ai universe starter-agent触ってみた
Open ai universe starter-agent触ってみた
 
Lt 20130302 1
Lt 20130302 1Lt 20130302 1
Lt 20130302 1
 

PENGUIN AI ML-Agents