Author

Makoto Unemi (畝見 真)
RSS
ビジネスディベロップメントグループ

データ分析によりビジネス価値を創造する「ビジネス・アナリティクス」を日本市場に浸透させる活動に長年従事し、金融・製造・通信業を中心に数多くのアナリティクス・プロジェクトの提案に参画。 現在はAIプラットフォームなど新たなテクノロジーの活用に特化した提案を担当している。 ディープラーニングや機械学習などのAIテクノロジーや大規模分析基盤アーキテクチャについての豊富な知見、経験を持つ。 新たなテクノロジーでも分かりやすく解説するプレゼンテーションには定評があり、満足度の高い講演を年間、数多く行っている。

Artificial Intelligence
DLPyを使用した、ディープラーニングのfunctional APIモデル構築

SAS Viyaの分析機能をPythonから利用するためのハイレベルAPIパッケージであるDLPyでは、kerasと同等の簡潔なコーディングで、複雑な画像処理やディープラーニングを実行することができます。 そして、DLPyでは、kerasと同様に、2つの手法でディープラーニングのモデルを構築することができます。 Sequential modelとfunctional API modelです。 Sequentialとは、その名の通り、レイヤーを順序通りに積み重ねて、順序通りに実行していくモデルです。 以下は、DLPyを用いて、PythonからSAS Viyaのディープラーニング機能を使用して画像分類向けsequential modelのネットワークを定義している例です。 In [10]: model1 = Sequential(sess, model_table='Simple_CNN') 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)) In [11]: model1.print_summary() Out[11]: In [12]: model1.plot_network() Out[12]: 一方、functional APIは、sequentialでは、表現することが難しい、より複雑な構造のモデルを構築する際に利用されます。 以下は、kerasの公式サイトに記載されている文面です。 “functional APIは,複数の出力があるモデルや有向非巡回グラフ,共有レイヤーを持ったモデルなどの複雑なモデルを定義するためのインターフェースです.” そして、DLPyでは、kerasと同様にsequential modelだけでなく、functional API modelの構築も可能になっています。 以下はその一例として、複数の入力と出力を持つような画像分類のためのディープラーニングモデルのネットワーク例です。 まず、テンソルオブジェクトを返すInput()によって、2つのテンソル、グレースケール画像とカラー(RGB)画像、を定義します。 グレースケール画像は2つの畳み込み層に送り込まれます。カラー画像はそれらとは別の畳み込み層に送り込まれます。

Advanced Analytics | Analytics | Artificial Intelligence | Machine Learning
Makoto Unemi (畝見 真) 0
PythonやRで開発されたモデルの精度をビジュアルパイプラインで簡単比較

データサイエンティスト(以降、DSと表記)は、お好みのプログラミング言語を使用して、日々モデリングを行っています。昨今は、その中でもオープンソースのプログラミング言語であるPythonやRを使用されている方の割合が多くなってきているようです。その結果として、企業の分析組織やチーム内には複数の異なる言語を活用するDSが混在するケースも見受けられます。(一人で両方の言語を操る方もいます。) 「Pythonを操るAさんが作成されたモデルと、Rを操るBさんが作成されたモデル、どちらの精度が高いのかを容易かつビジュアルに比較することができたら…」  ということで、今回は、SAS ViyaのModel Studioを使用し、ビジュアルなパイプライン上での異なる言語間モデル精度比較をご紹介します。  手順は以下の通りです。 ① プロジェクトの新規作成と学習用のデータソース選択 ② パイプラインの作成と実行 ③ 実行結果(モデル精度)の確認 ① プロジェクトの新規作成と学習用のデータソース選択 「SAS Viya: ビジュアルパイプラインで予測モデル生成(基本編)」の「1.プロジェクトの新規作成と学習用のデータソース選択」を参照ください。 ② パイプラインの作成と実行 画面上部にある「パイプライン」をクリックします。 パイプラインには「データ」ノードのみが表示されています。左端の機能ノードアイコンをクリックすると、 パイプラインに追加可能な機能ノードのリストが表示されます。 まずは学習データに対する前処理として、欠損値補完を行います。 「データマイニングの前処理」内にある「補完」を「データ」ノード上にドラッグすると、 「データ」ノードの下に「補完」ノードが追加されます。 同様の手順で、「その他」内にある「オープンソースコード」を「補完」ノード上へドラッグすると、「補完」ノードの下に「オープンソースコード」ノードが追加されます。 機能ノードごとのオプション設定は、右側画面内で行います。 「言語」が「Python」であることを確認し、「開く」をクリックします。 開かれた画面内に、比較対象のPythonのコード(ランダムフォレストのモデル)をコピーします。右上の「保存」(フロッピーディスクアイコン)をクリックし、「閉じる」をクリックします。 ※ターゲット変数名や入力変数リスト名など、画面左側の変数名を使用することによって、オープンソースコードノードとその他のノード間でのデータ連携が可能となり、異なる言語のモデル間での精度比較も可能になります。各種規定変数名の詳細に関しては、オンラインマニュアルを参照してください。 「オープンソースコード」ノードの右側にある3つのドットが縦に並んでいる(スノーマン)アイコンをクリックし、「名前の変更」を選択し、 「Pythonフォレストモデル」に変更します。 このようにドラッグ操作でノードを追加する以外に、パイプライン上のメニューからノードを追加することもできます。 「補完」ノードのスノーマンアイコンをクリックし、「下に追加」>「その他」>「オープンソースコード」の順に選択すると、 「補完」ノードの下に「オープンソースコード」ノードが追加されます。 以降、同様の手順で比較対象のRのコード(ランダムフォレストのモデル)をコピーし、ノードの名前を変更します。 「オープンソースコード」ノードは、データに対する前処理として使用することもできます。デフォルトでは、「オープンソースコード」ノードは、データに対する前処理として認識されているので、これを「教師あり学習」に切り替えます。 PythonとRのモデルノードそれぞれのスノーマンアイコンをクリックし、「移動」>「教師あり学習」を選択します。 すると、「モデルの比較」ノードが追加され、PythonとRのモデルノードと接続されます。 パイプラインが完成したので、右上の「パイプラインの実行」アイコンをクリックし、実行します。 ③ 実行結果(モデル精度)の確認 処理が正常に完了したら、「モデル比較」ノードのスノーマンアイコンをクリックし、「結果」を選択します。 Rのフォレストモデルの方が精度が高い、チャンピオンモデルであると表示されました。 リフトやROC、様々な統計量で、精度を詳細に比較することもできます。 以上が、ビジュアルパイプラインでPythonとRのモデル精度を比較する手順です。 もちろん、必要に応じて、PythonやRのモデルとSASのモデルの精度を比較することもできます。 ※ビジュアルパイプラインでPythonとRのモデル精度を比較は、SAS Viya特設サイトにある動画でもご覧いただけます。 ※実際にPythonとRのモデル精度比較を試してみたい方は、Githubに公開されているアセットを活用ください。

Analytics
AI実用化の鍵は「アナリティクス・ライフサイクル」に在り

近年、AIや機械学習がブームとなり、キーワードだけが先走りしている傾向にあります。結果、「AI・機械学習を活用する」こと自体が目的化し、ツールや環境を導入したものの、ビジネス価値創出に至らないケースも多いようです。 その最大の要因は、肝となる「アナリティクス・ライフサイクル」の欠如にあります。 まず、業務課題を明確化した上で、その課題を解決するためにはデータ分析が必要であり、分析には元となるデータが必要になります。必要なデータを準備し、その中身を探索し、その結果に基づいて予測モデルを開発し、作成されたモデルを業務に実装する、このサイクルを素早く回し続ける、これが、企業が抱える業務課題を解決し、ビジネス価値(収益の拡大、コストの削減、リスクの低減、など)を創出するための鍵なのです。   アナリティクス・ライフサイクルを構成する3つの要素: アナリティクス・ライフサイクルを素早く回すためには、上記3つの要素がシームレスに連携する必要があります。しかし、多くの企業では、従来から、複数の異なるベンダーの異なる商用ソフトウエアや環境、あるいはオープンソースソフトウエアなどを継ぎ接ぎして分析環境を構築してきたため、このサイクルを回すためには多大な時間を擁してしまい、変化への素早い対応は困難な状況にありました。 この課題に対して、AIプラットフォーム SAS® Viya®では、アナリティクス・ライフサイクルに必要な機能要素を網羅した上で、それぞれがシームレスに連携し、高速に回し続けることが可能となっています。 そして、SAS Viyaには、分析者のスキルレベルに応じて、プログラミングインターフェースとグラフィカルインターフェースの両方が備わっています。 データサイエンティストであれば、データの準備から探索、そしてモデル生成までをお好みの言語(SAS, Python, R, Java, Lua)を使用して実施することができます。 一方で、コーディングスキルを持たないビジネスユーザーであれば、統合グラフィカルユーザーインターフェース上でアナリティクス・ライフサイクルをシームレスかつ高速に回し続けることが可能となっています。 企業が、その企業の競合企業よりも早く、正確に、アナリティクス・ライフサイクルを回すことによって、以下が実現されます。: より多くの反応率の高いマーケティングキャンペーンをより早く実施し、より多くの新規顧客を獲得し、既存顧客の離反を防止 より早く正確に、より多くの製造設備の異常予兆を検出し、設備のダウンタイムを最小化し、生産量を最大化 より多くの種類の不正をより早く正確に検知し、不正により齎されるリスクや損失を低減し、企業の信頼度を向上 企業を取り巻く環境の変化に、より素早く対応 …など Data:データの準備 異なる分析要件ごとに、分析者自身で、分析に必要なデータは都度準備する必要があります。SAS Viyaでは、分析者自身で分析に必要なデータをセルフサービス型で準備することができるようになっています。 マウスのポイント&クリック操作だけで、データのプロファイリングからクレンジング、加工・変換・結合などを自由自在に行うことができ、分析プロセス全体の中で7、8割の工数を占めると言われるデータ準備工数や時間を大幅に削減することが可能となります。 Discovery:データの探索とモデル生成 次に、準備したデータの中身を探索します。SAS Viyaでは、コーディングスキルを持たないビジネスユーザーでもマウスの簡単操作だけで、データの探索や分析が可能になっています。単一の画面内で、過去の見える化から高度な機械学習までもが可能で、できあがった画面をレポートやダッシュボードとして即座に全社に公開し、共有することもできます。 データサイエンティストであれば、モデル生成の手前のビジュアルなデータ探索手段として活用することができます。 データ探索の結果に基づき、予測モデルを構築します。 SAS Viyaでは、ビジュアルなUIからマウスのドラッグ&ドロップ操作で、機械学習、時系列予測、テキスト解析の各種モデル生成プロセスをグラフィカルなフロー図(パイプライン)として描き、実行することが可能になっています。 このモデル生成パイプラインは、ドラッグ操作で一から作り上げることもできますし、SASの長年のベストプラクティスに基づき、予め用意されているパイプラインのテンプレートを使用して、精度の高い予測モデルを自動生成することも可能です。 Deployment:モデルの業務実装 生成されたモデルは統合的に管理した上で、業務に実装することができます。 モデル管理画面では、モデルにテストデータを当てはめてスコアリングテストの実施や、モデルのデプロイ(業務実装)、業務に実装後のモデル精度のモニタリング、再学習を実行し、モデル精度を改善、そしてバージョン管理など、モデルを統合管理することができます。 管理されたモデルは、異なる業務要件ごとに異なる環境へデプロイ(業務実装)することができます。 REST API:既存のアプリケーションからREST APIを通じて、SAS Viyaサーバー上にあるモデルにデータを当てはめてスコアリング(予測処理)を行い、結果を受け取ることができます。 インデータベース:モデルをデータベース内にデプロイし、データベース内で直接スコアリングを実施することができます。これによって、スコアリング対象の大量のデータを転送する必要が無くなり、処理の効率化や意思決定の迅速化も図れます。 インストリーム:SAS Viyaには、オンライン機械学習・リアルタイム処理向けにストリーミングのエンジンも実装されています。SAS Viyaのリアルタイムプロセスにモデルをデプロイすることで、リアルタイム・スコアリングも実現されます。 以上のように、企業が業務課題を解決し、ビジネス価値を創出するためには、「アナリティクス・ライフサイクル」が肝であり、このサイクルをシームレスかつ素早く回し続けることが、企業の変化対応力、競争力強化に直結するということです。 従来からSASを活用し、ビジネス価値を出している企業はすべてこのサイクルを回し続けています。そして、AIプラットフォームSAS Viyaでは、これを強力に支援することができるということです。

1 2 3 4 5 14