Tag: DLPy

Analytics
SAS Global Forum 2019 論文紹介シリーズ 第1回「OSS言語から活用できるオープンなSASプラットフォーム」

例年と同様に、SAS Instituteはグローバル各国でフォーラムを開催しました。日本ではSAS Forum Japanと題して6月11日に東京の六本木で開催され、また、アメリカSAS本社はダラスでSAS Global Forum 2019を開催(4/28~5/1)し、その中では多数の論文が発表されています。本シリーズでは、これらの論文の中から、OSSとSASプラットフォーム製品のユースケース、OSSコーディング開発・運用事例、クラウドアーキテクチャの設計と運用等々の注目された内容を選別した上で、4回に分けて紹介していきます。 第1回「OSS言語から活用できるオープンなSASプラットフォーム」 近年、OSS(オープンソースソフトウェア)プログラミング言語が数多くのデータサイエンティストや企業によって利用され、分析モデルが開発されています。PythonやR、Luaなどデータサイエンティストや開発者たちに好かれたプログラミング言語はアナリティクス業界に革新をもたらしました。SASはそれらのOSSユーザと企業の要望に応じ、従来のSASユーザとOSSプログラミングユーザーたちが共同作業、かつ連携できるようなプラットフォームを提供しています。 今回は、OSSユーザがどのような方法を利用し、SASプラットフォーム上で自由自在なデータ分析を行えるのかをテーマとし、SAS Global Forumで公開した論文をご紹介します。 1.Open Visualization with SAS® Viya® and Python この論文では、オープンソース言語の一つであるPythonに関し、SAS ViyaのSWAT(Scripting Wrapper for Analytics Transfer)を通じて、メインにオープンソースのグラフィックテクノロジー、特にPythonのMatplotライブラリ、そして現在主流となっているD3の可視化フレームワークとのインテグレーション技術について紹介しています。本文で用いた例は、統計プログラミングのサンプルを使って、Jupyter NotebookからSAS Viyaの機能を呼び出し、最終的に、mpld3で作られた静的なグラフを動的グラフに変更した例となります。 2.SWAT’s it all about? SAS Viya® for Python Users SASは2016の7月にPythonライブラリSWATをリリースしました。それにより、PythonユーザはSASのCASに接続して、SAS Viyaの各種機能を使えるようになりました。SWATを利用することで、SAS言語バックグラウンドを持っていないユーザには、SAS言語ユーザと同じくCASとSAS Viyaの各種機能を使用できるようになります。この論文では、Python SWATを通じて、CASセッションへ接続し、PythonからCASへデータをロードし、さらにCASアクションで実行して分析する一連作業をデモンストレーションの形で紹介します。使用するデータは、SASほかのアプリケーション、例えばVisual Analyticsなどでも利用できる様子を紹介します。 3.Deploying Models Using SAS® and Open Source 近来、機械学習と人工知能の議論はほとんどの時間がモデル開発の議論に費やされています。しかし、モデルによって得られる洞察をどのように効率的にビジネス価値創出に適用するかに関してはほとんど議論されていません。この論文では、モデルの構築に応じ、Docker、Flask、Jenkins、Jupyter、Pythonなどのオープンソースプロジェクトとの組み合わせで、SASを使用してモデルを展開するためのDevOpsプリンシパルの使用例を紹介します。例に使われている関連アプリケーションはグローバルなユーザベースを持つ資産上のレコメンド・エンジンとなります。この使用例は、セキュリティ、待ち時間、スケーラビリティ、再現性に直面する必要があることをめぐってディスカッションします。最後に、その解決策となるソリューションとその課題となる部分を含めて説明します。 4.SAS®

Artificial Intelligence
SAS Viya:セマンティック・セグメンテーション(Semantic Segmentation)を試してみた

PythonからSAS Viyaの機能を利用するための基本パッケージであるSWATと、よりハイレベルなPython向けAPIパッケージであるDLPyを使用して、Jupyter NotebookからPythonでSAS Viyaの機能を使用してセマンティック・セグメンテーション(Semantic Segmentation)を試してみました。 大まかな処理の流れは以下の通りです。 1. 必要なパッケージ(ライブラリ)のインポートとセッションの作成 2. 画像データ内容の確認とセグメンテーション用データセットの作成 3. モデル構造の定義 4. モデル生成(学習) 5. セグメンテーション(スコアリング) 1. 必要なパッケージ(ライブラリ)のインポートとセッションの作成 swatやdlpyなど、必要なパッケージをインポートします。 %matplotlib inline # SWAT パッケージのインポート import swat as sw import sys   # DLPy パッケージのインポート import dlpy from dlpy.network import * from dlpy.utils import * from dlpy.applications import * from dlpy.model

Artificial Intelligence
SAS Viya:Python API向けパッケージ:DLPyの最新版1.1拡張機能とは

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!

1 2 3 4 5 8