sas viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク...

30
SAS Viyaを活用した Deep Learningモデリング事例のご紹介 SAS Institute Japan 株式会社 諸戸 愼一

Upload: others

Post on 03-Nov-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

SAS Viyaを活用したDeep Learningモデリング事例のご紹介

SAS Institute Japan 株式会社

諸戸 愼一

Page 2: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

本日お伝えしたいこと

2

✓ 深層学習モデルは、出力結果だけでなく、中間層の情報も活用できる

✓ 畳み込みニューラルネットワークは、画像データだけでなく、波形データにも活用できる

Page 3: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

Agenda

3

1. SAS Viyaの画像処理モデリング

➢ SAS Viyaの分析機能

➢ SAS Viyaの画像処理モデリング

➢ SAS Viyaとオープンソース

2. 深層学習モデルによる画像処理モデリングの事例

➢ SAS ViyaによるVGG16の構築

➢ 深層学習モデルの特徴と先行研究

➢ 家紋を使った類似度分析

➢ 分析結果

3. 想定される活用領域

➢ 画像処理モデリングの想定活用領域

➢ CNNの波形データへの応用

➢ 波形データを使ったモデリングの想定活用領域

4. まとめ

Page 4: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

SAS Viyaの画像処理モデリング

Page 5: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

SAS Viyaの分析機能多様な手法を提供しており、複雑なアナリティクス課題の解決に貢献

主に教師なし手法特徴量生成や次元削減から、クラスタリング、教師なし異常検知、ネットワーク分析など

• 主成分分析• Moving Window

主成分分析• ロバスト主成分分析• クラスター分析• 変数クラスタリング• マーケットバスケット• テンソル因子分解• 異常検出サポートベクターマシ

ン(SVDD)• ネットワーク分析• t-SNE• ガウス混合モデル

主に教師あり学習手法(二値/多値/数値予測も可能)回帰系モデルから複雑な機械学習モデル、協調フィルタリングなども自動チューニングも可能

• 自動チューニング機能• 線形回帰モデル• ロジスティック回帰モデル• ノンパラメトリック回帰• 一般化線形/加法モデル• 非線形回帰モデル• 分位点回帰モデル• 部分最小二乗法• ディシジョン・ツリー• ランダムフォレスト• 勾配ブースティング• ニューラルネットワーク• ベイジアンネットワーク• K-近傍法• サポートベクターマシン• ファクタライゼーション・マシン

主要なディープラーニング手法を提供

• DNN• CNN

(VGG/ResNet/Yolov2)• RNN / LSTM / GRU• 自動チューニング機能• 転移学習

機械学習によるテキスト解析&分類

• 形態素解析• 特異値分解による次元削減• トピック抽出(SVD/LDA)• センチメント分析• カテゴライズ(タグ付け)

様々な画像の前処理手法を提供、機能を呼び出して使うだけ

• 画像読込/保存• フィルタ処理/画像比較• 検出とマッチング• 医療用画像解析

数理最適化問題をハイパフォーマンスで解ける

• 線形/非線形計画法• 二次計画法• 混合整数線形計画法• ネットワークフロー最適化

需要予測や周波数の分析など

• 時系列分析• 自動時系列モデリング• 階層間調整• 短時間フーリエ変換

より複雑な時系列予測に適した、空間モデルや隠れマルコフモデルも提供

• 隠れマルコフモデル• 空間モデル• クロスセクション分析/パネル

データ分析

予測モデリング 探索 ディープラーニング

画像処理

自然言語処理

時系列予測

計量経済分析

最適化

SAS Visual Text Analytics

SAS Visual Forecasting

SAS Econometrics

SAS Optimization

※一部抜粋※オレンジ色は必要なライセンス名 5

Page 6: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

SAS Viyaの画像処理モデリング画像読込 / 前処理 / モデリング / デプロイ / スコアリング

✓ 画像の読込、ノイズ除去などの様々な前処理、ディープラーニング(CNN)モデルの学習、デプロイ、スコアリングを行うところまで、一気通貫で高精度な画像分析を実現可能

✓ モデルはバイナリファイルで出力でき、リアルタイムストリーミングエンジンに容易に搭載

✓ インメモリ・並列分散・GPU対応で大量の画像を高速処理

6

SAS Viyaアーキテクチャ上で、インメモリの並列分散で大量の画像データを高速解析

画像データ読込

画像の前処理サイズの標準化

二値化ノイズ除去

輪郭検出など

特徴量抽出モデル作成

デプロイスコアリング

インメモリーテーブル イメージ(画像)型

SAS Visual Data Mining and Machine Learning

Page 7: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

SAS ViyaとオープンソースPythonとの容易な統合

7

SWAT

DLPy

• PythonからCAS(SAS Viyaの処理エンジン)を呼び出すPythonパッケージ

• PythonからViyaの画像処理&ディープラーニングアクションを容易に行うためのSWATのWrapper

• 画像の読込・複数表示、CNNモデル作成・ネットワーク表示・当てはめ、結果の表示(ヒートマップ、画像別予測確率グラフ、層別の特徴表示)、モデルのデプロイまで、容易なコーディングで簡単に実施可能

DLPyの出力例

✓ Python用パッケージを提供しており、PythonからSAS Viyaが提供する様々なアクションセットを実行可能

✓ 画像処理&ディープラーニング用のWrapperを提供(数行のみの容易なコーディングでディープラーニングモデルが完成)

Page 8: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

深層学習モデルによる画像処理モデリングの事例

Page 9: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

SAS ViyaによるVGG16の構築畳み込み13層 + 全結合3層のニューラルネットワーク

9

出力層

全結合層

プーリング層

畳み込み層

224

224

224 x 224 x 64

112 x 112 x 128

56 x 56 x 256

28 x 28 x 51214 x 14 x 512

4096 1000

conv1, 2

fc2 fc3

conv3, 4

conv5-7

conv8-10conv11-13

fc1

4096

VGG16は、130万枚の画像を使って訓練された、1000クラスの分類が可能な深層学習モデル

Page 10: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

SAS ViyaによるVGG16の構築簡単に深層学習モデルを構築

10

proc cas;session mysess;deepLearn.buildModel / model={name=‘VGG16’, replace=1} type=“CNN”;run;

deepLearn.addLayer / model=‘VGG16’ name="data“layer={type='input' nchannels=3 width=224 height=224 randomcrop='UNIQUE’};

run;

deepLearn.addLayer / model='VGG16’ name="conv1_1“layer={type='convolution' nFilters=64 width=3 height=3 stride=1 act="RELU"}srcLayers={"data"};

run;

deepLearn.addLayer / model=‘VGG16’ name="conv1_2“layer={type='convolution' nFilters=64 width=3 height=3 stride=1 act="RELU"}srcLayers={"conv1_1"};

run;

deepLearn.addLayer / model=‘VGG16’ name="pool1“layer={type='pooling' width=2 height=2 stride=2 pool='max’}srcLayers={"conv1_2"};

run;

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

deepLearn.dlImportModelWeights / model={name=‘VGG16’}modelWeights={"name"="vgg16Weights", "replace"=True}weightFilePath=“model/VGG_ILSVRC_16_layers.caffemodel.h5“formatType='CAFFE’;

run;quit;

Page 11: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

SAS ViyaによるVGG16の構築簡単に深層学習モデルを構築

11

proc cas;session mysess;deepLearn.buildModel / model={name=‘VGG16’, replace=1} type=“CNN”;run;

deepLearn.addLayer / model=‘VGG16’ name="data“layer={type='input' nchannels=3 width=224 height=224 randomcrop='UNIQUE’};

run;

deepLearn.addLayer / model='VGG16’ name="conv1_1“layer={type='convolution' nFilters=64 width=3 height=3 stride=1 act="RELU"}srcLayers={"data"};

run;

deepLearn.addLayer / model=‘VGG16’ name="conv1_2“layer={type='convolution' nFilters=64 width=3 height=3 stride=1 act="RELU"}srcLayers={"conv1_1"};

run;

deepLearn.addLayer / model=‘VGG16’ name="pool1“layer={type='pooling' width=2 height=2 stride=2 pool='max’}srcLayers={"conv1_2"};

run;

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

deepLearn.dlImportModelWeights / model={name=‘VGG16’}modelWeights={"name"="vgg16Weights", "replace"=True}weightFilePath=“model/VGG_ILSVRC_16_layers.caffemodel.h5“formatType='CAFFE’;

run;quit;

プーリング層

入力層

畳み込み層①

畳み込み層②

学習済み重みの利用

実は、必要な層を積み重ねているだけ…

✓ 学習済み重みもそのまま取り込めるのでゼロから学習する必要はない

✓ 目的に応じて、モデルの再学習も可能

Page 12: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf ident ia l – For Internal Use OnlyCopyright © SAS Inst itute Inc. A l l r ights reserved.

深層学習モデルの特徴と先行研究

12

Page 13: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

[Honglak Lee, et al : “Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hierarchical Representations”, ICML,(2009)]

浅い局所的

深い大域的

深層学習モデルの特徴と先行研究中間層データの活用

13

畳込み深層学習モデルの中間層では、浅い層ほど局所的な特徴をとらえ深い層ほど大域的な特徴をとらえることが分かっている

中間層1

中間層2

中間層4

入力層

出力層

Page 14: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

深層学習モデルの特徴と先行研究中間層の特徴量を利用した小袖屏風の分類

14

特徴量(4,096次元/小領域)

小領域画像 クラスタリング(100クラス)

BoFのヒストグラム(ビン:100クラス)

TF-IDFで重み付け

クラ

ス001

・・・ク

ラス

100

クラ

ス001

・・・ク

ラス

100

[田村誠悟 他 : “深層学習を用いたモチーフ分類にもとづく小袖屏風画像の特徴分析”, 人文科学とコンピュータシンポジウム, (2015)]

中間層で抽出される特徴量を用いることで類似画像を分類する手法が提案されている

原画像を小領域に分割深層学習モデルを用いて

特徴量を抽出抽出した特徴量をもとに

クラスタリング出現クラスタから

Bag of Featureを作成TF-IDFによる重み付け

類似度算出

Page 15: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf ident ia l – For Internal Use OnlyCopyright © SAS Inst itute Inc. A l l r ights reserved.

家紋を使った類似度分析

Page 16: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

家紋を使った類似度分析似た家紋を見つけられるか?

16

[“家紋の図鑑”: https://www.benricho.org/kamon/, みんなの知識 ちょっと便利帳, (2018)]

葵 桐 瓜 桔梗

対象データ:家紋画像

画像数:9,309 件

モチーフ:319 種類

先行研究と同様のアイディアで、似た家紋の抽出を行う

ターゲット家紋に似た家紋を抽出したい

家紋画像の例

同じモチーフの類似家紋

Page 17: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

家紋を使った類似度分析特徴量を抽出する中間層

17

①浅い中間層から特徴量を抽出

②深い中間層から特徴量を抽出

出力層

全結合層

プーリング層

畳み込み層

浅い中間層と深い中間層から特徴量を抽出し、分析結果を比較する

Page 18: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

家紋を使った類似度分析分析ステップの概要

18

【Step 1】特徴量抽出

【Step 2】類似度行列

算出

【Step 3】類似画像

表示

0001 0002 0003 ・・・ 9309

0001 1.00 0.01 0.23 ・・・ 0.87

0002 0.23 1.00 0.67 ・・・ 0.23

0003 0.80 0.67 1.00 ・・・ 0.74

・・・ ・・・ ・・・ ・・・ ・・・ ・・・

9309 0.87 0.23 0.74 ・・・ 1.00

特徴量家紋画像 類似度行列

Page 19: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

家紋を使った類似度分析SASでの実装方法

19

VGG16モデルの定義

学習済みパラメータのインポート

画像データのロード

画像データのリサイズ

特徴量抽出

データセット保存

画像ファイル(jpgファイル)

VGG16パラメータ(caffemodel.h5ファイル)

Viya

Page 20: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf ident ia l – For Internal Use OnlyCopyright © SAS Inst itute Inc. A l l r ights reserved.

分析結果

Page 21: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

分析結果ターゲット家紋に対する類似家紋の抽出

Target TOP 1 TOP 2 TOP 3 TOP 4 TOP 5

0.883791 0.654841 0.583366 0.567595 0.566891

0.922545 0.900496 0.887693 0.887006 0.877044

0.452204 0.441272 0.440562 0.438027 0.419277

0.883765 0.833999 0.825546 0.811348 0.705755

家紋9,309件(モチーフ319種類)の中から対象となる家紋に似た家紋を抽出することができた

Page 22: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

TOP 1 TOP 2 TOP 3 TOP 4 TOP 5

0.995928 0.995592 0.992645 0.991639 0.991433

TOP 1 TOP 2 TOP 3 TOP 4 TOP 5

0.969800 0.957269 0.943658 0.931907 0.927261

データを活用する層による結果の違い特徴量を抽出する中間層の違い

22

浅い中間層

深い中間層

■浅い中間層とは違った家紋を抽出■類似度の差が少ない

浅い層では局所的な差異を考慮した類似画像の分類結果となり、類似度にも差が見られた

Target

Page 23: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

想定される活用領域

Page 24: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

画像処理モデリングの想定活用領域

24

【人の印象に影響する企業ロゴや製品ロゴの分析】

◼ 企業や製品のロゴの画像をスコアリング&クラスタリング

◼ クラスタごとの人の印象などを比較(好き、嫌い、安らぐ、カッコいい、etc.)

◼ 人が受ける印象の定量化

【機能に影響する靴底などのパターン分析】

◼ 靴底のパターン画像をスコアリング&クラスタリング

◼ クラスタごとの性能比較(滑りやすさ、雨天の走りやすさ、走る速さ、etc)

◼ 共通点の発見や新しいパターン設計のヒント獲得

Page 25: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf ident ia l – For Internal Use OnlyCopyright © SAS Inst itute Inc. A l l r ights reserved.

CNNの波形データへの応用

Page 26: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

CNNの波形データへの応用画像データと波形データ

26

CNNに入力するデータを波形データに変更することで、同様のアイディアで波形データを分類することが可能

数値化された画像データ = 一種の波形データ⇒ CNNは波形データを処理してパターンを見つけることができる

画像データ 波形データ

Page 27: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

波形データを使ったモデリングの想定活用領域

27

【生活パターンや行動パターンの分析】

◼ 一定期間の中で、規則性のある挙動の分類(曜日や天候による混雑度合)

◼ 一日の電気や水道などの使用量のパターン分類

◼ 限られた範囲内での人の動線などのパターン分類

【センサーデータの分析】

◼ 鋳造やプレスなどのサイクルが一定のセンサーデータを活用

◼ センサーデータに紐づく製品の検査データなども活用することで、特定の不具合などが出やすい波形を分類

◼ センサーデータから良品 / 不良品の判別も可能

Page 28: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

まとめ

Page 29: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.

まとめ本日お持ち帰りいただきたいこと

29

✓ 深層学習モデルは、出力結果だけでなく、中間層の情報も活用できる

⇒ 分析目的にあわせて各中間層の特徴を使い分けることで、分析の幅が拡大

✓ 畳み込みニューラルネットワークは、画像データだけでなく、波形データにも活用できる

⇒ 画像データと同じように、波形データの特徴量も抽出可能

Page 30: SAS Viyaを活用した · 主に教師なし手法 特徴量生成や次元削減から、ク ラスタリング、教師なし異常検知、 ネットワーク分析など •主成分分析

幅広い問題に対する深層学習モデリングの活用を是非、ご検討ください!