Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
初心者限定!
これから機械学習プロジェクトをはじめたい
あなたと語るプロジェクト成功率を上げるコツ
AI15
初心者限定 !これから機械学習プロジェクトをはじめたいあなたと語るプロジェクト成功率を上げるコツ
AI15
Chalk Talk
どんな発言
聞く場
どんな疑問初心者
What is 機械学習プロジェクト
こんな事、ありませんか?
言葉の整理
データサイエンティスト への道..
機械学習開始
データサイエンティスト
データサイエンスのコースを実施
初めてのデータサイエンス
プロジェクト
なぜこんなにトライ&エラーをするの?
機械学習を行うのに必要なもの
大量のデータデータ
に対する知見
データ分析の
知識・経験
データ分析
ツール・基盤× × ×
大量の分析用データを
保持している
分析用データの中身を
理解している
分析内容やデータに
適してアルゴリズムを
把握している
大量データを分析で
きるツールを持ち
使いこなせる
最も重要
機械学習プロジェクトの構成要素
Question + Data + Analysis = Answer
…につながる意思決定/アクション
答えを知った後で、何をするのか?
Question
• 特定可能
• 測定可能
• 次にアクションが取れる
• ベースライン
ビジネスのQuestionと、データサイエンスのQuestion:
製品が、壊れないようにするためには、いつ保守サービスしますか?
製品が、特定の時間に故障する確率は何ですか?
機械学習 プロジェクトのライフサイクル
推論デプロイメント
データの準備 モデル構築・学習
世界中の研究者が
論文として発表。基本的に、
GitHubで公開される。
それを利活用すべし
どんなデータを整備するか
企業内のデータ利活用
戦略が競争力の源泉
ビジネスにインパクトがある
領域の特定、そのための
機械学習利活用
コンピューターが処理しやすいデータの準備
データセット
Features Target Value
データ処理(s)
データ処理のためのモジュール
1) RawData
ロード
2) トレーニング用
のデータ作成
Data 2
Data 1
Data N
. . .
100011010011
110111110110
トレーニング用データセット
アルゴリズムの
選択2) トレーニング用の
データを入力
(選択した1,3,6の列と、
全体の80%の件数)
候補モデル
3) 候補モデルの
作成
1) features の選択
Target
ValueFeature 1 Feature 3 Feature 6
データにアルゴリズムを適用してModel 作成
Model の検証
2) テストデータから、
ターゲットの値を
生成
3) テストデータの実際の値と、
ターゲットの値を比較する
トレーニング用データセット
Target
ValueFeature 1 Feature 3 Feature 6
1) 検証用データの
入力
(残った25%のデータ の、
features 1, 3, 6
だけを使う)
候補モデル
候補
モデル
3) アルゴリズムのパラメータの変更。
もしくは、別のアルゴリズムの選択
Feature 1 Feature 2 Feature 5
1) 別の features を選択する
アルゴリズムの
選択
2) サンプルデータを追加する学習用アルゴリズム
Model の改善ポイント
ビジネスの変化 = Model の更新!
Raw
Data
Prepared
Data事前準備処理 Model の選択
データに
アルゴリズムを
適用して
Model を
作成
選ばれた
Model候補 Model
What is 機械学習
条件:
ドアの後ろに人がいます
入ってくる人は、男性 / 女性 のどちらでしょうか?
以下のデータは持っています
年齢: 35歳
年収: 600万円
有給残数: 12日
F (性別) = (0.03 * 年齢) + (0.07 * 年収) – (0.04 * 有給残数) + 0.05
= (0.03 * 3.5) + (0.07 * 6.0) – (0.04 * 1.2) + 0.05
= 0.41
0.5 よりも小さいから
= 女性
機械学習の主なタスク
数値予測
回帰分析Regression
・売上予測
・需要予測
・品質管理
ラベル予測
分類Classification
・不良品分析
・故障予測
・チャーン分析
・販促効果測定
・与信分析
クラスタリングClustering
・セグメンテーション
・顧客グルーピング
・メール キャンペーン
Computer Vision Problems
Yes
#azurejp
これまでのシステム開発と違う点
汎用品 ソフトウェア出来る事は
一つ
データが全て
評価方法
#azurejp
評価方法
これまでのシステム開発と違う点
汎用品 ソフトウェア出来る事は
一つ
データが全て
プログラミングと機械学習
2 + 3 = 5
プログラミングと機械学習
2 + 3 = 5
簡単
大変…
プログラミングと機械学習
2 + 3 = 5
簡単
大変…
プログラミングと機械学習
それぞれの写真: 猫? Yes/No
プログラミングと機械学習Program = Algorithm
人が書く
タスクの仕様の定義
アルゴリズムは固定
アルゴリズムは容易に説明できる
ソフトウェアが書く
目的: 汎化アルゴリズムはデータに依存
アルゴリズムは時間とともに変わる
#azurejp
これまでのシステム開発と違う点
汎用品 ソフトウェア出来る事は
一つ
データが全て
評価方法
Spark
SQL Server
GPU インスタンス
コンテナー サービス
Azure Machine Learning Workbench /
AI Tools for VS
SQL Server
Machine Learning Server
オンプレミス
エッジ コンピューティングAzure IoT Edge
実験および
モデル管理
Azure Machine Learning Service
トレーニングとデプロイ
Azure
柔軟なトレーニングとデプロイの選択肢
Model は、ファイル にして扱う
<Python> Modelの保存
出力された Model <C#>Model の読み込み
<C#>Model の利用 (実行)
Windows ML
ApplicationAdd Model
Reference
Model
Windows ML
Training Environment
1. Load – Loads model into Windows ML runtime2. Bind – Wires up inputs and outputs to model
3. Eval – Evaluates the model and products results
#azurejp
これまでのシステム開発と違う点
汎用品 ソフトウェア出来る事は
一つ
データが全て
評価方法
機械学習の主なタスク
数値予測
回帰分析Regression
・売上予測
・需要予測
・品質管理
ラベル予測
分類Classification
・不良品分析
・故障予測
・チャーン分析
・販促効果測定
・与信分析
クラスタリングClustering
・セグメンテーション
・顧客グルーピング
・メール キャンペーン
回帰 “Regression”
Goal: 値を予測する
ゴールの例:
何個
車の価格予想
• 車の各種情報 価格
分類 “Classification“
Goal: 分類を予測する
ゴールの例:
不正か
Class 1 Class 2
2つ以上でも良い
DCモータの製造不良原因予測「不良種類(成功含む)」を
予測する分析器を作成
Computer Vision Problems
Yes
Bird Detection Project
https://www.microsoft.com/developerblog/2017/10/24/bird-detection-with-azure-ml-workbench/
https://github.com/olgaliak/detection-amlworkbench/
Visual Object Tagging Tool (VoTT)
https://github.com/Microsoft/VoTT
クラスタリング “Clustering”
Goal: 構造を理解する
ゴールの例:
顧客セグメント
Cluster 1
Cluster 2
Cluster 3
教師なし学習
あやめの品種分類
がく
片の
幅がく片の長さ
データの類似性から
2種類に分類する
あやめ品種分類
セトナ
バージニカ
がく
片の
幅
がく片の長さ
#azurejp
これまでのシステム開発と違う点
汎用品 ソフトウェア出来る事は
一つ
データが全て
評価方法
サンプル データ から学びましょう
データの関連性というけれど…
http://tylervigen.com/spurious-correlations
#azurejp
これまでのシステム開発と違う点
汎用品 ソフトウェア出来る事は
一つ
データが全て
評価方法
回帰モデルの評価
評価方法 概要
平均絶対誤差
(Mean Absolute Error: MAE)
絶対誤差の平均値
平均二乗誤差
(Root Mean Squared Error:
RMSE)
誤差の二乗の平方根値
相対絶対誤差
(Relative Absolute Error: RAE)
絶対誤差の合計を正規化して合
計相対誤差で除算した値
相対二乗誤差
(Relative Squared Error: RSE)
二乗誤差の合計を正規化して合
計二乗誤差で除算した値
決定係数 (R2)(Coefficient of Determination)
特徴量がラベルを決定する度
合 (悪:0 ~ 良:1)
分類モデルの評価(2クラス分類モデル)
①True Positive(真陽性):100%に近いほど良好⇒A/(A+C)
②False Positive(偽陽性): 0%に近いほど良好⇒B/(B+D)
③True Negative : 100%に近いほど良好⇒D/(B+D)
④False Negative : 0%に近いほど良好⇒C/(C+D)
⑤Accuracy(正解率) : 100%に近いほど良好⇒「○」「×」を正しく予測できた割合⇒(A+D)/(A+B+C+D) : 100%に近いほど良好
⑥Precision(適合率) : 100%に近いほど良好⇒A/(A+B)
⑦Recall(再現率) : 100%に近いほど良好⇒①に同じ
⑧F1 Score : 1.0に近いほど良好⇒⑥、⑦の複合指標⇒2×(⑥×⑦)/(⑥+⑦)
検証用データ 予測で得たクラス
○ ×
正解の
クラス
○ A件 C件
× B件 D件
正解が「○」のデータ
推測で「○」とされたデータ
A件C件 B件
D件
予測結果例 主な評価指標
分類モデルの評価(2クラス分類モデル)その他の評価指標(ROC曲線とAUC)
・ROC曲線⇒真偽の判断の閾値を変化させて
真陽性、偽陽性をの推移をグラフかしたもの⇒縦軸が真陽性率、横軸が偽陽性率⇒偽陽性をあまり悪化させることなく、
真陽性を大きく向上できる(=左上に張り付くような曲線)ほど
優れたモデルであることを示す
・AUC⇒ROC曲線の下の面積⇒1に近いほど優れたモデルであること示す
What is DEEP LEARNING
機械学習 深層学習 深層強化学習
画像解析
音声解析
データ分類異常検知, 顧客グルーピング
数値予測売上予測, 需要予測, 品質管理
ラベル分類不良品分析, 故障予測, チャーン分析
機械学習より強力な分析
自律学習型ロボット
自動運転車
テキストや画像等の自動生成
活用例
主に多層のニューラルネットワークを用いた
手法での分析
分析のためには、莫大なデータ量、計算量、
知識・スキルを要する
統計に基づいた手法での分析
そのため、比較的少ないデータ量と計算量
で分析を行うことができる
定義したあるべき姿に従い試行錯誤をして
自ら学習を行うための分析手法である
強化学習と、深層学習を組み合わせた
分析
Azure Machine Learning Cognitive Toolkit / GPU Instance (N-Series)
マイクロソフトが提供する技術
機械学習の世界
機械学習の種類機械学習
教師あり学習
教師なし学習
強化学習
決定木
線形回帰
SVM
ロジスティック回帰
ニューラルネットワーク
クラスタリング
次元削減
K-mean法
主成分分析
正準相関分析
ディープ ニューラルネットワーク
畳みこみニューラルネットワーク
再帰的ニューラルネットワーク
回帰結合ニューラルネットワーク
Q学習
深層学習画像解析, 音声認識, 自動生成
深層強化学習自立学習型ロボット
自動運転車
トレーニングデータ
独立したデータ, 特徴, シグナル, 属性 “Predict したい分類, クラス, ラベル, 依存しているデータ
Neural Networks のデータ例
35
49,000
M
3.5
4.9
-1.0
1.0
0.0
0.23
Age
Income
Sex
0.15
Republican0.62Education
可能性
inp
ut
hidd
en
outp
ut
High
Neural Network に入力…
Neural Network - Neuron
Activate Function
Input Layer Hidden Layer
(妥当な数で)
重み
(Weight)
MNIST 手書き文字認識用のデータセット
28 pixel
28 p
ixel
ニューロンの準備28 pixel
28 p
ixel
0 1 2 9
特徴量
学習28 pixel
28 p
ixel
0 1 2 9
色無し
シナプスに0/(サンプル数/10)が足される
色あり
シナプスに1/(サンプル数/10)が
足される
学習 2個目28 pixel
28 p
ixel
0 1 2 9
色あり
シナプスに1/(サンプル数/10)が
足される
色無し
シナプスに0/(サンプル数/10)が足される
学習後
0 1 2
評価28 pixel
28 p
ixel
0 1 2
色が付いているニューロンと繋がっている
シナプスのみを残し、そのシナプスの値を
アウトプットのニューロンごとに足して平均を計算
0 1 2 3 4 5 6 7 8 9
0.2 0.85 0.3 0.4 0.3 0.3 0.34 0.71 0.4 0.4
1
ニューロンとシナプスの数
0 1 2
ニューロンは 784+10= 794個784 x 10 = 7840本
隠れ層を追加し、シナプスを増やす
0 1 2
ニューロンは784+100+10= 894個
784 x 100 + 100 x 10 = 785000本
隠れ層
結果
シナプスが増えたら賢くなった!
• 層が深くなった
• なので Deep
隠れ層を追加し
0 1 2 9
ニューロンを増やしたサンプル結果
ニューロン数 正解率
なし 76%
100 x 1 87%
200 x 1 88%
400 x 1 90%
784 x 1 91%
784 x 2 92%
784 x 3 92%
200 x 2 90%
隠れ層内のニューロン数を変えた場合
隠れ層の数 正解率
なし 76%
1 87%
2 88%
3 89%
4 87%
隠れ層の数を変えた場合 (各層100ニューロン)
騒ぎます ノイズ
0 1 2
隠れ層
嘘つきを入れます
壊します 一部経路をなくします - ドロップアウト
0 1 2
隠れ層
消します
隠れ層に Dropout を追加
見つけます 重みづけ
0 1 2
隠れ層
こいつは信頼できる
層が深くなるとインプットニューロンの情報が平均化されてしまいます。
その中から信頼できる情報を発信するニューロンを見つけ重みづけを変えます
結果
かなり実用レベル 実際人間が行っても同じくらい
恒等写像(identity mapping)
ReLU
シグモイド関数(Sigmoid)
ソフトマックス関数(Softmax)
x
f(x)
Input Layer Hidden Layer Output
Layer
直線がない
直線がある
入力画像データ Input Layer Hidden Layer
(妥当な数で)
Output Layer
直線がない
直線がある
Mean Squared Error Cross Entropy Error
σ(z) がsigmoid 関数の場合、0,1近傍で
微分が≃0となってしまい、コスト関数の変化
(学習)が止まってしまう
差が大きくなればなるほど、コスト関数の変
化も大きくなる
Cross-entropyが使われることが多いが、Cognitive Toolkit のチュートリアルでは両方使っている。
SGD
MomentumSGD
•色々な勾配法- Gradient Descent- SGD- MomentumSGD- AdaGrad- AdaDelta- Adam- RMSpropGraves- NesterovAG
学習率
(Learning Rate)
学習率 モーメンタム
(Momentum)
「学習率」をハイパーパラメータとして指定
「学習率」と「モーメンタム」をハイパーパラメータとして指定
Computer Vision
• 畳み込み プーリング
画像の特徴を自動抽出
畳み込みニューラルネットワーク
畳み込み プーリング 畳み込み プーリング 全結合層 出力入力
犬 (0.01)
猫 (0.04)
ボート(0.94)
鳥 (0.01)
ガウシアンフィルタの様な処理をして特徴を自動抽出する層
1 2 3 0
0 1 2 3
3 0 1 2
2 3 0 1
2 0 1
0 1 2
1 0 2
15 16
6 15
1 2 3 0
0 1 2 3
3 0 1 2
2 3 0 1
2 0 1
0 1 2
1 0 2
15
1*2=2 2*0=0 3*1=3
0*0=0 1*1=1 2*2=4
3*1=3 0*0=0 1*2=2
1 2 3 0
0 1 2 3
3 0 1 2
2 3 0 1
2 0 1
0 1 2
1 0 2
15 16
1 2 3 0
0 1 2 3
3 0 1 2
2 3 0 1
2 0 1
0 1 2
1 0 2
15 16
6
1 2 3 0
0 1 2 3
3 0 1 2
2 3 0 1
2 0 1
0 1 2
1 0 2
15 16
6 15
1 4 2 5 1 8 7
14 2 5 1 8 7
1 42 5 1 8 7
1 4 25 1 8 7
1 4 2 51 8 7
1 4 2 5 18 7
1 4 2 5 1 87
4 2 5
2 5 1
5 1 8
Den
se
(全結合層)
ReLU
Den
se
ReLU
Den
se
So
ftmax
Input Layer Hidden Layer Output LayerHidden Layer
my_model = Sequential ([
Dense(64, activation=relu),
Dense(64, activation=relu),
Dense(10, activation=softmax)
])
with default_options(activation=relu):
my_model = Sequential([
For(range(2), lambda: Dense(64)),
Dense(10, activation=softmax)
])
net = Dense(64, activation=relu)(net)
net = Dense(64, activation=relu)(net)
net = Dense(10, activation=softmax)(net)普通に実装
Sequential()
For()
活性化関数にReLU を使う 2つの隠れ層と
Softmaxを使う出力層を実装した3つの例
Convolution
ReLU
Pooling
Convolution
ReLU
Pooling
Convolution
ReLU
Pooling
Dence(Affine)
None
CNNの処理フロー Cognitive Toolkitを使った実装例
Dence(Affine)
None
Model AlexNet VGG GoogLeNet ResNet
Year 2012 2014 2014 2015
Num of Layers 8 19 22 152
Error Rate 16.4% 7.3% 6.7% 3.57%
ProposerUniversity of
Toronto
University of
Oxford Google Microsoft
様々なCNNのモデル
https://deepage.net/deep_learning/2016/11/30/resnet.html
https://github.com/Microsoft/CNTK/tree/master/Examples/Image/Classification/ResNet
とてもシンプルな構成で応用性が高いため、多くの技術者に使われている
Transfer Learning
Transfer Learningとは
汎用的なモデル
特定の用途のモデル
特定のレイヤを置き換え
GPU / FPGA
DNN Processing Units
効率性
DNN のための シリコンレベル の選択肢
柔軟性
Soft DPU(FPGA)
Contro
l Unit
(CU)
Registers
Arithmeti
c Logic
Unit
(ALU)
CPUs GPUsASICsHard
DPU
Cerebras
Google TPU
Graphcore
Groq
Intel Nervana
Movidius
Wave Computing
Etc.
BrainWave
Baidu SDA
Deephi Tech
ESE
Teradeep
Etc.
DNN models のトレーニングにかかる時間
ResNet
ImageNet
GoogleNet
ImageNet
2000h Speech
LSTM Model
Neural
Translational Model
130 時間
570時間
1,100時間
2,000時間
Imagenet: 1M Images, 1K Classes
K40 x 8 K40 K40 K40
学習の際たくさん計算をします
0 1 2
784 x 100 + 100 x 10 = 785000本
960000個の
教師あり学習データ
785000 x 60000 = 47100000000回の足し算をします 471億回
学習 471 億回の計算• 秒間1000 回 545 日
秒間 100 万回12 時間
評価の計算
秒間 100 万回 0.78秒5万倍
計算時間
384 GFLOPS
768 GFLOPS(これって秒間7680億回)
DNN 学習で扱う数値は浮動小数点型
FPGA Technology
DRAMコントローラ
USB コントローラ
イーサネットコントローラ
dspスライス
ram
ram
dspスライス
CPU
CPU
FPGA: 空間計算
FPGA
データ
命令
命令
命令
データ
命令
命令
命令
CPU: 時間的計算
CPU
命令
マイクロソフトは、FPGA に対して世界最大のクラウド投資
人工知能の容量を複数のExa-Ops で
FPGA ファブリック上で強力な DNN サービスプラットフォーム
急速に進化する ML への対応
CNN、LSTM、MLP、強化学習、特徴抽出、デシジョンツリーなど
推論に最適化された数値精度
カスタム値、複数化、極小精密ネット
より大きい、より速いモデルのための更なる圧縮
数万TOPでの、低ロットサイズでの効果的な推論スループット
超低遅延による最新の DNN の提供
CPUやGPU と比較して10倍以上
単一の DNN サービスで多くの FPGA に拡張
パフォーマンス
柔軟性
スケール
Web search
ranking
Traditional software (CPU) server plane
QPICPU
QSFP
40Gb/s
FPGA
CPU
40Gb/s
QSFP QSFP
Hardware acceleration plane
Compute Workload 毎に分離され
た中でFPGA同士が相互連携
CPU とは独立して管理
Web search
ranking
Deep neural
networks
SDN offload
SQL
CPUs
FPGAs
Routers
Why 機械学習?
アルゴリズム
アルゴリズムとして実装
機械学習
機械学習によるモデル化
アルゴリズムの実装ではなく、適切なデータの選択とクレンジング、学習アルゴリズムの選択とチューニング、そして試行錯誤
変わる開発コストのバランス
無限のコンピューターリソース
Learning
#azurejp
© 2018 Microsoft Corporation. All rights reserved.
本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。