![Page 1: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/1.jpg)
MATLABで始める
機械学習/Deep Learning ア・ラ・カルト
G-DEPソリューションパートナー (株)システム計画研究所
村瀬知彦・山本真司
2015/06/08 @計算工学講演会
![Page 2: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/2.jpg)
何ができる?
ハンドサイン認識中
![Page 3: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/3.jpg)
本日のお品書
• MATLABとは?
• 機械学習とは?
• ア・ラ・カルト(デモ)
1. Hinton先生の再現
2. Neural Network Toolbox
3. RCNNの再現
• 弊社について
![Page 4: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/4.jpg)
1. Hinton先生の再現 2006年に発表された画期的な成果
MATLAB で実装
2. Neural Network Toolbox Toolbox で AutoEncoder を手軽に実装したサンプル
3. RCNNの再現 MATLAB と Deep Learning ミドルウェアのコラボの例
2014年発表の出来立てホヤホヤの成果
3種のデモとMATLAB
本日のお品書
多くの研究者が成果をMATLABコードで発表!
![Page 5: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/5.jpg)
MATLABとは?
http://jp.mathworks.com/products/matlab/features.htmlより
![Page 6: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/6.jpg)
MATLABとは?
http://jp.mathworks.com/products/matlab/features.htmlより
![Page 7: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/7.jpg)
MATLABとは?
• 元々 MATrix LABoratory の略
• 名は体を表し、行列演算が得意
• A = [1 2 0; 2 5 -1; 4 10 -1] ,A’ (転置)と書くと、
A = A’ = となり、
• B = A*A’ と書けば、行列同士の積となる
• コードがシンプルになります
1, 2, 0 2, 5,-1 4,10,-1
1, 2, 4 2, 5,10 0,-1,-1
![Page 8: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/8.jpg)
MATLABとは?
• さらに分野特化の機能は Toolbox として提供
• 今日は、以下を紹介
– Parallel Computing Toolbox(公式)
– Statistics and Machine Learning Toolbox (公式)
– Neural Network Toolbox(公式)
– Deep Learning Toolbox (コミュニティ)
• Toolbox の公式コミュニティ(MATLAB Central)も運営されています
![Page 9: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/9.jpg)
機械学習とは?
• そも、機械学習とは?
「与えられたデータから判断基準を学ぶもの」と見たり!
「未知のデータも判断できるといいネ!」
• そのためには、
データの本質をついた特徴を見つけ出し、
賢く判断できるようになればいいのでは?
![Page 10: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/10.jpg)
賢い 判断
機械学習のアプローチ
機械学習とは?
データ
データの本質 判別結果
![Page 11: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/11.jpg)
機械学習のアプローチ
機械学習とは?
データ 判別結果
ラベル・値・etc 分類器 回帰器
SVM,NN,RandomForest etc
特徴量
SIFT,HOG,PCA etc
ベクトル空間
![Page 12: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/12.jpg)
機械学習のアプローチ
機械学習とは?
データ 判別結果
ラベル・値・etc 分類器 回帰器
SVM,NN,RandomForest etc
特徴量
SIFT,HOG,PCA etc
ベクトル空間
研究者が
頑張って考える職人芸の世界
コンピューターに賢く学習してもらう 手法が発展
![Page 13: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/13.jpg)
Deep Learningの凄いところ
機械学習とは?
データ 特徴量
分類器 回帰器
ラベル・値・etc
Deep Neural Network
自動抽出 表現学習とも言います
![Page 14: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/14.jpg)
Deep Learningの凄いところ
機械学習とは?
データ 特徴量
分類器 回帰器
ラベル・値・etc
Deep Neural Network
自動抽出 表現学習とも言います
ここが画期的! 30年来の
ブレークスルー
データは とても沢山 必要
![Page 15: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/15.jpg)
• データからパターンを学習 – 判別、回帰、クラスタリング、etc
• パーセプトロン 1960頃~ – 特徴空間を線形に分離
• 多層パーセプトロン 1980頃~ – 3層構造でOK
– 非線形に分離する複雑な手法が発展
– SVM, Boosting, Neural Network, ... など 1990頃~
• Deep Learning 2006頃~ – ネオコグニトロンなどの先行研究
– Layer-wise Training 2006年(Hinton先生の有名な論文) Deep Neural Networkの学習が過学習してしまう問題を解決
– Convolutional Neural Network 2012年
機械学習の発展~Deep Learningの登場
機械学習とは?
![Page 16: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/16.jpg)
ア・ラ・カルト
1. Hinton先生の再現
– Restricted Boltzman Machine
2. Neural Network Toolbox
– AutoEncoder
– Parallel Computing Toolbox
3. RCNNの再現
– Regions with CNN feature
– Caffe と cuDNN
![Page 17: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/17.jpg)
Hinton先生の再現
• 2006年に発表された画期的な論文
• ここから現在のDLの勃興が始まったとも
• 何が画期的?
• Layer-wise Pre-training という手法を提案して、従来からあったDNNがうまく学習できない悩み(逆誤差伝搬に関する問題)を解消
• Pre-training は教師なし学習
• Fine Tuning は教師あり学習
![Page 18: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/18.jpg)
逆誤差伝搬(バックプロパゲーション)
推論
X1
W1 W2 W3 W4
Y
b
X2 X3 X4
W1 W2 W3 W4
b
学習 誤差伝搬
・・・ 推論結果 Y
入力データ X
誤差伝搬
誤差が小さくなるようにwを調整
誤差がうまく
伝わらない層は学習できない!
Hinton先生の再現
![Page 19: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/19.jpg)
• 教師あり学習
–教師データと学習データをペアにして学習させる方法
• 教師なし学習
–学習データのみで学習する方法
学習(教師ありと教師なし) Hinton先生の再現
![Page 20: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/20.jpg)
識別モデル
–識別器を学習する
– SVM/Random Forest/CNN など
生成モデル
–入力データの生成確率を学習する
– Naive Bayes/RBM など
モデル(識別モデルと生成モデル) Hinton先生の再現
![Page 21: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/21.jpg)
• 生成モデルに基づく、Restricted Boltzman Machine(RBM) を多数重ねたDeep Belief Network(DBN)です
Hinton先生のネットワーク Hinton先生の再現
http://qiita.com/t_Signull/items/f776aecb4909b7c5c116
![Page 22: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/22.jpg)
• RBMの式
Restricted Boltzman Machine Hinton先生の再現
https://dl.dropboxusercontent.com/u/2048288/RestrictedBoltzmannMachine.pdf
ここで、
![Page 23: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/23.jpg)
Layer-wise Pre-Training(RBM) Hinton先生の再現
1. 一番下の4+3の層に着目 2. RBMとして学習 3. 上の3+4の層に着目 4. 前の層の出力を入力にする 5. RBMとして学習 6. 順次、上の層をRBMとして学習 7. 他の層のことを気にせずにローカル
な層で個別に学習したので 8. 最後に全体調整(Fine Tuning)する
・・・
学習
![Page 24: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/24.jpg)
Layer-wise Pre-Training(AutoEncoder) Hinton先生の再現
1. 一番下の4+3の層に着目 2. 入力の4つを出力層として追加 3. 4+3+4の3層NNとみなして学習 4. 更に、3+4+3 → 4+2+4 →・・と学習 5. 他の層のことを気にせずにローカル
な層で個別に学習したので 6. 最後に全体調整(Fine Tuning)する
・・・
学習
![Page 25: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/25.jpg)
デモ Hinton先生の再現
デモ実演中
![Page 26: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/26.jpg)
Neural Network ToolBox
• MATLAB の公式 ToolBox のご紹介
• 数あるサンプルコードの中から本日は、
AutoEncorder のデモを行います
• GPU化の例をご紹介します
– Parallel Computing Toolbox が必要です
![Page 27: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/27.jpg)
デモのネットワーク構成 Neural Network Toolbox
• 入力層+隠れ層×2+出力層=4層のディープニューラルネットです
• 層が3層より多いのでディープです
• 0~9のフォントデータを10種類に分類する分類器になります
• 画像サイズが 28x28=784画素で、10種類に
分類するので、隠れ層はともかく、入力層は784ユニット、出力層は10ユニットの構成です
![Page 28: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/28.jpg)
デモ Neural Network Toolbox
デモ実演中
![Page 29: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/29.jpg)
RCNNの再現
• RCNNとは「Regions with CNN feature」 の略
• CNNとは「Convolutional Neural Network」 の略
• 画像全体の物体のあるなしだけではなく、その物体をどの辺り(=Region)で見つけたかも答えてくれる賢いCNNです
- CNN自体の説明は本日はいたしません
![Page 30: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/30.jpg)
• https://github.com/rbgirshick/rcnnのコードを実行します
• 何をしているのか?
デモの内容 RCNNの再現
物凄い数のRegion候補を 切り出して
CNNで認識 させる
![Page 31: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/31.jpg)
• MATLABからCNNのミドルウェである「Caffe」を利用しています
• Caffe は、自身のGPUアクセラレーションの実装を持っていますが、cuDNNの利用もサポートしています
• cuDNNは、NVIDIA社のDeep Learning向けのCUDAライブラリです
Caffe と cuDNN RCNNの再現
![Page 32: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/32.jpg)
m-ファイル Caffe
CPU実装
GPU実装
cuDNN
デモの構成 RCNNの再現
ここを切り替えて実行します
![Page 33: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/33.jpg)
デモ RCNNの再現
デモ実演中
![Page 34: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/34.jpg)
本日のデモのまとめ
1. Hinton先生の再現 –先駆的業績の再現
–データの可視化や GUIの作成例を紹介
2. Neural Network Toolbox – Toolbox を利用したアプローチの紹介
– GPU利用やネットワーク構築 Wizardなど
3. RCNNの再現 – ミドルウェアとのコラボ例の紹介
–最新の業績の再現
![Page 35: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/35.jpg)
会社概要
• 株式会社システム計画研究所/ISP
• 設立:1977年11月10日
• 資本金:8,000万円
• 所員数:100名
• 事業内容 • 医療情報
• 制御・宇宙
• 通信・ネットワーク
• 画像処理
![Page 36: MATLABで始める 機械学習/Deep Learning. Hinton先生の再現 2006年に発表された画期的な成果 MATLAB で実装 2. Neural Network Toolbox Toolbox で AutoEncoder](https://reader030.vdocuments.net/reader030/viewer/2022012923/5aabb85f7f8b9ac55c8c3c9a/html5/thumbnails/36.jpg)
お終い!