Submit Search
Upload
JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7
•
Download as PPTX, PDF
•
62 likes
•
36,763 views
Kotaro Nakayama
Follow
JSAI's AI Tool lecture series part 6,7,8. Deep Learning, the glance, Pylearn2 and Torch7
Read less
Read more
Science
Report
Share
Report
Share
1 of 114
Download now
Recommended
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Kotaro Nakayama
ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題
Kenta Oono
実装ディープラーニング
実装ディープラーニング
Yurie Oka
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Kenta Oono
Introduction to Chainer (LL Ring Recursive)
Introduction to Chainer (LL Ring Recursive)
Kenta Oono
How to Develop Experiment-Oriented Programs
How to Develop Experiment-Oriented Programs
Kenta Oono
ChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なこと
Retrieva inc.
Cvim saisentan-6-4-tomoaki
Cvim saisentan-6-4-tomoaki
tomoaki0705
Recommended
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Kotaro Nakayama
ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題
Kenta Oono
実装ディープラーニング
実装ディープラーニング
Yurie Oka
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Kenta Oono
Introduction to Chainer (LL Ring Recursive)
Introduction to Chainer (LL Ring Recursive)
Kenta Oono
How to Develop Experiment-Oriented Programs
How to Develop Experiment-Oriented Programs
Kenta Oono
ChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なこと
Retrieva inc.
Cvim saisentan-6-4-tomoaki
Cvim saisentan-6-4-tomoaki
tomoaki0705
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA Japan
Convolutional Neural Network @ CV勉強会関東
Convolutional Neural Network @ CV勉強会関東
Hokuto Kagaya
Introduction to Chainer and CuPy
Introduction to Chainer and CuPy
Kenta Oono
ChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なこと
Jiro Nishitoba
PythonによるDeep Learningの実装
PythonによるDeep Learningの実装
Shinya Akiba
日本神経回路学会セミナー「DeepLearningを使ってみよう!」資料
日本神経回路学会セミナー「DeepLearningを使ってみよう!」資料
Kenta Oono
【2017年】ディープラーニングのフレームワーク比較
【2017年】ディープラーニングのフレームワーク比較
Ryota Suzuki
はじめての人のためのDeep Learning
はじめての人のためのDeep Learning
Tadaichiro Nakano
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
NVIDIA Japan
Chainer の Trainer 解説と NStepLSTM について
Chainer の Trainer 解説と NStepLSTM について
Retrieva inc.
Chainerで学ぶdeep learning
Chainerで学ぶdeep learning
Retrieva inc.
多層NNの教師なし学習 コンピュータビジョン勉強会@関東 2014/5/26
多層NNの教師なし学習 コンピュータビジョン勉強会@関東 2014/5/26
Takashi Abe
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
Yahoo!デベロッパーネットワーク
Kerasで深層学習を実践する
Kerasで深層学習を実践する
Kazuaki Tanida
機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編
Daiyu Hatakeyama
進化するChainer
進化するChainer
Yuya Unno
AlphaGo Zero 解説
AlphaGo Zero 解説
suckgeun lee
Jupyter NotebookとChainerで楽々Deep Learning
Jupyter NotebookとChainerで楽々Deep Learning
Jun-ya Norimatsu
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
Yasuyuki Sugai
20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術
Preferred Networks
JAWS DAYS 2022
JAWS DAYS 2022
陽平 山口
再考: お買い得物件を機械学習で見つける方法
再考: お買い得物件を機械学習で見つける方法
智志 片桐
More Related Content
What's hot
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA Japan
Convolutional Neural Network @ CV勉強会関東
Convolutional Neural Network @ CV勉強会関東
Hokuto Kagaya
Introduction to Chainer and CuPy
Introduction to Chainer and CuPy
Kenta Oono
ChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なこと
Jiro Nishitoba
PythonによるDeep Learningの実装
PythonによるDeep Learningの実装
Shinya Akiba
日本神経回路学会セミナー「DeepLearningを使ってみよう!」資料
日本神経回路学会セミナー「DeepLearningを使ってみよう!」資料
Kenta Oono
【2017年】ディープラーニングのフレームワーク比較
【2017年】ディープラーニングのフレームワーク比較
Ryota Suzuki
はじめての人のためのDeep Learning
はじめての人のためのDeep Learning
Tadaichiro Nakano
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
NVIDIA Japan
Chainer の Trainer 解説と NStepLSTM について
Chainer の Trainer 解説と NStepLSTM について
Retrieva inc.
Chainerで学ぶdeep learning
Chainerで学ぶdeep learning
Retrieva inc.
多層NNの教師なし学習 コンピュータビジョン勉強会@関東 2014/5/26
多層NNの教師なし学習 コンピュータビジョン勉強会@関東 2014/5/26
Takashi Abe
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
Yahoo!デベロッパーネットワーク
Kerasで深層学習を実践する
Kerasで深層学習を実践する
Kazuaki Tanida
機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編
Daiyu Hatakeyama
進化するChainer
進化するChainer
Yuya Unno
AlphaGo Zero 解説
AlphaGo Zero 解説
suckgeun lee
Jupyter NotebookとChainerで楽々Deep Learning
Jupyter NotebookとChainerで楽々Deep Learning
Jun-ya Norimatsu
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
Yasuyuki Sugai
20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術
Preferred Networks
What's hot
(20)
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
Convolutional Neural Network @ CV勉強会関東
Convolutional Neural Network @ CV勉強会関東
Introduction to Chainer and CuPy
Introduction to Chainer and CuPy
ChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なこと
PythonによるDeep Learningの実装
PythonによるDeep Learningの実装
日本神経回路学会セミナー「DeepLearningを使ってみよう!」資料
日本神経回路学会セミナー「DeepLearningを使ってみよう!」資料
【2017年】ディープラーニングのフレームワーク比較
【2017年】ディープラーニングのフレームワーク比較
はじめての人のためのDeep Learning
はじめての人のためのDeep Learning
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
Chainer の Trainer 解説と NStepLSTM について
Chainer の Trainer 解説と NStepLSTM について
Chainerで学ぶdeep learning
Chainerで学ぶdeep learning
多層NNの教師なし学習 コンピュータビジョン勉強会@関東 2014/5/26
多層NNの教師なし学習 コンピュータビジョン勉強会@関東 2014/5/26
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
Kerasで深層学習を実践する
Kerasで深層学習を実践する
機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編
進化するChainer
進化するChainer
AlphaGo Zero 解説
AlphaGo Zero 解説
Jupyter NotebookとChainerで楽々Deep Learning
Jupyter NotebookとChainerで楽々Deep Learning
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術
Similar to JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7
JAWS DAYS 2022
JAWS DAYS 2022
陽平 山口
再考: お買い得物件を機械学習で見つける方法
再考: お買い得物件を機械学習で見つける方法
智志 片桐
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
Masahiro Nagano
Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...
Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...
Shotaro Suzuki
JAWSUG 20210128
JAWSUG 20210128
陽平 山口
Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装
Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装
Satoshi Nagayasu
DLL#3 Microsoft Community & AI Update
DLL#3 Microsoft Community & AI Update
Hirono Jumpei
Watson summit 2016_j2_5
Watson summit 2016_j2_5
Tanaka Yuichi
最近のRのランダムフォレストパッケージ -ranger/Rborist-
最近のRのランダムフォレストパッケージ -ranger/Rborist-
Shintaro Fukushima
elixir in production
elixir in production
Tsunenori Oohara
Keycloak & midPoint の紹介
Keycloak & midPoint の紹介
Hiroyuki Wada
エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned
エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned
Daiki Kawanuma
Tokyo r50 beginner_2
Tokyo r50 beginner_2
Takashi Minoda
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
Yusuke Suzuki
20160728 hyperscale #03
20160728 hyperscale #03
ManaMurakami1
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
Fixstars Corporation
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Yasuyuki Sugai
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎
Preferred Networks
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
Hiroki Nakahara
0730 bp study#35発表資料
0730 bp study#35発表資料
Yasuhiro Horiuchi
Similar to JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7
(20)
JAWS DAYS 2022
JAWS DAYS 2022
再考: お買い得物件を機械学習で見つける方法
再考: お買い得物件を機械学習で見つける方法
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...
Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...
JAWSUG 20210128
JAWSUG 20210128
Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装
Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装
DLL#3 Microsoft Community & AI Update
DLL#3 Microsoft Community & AI Update
Watson summit 2016_j2_5
Watson summit 2016_j2_5
最近のRのランダムフォレストパッケージ -ranger/Rborist-
最近のRのランダムフォレストパッケージ -ranger/Rborist-
elixir in production
elixir in production
Keycloak & midPoint の紹介
Keycloak & midPoint の紹介
エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned
エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned
Tokyo r50 beginner_2
Tokyo r50 beginner_2
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
20160728 hyperscale #03
20160728 hyperscale #03
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
0730 bp study#35発表資料
0730 bp study#35発表資料
JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7
1.
ディープラーニングツール 「Pylearn2」「Torch7」 とその仕組み The University of
Tokyo K. Nakayama #AIT8
2.
今日の目次 • Deep Learning基礎 •
環境構築 • Pylearn2 基礎編 • Pylearn2 応用編 • ライブラリ比較 • Torch7 • まとめ
3.
今日の目次 • Deep Learning基礎 •
環境構築 • Pylearn2 基礎編 • Pylearn2 応用編 • ライブラリ比較 • Torch7 • まとめ
4.
ニューラルネットワーク 再訪
5.
ニューラルネットワーク? x0 x1 xn y0
y1 yn… … Out In Hidden Units
6.
ニューラルネットワーク? x0 x1 xn y0
y1 yn… … Out In Hidden Units ?
7.
線形分離不能な問題
8.
アプリケーション例 レストラン評価マイニング 入力:単語集合良い レストラン度 低い クオリティ 値段 },,,{
値段クオリティ低い高いx 高い
9.
ニューラルネットワークの学習 x0 x1 xn y0
y1 yn… … Out In Hidden Layer 0 1 9 Error Error
10.
主なビルディングブロック • 誤差逆伝播法(BP) • 最急降下法 •
確率的勾配降下法(SGD) • 活性化関数 –シグモイド関数 / tanh • コスト関数: –二乗和誤差 –交差エントロピー誤差
11.
活性化関数 ステップ関数 シグモイド関数 a a af ,1 ,1 )( )exp(1 1 )( a af 微分可能
12.
ニューラルネットワークの学習 x0 x1 xn y0
y1 yn… … Out In Hidden Layer 0 1 9 Error Error
13.
いろんな ニューラルネットワーク x0 x1 xn y0
y1 yn… … Out In Hidden Layer 前層への出力を持つもの
14.
いろんな ニューラルネットワーク ネットワーク形状のもの ホップフィールドモデルなど
15.
多層パーセプトロン(MLP) x0 x1 xn y0
y1 yn… … Out In Hidden Layer
16.
身近なNN • 画像認識 • 文字認識 •
ロボット制御 • 天気予報 • 巡回セールスマン問題 • ゲームのアルゴリズム
17.
NNの問題 • 従来のNN – すぐに局所解に陥る –
オーバーフィッティング • 多層にすることで表現力は上がるが… – 下層へ誤差情報が伝播されない – 収束速度が遅い
18.
Deep Learning
19.
Deep Learning ~研究サイド~ • Hinton
2006 – 1階層ごとに教師無し学習で事前訓練すれば良い結果 が得られることを示した • 大規模解析をすれば、高次の概念を学習できる? – Google 猫ニューロン • 各種コンペで上位がことごとく Deep Learningが上位を占める • 何が良いのか? – 「特徴表現学習」 – 多層にしても学習ができる。収束する – 汎化性能が高い
20.
Google 猫ニューロン
21.
Deep Learningの アルゴリズムたち
22.
- SdA - Stacked Denoising Autoencoder
23.
SdA x0 x1 xn y0
y1 yn… … Out In Hidden Layer
24.
SdA - dA x0
x1 xn…In Hidden Layer Encode Decode 入力情報を復元
25.
SdA - dA x0
x1 xn…In Hidden Layer Encode Decode … Hidden Layer 前の層の情報を復元
26.
SdA - Denoising? x0
x1 xn…In Hidden Layer Encode Decode … Hidden Layer ロバスト性を高める
27.
… Input Visible Hidden Layer Layer Layer Output (Top level
layer) Label Pre-training Encode Decode Fine-tuning
28.
- DBN - Deep Belief Network
29.
DBN • RBM: Restricted
Boltzmann Machine Ref. deeplearning.net
30.
RBM • 生成モデル • データの分布をモデル 化するアルゴリズム •
CD-k, CD-1 • An Introduction to Restricted Boltzmann Machines 参照 0x 1x 2x 3x Visible Layer Hidden Layer 0h 1h 2h 3h
31.
Convolutional DBN Honglak Lee,
et al., Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hierarchical Representations (ICML 2009)
32.
Pylearn2
33.
Pylearn2の構造 Python C /
C++ / Fortran SdADBN Convolutional NN CUDANumpy Theano (Python) Tensor / Gradient / Algebra / Code Gen. BlasScipy Pylearn2
34.
Pylearn2とは • Yoshua Bengio先生の研究室 •
LISAラボ発祥 • Theanoをベース • Theanoの自動微分が秀逸 • GPUコードの生成も可能
35.
今日の目次 • Deep Learning基礎 •
環境構築 • Pylearn2 基礎編 • Pylearn2 応用編 • ライブラリ比較 • Torch7 • まとめ
36.
まずはPylearn2
37.
Pylearn2の環境構築 • 依存関係 – Theano,
PIL, matplotlib • 手順 – Git cloneでソースを取得 – setup.py – 環境変数の設定 • 簡単と思いきや結構面倒な部分も – Theano,PyYAML,環境変数とか... • VM配布:Vagrant
38.
Pylearn2_installer
39.
インストーラが必要? わりと大変な場合もある • Theanoは必要なパッケージが多い – Blas,
numpy, scipy, ipython, PyYAML, … • バージョンの制限が強いものもある • どのパッケージ管理を使うか? – Tar.gz, configure, make – APT – PIP / easy_installer • 環境変数
40.
Torchは?
41.
Torch環境の構築 • pylearn2, Torch7,
Caffeの中では最も導入がス ムーズなイメージ • 基本的な手順 – Git, Curlのインストール – Gitからソースをクローン – インストールスクリプトの実行 • VM配布:Docker,AMI • 今回配布のAWSのイメージにはすでにインストー ル済み
42.
環境構築が終わっている人 ~ Theanoを使ってみよう ~ つまり2
* x
43.
Theano Sample2 ((fill(sigmoid(x), TensorConstant{1.0}) *
sigmoid(x)) * (TensorConstant{1.0} - sigmoid(x))) fill(a, b):aの形の行列をbの値で埋める つまりsigmoid(x) * (1.0 – sigmoid(x))
44.
Theano Sample3 (((fill(sigmoid((x * w)),
TensorConstant{1.0}) * sigmoid((x * w))) * (TensorConstant{1.0} - sigmoid((x * w)))) * x) 変数が行列でもOK コスト関数に対する各パラメータの微分も自動で計算
45.
Pylearn2のすごさ • SGDの実装とTheanoの自動微分が秀逸 • グラディエント –
W, W’, vb, hb – FineTune時の各レイヤーのパラメータ
46.
今日の目次 • Deep Learning基礎 •
環境構築 • Pylearn2 基礎編 • Pylearn2 応用編 • ライブラリ比較 • Torch7 • まとめ
47.
Pylearn2の 主要なディレクトリ • Datasets • Scripts –
Tutorials • Deep_trainer • Stacked_autoencoders • Grbm_smd – Papers • Dropout • Maxout • Training_algorithms • Models 利用する人 研究する人
48.
Grbm_smd? • Quick-Start サンプル •
CIFAR10を利用した画像認識 • Usage: $ cd ~/pylearn2/pylearn2/scripts/tutorials/grbm_smd $ python make_dataset.py (実行済み) $ train.py cifar_grbm_smd.yaml (2m+) $ show_weights.py --out=weights.png cifar_grbm_smd.pkl $ print_monitor.py cifar_grbm_smd.pkl
49.
CIFAR10
50.
train.py? • YAMLファイルに記述されいている内容に従 い、学習するためのスクリプト • 学習結果をpklファイルとして出力 •
出力の読み方 – Epochs seen:学習回数 – Objective: 目的関数 (エポックに応じて下がることを確認する)
51.
YAMLの読み方
52.
Mini-batch SGD SGD 1つだけ利用 X X X X X X X X y y y y y y y y Batch-SGD 全部 X y Minibatch SGD X X X y y y
53.
Mini-batch SGD SGD 1つだけ利用 Batch-SGD 全部 Minibatch SGD Andrew Ng.資料より
54.
Pylearn2の一般的な使い方 • YAMLの作成 • train.py実行 •
評価・変更 – show_weights.py --out=weights.png xxx.pkl – print_monitor.py xxx.pkl | grep test_y_misclass
55.
ちょっと複雑な例「SdA」 • Datasets • Scripts –
Tutorials • Deep_trainer • Stacked_autoencoders • Grbm_smd – Papers • Dropout • Maxout • Training_algorithms • Models 利用する人 研究する人
56.
Stacked_autoencoders? • SdAのサンプル • MNISTを利用した画像認識 •
Usage: $ cd ~/pylearn2/pylearn2/scripts/datasets $ python download_mnist.py (実行済み) $ cd ~/pylearn2/pylearn2/scripts/tutorials/ stacked_autoencoders/tests $ python test_dae.py
57.
MNIST?
58.
Stacked Autoencoderの構造 • 3つのYAMLファイル –
Dae_l1.yaml (1つ目のdAレイヤー) – Dae_l2.yaml (2つ目のdAレイヤー) – Dae_mlp.yaml(全体のMLP) • Test_dae.py – パラメータを設定 – 1st dA のPre-train – 2nd dA のPre-train – 全体のFine-Tune
59.
さらに複雑な例「Deep Trainer」 • Datasets •
Scripts – Tutorials • Deep_trainer • Stacked_autoencoders • Grbm_smd – Papers • Dropout • Maxout • Training_algorithms • Models 利用する人 研究する人
60.
Deep_trainer? • SdAなどをさらに多層することが可能 • MNIST/CIFARなどに対応 •
YAMLを使わない方法 • Usage: $ cd ~/pylearn2/pylearn2/scripts/tutorials/ deep_trainer $ python run_deep_trainer.py –d mnist (1m+)
61.
今日の目次 • Deep Learning基礎 •
環境構築 • Pylearn2 基礎編 • Pylearn2 応用編 • ライブラリ比較 • Torch7 • まとめ
62.
「Maxout」 • Datasets • Scripts –
Tutorials • Deep_trainer • Stacked_autoencoders • Grbm_smd – Papers • Dropout • Maxout • Training_algorithms • Models 利用する人 研究する人
63.
Maxout? • Maxout Networksの論文で発表した内容 •
MNISTを利用した画像認識 • CIFAR用YAMLもある • Usage: $ cd ~/pylearn2/pylearn2/scripts/papers/maxout $ train.py mnist_pi.yaml (904m23.683s (15h)) (途中で止める) $ train.py mnist_pi_continue.yaml (実行しない)
64.
Maxout • 活性化関数を学習する • Ian
J. G., Maxout Networks • MNIST エラー率 0.94%,CIFAR 11.68%
65.
Maxout 各種凸関数の近似 Ref; Maxout Networks
66.
Dropout • ランダムにニューロンを停止する • オーバーフィッティングを防ぐことができる •
実装上はマスキングベクトル(1/0)をかける • シンプルな割にかなり有効
67.
次のステップは?
68.
GPUを利用しましょう
69.
GPU • Maxoutの計算時間 – on
AWS 904m23.683s (15h) – with GeForce GTX 780 Ti 1482.33s (24m, 36x faster) • 利用方法 – ~/.theanorc に以下を記述 [global] device=gpu floatX = float32
70.
Pylearn2 / Deep
Learning 注意事項 • Pre-trainあるか無いかより、パラメータのほうが大 きな影響を与える – Learning Rate – Batch size – Epoch数 – Hiddenレイヤーのユニット数 • Pre-trainは最後の寄り切りに近い? – 高次のフィーチャを取得できる可能性もある
71.
Pylearn2ハック
72.
Deep Learningハック • なぜハックするか? –
論文を読むと分かった気になるが… • なぜPylearn2はハックする必要があるか? – ライブラリとしては未完 – カスタマイズが必要 – 汎用データ形式に対応してない – 学習の過程がわかりにくい – 学習と検証は分けたい – YAMLの定義が面倒 – 新しいアルゴリズムを作りたい…
73.
新しいデータへ適用したい
74.
新しいデータへの対応方法 • 基本 – pylearn2/pylearn2/datasetsにクラスを追加 •
汎用っぽいものもある – Npy dataset – CSVDataset – MatlabDataset – Vectorspacesdataset – だいたいが情報不足・動作するか不明 • ハック – pylearn2/pylearn2/datasets/libsvm.py
75.
LibSVM形式 行の先頭にクラス 以降、素性と値
76.
そもそもYAML定義や Pythonコードが面倒
77.
Confusion Matrix • 正解ベクトルと出力ベクトルの内積を単純に足したもの •
クラス「0」の正解データを利用して推定した結果、「0」に推定される場合 が非常に多く、975.276 • また、次に高い値はクラス「6」の1.842であり、0を6と間違える場合が多 い • 5は3,6、 8、0と間違えやすい 0 1 2 3 4 5 6 7 8 9 0 975.276 0.028 0.780 0.008 0.805 0.101 1.842 0.997 0.120 0.043 1 0.043 1132.765 0.629 0.915 0.003 0.012 0.361 0.107 0.165 0.000 2 4.347 0.413 1018.481 1.295 0.594 0.000 0.200 3.574 3.068 0.028 3 0.086 0.005 0.042 999.280 0.001 2.165 0.000 2.536 3.172 2.714 4 0.850 0.085 1.659 0.002 963.359 0.008 4.337 0.975 0.061 10.664 5 1.989 0.046 0.000 7.363 0.112 878.174 2.081 0.514 1.093 0.629 6 2.976 2.145 0.034 0.030 1.111 1.547 948.634 0.000 1.519 0.003 7 0.161 2.472 5.211 0.101 0.117 0.088 0.020 1014.079 2.260 3.493 8 1.488 0.162 1.436 1.994 0.287 0.760 0.332 3.108 959.650 4.784 9 0.464 2.996 0.005 1.987 6.322 2.243 0.012 2.926 1.182 990.864
78.
学習過程の可視化
79.
80.
(偽)Handwritingデータ • Datasets/Handwritingクラスの作成 • WindowsのTTF •
変形 – 拡大・縮小 – 平行移動 – 回転
81.
認識精度の可視化
82.
構成 Server Side Client
Side jQuery Backbone.js Socket.io Socket.io.js python pylearn2 dl_hacks lib socketio dl_tester socketio
83.
Pylearn2まとめ • Pylearn2 /
Theano – Theanoをベースにしているので拡張性が高い – SdA,DBN,Maxout… – GPUへの対応が用意 • ライブラリとしては未完 • ハックが必要 – データ読み込み – パラメータ調整 – 可視化
84.
今日の目次 • Deep Learning基礎 •
環境構築 • Pylearn2 基礎編 • Pylearn2 応用編 • ライブラリ比較 • Torch7 • まとめ
85.
Deep Learningに関する ライブラリ • 殿堂入り –
Theano / Pylearn2 – Caffe – Torch7 • Deeplearning.jp – GeSdA • ニューフェイス – Keras – Chainer (PFI)
86.
Theano / Pylearn2 •
Maxout,Dropout,CNN,RBM,SdAなど有 名どころは一通りそろっている • Theanoの自動微分が秀逸 • GPU / CPUの切り替えが楽 • YAMLでネットワークを定義 • 拡張性が高い • おもてなしの精神が少し欠けてる – 定義の冗長性 – 機能性,汎用性 – ドキュメント更新してほしい
87.
Caffe • 画像処理では不動の位置を確立 • 高速 •
コミュニティが強力 • 精度の高い定義などが数多く公開されている • 各種のバインディングが充実 • モデルを書くときは結局CかC++ • やっぱりおもてなしの精神が少し欠けてる – すんごい長いPrototext – 機能性,汎用性
88.
Torch7 • 機械学習向けの数値計算機能が豊富 • Facebookの参入など成長著しい •
非常に簡潔にネットワークの定義が可能 • 強力なパッケージ管理機能 • Lua言語 -> Cへのインタフェース • やっぱりおもてなしの精神が少し欠けてる – 機能面
89.
Deep Learningに関する ライブラリ • 殿堂入り –
Theano / Pylearn2 – Caffe – Torch7 • Deeplearning.jp – GeSdA • ニューフェイス – Keras – Chainer (PFI)
90.
GeSdA? GPU enpowered Stacked denoising Auto-encoder
91.
GeSdA • GPUベースのSdA – Minibatch-SGD –
Numpy + Blasの5~16倍程度高速 – GPU / Numpyの切り替えオプション • グリッドサーチ機能、パラメータ自動調整(LR) • インタラクティブな可視化機能 • 汎用データセットへの対応(LibSVM形式) • 精度:MNISTで98.7% – Bengio’s Tutorial: 98.5% – Maxout on Pylearn2: 99% 以上
92.
GPU? • グラフィック(3D等)のレンダリングに利用 • Nvidia
Geforce GTX 780 Ti – 2,880コア – 5,040 GFLOPS • Intel Xeon E5-4650 – 8コア – 172.8 GFLOPS Source: Nvidia
93.
Source: Nvidia
94.
Deep Learning ライブラリの状況 • Pylearn2 –
Python, Numpy, Theanoベース – 依存ライブラリが多すぎる – 使い勝手が... • Caffe – Cがメイン – Pythonなどのインタフェースはあるが – Pylearn2に負けずと依存関係が大変 – Include,ライブラリのリンクが面倒... • Torch7 – Lua言語
95.
GeSdAの構造 Python C /
C++ / Fortran SdADBN Convolutional NN CUDANumpy BlasPyCUDA GeSdA GeSdA ユーティリティ
96.
GeSdA - YAML
97.
GeSdA – YAML 可変長レイヤー数対応グリッドサーチ
98.
GeSdA - グリッドサーチ
99.
アプリケーション
100.
DeepMotion | GeSdA
101.
Torch7 • Facebookの参入など成長著しい • 強力なパッケージ管理機能 •
非常に簡潔にネットワークの定義が可能 • Deep Learningのパッケージが充実 • 強力なLua言語→C言語バインディング
102.
Torch7 • Facebookの参入など成長著しい • 強力なパッケージ管理機能 •
非常に簡潔にネットワークの定義が可能 • Deep Learningのパッケージが充実 • 強力なLua言語→C言語バインディング
103.
luarocks • パッケージ管理ツール – pip,
cpan, pearみたいなもの • 各種のパッケージが公開されている – image, csvigo • Deep Learning系パッケージ – nn, unsup, dp • Usage $ luarocks install [package]
104.
Torch7 • Facebookの参入など成長著しい • 強力なパッケージ管理機能 •
非常に簡潔にネットワークの定義が可能 • Deep Learningのパッケージが充実 • Lua言語
105.
MLPを作ってみよう
106.
動かしてみよう • まずはダウンロード – $
wget knakayama.com/tmp/exercise/mlp_xor.lua • 二つの実行方法 – コマンドラインから実行 $ th mlp_xor.lua – インタプリタから実行 $ th > dofile(‘mlp_xor.lua’)
107.
Torch7のSequential 直感的な理解 • Sequentialで入れ物を作る • nn.Moduleの組み合わせ –
Tanh, Linear – SpatialConvolutionMM – ReLU • nn.Moduleの持つ関数 – Forward, backward
108.
109.
CNNの例
110.
Torch7 • Facebookの参入など成長著しい • 強力なパッケージ管理機能 •
非常に簡潔にネットワークの定義が可能 • Deep Learningのパッケージが充実 • Lua言語
111.
Deep Learning系パッケージ • nn –
非常に簡潔にMLPが書ける – ある程度レイヤー,評価関数などがそろっている – CNNまでは非常に簡潔に書ける • dp – nnの拡張パックに近いイメージか – Alexnet,CNN,RNNなど最近のアルゴリズムを中心に, カスタマイズしやすいネットワークや便利機能を提供 – 言語モデル,顔認識など • unsup – Autoencoder系の実装がある – k-means, PCAなども • fbcunn – Facebook製のCUDA対応nn – 高速(らしい) – インストールが大変だが...
112.
今日の目次 • Deep Learning基礎 •
環境構築 • Pylearn2 基礎編 • Pylearn2 応用編 • ライブラリ比較 • Torch7 • まとめ
113.
今日のポイント + いいたいこと • Deep
Learningはまだ発展途上の技術 • まだまだ拡張・ハックが必要 • Caffe,Pylearn2に続く期待のTorch7も紹介 • GeSdA開発中 • 新しいライブラリも続々登場中 • まだノウハウの蓄積が必要 Deeplearning.jp
114.
ご静聴 ありがとうございました
Editor's Notes
Simard et al. (2003)が,クラス分類では交差エントロピー誤差関数のほうが二乗和誤差関数より良いことを示した(訓練速度・汎化能力共に)
2 phases: Pre-training, feature extraction, Tuning Unsupervised, supervised.
Download now