View
2
Download
0
Category
Preview:
Citation preview
データサイエンティストのスキルセット
ビジネス力
データエンジ
ニアリング力
データサイエ
ンス力
Ref. データサイエンティスト協会:http://www.datascientist.or.jp/news/2014/pdf/1210.pdf
課題背景を理解→ビジネス課題を整理解決
データサイエンスを意味ある形に使えるようにし、実装、運用
情報処理、人工知能、統計学などの知恵を理解し、適用
深層学習による主な画像解析(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?)複雑
単純
深層学習による主な画像解析(as of May2018)
2015
• Fast R-CNN
2015-16
• Faster R-CNN
2015-16
• YOLO
2015-16
• SSD
2017
• Mask R-CNN
物体検知 セグメンテーション
CNTKとは?
▪ GPU / マルチGPU(1-bit SGD)
https://www.microsoft.com/en-us/cognitive-toolkit/
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
小さいほど高速
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)
CNTKの処理フロー – 2/5
ネットワークの定義
def linear_layer(input_var, output_dim):input_dim = input_var.shape[0]## Define weight Wweight_param = C.parameter(shape=(input_dim,
output_dim))## Define bias bbias_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)
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])
CNTKの処理フロー – 4/5
モデル学習
for i in range(0, num_minibatches_to_train): ## Extract training datafeatures, labels =
generate_random_data_sample(minibatch_size, input_dim, num_output_classes)
## Traintrainer.train_minibatch({feature : features, label :
labels})
Tips :: Jupyter Notebookの起動
> activate py35(py35) > jupyter notebook
https://notebooks.azure.com/
Demo :: training - evaluate
https://youtu.be.com/70FMOdVUNPI
Tips 混同行列(Confusion Matrix)
疾患[実際] 非疾患[実際]
疾患[予測] 14 0
非疾患[予測] 2 9
非疾患と予測(緑線の下)実際は疾患 (緑線の下の赤2つ)▶モデルの見逃し
物体検知って?(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?)複雑
単純
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 accumulationdistributed_after = 0) # no warm start
損失関数の定義
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
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利用設定
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
Confusion Matrix for karugamo
karugamoが写っているのに、モデルは推定できなかった▶モデルの見逃し
あり[実際] なし[実際]
あり[予測] XX XX
なし[予測] XX XX
Confusion Matrix for karugamo
あり[実際] なし[実際]
あり[予測] XX XX
なし[予測] XX XX
karugamoでないものに、karugamoと推定▶モデルの過検知?
データサイエンス活用推進体制(案)
【実際に手を動かして
データ分析をする人材】
【事業活動に結びつけるための
戦略づくり・設計を行う人材】
【分析結果を活用し、ビジネス企
画や改善を活かす人材】
ビジネス力
データエンジ
ニアリング力
データサイエ
ンス力
http://www.kantei.go.jp/jp/singi/keizaisaisei/miraitoshikaigi/jinzaiikusei_dai3/siryou4.pdf
#AI02
Referencehttps://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
Referencehttps://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
Recommended