SlideShare a Scribd company logo
1 of 27
ディープラーニング
フレームワークChainerの紹介
と
分散深層強化学習による
ロボット制御
奥田 遼介
okuta@preferred.jp
2015/8/19
ディープラーニングセミナー 2015@名古屋
自己紹介&会社紹介
 奥田遼介
– 2014 東北大学 修士卒業
 現在
– PFNエンジニア
– OSS Chainer作ってます
2
 Preferred Networks, Inc.
– Preferred Infrastructure よりスピンオフ
— 2014年3月設立
 オフィス
– 本郷(東京都文京区)
– San Jose(CA, USA)
 ミッション:
– IoT時代に向けた新しいコンピュータを創造する
– あらゆるモノに知能をもたせ、分散知能を実現する
アジェンダ
 分散深層強化学習
 強化学習とは何か
 深層学習+強化学習
 ロボット制御への適用
 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:周りの情報
状態 sに対する行動 a
は直接教えない
強化学習の問題設定
 エージェントが環境から状態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
強化学習 + 深層学習
 Deep Q Network (DeepMind 2014)
11
入力:画面の画像データ 出力:操作コマンド
複数ロボットカーの協調走行
 状態s:273次元
– 視線:32方向の視線に対する情報など(障害物までの距離)
 行動a:5種類(前後加速, 左右回転, ブレーキ)
 報酬r:
– 良い:指定されたパスに沿って速く移動する
– 悪い:壁や障害物、他の車にぶつかる
 どのように走行すれば最適かを学習
– 状態sの時に各行動aの報酬を予測するNNを学習
12
273 600 400 200 100 50
入力:状態s
前加速
後加速
右回転
左回転
ブレーキ
活性化関数にはReLU
出力:各行動aの報酬予測
分散学習
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 による簡単なインストール
 系列・可変長データの学習アルゴリズムをネイティブにサポート
 マルチGPU対応(Model Parallel / Data Parallel)16
既存フレームワークとの比較
主要実装言語 Python C++ Lua Python
主要開発者 Preferred
Networks Inc.
BVLC Idiap Research
Institute,
DeepMind
Univ. of
Montreal
コミュニティ △ ◎ ○ ○
RNN/LSTM対応 ◎ × ○ ○
動的ネットワー
ク構築
○ × × ×
拡張性 ○ △ ○ ○
ネットワーク設
計
言語内DSL 設定ファイル
(prototxt)
言語内DSL 設定ファイル
(YAML)
特徴 ネットワーク動
的構築による省
リソース
画像認識が得意 LuaJITによる高
速化
自動微分機構
17
Chainerの何が良いか
 インストールが簡単
– pipコマンドでインストール
 Pythonで書ける
– LuaやC++はちょっとつらい
 ネットワーク定義を制御構文を使って書ける
– Caffeのネットワーク定義は巨大になると辛い
– 動的なネットワークを扱うのが苦手
 可変長のネットワークをネイティブに扱える
– 論文で出てくる最新のネットワークを簡単に実装できる
18
アーキテクチャの複雑化
 深層学習で扱われるアーキテクチャーの複雑化
– GoogLeNet, RNN, LSTM
 既存フレームワークではネットワークの記述は困難
– 繰り返し構造、分岐などプログラムと同レベルの複雑さ
19
Chainer Caffe
167行 2058行
GoogleNetのアーキテクチャ定義の必要行数
(2012) Supervision, 7層 ↑
(2014) GoogLeNet, 22層→
ネットワーク構造の変化、固定長から可変長へ
アーキテクチャ 入出力 タスク 応用
これまで 全結合, CNN 固定長 分類・回帰 画像・音声
これから RNN, LSTM, NTM 可変長 強化学習
プログラム実行
映像・音声
自然言語・IoT
x
1
x
N
h
1
h
H
k
M
k
1
CNN(LeNet) RNN LSTM
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
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
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
Imagenet
 example/imagenet
– $ python train_imagenet.py
 アーキテクチャー
– Alexnet
– Network in Network
– GoogleNet
– GoogleNet(Batch Normalization)
25
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
Copyright © 2015-
Preferred Networks All Right Reserved.

More Related Content

What's hot

機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
Yuya Unno
 
アプリケーションコードにおける技術的負債について考える
アプリケーションコードにおける技術的負債について考えるアプリケーションコードにおける技術的負債について考える
アプリケーションコードにおける技術的負債について考える
pospome
 

What's hot (20)

機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
 
JCSQE初級受けてみたの
JCSQE初級受けてみたのJCSQE初級受けてみたの
JCSQE初級受けてみたの
 
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
 
松尾研のご紹介
松尾研のご紹介松尾研のご紹介
松尾研のご紹介
 
グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発
 
ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用
 
大学3年生の僕に伝えたいことをつらつらと
大学3年生の僕に伝えたいことをつらつらと大学3年生の僕に伝えたいことをつらつらと
大学3年生の僕に伝えたいことをつらつらと
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
 
「ソフトウェア品質データ分析を通じた組織的改善の促進」ソフトウエアジャパン2014「ITフォーラムセッション」IPA/SEC データの分析に基づくシステム...
「ソフトウェア品質データ分析を通じた組織的改善の促進」ソフトウエアジャパン2014「ITフォーラムセッション」IPA/SEC データの分析に基づくシステム...「ソフトウェア品質データ分析を通じた組織的改善の促進」ソフトウエアジャパン2014「ITフォーラムセッション」IPA/SEC データの分析に基づくシステム...
「ソフトウェア品質データ分析を通じた組織的改善の促進」ソフトウエアジャパン2014「ITフォーラムセッション」IPA/SEC データの分析に基づくシステム...
 
アプリケーションコードにおける技術的負債について考える
アプリケーションコードにおける技術的負債について考えるアプリケーションコードにおける技術的負債について考える
アプリケーションコードにおける技術的負債について考える
 
Hough forestを用いた物体検出
Hough forestを用いた物体検出Hough forestを用いた物体検出
Hough forestを用いた物体検出
 
IROS2020 survey
IROS2020 surveyIROS2020 survey
IROS2020 survey
 
Sphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメントSphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメント
 
深層強化学習と実装例
深層強化学習と実装例深層強化学習と実装例
深層強化学習と実装例
 
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
 
Gunosyインターンシップ成果発表
Gunosyインターンシップ成果発表Gunosyインターンシップ成果発表
Gunosyインターンシップ成果発表
 
上っ面スクラムチームにならないために気を付けたいこと
上っ面スクラムチームにならないために気を付けたいこと上っ面スクラムチームにならないために気を付けたいこと
上っ面スクラムチームにならないために気を付けたいこと
 
絵を読む技術 Pythonによるイラスト解析
絵を読む技術 Pythonによるイラスト解析絵を読む技術 Pythonによるイラスト解析
絵を読む技術 Pythonによるイラスト解析
 
全力解説!Transformer
全力解説!Transformer全力解説!Transformer
全力解説!Transformer
 
多様な強化学習の概念と課題認識
多様な強化学習の概念と課題認識多様な強化学習の概念と課題認識
多様な強化学習の概念と課題認識
 

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

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

[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ
[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ
[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ
 
Deep Learning Lab: DIMo & Chainer
Deep Learning Lab: DIMo & ChainerDeep Learning Lab: DIMo & Chainer
Deep Learning Lab: DIMo & Chainer
 
深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴
 
NW-DIY で開拓したい社会
NW-DIY で開拓したい社会NW-DIY で開拓したい社会
NW-DIY で開拓したい社会
 
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組みDeep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組み
 
次世代の企業ITインフラを支えるエンジニアとは
次世代の企業ITインフラを支えるエンジニアとは次世代の企業ITインフラを支えるエンジニアとは
次世代の企業ITインフラを支えるエンジニアとは
 
キャリア網の完全なソフトウェア制御化への取り組み (沖縄オープンデイズ 2017) / Telecommunication Infrastructure ...
キャリア網の完全なソフトウェア制御化への取り組み (沖縄オープンデイズ 2017) / Telecommunication Infrastructure ...キャリア網の完全なソフトウェア制御化への取り組み (沖縄オープンデイズ 2017) / Telecommunication Infrastructure ...
キャリア網の完全なソフトウェア制御化への取り組み (沖縄オープンデイズ 2017) / Telecommunication Infrastructure ...
 
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-
 
Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦
 
45分で理解する ドッコムマスタートリプルスター受験対策 2012
45分で理解する ドッコムマスタートリプルスター受験対策 201245分で理解する ドッコムマスタートリプルスター受験対策 2012
45分で理解する ドッコムマスタートリプルスター受験対策 2012
 
20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術
 
これからはじめるIoTデバイス mbed入門編
これからはじめるIoTデバイス mbed入門編これからはじめるIoTデバイス mbed入門編
これからはじめるIoTデバイス mbed入門編
 
クラウド環境におけるオープンソースウェアの現状について、OpenStackを中心に
クラウド環境におけるオープンソースウェアの現状について、OpenStackを中心にクラウド環境におけるオープンソースウェアの現状について、OpenStackを中心に
クラウド環境におけるオープンソースウェアの現状について、OpenStackを中心に
 
CONBU API の開発
CONBU API の開発CONBU API の開発
CONBU API の開発
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
 
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタックONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
 
フューチャースタンダードCTO鈴木登壇 レバレジーズ「ヒカ☆ラボ」動画解析・IoT実践事例 (Jul. 4th, 2017)
フューチャースタンダードCTO鈴木登壇 レバレジーズ「ヒカ☆ラボ」動画解析・IoT実践事例 (Jul. 4th, 2017)フューチャースタンダードCTO鈴木登壇 レバレジーズ「ヒカ☆ラボ」動画解析・IoT実践事例 (Jul. 4th, 2017)
フューチャースタンダードCTO鈴木登壇 レバレジーズ「ヒカ☆ラボ」動画解析・IoT実践事例 (Jul. 4th, 2017)
 
Chainer on Azure 2 年の歴史
Chainer on Azure 2 年の歴史Chainer on Azure 2 年の歴史
Chainer on Azure 2 年の歴史
 
JANOG33 イベントトラフィックに対するトラフィックエンジニアリング / CDN配信の仕組みと国内における配備状況
JANOG33 イベントトラフィックに対するトラフィックエンジニアリング / CDN配信の仕組みと国内における配備状況JANOG33 イベントトラフィックに対するトラフィックエンジニアリング / CDN配信の仕組みと国内における配備状況
JANOG33 イベントトラフィックに対するトラフィックエンジニアリング / CDN配信の仕組みと国内における配備状況
 
Software for Edge Heavy Computing @ INTEROP 2016 Tokyo
Software for Edge Heavy Computing @ INTEROP 2016 TokyoSoftware for Edge Heavy Computing @ INTEROP 2016 Tokyo
Software for Edge Heavy Computing @ INTEROP 2016 Tokyo
 

More from Ryosuke Okuta

More from Ryosuke Okuta (6)

Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御
 
Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能
 
ディープラーニングフレームワーク とChainerの実装
ディープラーニングフレームワーク とChainerの実装ディープラーニングフレームワーク とChainerの実装
ディープラーニングフレームワーク とChainerの実装
 
NumPy闇入門
NumPy闇入門NumPy闇入門
NumPy闇入門
 
CuPy解説
CuPy解説CuPy解説
CuPy解説
 
Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015
 

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