SlideShare a Scribd company logo
SAS ViyaのCNNを活用したProcess Innovation
~機械は解析図表をどう見ているのか~
木口亮,平野勝也,北西由武
(塩野義製薬 解析センター)
Process Innovation Making Use of CNN by SAS Viya
~ How does the Machine cognize Analytic TLF (Table, Listing, Figure)? ~
Ryo Kiguchi, Katsunari Hirano, Yoshitake Kitanishi
SHIONOGI & CO., LTD.
要旨:
SAS ViyaのConvolutional Neural Network (CNN) の解析事
例紹介として,弊社が保有するSASプログラム準自動生成シ
ステム “AI SAS Programmer” に搭載される「図表計画書の
解析」を公開する.CNNを活用することで起こったProcess
Innovationを紹介したい.
キーワード:
2
SAS Viya, CNN, Python, AI, Data Governance, Data Scientist
Agenda
• はじめに
• CNNの解説 ~NNとの違い~
• SAS ViyaによるCNNの実装 ~SASとPython~
• 解析事例 ~ CNNによる「図表計画書の解析」~
3
4
はじめに
5
Convolutional Neural Network (CNN)
何段もの層を持つNeural Network (NN) であり,特に
画像認識の分野における強力なツールの1つ
Today’s Topic!!
Neural Networkは,人間の脳の
神経回路の仕組みを模したモデル
 入力されたデータの重み付き和でデータ
の特徴を表し,それらを用いて非線形な
モデルを構築する
• 1943年にW. McCulloch とW. Pittsが原型のモデルを発表したのが起源
• 一時の氷河期を乗り越え,今黄金期を迎えている手法
Neural Network導入
脳内モデル
刺激 多くの神経 ex.痛み
いくつかの神経は反応したり
しなかったり柔軟な情報の伝達
いくつかの神経は反応したり
しなかったり柔軟な情報の伝達
Neural Network導入
統計モデル
入力層 中間層 出力層
𝛼の重み付き和による
非線形関数への変換
𝛽の重み付き和による
非線形関数への変換
Neural Network導入
9
CNNの解説 ~NNとの違い~
10
与えられた画像の図形が「○」か「×」を判定する処理を例に
NNとCNNの違いを理解する
11
NNの概念を簡単に
DF
画像の位置のズレが判定に大きな影響を与える問題点
“右上から左下にかけて
黒”という傾向は共通
1ピクセル毎に
特徴を掴む!
12
CNNの概念を簡単に
畳み込み 畳み込み 畳み込み
ある程度の領域を
入力とすることで画像
の傾向を掴む!
13
CNNの概念を簡単に
フィルタで画像の傾向
を掴む!
-1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 1 1 1 -1 -1 -1
-1 -1 1 -1 -1 -1 1 -1 -1
-1 1 -1 -1 -1 -1 -1 1 -1
-1 1 -1 -1 -1 -1 -1 1 -1
-1 1 -1 -1 -1 -1 -1 1 -1
-1 -1 1 -1 -1 -1 1 -1 -1
-1 -1 -1 1 1 1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1
9×9の「○」の画像
-1 -1 -1
-1 -1 1
-1 1 -1
1 1 1
1 1 -1
1 -1 -1
ピクセル数 (=9)
6つ一致,3つ不一致
(合計すると6-3=3)
0.33 1 0.33 0.33 -0.11 0.56 0.33
1 -0.11 -0.11 -0.11 0.33 -0.11 0.56
0.33 -0.11 0.33 0.56 0.33 0.33 0.33
0.33 -0.11 0.56 0.56 0.56 0.33 0.33
-0.11 0.33 0.33 0.56 0.33 0.78 -0.11
0.56 -0.11 0.33 0.33 0.78 -0.11 0.11
0.33 0.56 0.33 0.33 -0.11 0.11 0.33
畳み込み計算結果 (特徴マップ)
フィルタ
14
CNNの概念を簡単に
畳
み
込
み
層
正
規
化
最
大
プ
ー
リ
ン
グ
層
畳
み
込
み
層
正
規
化
最
大
プ
ー
リ
ン
グ
層
全
結
合
層
全
結
合
層
出
力
層・・・
テントウムシ
カブトムシ
カマキリ
ダンゴムシ
畳み込み層 プーリング層 全結合層
15
SAS ViyaによるCNNの実装~SASとPython~
16
SAS ViyaによるCNNの実装
proc cas ;
loadactionset 'image';
image.loadImages / casout={name='image_files', replace=1}
path="/var/viya_data/image"
recurse= TRUE decode=TRUE labellevels=-2;
image.processImages / casout={name='resized_image', replace=1}
imageTable={name='image_files'}
imageFunctions={{functionOptions={functionType="RESIZE", height=224, width=224}}};
shuffle / casout={name='resized_shuffled', replace=1}
table={name='resized_image'};
deepLearn.buildModel /
modelTable={name="SAS_TEST", replace=TRUE} type="CNN";
deepLearn.addLayer /
layer={type="INPUT" nchannels=3 width=224 height=224}
modelTable={name="SAS_TEST"} name="data";
deepLearn.addLayer /
layer={type="CONVO" nFilters=8 width=7 height=7}
modelTable={name="SAS_TEST"} name="conv1" srcLayers={"data"};
deepLearn.addLayer /
layer={type="POOL" width=2 height=2 }
modelTable={name="SAS_TEST"} name="pool1" srcLayers={"conv1"};
deepLearn.addLayer /
layer={type="CONVO" nFilters=8 width=7 height=7}
modelTable={name="SAS_TEST"} name="conv2" srcLayers={"pool1"};
deepLearn.addLayer /
layer={type="POOL" width=2 height=2 }
modelTable={name="SAS_TEST"} name="pool2" srcLayers={"conv2"};
deepLearn.addLayer /
layer={type="OUTPUT" act='softmax' n=2}
modelTable={name="SAS_TEST"} name="outlayer" srcLayers={"pool2"};
deepLearn.modelInfo / modelTable={name="SAS_TEST"};
deepLearn.dlTrain /
inputs={{name="_image_"}}
modelTable={name="SAS_TEST"}
modelWeights={name="SAS_TEST_W" replace=TRUE}
table={name="resized_shuffled"}
optimizer={ maxepochs=1 miniBatchSize=128};
quit;
%matplotlib inline
import swat
sess = swat.CAS("sasviya-address", 1234, "user-id", "password")
from dlpy.images import ImageTable
img_path='/var/viya_data/image'
my_images = ImageTable.load_files(sess, path=img_path)
my_images.resize(width=224)
from dlpy.splitting import two_way_split
tr_img, te_img = two_way_split(my_images, test_rate=20, seed=123)
tr_img.as_patches(width=200, height=200, step_size=24, output_width=224, output_height=224)
from dlpy import Model, Sequential
from dlpy.layers import *
from dlpy.applications import *
model1 = Sequential(sess, model_table='CNN sample program')
model1.add(InputLayer(3, 224, 224, offsets=tr_img.channel_means))
model1.add(Conv2d(8, 7))
model1.add(Pooling(2))
model1.add(Conv2d(8, 7))
model1.add(Pooling(2))
model1.add(Dense(16))
model1.add(OutputLayer(act='softmax', n=2))
SAS Viyaの
SAS StadioインターフェイスによるCNN
SAS Viyaの
PythonインターフェイスによるCNN
17
SAS ViyaによるCNNの実装
model1 = Sequential(sess, model_table='CNN sample program')
model1.add(InputLayer(3, 224, 224, offsets=tr_img.channel_means))
model1.add(Conv2d(8, 7))
model1.add(Pooling(2))
model1.add(Conv2d(8, 7))
model1.add(Pooling(2))
model1.add(Dense(16))
model1.add(OutputLayer(act='softmax', n=2))
SAS ViyaのPythonインターフェイスによる
CNNのモデル構築プログラム
畳
み
込
み
層
正
規
化
最
大
プ
ー
リ
ン
グ
層
畳
み
込
み
層
正
規
化
最
大
プ
ー
リ
ン
グ
層
全
結
合
層
出
力
層
テントウムシ
猫
モデルのSummaryをグラフィカル表示
model1.plot_network()
18
SAS ViyaによるCNNの実装
SAS Viyaの
PythonインターフェイスによるCNNプログラム
model1.fit(data=tr_img, mini_batch_size=3, max_epochs=30, lr=5E-5, log_level=3)
model1.plot_training_history(fig_size=(15, 6))
model1.predict(te_img)
モデルのあてはめ
学習履歴の表示とテストデータの予測結果
model1.plot_predict_res(type='C', image_id=2)
分類結果の確認
78.94%
19
SAS ViyaによるCNNの実装
SAS ViyaのPythonインターフェイスによる
CNNの考察~機械はどこを見ている~
各レイヤーの内容 (特徴) を見る ヒートマップ
# 2層目
# 4層目
# 6層目
# 8層目
# 10層目
20
解析事例~ CNNによる「図表計画書の解析」~
画像データのイメージの脱却
21
医療業界における画像データは,
MRI画像や眼底写真などをイメージ
する人が多い…??
画像データのイメージは,いわゆる写真を
想像する人が多い…??
文章や表も,例えばスクリーンショットを取って
.jpgファイルに変換すれば,画像データ!
22
臨床試験解析を準自動化(通称AI project)
– AI SAS Programmer System
解析資料作成プログラム等の準自動生成するためのシステム
活用事例:「図表計画書の解析」
生成された
解析用プログラム
システムの概略
活用事例:「図表計画書の解析」
計画書からプログラム生成
に必要な情報を取得
教師データに基づき,
プログラム生成に必要
な情報を予測・検索
プログラムを出力
通常,数百の解析用
プログラムを作成すること
が計画される
対象の臨床試験の
計画書
Sample:図表計画書
教師データ(社内外データ)
過去試験の
データ
社外の
標準メタデータ
CDISC
24
モデルと解析結果(ヒートマップ)
活用事例:「図表計画書の解析」
機械がどこを見て分類したのかを考察することで,
新たな知見の発見に繋げることができる
AI SAS Programmer Systemの一部の構成要素と
している.このシステム稼働により33%のタスク減
25
 CNNの実装には難しさも多い
 (環境に依存する問題であるが) 処理時間の問題
 モデル構築 (層の数など) の検討
 パラメータのチューニングなど
 しかし,CNNの魅力は大きい
 従来の機械学習は,過学習等に注意してパラメータをチューニングし,「人の直感」
のようなものを結果として出力するイメージに近かったが,CNNは,誤分類率や情報
損失を低下させるようにパラメータをチューニングし,「機械の直感」のようなものを
結果として出力するイメージに近い
 本発表のポイントは「全てのデータは画像にすることができる」というア
イデア.様々な視点から作成した画像データに対してCNNを活用するこ
とで,Process Innovationを起こすことは可能
 本発表がCNNの可能性を拡げる一助になれば幸甚である
まとめ
参考文献
• MathWorks, “畳み込みニューラルネットワーク (CNN)”,
[https://jp.mathworks.com/discovery/convolutional-neural-network.html]
• Qiita, “Convolutional Neural Networkとは何なのか”, 2017
[https://qiita.com/icoxfog417/items/5fd55fad152231 d706c2]
• Course Hero, “Deep-Learning-2017-Lecture5CNN.ppt”,
[https://www.coursehero.com/file/27811115/Deep-Learning-2017-
Lecture5CNNppt/]
• System Integrator, “畳み込みニューラルネットワーク_CNN(Vol.16)”,
[https://products.sint.co .jp/aisia/blog/vo l1-16]
26
27

More Related Content

PDF
Mobile
PDF
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」
PDF
GPU と PYTHON と、それから最近の NVIDIA
PDF
NGC でインフラ環境整備の時間短縮!素早く始めるディープラーニング
PPTX
Prometech Particleworks on Rescale
PDF
JAMstackは眠らない
PDF
Smart Tennis Lesson Serverless Design
PDF
【PlayCanvas×NCMB 勉強会+ハンズオン】HTML5ゲームにバックエンド機能をらくらく追加!ハンズオン(2017/09/05講演)
Mobile
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」
GPU と PYTHON と、それから最近の NVIDIA
NGC でインフラ環境整備の時間短縮!素早く始めるディープラーニング
Prometech Particleworks on Rescale
JAMstackは眠らない
Smart Tennis Lesson Serverless Design
【PlayCanvas×NCMB 勉強会+ハンズオン】HTML5ゲームにバックエンド機能をらくらく追加!ハンズオン(2017/09/05講演)

Similar to SAS ViyaのCNNを活用したProcess Innovation ~機械は解析図表をどう見ているのか~ (20)

PDF
マーブル図で怖くないRxJS
PDF
R-CNNの原理とここ数年の流れ
PDF
Q con shanghai2013- 荣先乾-qzone_touch跨终端优化_v2.0
PDF
Chainer v1.6からv1.7の新機能
PPTX
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
PDF
NetApp Session at PEX Tokyo 2013
PDF
ADVENTUREの他のモジュール・関連プロジェクトの紹介
PPTX
OpenStack本番環境の作り方 - Interop 2016
PDF
[Track2-5] CPUだけでAIをやり切った最近のお客様事例 と インテルの先進的な取り組み
PDF
MII conference177 nvidia
PDF
200625material naruse
PPTX
2016年2月4日 空間OSのためのビッグデータ技術基盤
PDF
NVIDIA Deep Learning SDK を利用した画像認識
PDF
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
PDF
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
PDF
Azure IoT Edge で Custom Vision
PDF
JOSUG 9th Study
PPTX
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
PDF
MIRU2018 tutorial
PPTX
クラウド & STAR-CCM+ を活用するための勘ドコロ
マーブル図で怖くないRxJS
R-CNNの原理とここ数年の流れ
Q con shanghai2013- 荣先乾-qzone_touch跨终端优化_v2.0
Chainer v1.6からv1.7の新機能
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
NetApp Session at PEX Tokyo 2013
ADVENTUREの他のモジュール・関連プロジェクトの紹介
OpenStack本番環境の作り方 - Interop 2016
[Track2-5] CPUだけでAIをやり切った最近のお客様事例 と インテルの先進的な取り組み
MII conference177 nvidia
200625material naruse
2016年2月4日 空間OSのためのビッグデータ技術基盤
NVIDIA Deep Learning SDK を利用した画像認識
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
Azure IoT Edge で Custom Vision
JOSUG 9th Study
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
MIRU2018 tutorial
クラウド & STAR-CCM+ を活用するための勘ドコロ
Ad

More from SAS Institute Japan (20)

PPTX
SAS Japan Blog 記事「統計的因果推論コラム(2)」補足資料
PPTX
SAS Japan Blog 記事「統計的因果推論コラム(1)」補足資料
PPTX
SAS Learning Subscription 登録手順
PDF
ディープラーニングは、時系列予測でも最強なのか?
PDF
SAS Viyaのディープラーニングを用いた物体検出
PPTX
SAS OnDemand for Academics 登録方法
PPTX
SAS Visual Analytics 8.3 におけるクロス集計表の作成と可視化
PDF
SAS Viyaによる意識改革からみえたData Scientistの生き方 ~僕たちはどう生きるか~
PDF
SAS Viya Deep Dive: 予測モデリング
PDF
SAS Viya Deep Dive: 自然言語処理&AI
PPTX
SAS University Editionにおける日本語を含むファイルの取り扱い
PDF
SAS言語派集まれ!SAS StudioからSAS Viyaを使ってみよう!
PDF
SAS Viya で異常検知してみよう!
PDF
Pythonで操るSAS Viyaの画像処理技術入門編
PDF
Python / R で使うSAS Viya
PPTX
SAS OnDemand for Academics 登録方法
PDF
無料統計・予測分析ツールを提供:SAS Analytics U
PDF
SASによるテキスト・アナリティクス入門
PDF
SAS Enterprise Minerを使用した機械学習
PDF
SAS High-Performance Analyticsによるビッグデータ解析
SAS Japan Blog 記事「統計的因果推論コラム(2)」補足資料
SAS Japan Blog 記事「統計的因果推論コラム(1)」補足資料
SAS Learning Subscription 登録手順
ディープラーニングは、時系列予測でも最強なのか?
SAS Viyaのディープラーニングを用いた物体検出
SAS OnDemand for Academics 登録方法
SAS Visual Analytics 8.3 におけるクロス集計表の作成と可視化
SAS Viyaによる意識改革からみえたData Scientistの生き方 ~僕たちはどう生きるか~
SAS Viya Deep Dive: 予測モデリング
SAS Viya Deep Dive: 自然言語処理&AI
SAS University Editionにおける日本語を含むファイルの取り扱い
SAS言語派集まれ!SAS StudioからSAS Viyaを使ってみよう!
SAS Viya で異常検知してみよう!
Pythonで操るSAS Viyaの画像処理技術入門編
Python / R で使うSAS Viya
SAS OnDemand for Academics 登録方法
無料統計・予測分析ツールを提供:SAS Analytics U
SASによるテキスト・アナリティクス入門
SAS Enterprise Minerを使用した機械学習
SAS High-Performance Analyticsによるビッグデータ解析
Ad

SAS ViyaのCNNを活用したProcess Innovation ~機械は解析図表をどう見ているのか~