SAS Japan

活用事例からデータ分析のテクニックまで、SAS Japanが解き明かすアナリティクスの全て
Data for Good | SAS Events | Students & Educators
0
第一回Data for Good勉強会 活動レポート

SAS Japanでは昨年末より”Data for Good”を目指す学生コミュニティ「SAS Japan Student Data for Good community」を運営しています。このコミュニティでは世界の絶滅危惧種や通勤ラッシュ時の鉄道混雑緩和など、データを活用した社会課題の解決に取り組んでいます。 活動を更に加速させるために、Data for Goodのケーススタディを通じた課題設定・アナリティクスの適用法を学ぶ勉強会を開催しました。 この記事では勉強会の中で取り上げた事例を2つ紹介します。 1.ネパール地震でのIOMによる支援 1つ目の事例はSAS USが国際移住機構(IOM)と協力して行ったネパール地震における復興支援です。 2015年4月25日に起きたネパール地震では約90万棟が全半壊し、多くの住民が仮設キャンプ場での生活を余儀なくされました。IOMは現地でキャンプ場の運営等の支援活動を行っていましたが、6月から始まる本格的な雨季を前に風雨を凌げる住居の提供が喫緊の課題でした。 IOMの要請を受けたSAS USは国連商品貿易統計データベース(UN Comtrade)を利用した各国のトタン板の生産能力を分析し、その結果迅速なトタン板の供給を実現しました。この事例からは次の事が学べます。 データの可視化によって意思決定の支援ができる この事例では住宅復興支援に必要な物資の素早い調達という課題に対し、国連商品貿易統計データベースの300万件ものデータをSAS Visual Analyticsで分析し仕入れ先を可視化することで解決しています。 複雑で膨大なデータも適切に分析・要約・可視化することで経験ではない科学的根拠に基づいた新たな知見を導くことができます。 2. 大学中退率の改善 2つ目の事例はData for Goodを推進する社会団体であるDataKindが取り組んだアメリカのとある大学の中退率の改善です。 日本の大学と比べアメリカの大学は中退率が高く、 National Student Clearinghouseによると約半数近くの学生が学位を取得せず辞めていきます。DataKindは大学の依頼を受け、どの要素が中退に影響を与えるのか、また中退の危険性のある学生を事前に特定することに挑みました。 デモグラフィックデータや学業成績などの学生情報を10年分以上分析したところ、入試の成績と卒業は関連が確認できなかった一方で、GPAや専攻などが卒業に影響を与えていることが判明しました。 この結果を踏まえ20以上もの異なるアプローチのモデルを生成し改良を重ねた結果、生徒の中退を高い精度で予測するモデルを生み出しました。 詳しい内容は原文をご覧ください。この事例からは次の事が学べます。 未来を予測して事前に対処する この事例では、中退率の改善という課題に対して統計分析や機械学習を駆使し事前に中退リスクのある学生を特定することで解決を目指しています。事前の把握ができれば大学側は効率的な学生への支援が可能となるはずです。 上記以外にも参加者それぞれが事例紹介を行い、課題に対してのアナリティクスを用いたアプローチ方法を学びました。勿論データを分析のみで課題をすべて解決することはできませんが、従来の方法では成し得なかった突破口を生み出すことが実感でき、私たちの現在の取り組みに大きな示唆をもたらした有意義な会となりました。 SAS Japan Student Data for Good communityでは引き続き学生の参加者を募集しております。社会貢献を目指す活動を通してデータサイエンティストの役割である「課題の設定」から「データを用いた解決法の提示」までの一連の流れを経験できます。 興味をお持ちでしたら以下のアドレスまでご連絡ください。 JPNAcademicTeam@sas.com

SAS Events | Students & Educators
0
第3回「データサイエンティストのキャリアと活躍のかたち」レポート

データサイエンティストを目指す学生向けのセミナー「データサイエンティストのキャリアと活躍のかたち」の第三回が3/19(火)に開催されました。第一回・第二回に引き続き今回も多くの学生の皆様に参加していただき、有意義なセミナーとなりました。本記事では、当日の様子についてご紹介します。 本セミナーでは、データサイエンティストのキャリアと活躍の場や、ビジネス上でのアナリティクス活用方法について、スピーカーがこれまでの経験をもとにご紹介しました。 SASにおけるデータサイエンティスト はじめに、データサイエンティストのキャリアやスキルについてSAS JapanのSebastian Wikanderより講演を行いました。 前半は、自身のキャリアや経験をもとにした、データサイエンティストのキャリアの紹介です。キャリアの初めはトラックメーカーに就職。様々なビジネスモデルをデータを用いて分析することに魅力とやりがいを感じ、SASに転職しました。SASでの仕事は年齢・学歴・国籍等、多様性があり、より良いパフォーマンスが発揮できます。具体的な仕事例として、大手IT企業の業務プロセス改善プロジェクトと部品メーカーにおけるディープラーニング活用プロジェクトを紹介し、SASと顧客のノウハウを合わせるチームワークの重要性や、過去の学びやスキルをもとに常に新しいチャレンジへと挑戦する楽しさなどを伝えました。 次に、データサイエンティストに必要なスキルの紹介です。核となるデータサイエンススキルの他にも、プログラミングスキル、統計学や機械学習の知識、ビジネス能力、英語力を含むコミュニケーションスキルなど多種多様なスキルが必要だとし、データサイエンティストは事例に合わせて最適なスキルを活用する「スペシャリストよりジェネラリスト」という言葉は印象的でした。 最後にデータサイエンティストのやりがいとして、様々なアプローチの中から一つを選択する「クリエイティブ」な側面、ビジネスとしての「人との関わり」という点、「新たなチャレンジ」を続けワクワクした日々を送れるという点を挙げ、より多くの学生に興味を持って欲しいというメッセージを伝えました。       アナリティクス活用領域の概要 リスク管理 続いて、リスク管理におけるアナリティクスの活用について、SAS Japanの柳による講演です。 最初にビジネスにおけるリスクについて紹介しました。リスクとは「不確実性」であると指摘し、その不確実性を想定の範囲内で「リスク管理」し「収益−損失の最大化」という目的を達成するためにアナリティクスが活用されていると紹介しました。 具体例として、金融機関における「規制対応のリスク管理」と「収益を上げるためのリスク管理」を挙げています。前者は政策等で一定の枠組みが決まっており事象の予測が行いやすく、アナリティクスが最大限活用されています。一方後者は変動が大きく様々なシナリオが想定されるため、経済情勢・社会情勢等に基づいた多様なモデルをもとにシミュレーションを重ね、意思決定の判断基準にしています。 最後に金融機関におけるAIの活用について紹介しました。業務の効率化や人的ミス排除等を目的とした従来のIT化とは異なり、人間では処理できないほど膨大となったデータを扱うために金融機関でAIを導入する動きが進んでいるとのことです。しかし、AIの思考がブラックボックス化され判断の説明可能性が低いという問題点もあり、AIの思考の透明性をどう保証するかが今後の大きな課題の一つであると伝えました。       SASの学生向けData Science 推進活動 最後に、学生のデータサイエンスの学びの場としてData for Good 勉強会とSAS Student Data for Good communityを紹介しました。Data for Goodとは様々な社会問題をデータを用いて解決する取り組みであり、これまでにも世界の絶滅危惧種や通勤ラッシュ時の鉄道混雑緩和をData for Goodの活動具体例として紹介しました。学生が主体となりこの活動をより推進するため、SASでは「Data for Good勉強会」と「SAS Student Data for Good Community」という活動を企画しています。 Data for Good 勉強会とは、SASやData Kind(Data for Goodを推進する社会団体)の実施したData

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 | 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 31 32 33 34 35 56