Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
ディープラーニング
フレームワークChainerの紹介
と
分散深層強化学習による
ロボット制御
奥田 遼介
okuta@preferred.jp
2015/8/19
ディープラーニングセミナー 2015@名古屋
自己紹介&会社紹介
 奥田遼介
– 2014 東北大学 修士卒業
 現在
– PFNエンジニア
– OSS Chainer作ってます
2
 Preferred Networks, Inc.
– Preferred Infrastructu...
アジェンダ
 分散深層強化学習
 強化学習とは何か
 深層学習+強化学習
 ロボット制御への適用
 Chainer
– 今後どのようなNNが使われるか
– 他のフレームワークとの差異
– クイックスタート
3
IoT時代の到来で発生する課題
 膨大なデータがエッジ側で生成されるようになる
– 例:映像はカメラ1台で年間100TB、タービンセンサ、ポイントクラウド
4
機械学習の活用
5
学習 行動
webサービス
ゲームAI
ルーター
ロボット
自動車
...
ヒストグラム
線形モデル
SVM
Deep NN
...
データ
画像
音声
テキスト
行動ログ
…
前処理 データ収集
結果を利用
機械学習の活用
6
学習 行動
webサービス
ゲームAI
ルーター
ロボット
自動車
...
ヒストグラム
線形モデル
SVM
Deep NN
...
データ
前処理 データ収集
画像
音声
テキスト
行動ログ
…
人が作業する
結果を利用
強化学習のモチベーション
7
学習 行動
webサービス
ゲームAI
ルーター
ロボット
自動車
...
ヒストグラム
線形モデル
SVM
Deep NN
...
データ
前処理
結果を利用
データ収集
画像
音声
テキスト
行動ログ
…
人が...
強化学習のモチベーション
8
学習 行動
webサービス
ゲームAI
ルーター
ロボット
自動車
...
ヒストグラム
線形モデル
SVM
Deep NN
...
データ
前処理
結果を利用
データ収集
画像
音声
テキスト
行動ログ
…
人が...
状態 s の時に
どの行動 aを
取ればよいかを
報酬 r を
手掛かりに学習する
強化学習の問題設定(簡易版)
9
エージェント
行動 a
良い結果
・すいすい走る
悪い結果
・他車とぶつかる
評価
報酬 r を与える
(罰の場合もある)
状...
強化学習の問題設定
 エージェントが環境から状態sを観測する
 エージェントが行動a(s)を行う。a(s): 戦略関数
 行動aの結果として報酬r(s,a)を受け取り、環境が変化する
 環境が終状態になるまで繰り返し
行動履歴「s1, ...
強化学習 + 深層学習
 Deep Q Network (DeepMind 2014)
11
入力:画面の画像データ 出力:操作コマンド
複数ロボットカーの協調走行
 状態s:273次元
– 視線:32方向の視線に対する情報など(障害物までの距離)
 行動a:5種類(前後加速, 左右回転, ブレーキ)
 報酬r:
– 良い:指定されたパスに沿って速く移動する
– 悪い:壁や...
分散学習
13
273 600 400 200 100 50 5
273 600 400 200 100 50 5
273 600 400 200 100 50 5
重みを共有
重みを共有
強化学習のまとめ
14
学習 行動
ロボットカー
Deep NN
データ
前処理
結果を利用
データ収集
距離、角度などの
センサーデータ
強化学習で
ループを自動で
回す
深層学習フレームワーク
Chainer : 深層学習フレームワークをOSSとして公開中
 2015/6/9公開(chainer.org)
 Python + CUDA
 pip による簡単なインストール
 系列・可変長データの学習アルゴリズムをネイティブにサポ...
既存フレームワークとの比較
主要実装言語 Python C++ Lua Python
主要開発者 Preferred
Networks Inc.
BVLC Idiap Research
Institute,
DeepMind
Univ. of
...
Chainerの何が良いか
 インストールが簡単
– pipコマンドでインストール
 Pythonで書ける
– LuaやC++はちょっとつらい
 ネットワーク定義を制御構文を使って書ける
– Caffeのネットワーク定義は巨大になると辛い...
アーキテクチャの複雑化
 深層学習で扱われるアーキテクチャーの複雑化
– GoogLeNet, RNN, LSTM
 既存フレームワークではネットワークの記述は困難
– 繰り返し構造、分岐などプログラムと同レベルの複雑さ
19
Chaine...
ネットワーク構造の変化、固定長から可変長へ
アーキテクチャ 入出力 タスク 応用
これまで 全結合, CNN 固定長 分類・回帰 画像・音声
これから RNN, LSTM, NTM 可変長 強化学習
プログラム実行
映像・音声
自然言語・IoT...
Chainer リリースヒストリー
 隔週水曜のリリースで進行中
21
6/9 Ver1.0.0 公開
6月 7月 8月 9月
6/23 Ver1.0.1
7/15 Ver1.1.0
Caffeモデル読み込み対応など
7/26 Ver1.1....
:の使い方
22
Chainerのインストール
 おすすめの環境
– Ubuntu14.04 +CUDA7.0
– Python 2.7 / Python3.4
 Pyenvなどを利用するとさらに良い
 CPUのみ
– $pip install –U ch...
MNISTの実行(quick start)
1. Exampleをダウンロード取ってくる
– 「$pip list」を実行し対応するchainerのバージョンを調べる
– 例えば chainer (1.2.0) なら
– https://git...
Imagenet
 example/imagenet
– $ python train_imagenet.py
 アーキテクチャー
– Alexnet
– Network in Network
– GoogleNet
– GoogleNet...
Chainer へのアクセス
 公式サイト
– http://chainer.org
 Github
– https://github.com/pfnet/chainer
– Issue, PRお待ちしています
 Twitter
– ht...
Copyright © 2015-
Preferred Networks All Right Reserved.
Prochain SlideShare
Chargement dans…5
×

DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御

16 389 vues

Publié le

近年ディープラーニング(深層学習)は急速な進化を遂げ、多くの分野での利用が進んでいます。弊社はディープラーニングフレームワークChainerを開発し、オープンソースで公開しています。Pythonを用いて様々な構造のニューラルネットを簡単に構築でき、GPU上での計算もサポートするChainerについて紹介します。また、ディープラーニングの活用例として、ディープラーニングと強化学習を組み合わせて、複数台のロボットに適切な行動を獲得させた事例について説明します。

Publié dans : Logiciels
  • Identifiez-vous pour voir les commentaires

DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御

  1. 1. ディープラーニング フレームワークChainerの紹介 と 分散深層強化学習による ロボット制御 奥田 遼介 okuta@preferred.jp 2015/8/19 ディープラーニングセミナー 2015@名古屋
  2. 2. 自己紹介&会社紹介  奥田遼介 – 2014 東北大学 修士卒業  現在 – PFNエンジニア – OSS Chainer作ってます 2  Preferred Networks, Inc. – Preferred Infrastructure よりスピンオフ — 2014年3月設立  オフィス – 本郷(東京都文京区) – San Jose(CA, USA)  ミッション: – IoT時代に向けた新しいコンピュータを創造する – あらゆるモノに知能をもたせ、分散知能を実現する
  3. 3. アジェンダ  分散深層強化学習  強化学習とは何か  深層学習+強化学習  ロボット制御への適用  Chainer – 今後どのようなNNが使われるか – 他のフレームワークとの差異 – クイックスタート 3
  4. 4. IoT時代の到来で発生する課題  膨大なデータがエッジ側で生成されるようになる – 例:映像はカメラ1台で年間100TB、タービンセンサ、ポイントクラウド 4
  5. 5. 機械学習の活用 5 学習 行動 webサービス ゲームAI ルーター ロボット 自動車 ... ヒストグラム 線形モデル SVM Deep NN ... データ 画像 音声 テキスト 行動ログ … 前処理 データ収集 結果を利用
  6. 6. 機械学習の活用 6 学習 行動 webサービス ゲームAI ルーター ロボット 自動車 ... ヒストグラム 線形モデル SVM Deep NN ... データ 前処理 データ収集 画像 音声 テキスト 行動ログ … 人が作業する 結果を利用
  7. 7. 強化学習のモチベーション 7 学習 行動 webサービス ゲームAI ルーター ロボット 自動車 ... ヒストグラム 線形モデル SVM Deep NN ... データ 前処理 結果を利用 データ収集 画像 音声 テキスト 行動ログ … 人が作業する 前処理の自動獲得
  8. 8. 強化学習のモチベーション 8 学習 行動 webサービス ゲームAI ルーター ロボット 自動車 ... ヒストグラム 線形モデル SVM Deep NN ... データ 前処理 結果を利用 データ収集 画像 音声 テキスト 行動ログ … 人が作業する 前処理の自動獲得 このループを 自動で回したい
  9. 9. 状態 s の時に どの行動 aを 取ればよいかを 報酬 r を 手掛かりに学習する 強化学習の問題設定(簡易版) 9 エージェント 行動 a 良い結果 ・すいすい走る 悪い結果 ・他車とぶつかる 評価 報酬 r を与える (罰の場合もある) 状態 s:周りの情報 状態 sに対する行動 a は直接教えない
  10. 10. 強化学習の問題設定  エージェントが環境から状態sを観測する  エージェントが行動a(s)を行う。a(s): 戦略関数  行動aの結果として報酬r(s,a)を受け取り、環境が変化する  環境が終状態になるまで繰り返し 行動履歴「s1, a1, r1, s2, a2, r2, …」を元に、 合計の報酬が最も多く得られるように a(s) を更新する T t = 0 å r(s,a) エージェント 環境 状態s 行動a 報酬r
  11. 11. 強化学習 + 深層学習  Deep Q Network (DeepMind 2014) 11 入力:画面の画像データ 出力:操作コマンド
  12. 12. 複数ロボットカーの協調走行  状態s:273次元 – 視線:32方向の視線に対する情報など(障害物までの距離)  行動a:5種類(前後加速, 左右回転, ブレーキ)  報酬r: – 良い:指定されたパスに沿って速く移動する – 悪い:壁や障害物、他の車にぶつかる  どのように走行すれば最適かを学習 – 状態sの時に各行動aの報酬を予測するNNを学習 12 273 600 400 200 100 50 入力:状態s 前加速 後加速 右回転 左回転 ブレーキ 活性化関数にはReLU 出力:各行動aの報酬予測
  13. 13. 分散学習 13 273 600 400 200 100 50 5 273 600 400 200 100 50 5 273 600 400 200 100 50 5 重みを共有 重みを共有
  14. 14. 強化学習のまとめ 14 学習 行動 ロボットカー Deep NN データ 前処理 結果を利用 データ収集 距離、角度などの センサーデータ 強化学習で ループを自動で 回す
  15. 15. 深層学習フレームワーク
  16. 16. Chainer : 深層学習フレームワークをOSSとして公開中  2015/6/9公開(chainer.org)  Python + CUDA  pip による簡単なインストール  系列・可変長データの学習アルゴリズムをネイティブにサポート  マルチGPU対応(Model Parallel / Data Parallel)16
  17. 17. 既存フレームワークとの比較 主要実装言語 Python C++ Lua Python 主要開発者 Preferred Networks Inc. BVLC Idiap Research Institute, DeepMind Univ. of Montreal コミュニティ △ ◎ ○ ○ RNN/LSTM対応 ◎ × ○ ○ 動的ネットワー ク構築 ○ × × × 拡張性 ○ △ ○ ○ ネットワーク設 計 言語内DSL 設定ファイル (prototxt) 言語内DSL 設定ファイル (YAML) 特徴 ネットワーク動 的構築による省 リソース 画像認識が得意 LuaJITによる高 速化 自動微分機構 17
  18. 18. Chainerの何が良いか  インストールが簡単 – pipコマンドでインストール  Pythonで書ける – LuaやC++はちょっとつらい  ネットワーク定義を制御構文を使って書ける – Caffeのネットワーク定義は巨大になると辛い – 動的なネットワークを扱うのが苦手  可変長のネットワークをネイティブに扱える – 論文で出てくる最新のネットワークを簡単に実装できる 18
  19. 19. アーキテクチャの複雑化  深層学習で扱われるアーキテクチャーの複雑化 – GoogLeNet, RNN, LSTM  既存フレームワークではネットワークの記述は困難 – 繰り返し構造、分岐などプログラムと同レベルの複雑さ 19 Chainer Caffe 167行 2058行 GoogleNetのアーキテクチャ定義の必要行数 (2012) Supervision, 7層 ↑ (2014) GoogLeNet, 22層→
  20. 20. ネットワーク構造の変化、固定長から可変長へ アーキテクチャ 入出力 タスク 応用 これまで 全結合, CNN 固定長 分類・回帰 画像・音声 これから RNN, LSTM, NTM 可変長 強化学習 プログラム実行 映像・音声 自然言語・IoT x 1 x N h 1 h H k M k 1 CNN(LeNet) RNN LSTM
  21. 21. Chainer リリースヒストリー  隔週水曜のリリースで進行中 21 6/9 Ver1.0.0 公開 6月 7月 8月 9月 6/23 Ver1.0.1 7/15 Ver1.1.0 Caffeモデル読み込み対応など 7/26 Ver1.1.1 8/5 Ver1.1.2 8/19 Ver1.2.0 新ファンクション追加など 9/2 Ver1.3.0(予定) CuPyバックエンドに移行など CuPy Cudaを利用する計算ライブラリ Numpyのサブセットを実装
  22. 22. :の使い方 22
  23. 23. Chainerのインストール  おすすめの環境 – Ubuntu14.04 +CUDA7.0 – Python 2.7 / Python3.4  Pyenvなどを利用するとさらに良い  CPUのみ – $pip install –U chainer  CPU+GPU – $pip install –U chainer chainer-cuda-deps – クリーンでない環境では上手くいないときがあります  トラブル時はフォーラムなど見てください 23
  24. 24. MNISTの実行(quick start) 1. Exampleをダウンロード取ってくる – 「$pip list」を実行し対応するchainerのバージョンを調べる – 例えば chainer (1.2.0) なら – https://github.com/pfnet/chainer/tree/v1.2.0/examples/mnist 2. 学習を実行 – $./train_mnist.py – データセットのダウンロード後に学習が始まります 24
  25. 25. Imagenet  example/imagenet – $ python train_imagenet.py  アーキテクチャー – Alexnet – Network in Network – GoogleNet – GoogleNet(Batch Normalization) 25
  26. 26. Chainer へのアクセス  公式サイト – http://chainer.org  Github – https://github.com/pfnet/chainer – Issue, PRお待ちしています  Twitter – https://twitter.com/chainerofficial – @ChainerOfficial  Google Grop – https://groups.google.com/forum/#!forum/chainer – 困ったときはこちらに – 日本語でも英語でもOK 26
  27. 27. Copyright © 2015- Preferred Networks All Right Reserved.

×