Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

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

  • Sé el primero en comentar

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とは? –  ニューラルネットのサンプルを動かす –  自分でアーキテクチャ構築 •  データやアーキテクチャ構築など, •  自分の問題で試してみよう!

×