Tag: 機械学習

Advanced Analytics | Analytics | Artificial Intelligence | Data for Good | Data Visualization | Internet of Things | Machine Learning | Work & Life at SAS
小林 泉 0
SAS社員としての誇りーミツバチ・森林・絶滅危惧種の保護や医療への貢献にAI/アナリティクスを活用

SASの一つの顔は、アナリティクスで営利目的の意思決定を支援 筆者は、SAS社員として、20年以上に渡りアナリティクスおよびAIで企業・組織を支援してきました。 金融機関における、リスク管理や債権回収の最適化 通信業における、顧客LTV最大化、ネットワーク最適化やマーケティング活動の最適化 製造業における、需要予測、在庫最適化、製造品質の向上や調達最適化 流通・小売業における、需要予測やサプライチェーン最適化 運輸業における、輸送最適化や料金最適化 ライフサイエンス・製薬企業における、業務の最適化 官公庁における、市民サービス向上のための不正検知 など、様々な業種・業務においてアナリティクスの適用によるお客様のビジネス課題の解決に携わってきました。営利目的(ここでは市民サービスの向上も含めることにします)の企業・組織におけるアナリティクスの活用目的は主に以下の3つに集約されます。 収益(売り上げ)の増大 コストの低減 リスク管理 アナリティクスは、いわゆる「データ分析」を手段とし、過去起きたことを把握して問題を定義し、次に将来を予測し、様々な選択肢の中から最適な予測に基づいて意思決定をしていくことになりますが、その過程の中で、起きてほしい事象を予測して促進したり、起きてほしくない事象を予測して防いだり、その予測のばらつきを管理したりということを行っていきます。 このような営利目的でのアナリティクスの活用はSASという会社が誕生した40年以上前から行われており、基本的な活用フレームワークは変わっていません。IT技術の進化によって、利用可能なデータの種類や大きさが、増えてきただけにすぎないと言えます。例えば、昨今のAIブームの代表格であるディープラーニングですが、ディープラーニングという処理方式の進化と、GPUという処理機械の進化によって、非構造化データをより良く構造化しているものであり、もちろんモデリング時のパラメータ推定値は何十億倍にはなっていますが、モデリングのための1データソースにすぎません。もう少しするとディープラーニングも使いやすくなり、他の手法同様、それを使いこなすあるいは手法を発展させることに時間を費やすフェーズから、(中身を気にせず)使いこなせてあたりまえの時代になるのではないでしょうか。 SASのもう一つの顔、そして、SAS社員としての誇り、Data for Goodへのアナリティクスの適用 前置きが長くなりましたが、SAS社員としてアナリティクスに携わってきた中で幸運だったのは、データの管理、統計解析、機械学習、AI技術と、それを生かすためのアプリケーション化、そのためのツール、学習方法や、ビジネス価値を創出するための方法論や無数の事例に日常的に囲まれていたことだと思います。それにより、それら手段や適用可能性そのものを学習したり模索することではなく、その先の「どんな価値創出を成すか?」「様々な問題がある中で優先順位の高い解くべき問題はなにか?」という観点に時間というリソースを費やすことができていることだと思います。そのような日常の仕事環境においては、アナリティクスの活用を営利目的だけではなく、非営利目的の社会課題の解決に役立てるというのは企業の社会的責任を果たす観点においても必然であり、Data for Goodの取り組みとしてSAS社がユニークに貢献できることであり、SAS社員として誇れるところだと考えています。 最終的に成果を左右するのは「データ」 そして、もう一つの真実に我々は常に直面します。クラウド・テクノロジー、機械学習、ディープラーニングなどの処理テクノロジーがどんなに進歩しようともアナリティクス/AIによって得られる成果を左右するのは「データ」です。どのようなデータから学習するかによって結果は決まってきます。 IoT技術で収集したセンサーデータは知りたい「モノ」の真実を表しているだろうか? 学習データに付与されたラベル情報は正確だろうか? 学習データは目的を達成するために必要な集合だろうか? そのデータは顧客の心理や従業員の心理をどこまで忠実に表しているだろうか? 特に、Data for Goodのチャレンジはまさにそのデータ収集からスタートします。ほとんどの場合、データは目的に対して収集する必要があります。そして、下記の取り組みのうち2つはまさに、我々一人一人が参加できる、市民によるデータサイエンス活動として、AI/アナリティクスの心臓部分であるデータをクラウドソーシングによって作り上げるプロジェクトです。 Data for Good: 人間社会に大きな影響を及ぼすミツバチの社会をより良くする 概要はこちらのプレスリリース「SAS、高度なアナリティクスと機械学習を通じて健康なミツバチの個体数を増大(日本語)」をご参照ください。 ミツバチは、人間の食糧に直接用いられる植物種全体の75%近くに関して受粉を行っていますが、ミツバチのコロニーの数は減少しており、人類の食糧供給の壊滅的な損失につながる可能性があります。この取り組みでは、IoT, 機械学習, AI技術, ビジュアライゼーションなどSAS のテクノロジーを活用し、ミツバチの個体数の保全/保護する様々なプロジェクトを推進しています。この取り組みは以下の3つのプロジェクトから成り立っています。 ミツバチの群れの健康を非侵襲的に監視 SASのIoT部門の研究者は、SAS Event Stream ProcessingおよびSAS Viyaソフトウェアで提供されているデジタル信号処理ツールと機械学習アルゴリズムを用いて、ミツバチの巣箱の状態をリアルタイムで非侵襲的に追跡するために、生物音響監視システムを開発しています。このシステムによって養蜂家は、コロニーの失敗につながりかねない巣箱の問題を効果的に理解し、予測できるようになります。 関連ページ:5 ways to measure

Advanced Analytics | Analytics | Artificial Intelligence | Data Visualization | Machine Learning
SAS Viya: ビジュアルパイプラインでスコアリング

SAS Viyaでは、Model Studioを使用し、機械学習のモデル、時系列予測のモデル、テキストマイニングのモデルをGUIベースの簡単マウス操作で作成することができます。モデル生成プロセスをグラフィカルなフロー図として描き、実行するだけです。このフロー図のことを「パイプライン」と呼んでいます。 「SAS Viya: ビジュアルパイプラインで予測モデル生成(基本編)」では、モデル生成と精度評価の基本的な流れを紹介しましたが、今回は、生成したチャンピオンモデルに新しいデータを当てはめてインタラクティブにスコアリングを実行する手順を紹介します。また、スコアリング結果のデータの探索や、エクスポートまで試してみましょう。 「SAS Viya: ビジュアルパイプラインで予測モデル生成(基本編)」で作成したパイプラインでは、勾配ブースティングのモデルの方が精度が高い=チャンピオンモデルだと判断されました。 それでは、このモデルに新しいデータを当てはめてスコアリングを実行してみましょう。 まず、画面左側の機能ノードリストの「その他」セクション内にある「データのスコア」を「勾配ブースティング」ノード上にドラッグすると、「勾配ブースティング」ノードの下に「データのスコア」ノードが追加されます。 「データのスコア」ノードを選択し、画面右側で以下の項目を指定します。 ・モデルに当てはめるデータテーブル名 ・スコアリング結果データの出力先ライブラリとテーブル名 「データのスコア」を右クリックし、表示されるメニューから「実行」をクリックすると、スコアリングが実行されます。 スコアリング処理が完了すると「データのスコア」ノード上に緑色のチェックマークアイコンが表示されます。 それでは、スコアリング結果のデータを見てみましょう。 「データのスコア」ノードを右クリックし、表示されるメニューから「結果」を選択します。 すると、データのスコアの結果画面が表示され、「出力データ」タブ内で、データの中身を確認することができます。「予測:BAD=1」列に、顧客ごとの延滞確率に相当するスコア値が表示されています。 それでは、このデータを探索してみましょう。 「探索とビジュアル化」アイコンをクリックし、 表示される画面内で、このデータを探索用に保存する先のライブラリとテーブル名を指定し、「探索とビジュアル化」ボタンをクリックします。 すると、このデータに基づき、「SAS Visual Analytics – データ探索とビジュアル化」画面が表示され、データ探索やレポーティングが可能になります。 例えば、スコア値である「予測:BAD=1」変数と「資産に対する負債の割合」変数の関係性を探索したり、 スコア値が0.7以上の顧客データをエクスポートして、二次活用したり、等々も簡単です。 以上のように、SAS Viyaでは、データの準備はもとより、モデル生成からスコアリング、そして、スコアリング結果データの探索からエクスポートまでをGUIベースでシームレスに実施することができるんですね。 ※Enterprise Open Analytics Platform 「SAS Viya」 を知りたいなら「特設サイト」へGO! ※「ビジュアルパイプラインでスコアリング」は、SAS Viya特設サイトにデモ動画を近々公開予定です。

Advanced Analytics | Artificial Intelligence | Machine Learning
SAS Japan 0
ディープ・ラーニングにおける物体検出

この記事はSAS Institute Japanが翻訳および編集したもので、もともとはXindian Longによって執筆されました。元記事はこちらです(英語)。 物体検出とは? 物体検出とはコンピューター・ビジョンの一分野であり、画像内に含まれる関心対象の物体を自動的に背景から区別して位置特定する手法です。例えば、図1に示す2つの画像では、いずれも前景に物体があります。左の画像では鳥が、右の画像では犬と人間が前景にあります。 「物体検出問題の解決」とは、「これらの物体をぴったりと囲むバウンディング・ボックスを配置し、それぞれのバウンディング・ボックスに対して正しい物体カテゴリーを関連付けること」を意味します。画像処理の領域における他のタスクと同様、物体検出を実行するときにもディープ・ラーニングは最先端の手法として力を発揮します。 物体検出の仕組み 物体検出に関する重要な問題の1つは、前景にある物体の数が画像によって様々に異なる、ということです。しかし、ここでは物体検出の仕組みを理解するために、まずは1つの画像に1個の物体しか存在しないと仮定し、この制約条件の下で物体検出問題を考えてみましょう。1つの画像に1個の物体しか存在しない場合、バウンディング・ボックスの発見と物体のカテゴリー判断という問題は、単純明快な方法で解決することができます。バウンディング・ボックスは4組の数値で表現されますから、バウンディング・ボックスの位置を学習するタスクは、回帰問題として無理なくモデル化することが可能です。そのタスクが済めば、物体のカテゴリー判断は分類問題として解くことができます。 ここでの「制約条件付きの物体検出」という課題に関する回帰および分類問題に対する解法を提供するのは、図2に示す畳み込みニューラル・ネットワーク(CNN)です。コンピューター・ビジョンの領域における他の従来型タスク(例:画像認識、キーポイント検出、セマンティック・セグメンテーションなど)の場合と同様、ここでの「制約条件付きの物体検出」という課題では、固定数のターゲットを扱います。これらのターゲットの当てはめは、固定数の分類または回帰問題としてターゲットをモデル化することによって実行可能です。 前述のとおり、真の物体検出はN個の物体を処理できなければなりません(Nの値は画像によって異なります)。残念ながら、図2に示したCNNは、このような、より一般的な問題を解決することができません。しかし、多くの矩形ボックスの位置とサイズについて仮説を立てることによってCNNの変種を使用し、CNNを物体の分類にのみ利用する、というやり方は可能かもしれません。私たちはそのような場合の矩形ボックスを、しばしば「ウィンドウ」と呼びます。ウィンドウ仮説を汎用的なものにするためには、画像内で考えられる全ての位置とサイズをカバーしなければなりません。それができれば、それぞれのサイズと位置のウィンドウについて、「その中に物体が存在するかどうか?」と、「存在する場合、物体のカテゴリーは何か?」を判断することが可能になります。 図3は、このアプローチで物体検出を実現する場合に候補となりうるウィンドウをいくつか示しています。画像は有限個のピクセルで構成されていますから、ウィンドウの総数は膨大です。検討すべきウィンドウの数の膨大さを考えると、このアプローチはコンピューティングの観点からは非実用的です。 ウィンドウを用いて物体を探すための効率的な手法 では、「一部のウィンドウだけを調べる」というスマートな方法で物体検出を実行することは可能でしょうか? 答えは「イエス」です。このような「ウィンドウの部分集合」を発見する方法には2つのアプローチがあり、それらは2つの異なる物体検出アルゴリズムへとつながります。 第1のカテゴリーのアルゴリズムは、最初にリージョン・プロポーザル(領域候補の抽出)を実行します。これは具体的には、コンピューター・ビジョンの従来の手法(選択的検索など)を用いて、あるいは、ディープ・ラーニングに基づくリージョン・プロポーザル・ネットワーク(region proposal network: RPN)を用いて、物体を含んでいる可能性の高い領域を選択する、ということです。候補ウィンドウの少数のセットを収集したら、セットの数だけ回帰モデルおよび分類モデルを定式化することによって、物体検出問題を解決することができます。このカテゴリーに属するアルゴリズムとしては、Faster R-CNN[1]、R_FCN[2]、FPN-FRCN[3] などがあります。このカテゴリーのアルゴリズムは、通常、「2段階法」と呼ばれます。これらは一般に、この後に紹介する「1段階法」に比べ、正確性は優れていますが、処理は低速です。 第2のカテゴリーのアルゴリズムは、固定位置にある固定サイズの物体だけを探します。これらの位置とサイズは、ほとんどのシナリオがカバーされるように戦略的に選択されます。通常、これらのアルゴリズムは、元の画像を固定サイズのグリッド(格子)領域に分割した上で、それぞれのグリッド領域に関して、あらかじめ決めておいた所定の形状およびサイズの、固定数の物体を予測することを試みます。このカテゴリーに属するアルゴリズムは「1段階法」と呼ばれます。この手法の例としては、YOLO[4]、SSD[5]、RetinaNet[6]などが挙げられます。このカテゴリーのアルゴリズムは、通常、より高速に実行できますが、正確性は劣ります。このタイプのアルゴリズムは、リアルタイム検出を必要とするアプリケーションで活用されることが多くなっています。 以下では、これらのうち2つの一般的な物体検出手法を取り上げ、もう少し詳しく検討します。 YOLOによる物体検出 YOLO (You Only Look Once) は、1段階の物体検出手法を用いる代表的なアルゴリズムです。このアルゴリズムが物体を検出するためにたどるステップを、図4とその下の箇条書きに示します。 元の画像を等サイズのグリッドに分割します。 それぞれのグリッドに関して、事前に定義した形状の、グリッドの中心を中心位置とするバウンディング・ボックスを、事前に設定した数だけ予測します。それぞれの予測には、クラス確率と物体信頼度(その領域が物体を含んでいるか、あるいは背景のみか)が関連付けられます。 最後に、高い物体信頼度およびクラス確率が関連付けられたバウンディング・ボックスを選択します。最も高いクラス確率を持つ物体クラスが、その物体のカテゴリーとなります。 事前に定義した形状の事前に設定した数のバウンディング・ボックスは「アンカーボックス」と呼ばれ、k平均法アルゴリズムによってデータから取得されます。アンカーボックスは、物体のサイズと形状についてデータセットから予備知識を捕捉します。異なるサイズおよび形状の物体を検出するためには、異なるアンカーが設計されます。例えば図5では、1つの場所に3種類のアンカーが表示されていますが、最終的には赤のアンカーボックスが中央の人物を検出します。言い換えると、アルゴリズムは、物体とこのアンカーボックスの適切なサイズを一緒に検出します。通常、最終的な予測は、アンカーの位置またはサイズ自体とは異なります。なぜなら、画像の特徴量マップから取得される最適化されたオフセット値が、アンカーの位置またはサイズに加算されるからです。 YOLOアルゴリズムのアーキテクチャを図6に示します。検出層は、多数の回帰および分類オプティマイザーを含んでおり、その数はアンカーの数によって決まります。 Faster RCNNによる物体検出 Faster RCNN[1] は、2段階の物体検出アルゴリズムです。図7は、Faster RCNNの2つの段階を示しています。アルゴリズム名に “Faster” と付いていますが、「1段階法よりも高速」という意味ではありません。この名称は歴史的な経緯を反映しており、以前のバージョン(オリジナルのRCNNアルゴリズム[7] やその後継のFast RCNN[8])よりも高速であることを示しています。Faster RCNNにおける高速化は、個々の関心領域(Region of Interest: RoI)に関する特徴抽出計算を共有する手法と、ディープ・ラーニングに基づくリージョン・プロポーザル・ネットワーク(RPN)の導入によって実現されています。 多数のCNN層を用いて特徴量マップを抽出した後、リージョン・プロポーザル・ネットワーク(RPN)が、物体を含んでいる可能性の高い多数のウィンドウを出力します。その後、アルゴリズムは、各ウィンドウ内部の特徴量マップを取得し、それらを固定サイズにリサイズ(またはポール)することで(=RoIプーリング)、物体のクラス確率とより正確なバウンディング・ボックスを予測します。

1 2 3 4 5 15