Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
SAS Viyaを活用したDeep Learningモデリング事例のご紹介
SAS Institute Japan 株式会社
諸戸 愼一
Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.
本日お伝えしたいこと
2
✓ 深層学習モデルは、出力結果だけでなく、中間層の情報も活用できる
✓ 畳み込みニューラルネットワークは、画像データだけでなく、波形データにも活用できる
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. まとめ
Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.
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
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
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を提供(数行のみの容易なコーディングでディープラーニングモデルが完成)
Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.
深層学習モデルによる画像処理モデリングの事例
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クラスの分類が可能な深層学習モデル
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;
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;
プーリング層
入力層
畳み込み層①
畳み込み層②
学習済み重みの利用
…
実は、必要な層を積み重ねているだけ…
✓ 学習済み重みもそのまま取り込めるのでゼロから学習する必要はない
✓ 目的に応じて、モデルの再学習も可能
Company Conf ident ia l – For Internal Use OnlyCopyright © SAS Inst itute Inc. A l l r ights reserved.
深層学習モデルの特徴と先行研究
12
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
入力層
出力層
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による重み付け
類似度算出
Company Conf ident ia l – For Internal Use OnlyCopyright © SAS Inst itute Inc. A l l r ights reserved.
家紋を使った類似度分析
Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.
家紋を使った類似度分析似た家紋を見つけられるか?
16
[“家紋の図鑑”: https://www.benricho.org/kamon/, みんなの知識 ちょっと便利帳, (2018)]
葵 桐 瓜 桔梗
対象データ:家紋画像
画像数:9,309 件
モチーフ:319 種類
先行研究と同様のアイディアで、似た家紋の抽出を行う
ターゲット家紋に似た家紋を抽出したい
家紋画像の例
同じモチーフの類似家紋
Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.
家紋を使った類似度分析特徴量を抽出する中間層
17
…
①浅い中間層から特徴量を抽出
…
②深い中間層から特徴量を抽出
出力層
全結合層
プーリング層
畳み込み層
浅い中間層と深い中間層から特徴量を抽出し、分析結果を比較する
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
…
特徴量家紋画像 類似度行列
Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.
家紋を使った類似度分析SASでの実装方法
19
VGG16モデルの定義
学習済みパラメータのインポート
画像データのロード
画像データのリサイズ
特徴量抽出
データセット保存
画像ファイル(jpgファイル)
VGG16パラメータ(caffemodel.h5ファイル)
Viya
Company Conf ident ia l – For Internal Use OnlyCopyright © SAS Inst itute Inc. A l l r ights reserved.
分析結果
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種類)の中から対象となる家紋に似た家紋を抽出することができた
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
Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.
想定される活用領域
Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.
画像処理モデリングの想定活用領域
24
【人の印象に影響する企業ロゴや製品ロゴの分析】
◼ 企業や製品のロゴの画像をスコアリング&クラスタリング
◼ クラスタごとの人の印象などを比較(好き、嫌い、安らぐ、カッコいい、etc.)
◼ 人が受ける印象の定量化
【機能に影響する靴底などのパターン分析】
◼ 靴底のパターン画像をスコアリング&クラスタリング
◼ クラスタごとの性能比較(滑りやすさ、雨天の走りやすさ、走る速さ、etc)
◼ 共通点の発見や新しいパターン設計のヒント獲得
Company Conf ident ia l – For Internal Use OnlyCopyright © SAS Inst itute Inc. A l l r ights reserved.
CNNの波形データへの応用
Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.
CNNの波形データへの応用画像データと波形データ
26
CNNに入力するデータを波形データに変更することで、同様のアイディアで波形データを分類することが可能
数値化された画像データ = 一種の波形データ⇒ CNNは波形データを処理してパターンを見つけることができる
画像データ 波形データ
Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.
波形データを使ったモデリングの想定活用領域
27
【生活パターンや行動パターンの分析】
◼ 一定期間の中で、規則性のある挙動の分類(曜日や天候による混雑度合)
◼ 一日の電気や水道などの使用量のパターン分類
◼ 限られた範囲内での人の動線などのパターン分類
【センサーデータの分析】
◼ 鋳造やプレスなどのサイクルが一定のセンサーデータを活用
◼ センサーデータに紐づく製品の検査データなども活用することで、特定の不具合などが出やすい波形を分類
◼ センサーデータから良品 / 不良品の判別も可能
Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.
まとめ
Company Conf idential – For Internal Use OnlyCopyright © SAS Institute Inc. Al l rights reserved.
まとめ本日お持ち帰りいただきたいこと
29
✓ 深層学習モデルは、出力結果だけでなく、中間層の情報も活用できる
⇒ 分析目的にあわせて各中間層の特徴を使い分けることで、分析の幅が拡大
✓ 畳み込みニューラルネットワークは、画像データだけでなく、波形データにも活用できる
⇒ 画像データと同じように、波形データの特徴量も抽出可能
幅広い問題に対する深層学習モデリングの活用を是非、ご検討ください!