SAS Viyaのディープラーニング機能をPythonから利用するためのハイレベルAPIパッケージの最新版であるDLPy1.1では、主にCNN(Convolutional Neural Network)に関連する機能が拡張されています。
主な拡張機能:
・新たに3つのネットワーク構造に対応
【U-Net】
元々は、医療用画像のセグメンテーション向けに開発されたネットワークです。
(出典:https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/)
【MobileNet】
モバイル端末のようなリソースの少ない環境でも、畳み込み計算を分割(Depthwise Separable Convolution)することで、軽快に、素早く、そして精度の高い結果を得ることができると言われているネットワークです。
左が一般的な畳み込み構造。右が、MobileNetの構造。(出典:https://arxiv.org/pdf/1704.04861.pdf)
【ShuffleNet】
MobileNet同様に軽量軽快なネットワークですが、MobileNetでの畳み込みの分割に加えて、その名の通り、チャンネルをシャッフルしてチャンネル間での畳み込みを行い、特徴抽出を効率化するネットワーク構造です。
(出典:https://arxiv.org/pdf/1707.01083.pdf)
・上記ネットワーク構造に伴う、畳み込み層機能の拡張
【transpose convolution(転置畳み込み)】
Deconvolution(逆畳み込み)とも言われ、元となる画像に0 paddingして拡大してから畳み込む手法です。(上記U-Netに関連)
【group convolution(グループ化畳み込み)】
入力層をチャンネル方向にグループ分割して、グループごとに畳み込みを行い、最後に結合して出力する手法です。分割することで計算量を小さくすることができます。(上記MobileNet、ShuffleNetに関連)
・画像解析手法の拡張
【物体検出(Object Detection)手法にFaster R-CNNを追加】
R-CNNからFast R-CNN、そしてFaster R-CNNへと処理時間の短縮と精度向上が図られ進化してきているアルゴリズムです。
(出典:https://arxiv.org/pdf/1506.01497.pdf)
DLPyの従来版からサポートしているYOLOに比べると処理時間はかかりますが、より高い精度を得ることができます。
【新たにセグメンテーション(Semantic Segmentation)に対応】
セグメンテーションは、画像中に存在する複数の物体や領域に対して、ピクセルレベルで推定する問題です。画像を入力すると、各画素に対して識別結果が付与された画像を出力します。一般的には、 Nクラスのセグメンテーションモデルは、Nチャンネルの出力画像を出力し、各チャンネルの画素値は各クラスの確率を表します。(上記U-Netに関連)
以上のように、PythonユーザーがDLPyを通して活用することができる、SAS Viyaのディープラーニング(CNN)機能が拡張されています。
※DLPyの詳細に関しては、Githubサイトでご覧いただけます。
※Enterprise Open Analytics Platform 「SAS Viya」 を知りたいなら「特設サイト」へGO!