Mais conteúdo relacionado

Apresentações para você(20)

Similar a CNTK deep dive(20)

CNTK deep dive

  1. CNTK deep dive #AI07
  2. Agenda
  3. Profile 岩崎 喬一(Kyoichi Iwasaki)
  4. Today’s data
  5. データサイエンティスト、やっぱ り要る?
  6. データサイエンティストのスキルセット ビジネス 力 データエ ンジニア リング力 データサ イエンス 力 Ref. データサイエンティスト協会: http://www.datascientist.or.jp/news/2014/pdf/1210.pdf 課題背景を理解 →ビジネス課題を整 理 解決 データサイエンスを 意味 ある形に使えるよう にし、 実装、運用 情報処理、人工知能、 統計学などの知恵を 理解し、適用
  7. データ分析プロジェクトの進め方 ビジネ ス要件 定義 データ 収集・ 確認 データ 分析 評価 展開 ビジネス力 データエ ンジニア リング力 データサ イエンス 力
  8. 機械学習と深層学習
  9. 深層学習?
  10. 深層学習による主な画像解析(as of May2018) 深層学習による主な画像解析 画像分類 物体検知 セグメンテー ション What? What? Where? What? Where? Shape? What are specified? Algorithms CNN Fast(er) R-CNN Mask R-CNN MSでの実装 Custom Vision, CNTK Custom Vision, CNTK ..(In near future?) 複雑 単純
  11. 深層学習による主な画像解析(as of May2018) 2015 • Fast R-CNN 2015-16 • Faster R- CNN 2015-16 • YOLO 2015-16 • SSD 2017 • Mask R-CNN 物体検知 セグメンテー ション
  12. 深層学習の「学習」?
  13. 深層学習(機械学習の観点から)
  14. CNTKとは?
  15. CNTKとは?  GPU / マルチGPU(1-bit SGD) https://www.microsoft.com/en-us/cognitive-toolkit/
  16. CNTKの実行速度 https://arxiv.org/pdf/1608.07249.pdf DL F/W FCN-S AlexNet ResNet-50 LSTM-64 CNTK 0.017 0.031 0.168 0.017 Caffe 0.017 0.027 0.254 -- TensorFlow 0.020 0.317 0.227 0.065 Torch 0.016 0.043 0.144 0.324 小さいほど高速
  17. Codes in CNTK https://github.com/Microsoft/CNTK
  18. CNTKで2値分類をやってみる 赤 青
  19. CNTKで2値分類をやってみる パラメータw、b w、b 年齢 腫瘍 bias z1 z2 疾患 あり 疾患 なし 𝑤11 𝑤21 𝑤12 𝑤22 𝑏1 𝑏2
  20. CNTKの処理フロー 入力・出力変数の定義 モデル評価 入力・出力変数の定義 ネットワークの定義 損失関数、最適化方法の定義 モデル学習 モデル評価
  21. CNTKの処理フロー – 1/5 入力・出力変数の定義 import cntk as C ## 入力変数(年齢, 腫瘍の大きさ)の2種類あり input_dim = 2 ## 分類数(疾患の有無なので2値) num_output_classes = 2 ## 入力変数 feature = C.input_variable(input_dim, np.float32) ## 出力変数 label = C.input_variable(num_output_classes, np.float32)
  22. CNTKの処理フロー – 2/5 ネットワークの定義 def linear_layer(input_var, output_dim): input_dim = input_var.shape[0] ## Define weight W weight_param = C.parameter(shape=(input_dim, output_dim)) ## Define bias b bias_param = C.parameter(shape=(output_dim)) ## Wx + b. Pay attention to the order of variables!! return bias_param + C.times(input_var, weight_param) z = linear_layer(input, num_outputs)
  23. CNTKの処理フロー – 3/5 損失関数、最適化方法の定義 ## 損失関数 loss = C.cross_entropy_with_softmax(z, label) ## 分類エラー("分類として"当たっているか否か) eval_error = C.classification_error(z, label) ## 最適化 learner = C.sgd(z.parameters, lr_schedule) trainer = C.Trainer(z, (loss, eval_error), [learner])
  24. CNTKの処理フロー – 4/5 モデル学習 for i in range(0, num_minibatches_to_train): ## Extract training data features, labels = generate_random_data_sample(minibatch_size, input_dim, num_output_classes) ## Train trainer.train_minibatch({feature : features, label : labels})
  25. CNTKの処理フロー – 5/5 モデル評価 out = C.softmax(z) result = out.eval({feature : features})
  26. Demo: CNTK basic process
  27. Tips :: Jupyter Notebookの起動 > activate py35 (py35) > jupyter notebook https://notebooks.azure.com/
  28. Demo :: training - evaluate https://youtu.be.com/70FMOdVUNPI
  29. Tips 混同行列(Confusion Matrix) 疾患[実際] 非疾患[実際] 疾患[予測] 14 0 非疾患[予測] 2 9 非疾患と予測(緑線の下) 実際は疾患 (緑線の下の赤2 つ) ▶モデルの見逃し
  30. 物体検知からの分散学習
  31. 物体検知って?(recap) 深層学習による主な画像解析 画像分類 物体検知 セグメンテー ション What? What? Where? What? Where? Shape? What are specified? Algorithms CNN Fast(er) R-CNN Mask R-CNN MSでの実装 Custom Vision, CNTK Custom Vision, CNTK ..(In near future?) 複雑 単純
  32. VoTT https://github.com/Microsoft/VoTT 静止画 動画
  33. 物体検知における“座標” xmin xmax ymin ymax x., y.ともに、左上の●から計った両端 点●
  34. Quick demo on VoTT(静止画)
  35. Quick demo for VoTT https://youtu.be/j7OjxFY2Go8
  36. Quick demo on VoTT(動画)
  37. https://youtu.be/RCuGLRtggrI Quick demo for VoTT
  38. Karugamo detection!
  39. Movie inferred with Faster R-CNN https://youtu.be/ziuEXyJ9SNs
  40. CNTKでの分散学習 – 1/6 深層学習での分散学習とは? →主に学習時間短縮のためにマルチGPUを利用すること 分散学習実行準備 マルチGPU搭載 マルチホスト 1bit-SGD
  41. CNTKでの分散学習 – 2/6 入力・出力変数の定義 ネットワークの定義 損失関数、最適化方法の定義 モデル学習 モデル評価
  42. CNTKでの分散学習 – 3/6 from cntk import distributed ... learner = cntk.learner.momentum_sgd(...) # create local learner distributed_after = epoch_size # number of samples to warm start with distributed_learner = distributed.data_parallel_distributed_learner( learner = learner, num_quantization_bits = 32, # non-quantized gradient accumulation distributed_after = 0) # no warm start 損失関数の定義
  43. CNTKでの分散学習 – 4/6 minibatch_source = MinibatchSource(...) ... trainer = Trainer(z, ce, pe, distributed_learner) ... session = training_session(trainer=trainer, mb_source=minibatch_source, ...) session.train() ... distributed.Communicator.finalize() # must be called to finalize MPI in case of successful distributed training 最適化方法の定義 https://docs.microsoft.com/en-us/cognitive-toolkit/multiple-gpus-and- machines#2-configuring-parallel-training-in-cntk-in-python
  44. CNTKでの分散学習 – 5/6 # GPUを2つ利用し、学習用スクリプトがtraining.py > mpiexec –n 2 python training.py 分散学習の実行方法
  45. CNTKでの分散学習 – 6/6 import cntk ## CPU利用時 cntk.device.try_set_default_device(cntk.device.cpu()) ## GPU利用時 cntk.device.try_set_default_device(cntk.device.gpu()) CPU/GPU利用設定
  46. Some preparation for Deep Learning! CNTKから2つのGPUが見えて いる GPU利用可能か確認 https://github.com/kyoro1/decode2018/blob/master/2.%20distributed%20learning%2 0with%20Faster%20R-CNN.ipynb
  47. Faster R-CNN with single GPU モデルパラメータ数は5700万 超!
  48. Single GPU vs Multi GPU 2つのGPU利用
  49. Single GPU vs Multi GPU GPU 学習時間 精度(mAP) 1 GPU (NC6) 7分22秒 0.9479 2 GPU (NC12) 3分43秒 0.9479
  50. 本番稼働に向けて
  51. Confusion Matrix for karugamo karugamoが写っているの に、 モデルは推定できなかっ た ▶モデルの見逃し あり[実 際] なし[実 際] あり[予 測] XX XX なし[予 測] XX XX
  52. Confusion Matrix for karugamo あり[実 際] なし[実 際] あり[予 測] XX XX なし[予 測] XX XX karugamoでないもの に、 karugamoと推定 ▶モデルの過検知?
  53. Original movie vs inferred movie https://youtu.be/SYTw5OLBnzc
  54. データサイエンス活用推進体制(案) 【実際に手を動かして データ分析をする人材】 【事業活動に結びつけるた めの 戦略づくり・設計を行う人 材】 【分析結果を活用し、ビジネ ス企画や改善を活かす人材】 ビジネス力 データエ ンジニア リング力 データサ イエンス 力 http://www.kantei.go.jp/jp/singi/keizaisaisei/miraitoshikaigi/jinzaiikusei_dai3/siryou4.pdf #AI02
  55. 本番展開あるある (技術寄り編)
  56. 本番展開あるある (システム運用編)
  57. Key takeaway • 機械学習 ほぼ同等 本来の意味 ビジネスサイドとの協業 • どんなKPI
  58. Key takeaway 平易にスクリプトが書け scrap & build • 出来ること 出来ないこと たち
  59. Appendix
  60. Reference https://github.com/Microsoft/CNTK https://docs.microsoft.com/en-us/cognitive-toolkit/setup-cntk-on-your- machine https://github.com/Microsoft/VoTT https://github.com/onnx/onnx https://www.edx.org/course/deep-learning-explained https://www.edx.org/course/computer-vision-and-image-analysis
  61. Reference https://github.com/kyoro1/decode2018 https://youtu.be/s5W4c9q_SAw https://youtu.be/ziuEXyJ9SNs https://youtu.be/SYTw5OLBnzc https://youtu.be.com/70FMOdVUNPI https://youtu.be/j7OjxFY2Go8 https://youtu.be/RCuGLRtggrI
  62. © 2018 Microsoft Corporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。