Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
深層学習フレームワーク Chainerとその進化
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yuya Unno
April 06, 2017
Technology
23
0
Share
深層学習フレームワーク Chainerとその進化
Yuya Unno
April 06, 2017
More Decks by Yuya Unno
See All by Yuya Unno
深層学習で切り拓くパーソナルロボットの未来 @東京大学 先端技術セミナー 工学最前線
unnonouno
0
26
深層学習時代の自然言語処理ビジネス @DLLAB 言語・音声ナイト
unnonouno
0
47
ベンチャー企業で言葉を扱うロボットの研究開発をする @東京大学 電子情報学特論I
unnonouno
0
46
PFNにおけるセミナー活動 @NLP2018 言語処理研究者・技術者の育成と未来への連携WS
unnonouno
0
16
進化するChainer @JSAI2017
unnonouno
0
22
予測型戦略を知るための機械学習チュートリアル @BigData Conference 2017 Spring
unnonouno
0
24
深層学習による機械とのコミュニケーション @DeNA TechCon 2017
unnonouno
0
36
最先端NLP勉強会 “Learning Language Games through Interaction” @第8回最先端NLP勉強会
unnonouno
0
16
Chainer, Cupy⼊⾨ @Chainer meetup #3
unnonouno
0
23
Other Decks in Technology
See All in Technology
Shiny New Tools Won't Fix Your Problem
trishagee
1
120
ブラウザの投機的読み込みと投機ルールAPIを理解し、Webサービスのパフォーマンスを最適化する
shuta13
3
300
Every Conversation Counts
kawaguti
PRO
0
200
色を視る
yuzneri
0
330
[Scram Fest Niigata2026]Quality as Code〜AIにQAの思考を再現させる試み〜
masamiyajiri
1
300
アプリブロック機能のつくりかたと、AIとHTMLの不合理な相性の良さについて
kumamotone
1
230
AI駆動開発で生産性を追いかけたら、行き着いたのは品質とシフトレフトだった
littlehands
0
470
2026年春のAgentCoreアプデ 細かいやつ全部まとめ
minorun365
3
220
いつの間にかデータエンジニア以外の業務も増えていたけど、意外と経験が役に立ってる
zozotech
PRO
0
370
古今東西SRE
okaru
2
180
AIが自律的に働く時代へ Amazon Quick で実現するAIエージェント紹介
koheiyoshikawa
0
200
(きっとたぶん)人材育成や教育のような何かの話
sejima
0
680
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
440
Ethics towards AI in product and experience design
skipperchong
2
270
Skip the Path - Find Your Career Trail
mkilby
1
120
The Language of Interfaces
destraynor
162
26k
Writing Fast Ruby
sferik
630
63k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
110
So, you think you're a good person
axbom
PRO
2
2k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
Navigating Team Friction
lara
192
16k
Visualization
eitanlees
150
17k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
450
Transcript
深層学習フレームワーク Chainerとその進化 Preferred Networks 海野 裕也
http://chainer.org/
Chainerの⽬標 l ⾼い⾃由度で直感的に記述できる l ⼗分に⾼速に実⾏できる l 容易にデバッグできる 社内の深層学習の研究開発を加速させる 世の中
ニューラルネットの学習⽅法 1. ⽬的関数の設計 l RNNなどを利⽤して⾃分で設計 2. 勾配の計算 l ⾃動で計算できる(これから説明) 3.
最⼩化のための反復計算 l ライブラリが提供してくれる 4 1さえ設計すれば残りは ほぼ⾃動化されている
ニューラルネット=合成関数 l ベクトルに対して線形・⾮線形な関数をたくさん適⽤す る合成関数と捉えるとよい l 各ノードはベクトルを保持する変数 l 各関数はLSTMや線形和など様々 5 y
= h(g(f(x)))
計算グラフの例 z = x ** 2 + 2 * x
* y + y 6 x y _ ** 2 2 * _ _ * _ _ + _ z _ + _
誤差逆伝播によって勾配を計算できるのが重要 l 誤差逆伝播は連鎖律をつかって勾配を計算する l ニューラルネットのフレームワークはこれを⾃動で ⾏ってくれる 7 y’ = h’(g(f(x)))
g’(f(x)) f’(x)
計算グラフの作成戦略 define-and-runとdefine-by-run l define-and-run(静的グラフ) l まず計算グラフを構築し、構築した計算グラフにデータを流すと いう、2ステップから成る l Caffe, theano,
TensorFlowなど l define-by-run(動的グラフ) l 通常の⾏列演算をする感覚で順伝播処理をすると同時に、逆伝播 ⽤の計算グラフが構築される l Chainer, DyNet, PyTorchなど 8
擬似コードで⽐較する define-and-run # 構築 x = Variable(‘x’) y = Variable(‘y’)
z = x + 2 * y # 評価 for xi, yi in data: eval(z, (xi, yi)) define-by-run # 構築と評価が同時 for xi, yi in data: x = Variable(xi) y = Variable(yi) z = x + 2 * y 9 データを⾒ながら 違う処理をしてもよい
なぜ、⾃由度の⾼いフレームワークが必要か? 深層学習とは階層の深いだけではなくなってきている l 深いボルツマンマシン l 深い畳込みニューラルネットワーク l 再帰ニューラルネットワーク l 双⽅向再帰ネットワーク
l 注意機構 ⼿法⾃体がどんどん複雑化して、古いフレームワークは新⼿法を扱い づらくなっていく 10
研究開発・実⽤化を加速する様々なプロジェクトを紹介 l ChainerMN l 複数ノード上で分散計算するChainer l ChainerRL l Chainerを利⽤した深層強化学習ライブラリ l
Intel版Chainer l Intel CPU上で最適化されたChainer
l 2015/04 Chainer開発開始 l 2015/06 Chainer 1.0.0公開 l 2015/11 TensorFlow公開
l 2017/01 ChainerMNの実験結果公表 l 2017/01 PaintsChainer公開 l 2017/02 ChainerRL公開 l 2017/03 Intel版Chainerのリポジトリが公開 l 2017/05 Chainer 2.0.0公開予定
ChainerMN
ChainerMN Chainerの使いやすさはそのままに,複数GPU,複数ノード環境で⾼ 速に学習することができる GPU GPU InfiniBand GPU GPU InfiniBand
ノード内通信とノード間通信をそれぞれ最適化 InfiniBand MPI ChainerMN pyMPI NCCL NVIDIA GPU ノード内 ノード間
CuPy
既存のコードを多少書き換えるだけで利⽤できる optimizer = chainer.optimizers.MomentumSGD() optimizer = chainermn.DistributedOptimizer( chainer.optimizers.MomentumSGD())
GPUの数にほぼ⽐例した性能向上
実時間に対する学習速度も向上
他のフレームワークに⽐べても⾼速
None
ChainerRL
ChainerRL Chainerを使った深層強化学習フレームワーク https://github.com/pfnet/chainerrl
強化学習は試⾏錯誤で学習する⼿法 どうすればいいか(教師データ)を教えるのではなく,試 ⾏錯誤して正しい⽅法を探す学習⽅法 教師あり学習:いつペダルを踏むかを教える 強化学習:倒れずに前に進む⽅法を試⾏錯誤
24
深層学習が簡単になったため,⼿法が複雑化 Chainer 全部⾃作 深層学習 Chainer 深層学習 が複雑化 Chainer ChainerRL 深層学習
Intel版Chainer
ハードウェアの選択は速度だけが重要ではない l 利⽤シーンの違い l 運⽤コストの違い l 消費電⼒の違い
Intel版Chainer Github上でIntel CPU向けに最適化されたChainerの開発 が開始 https://github.com/intel/chainer
Intel CPU上でのChainer Chainer MKL-DNN MKL (Math Kernel Library) Intel CPU
MKL NumPy OpenBLAS/ATLAS NumPy
MKL-DNNはCPU向けの最適化された深層学習ライブラリ l MKL (Intel Math Kernel Library) l Intel製の数値計算ライブラリ l
NumPyのバックエンドとして利⽤可能 l MKL-DNN l Intel CPU向けに最適化された深層学習ライブラリ l https://github.com/01org/mkl-dnn
まとめ l Chainerは⾃由度の⾼い深層学習フレームワーク l Chainerの周辺で様々なプロジェクトが進⾏中 l ChainerMN:⼤規模分散学習 l ChainerRL:深層強化学習ライブラリ l
Intel版Chainer:CPU向けの最適化 l 深層学習のみならず,HPCや⾼度な機械学習,コードの最適化な ど,様々な分野の専⾨家を求めています
None