Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
TensorFlow
– 概要からCNNアーキテクチャ構築まで –
片岡 裕雄
http://www.hirokatsukataoka.net/
概要
•  TensorFlowについて
–  フレームワーク
–  ドキュメント
•  インストール∼サンプル動作
–  Mac/Ubuntu
–  サンプルコード
•  CNNアーキテクチャ構築
–  自らのデータでCNNアーキテクチャを構築
TensorFlowについて
TensorFlowとは?
•  Googleが2015/11に発表した機械学習フレームワーク
–  ディープラーニングを含む機械学習をカバー
–  画像のみならず,音声や言語処理など
–  Convolutional Neural Netwo...
どんな人が作っているの?
•  Corresponding Authors: Jeffrey Dean & Rajat Monga
•  Jeffrey Dean (Google Senior Fellow)
–  伝説のプログラマ
–  Go...
特徴 (1)
•  動作環境
–  Apache 2.0 License
–  Mac / Ubuntuをサポート
•  Windowsは環境設定中?
–  Mac:CPU
–  Linux:GPU/CPU (GPUはLinuxのみ対応)
– ...
特徴 (2)
•  カバーする言語,リファレンスの充実
–  C++,Python
–  公式ページ https://www.tensorflow.org/versions/master/api_docs/index.html
にリファレンス有
特徴 (3)
•  Deep Flexibility
–  データフローグラフの配布
–  簡易的な記述性
–  Python/C++にもカバー
•  True Portability
–  CPU / GPUに対応,スケールアップが簡便
– ...
特徴 (4)
•  Auto-Differentiation
–  深層学習を始めGradientベースの学習
–  モデル構築が簡易的にできるように!
•  Language Options
–  主にPythonやC++を配布
–  SWI...
特徴 (5)
•  チュートリアル
–  MNIST (文字認識のデータセット)
•  For ML Beginners
•  For Experts
–  TensorFlow Mechanics 101 (コードの配布,MNISTの詳細)
...
その他,詳細はTensorFlowページへ
•  TensorFlow
•  WhitePaper
h"ps://www.tensorflow.org/	
h"p://download.tensorflow.org/paper/whitepaper...
インストール∼サンプル動作
インストール
•  インストールは(ハマらなければ)簡単!
•  Mac
•  Ubuntu
#	Ubuntu/Linux	64-bit,	CPU	only:	
$	sudo	pip	install	--upgrade	h"ps://stora...
MNIST datasetでの学習
•  機械学習における初歩的な問題?
–  文字認識: 文字と言っても0-9までの数字10クラス
–  CNNのYan LeCun氏が配布
–  データや最高精度の推移も下記リンクに記載
h"p://yann...
(MNISTに限らず)ソースコード取得
•  GitHubにアクセス∼全結合ネットワークの実行
$	git	clone	h"ps://github.com/tensorflow/tensorflow	
$	cd	./tensorflow/tensor...
Convolutional Neural Networks (CNN)
•  Deep MNIST for Expertsを参考にCNNを実装
–  cnn.pyとして保存
–  約99.2%の精度を実現
h"ps://www.tensorflo...
基本関数について
重みW
バイアスb
ReLU関数 + 畳み込み
Max-pooling
入力&出力層の設定
データ読み込み
第
一
層
第
二
層
画像変換
全結合層への連結
Softmax層
Dropout
全
結
合
層
アーキテクチャを改造!
•  畳み込み層の構造をよりDeepに
アーキテクチャを改造!
•  畳み込み層の構造をよりDeepに
この部分を変更
CPCPFF※ => CCPCCPFF※
※ C:畳み込み層
  P:プーリング層
  F:全結合層
無理に変更したのでチャネルが
32=>32(1層),64=>6...
CNNアーキテクチャ構築
コードをアップロードしました!※
•  my_cnn.tar.gz
my_cnn.zip
h"p://www.hirokatsukataoka.net/temp/TensorFlow/my_cnn.tar.gz	
h"p://www.hirok...
ネットワークアーキテクチャ
•  5層アーキテクチャ
–  CPCPCPFF
–  畳み込み+プーリング3層
–  全結合層2層
5	
5	
3	
3	 3	
3	
32	
32	
16	
16	
8	
8	
4	
4	
500	
2	
32	...
パラメータと学習
•  パラメータ
–  ミニバッチ: 50
–  繰り返し:500
•  学習
–  歩行者検出:Daimler dataset (Positive: 1,000 Negative: 1,000)※
–  学習:1,500サン...
結果
•  最小構成でも90%の識別率
–  歩行者/背景の2値識別なので特に高いわけでもない (ランダム50%)
–  サンプルを増やして実験した結果,99.87%の精度
•  Positive:15,660サンプル
•  Negative:...
まとめ
•  TensorFlowの概要と,CNNアーキテクチャ構築
–  TensorFlowとは?
–  ニューラルネットのサンプルを動かす
–  自分でアーキテクチャ構築
•  データやアーキテクチャ構築など,
•  自分の問題で試してみ...
Upcoming SlideShare
Loading in …5
×

TensorFlowによるCNNアーキテクチャ構築

Googleが2015年11月に配布した機械学習フレームワークであるTensorFlowについて、概要からCNN (Convolutional Neural Networks)アーキテクチャ構築までの説明をまとめました。研究所内の勉強会で用いた資料です。ディープラーニングの学習用にどうぞ!

サンプルコードも下記リンクにしばらく置いておきます。
http://www.hirokatsukataoka.net/temp/TensorFlow/my_cnn.tar.gz
http://www.hirokatsukataoka.net/temp/TensorFlow/my_cnn.zip

  • Login to see the comments

TensorFlowによるCNNアーキテクチャ構築

  1. 1. TensorFlow – 概要からCNNアーキテクチャ構築まで – 片岡 裕雄 http://www.hirokatsukataoka.net/
  2. 2. 概要 •  TensorFlowについて –  フレームワーク –  ドキュメント •  インストール∼サンプル動作 –  Mac/Ubuntu –  サンプルコード •  CNNアーキテクチャ構築 –  自らのデータでCNNアーキテクチャを構築
  3. 3. TensorFlowについて
  4. 4. TensorFlowとは? •  Googleが2015/11に発表した機械学習フレームワーク –  ディープラーニングを含む機械学習をカバー –  画像のみならず,音声や言語処理など –  Convolutional Neural Networks (CNN), Recurrent Neural Networks (RNN)等 h"ps://www.tensorflow.org/
  5. 5. どんな人が作っているの? •  Corresponding Authors: Jeffrey Dean & Rajat Monga •  Jeffrey Dean (Google Senior Fellow) –  伝説のプログラマ –  Google翻訳,BigTable,MapReduce, GoogleBrain,LevelDB,TensorFlowなど –  ACM Fellow,National Academy of Engineering h"p://research.google.com/people/jeff/ h"ps://www.linkedin.com/in/rajatmonga •  Rajat Monga (Google Research) –  Googleの研究員,機械学習分野 –  論文:NIPS, ICML, CVPR等 –  TensorFlow h"p://download.tensorflow.org/paper/whitepaper2015.pdf WhitePaperには総勢40名!
  6. 6. 特徴 (1) •  動作環境 –  Apache 2.0 License –  Mac / Ubuntuをサポート •  Windowsは環境設定中? –  Mac:CPU –  Linux:GPU/CPU (GPUはLinuxのみ対応) –  GPUサポート:Cuda 7.0, CuDNN 6.5 v2
  7. 7. 特徴 (2) •  カバーする言語,リファレンスの充実 –  C++,Python –  公式ページ https://www.tensorflow.org/versions/master/api_docs/index.html にリファレンス有
  8. 8. 特徴 (3) •  Deep Flexibility –  データフローグラフの配布 –  簡易的な記述性 –  Python/C++にもカバー •  True Portability –  CPU / GPUに対応,スケールアップが簡便 –  CPUでスモールデータ試行,GPUでビッグデータ!等 –  モバイル環境にも対応 •  Connect Research and Production –  研究から商品化の際に大幅に書き直すのは終わったらしい –  Googleでは研究者・エンジニアともにTensorFlowを使用 –  商品化への移行をスムーズに
  9. 9. 特徴 (4) •  Auto-Differentiation –  深層学習を始めGradientベースの学習 –  モデル構築が簡易的にできるように! •  Language Options –  主にPythonやC++を配布 –  SWIGインタフェイスによりGo, Java, Lua, JavaScript, Rなど •  Maximize Performance –  32コアCPUや4つのGPUカード –  最上級のスレッド,キュー,非同期計算
  10. 10. 特徴 (5) •  チュートリアル –  MNIST (文字認識のデータセット) •  For ML Beginners •  For Experts –  TensorFlow Mechanics 101 (コードの配布,MNISTの詳細) –  Convolutional Neural Networks (CNN) –  Vector Representations of Words –  Recurrent Neural Networks (RNN) –  など
  11. 11. その他,詳細はTensorFlowページへ •  TensorFlow •  WhitePaper h"ps://www.tensorflow.org/ h"p://download.tensorflow.org/paper/whitepaper2015.pdf
  12. 12. インストール∼サンプル動作
  13. 13. インストール •  インストールは(ハマらなければ)簡単! •  Mac •  Ubuntu # Ubuntu/Linux 64-bit, CPU only: $ sudo pip install --upgrade h"ps://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl h"ps://www.tensorflow.org/versions/master/get_started/os_setup.html # Ubuntu/Linux 64-bit, GPU enabled: $ sudo pip install --upgrade h"ps://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl # Mac OS X, CPU only: $ sudo easy_install --upgrade six $ sudo pip install --upgrade h"ps://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl
  14. 14. MNIST datasetでの学習 •  機械学習における初歩的な問題? –  文字認識: 文字と言っても0-9までの数字10クラス –  CNNのYan LeCun氏が配布 –  データや最高精度の推移も下記リンクに記載 h"p://yann.lecun.com/exdb/mnist/ 文字認識のサンプル Y. LeCun+, Gradient-Based Learning Applied to Document Recognition, Proceedings of the IEEE, 86 (11): pp. 2278-2324, 1998.
  15. 15. (MNISTに限らず)ソースコード取得 •  GitHubにアクセス∼全結合ネットワークの実行 $ git clone h"ps://github.com/tensorflow/tensorflow $ cd ./tensorflow/tensorflow/g3doc/tutorials/mnist $ python fully_connected_feed.py 実行例
  16. 16. Convolutional Neural Networks (CNN) •  Deep MNIST for Expertsを参考にCNNを実装 –  cnn.pyとして保存 –  約99.2%の精度を実現 h"ps://www.tensorflow.org/versions/master/tutorials/mnist/pros/index.html $ python cnn.py 次以降のページで少し関数の説明&改造
  17. 17. 基本関数について 重みW バイアスb ReLU関数 + 畳み込み Max-pooling 入力&出力層の設定 データ読み込み 第 一 層 第 二 層 画像変換 全結合層への連結 Softmax層 Dropout 全 結 合 層
  18. 18. アーキテクチャを改造! •  畳み込み層の構造をよりDeepに
  19. 19. アーキテクチャを改造! •  畳み込み層の構造をよりDeepに この部分を変更 CPCPFF※ => CCPCCPFF※ ※ C:畳み込み層   P:プーリング層   F:全結合層 無理に変更したのでチャネルが 32=>32(1層),64=>64(2層)です...
  20. 20. CNNアーキテクチャ構築
  21. 21. コードをアップロードしました!※ •  my_cnn.tar.gz my_cnn.zip h"p://www.hirokatsukataoka.net/temp/TensorFlow/my_cnn.tar.gz h"p://www.hirokatsukataoka.net/temp/TensorFlow/my_cnn.zip ※ しばらくの間置いておきます.
  22. 22. ネットワークアーキテクチャ •  5層アーキテクチャ –  CPCPCPFF –  畳み込み+プーリング3層 –  全結合層2層 5 5 3 3 3 3 32 32 16 16 8 8 4 4 500 2 32 48 64
  23. 23. パラメータと学習 •  パラメータ –  ミニバッチ: 50 –  繰り返し:500 •  学習 –  歩行者検出:Daimler dataset (Positive: 1,000 Negative: 1,000)※ –  学習:1,500サンプル –  テスト:500サンプル h"p://www.gavrila.net/Datasets/Daimler_Pedestrian_Benchmark_D/ Daimler_Mono_Ped__Detecon_Be/daimler_mono_ped__detecon_be.html ※ アップロードのために最小構成にしました ※ 実際に使用する際には学習サンプル数を増やしてください
  24. 24. 結果 •  最小構成でも90%の識別率 –  歩行者/背景の2値識別なので特に高いわけでもない (ランダム50%) –  サンプルを増やして実験した結果,99.87%の精度 •  Positive:15,660サンプル •  Negative:25,000サンプル •  繰り返し:30,000回
  25. 25. まとめ •  TensorFlowの概要と,CNNアーキテクチャ構築 –  TensorFlowとは? –  ニューラルネットのサンプルを動かす –  自分でアーキテクチャ構築 •  データやアーキテクチャ構築など, •  自分の問題で試してみよう!

×