Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

エンタープライズと機械学習技術

4,951 views

Published on

エンタープライズでの機械学習技術の受容の背景
いくつかの機械学習アルゴリズムの紹介
MS Azure Machine Learning での開発のサンプル

Published in: Technology
  • Be the first to comment

エンタープライズと機械学習技術

  1. 1. エンタープライズと 機械学習技術
  2. 2. Agenda  Part I エンタープライズでの 機械学習技術利用の広がり  Part II 機械学習のアルゴリズム  Part III Azure MLでの 予測ソリューション開発サンプル
  3. 3. Part I エンタープライズでの 機械学習技術利用の広がり
  4. 4. Part I エンタープライズでの機械学習技術利用の広がり  ビッグデータ処理と統計学的アプローチ  機械学習技術とは何か?  2014年の各社の動き  Google Prediction API  MS Azure Machine Learning  IBM Watson Analytics  機械学習への期待の背景  小売業の変化
  5. 5. ビッグデータ処理と統計学的アプローチ 複数の大規模なデータの集まりから、有意な情報を 引き出すには、主に二つの方法がある。一つは、 MapReduceやテーブルのJoinのような組み合わせ 論的で決定論的な方法である。ここでは可能なすべ てのデータの組み合わせが新しい情報をもたらす。も う一つの方法は、統計学的・確率論的な手法で、デー タから情報を抽出しようとする方法である。機械学習 技術は、後者に、その基礎を置いている。
  6. 6. ビッグ・データ処理と人間の能力  我々が利用できるデータは、年々、増大している。それば かりではない。あるデータと他のデータの関連を考えるこ とで、複数のデータを組み合わせた、新しいデータが生ま れる。そのサイズは、元のデータより、さらに巨大になる。  こうした全組み合わせのスキャンが必要な巨大な処理は、 機械にまかせるしかない。ビッグデータ処理の一つの側 面は、こうしたタイプのデータ処理の機械化である。  ただ、人間は巨大なデータをそのまま利用できるわけで はない。人間がハンドルできるのは、ごく限られた大きさ のデータだけだ。多くの場合、巨大なデータが価値を持つ のは、そこから意味のある情報を引き出せるからだ。そこ で、結果として引き出された情報は、元のデータと比べる と、圧倒的に小さなサイズの情報である。
  7. 7. ビッグデータ処理と統計的手法  逆に、少数のデータのサンプルから、もとになるデータの 基本的な特徴を抽出する手段が、昔から存在する。統計 的手法がそれである。  例えば、テレビの「視聴率」の調査では、関東・関西等の 11地区では毎日、青森・岩手等の16地区では月初めの 二週間の調査が行われているが、それに参加しているの は、関東、関西、名古屋の3地区で600世帯、それ以外の 地区は200世帯であると言われている。  それに対して、5年ごとに行われる「国勢調査」は、すべて の世帯を対象に行われる悉皆調査である。  機械学習アルゴリズムは、基本的には、ビッグデータ処理 に、統計的手法を導入しようというものである。
  8. 8. ビッグデータ処理の様々なスタイル 検索– PageRankによる絞り込み  Web検索は、可能的にはすべてのWeb上のデータを対 象とする、典型的なビッグデータ処理である。少数のデー タをサンプリングして、その中を検索しても意味はない。た だし、検索条件にマッチしたすべてのページが表示される わけではない。主要には、PageRankという指標を導入し て、それが高いものだけを表示するのが、非常に革新的 なアイデアだった。  一般に、巨大なデータから、有用な小さなデータを抽出す るのを、データ・マイニングとかフィルタリングというが、 Googleによる検索は、こうしたデータ・マイニングの成功 例でもある。  ただし、PageRankの計算には、事前の全件スキャンが 必要である。これは人間にはできないことだ。
  9. 9. ビッグデータ処理の様々なスタイル Amazonのrecommendation  Amazonのrecommendationも典型的なビッグデータ 処理の一つである。そこでは、個人が購入した商品に対し て、同じ商品を購入した他の人たちが、他にどのような商 品を購入したかがチェックされる。その結果、一番、多い 組み合わせが、リコメンドされる。(おそらく全件チェックな のだとおもうが、よく分からない。)  検索でのPageRankとは違って、商品の購入予測には、 いろいろなファクターを導入することが可能である。それま での自身の購買履歴・年齢・性別・住んでいる地域・趣味 等々。こうした予測をリアルタイムで行うには、全件の突き 合わせより、事前の統計予測の方が現実的である。  こうした手法は、現在、急展開中の個人向けの広告でも 同様である。
  10. 10. ビッグデータ処理の様々なスタイル センサー・ネットワークの場合  各家に、電力の消費量(ある場合には発電量)・温度・湿 度等を感知するスマートメーターが設置されている場合を 考えよう。この時、各家の監視・電力の配分・異常チェック は必須なので、ある時間ごとでの全センサーのスキャン は必須である、  一方、時間帯(夜と昼等)や季節の変化による、電力消費 量の変化は、ある程度、予測可能である。この定常的な 予測値に対して、「異常」のチェックが可能になる。  ここでは、決定論的なコントロールと確率論的な予測の両 方が必要になる。  ロボットやヘリコプターの姿勢制御では、各部分の自由度 が高いので、確率論的な制御が適しているとも言われて いる。
  11. 11. 機械学習技術とは何か? ここでは、大規模なデータ解析に統計的なアプローチ を取る機械学習技術の大まかな、アウトラインを示す。 現在は萌芽的なものでしかないのだが、機械学習技 術の中核である「機械自身が、与えられたデータから 適切な振る舞いを学んでゆく」というモデルは、人工 知能のモデルとしても、「スマート・コンピュータ」の一 歩としても、興味深いものである。
  12. 12. 機械学習アルゴリズムに可能なこと 数値予測とカテゴリー分類  機械学習アルゴリズムは、数値予測とカテゴリーへの分 類という二つのことを行う。  数値予測は、与えられた複数のパラメーターから、一つの 数値を予測する。例えば、  (住所、土地面積、建物の種類)から、建物の値段を予測する  ある選手の過去のデータから、来年度の成績を予測する。マイケ ル・ルイス「マネー・ボール」  過去36ヶ月の気温のデータから、来月の気温を予測する  カテゴリー分類は、与えられた複数のパラメーターから、 それが、どのカテゴリーに属するかの予測をする  与えられた個人情報から、クレジットの与信の可否を決める  手書文字の画像データが与えられた時、何の文字かの判定
  13. 13. 機械学習モデル構成のステップ モデルの選択・訓練・テスト・評価  あるデータが入力として与えられた時、ある答えを出力す るシステムを作る。これを、モデルと呼ぼう。通常は、こう した機能をもつプログラムを開発するのだが、機械学習で は、ユーザーは基本的には、プログラムを作らない。 1. 基本的な機械学習アルゴリズムに基づくモデルは、いくつ か与えられており、そのうち一つを選ぶことから始める。 2. プログラムを書く代わりに、選んだモデルに、訓練用の データを与えることで、機械自身が自ら学習して、統計的 に正しい答えを出すモデルになることを期待する。 3. 訓練によって構成されたモデルが、望んだ振る舞いをす るかは、訓練用データとは、別のデータによってテストされ る。 4. その結果の評価で、モデルの調整を行う。
  14. 14. 機械学習モデル構成のサンプル クレジットカードの与信システム  ある個人の(年齢, 収入, 学歴, 既婚/未婚)の四つの特 徴から、クレジットカードの与信の可否を決める機械学習 モデルを考えてみよう。  もしも、クレジット会社が、先の四つの個人の特徴から、与 信の可否を決めるアルゴリズムを持っているのなら、その アルゴリズムをプログラムとして組み込むのが一番正確 なので、機械学習モデルを使う必要はない。ここでは、こ のクレジット会社は、四つの特徴をベースに、面談した窓 口の担当者が「総合的」に判断しているものとしよう。  こうした時、機械学習モデルを構成するには、すでにこの 会社で審査が終了している次のような形式の一定数の データが、訓練用とテスト用に必要になる。 (年齢, 収入, 学歴, 既婚/未婚, 与信の可否)
  15. 15. 機械学習モデル構成のサンプル クレジットカードの与信システム  次の形式の訓練用データとテスト用データ (年齢, 収入, 学歴, 既婚/未婚, 与信の可否) が、それぞれ与えられたとしよう。この時、例えば、次のよ うな手順で機械学習モデルは構成される。 1. 機械学習アルゴリズムとしてSVM(Support Vector Machineアルゴリズム)を実装したモデルを選ぶ。 2. このモデルに、訓練用のデータ2,000件を読み込ませる これを「訓練用データで、モデルを訓練する」という。 3. 訓練されたモデルが、望んだ振る舞いをするかを、テスト 用データ1,000件でテストする。 4. その結果の評価で、モデルやパラメーターの調整を行う。 5. 問題がなければ、実際の与信に、このモデルを利用する。
  16. 16. 設計 データ構造・アルゴリズム等 実装 プログラム 配備 アプリケーション リクエストレスポンス Smart Machine 設計 学習モデルと 訓練用データの選択 機械学習 機械学習アルゴリズム 配備 アプリケーション リクエストレスポンス 人間の仕事 訓練用データ 機械の仕事
  17. 17. 2014年の各社の動き  Google Prediction API  Microsoft Azure Machine Learning  IBM Watson Analytics
  18. 18. Google Prediction API
  19. 19. MS Azure Machine Learning
  20. 20. IBM Watson Analytics
  21. 21. 機械学習アルゴリズムが、 クラウドを利用で、誰でも利用可能に  現状:「機械学習には、これまで、複雑なソフト ウェア、パフォーマンスの高いコンピューター、そ してそのすべてを理解する経験豊富なデータサ イエンティストが必要でした。.... 」  クラウド利用 「クラウドを活用することで、... 機械学習は、より 広範囲のユーザーに届くようになります。将来の 結果を予測することが達成可能になったので す。」
  22. 22. 参考資料 各社のページから  Google Prediction API  Microsoft Azure Machine Learning  IBM Watson Content Analytics
  23. 23. Google Prediction API 2010年8月2日 “Machine Learning: Google Prediction API” http://bit.ly/1GRx02Z 2014年9月23日 https://cloud.google.com/prediction/
  24. 24. Google Prediction API  使いやすいRESTful インターフェースを通じて Google の機械学習アルゴリズムを利用できる、 データの分析と予測のためのAPI です。  データを活用する: 過去の履歴を使用して、将 来のトレンドを予測できます。Prediction API を 使用すると、メッセージのルーティング、スパムの 検出、ユーザーにおすすめのサービスの紹介が 行えます。データはGoogle の強力なインフラス トラクチャが分析します。 https://cloud.google.com/prediction/?hl=ja
  25. 25. Google Prediction API  高速&高信頼性: Cloud Storage を使用して 複数のデータセンターを横断してデータが複製さ れます。ほとんどの予測クエリは200 ミリ秒もか かりません。パフォーマンスも向上します。  クラウドの統合: Google サービスは互いに連 携するよう設計されています。Google BigQuery からの結果を使用したり、Cloud Storage から最大2.5 GB のデータセットを取 得したりして予測モデルを作成できます。 Prediction API はGoogle App Engine から 直接使用できます。
  26. 26. 応用サンプル https://cloud.google.com/prediction/docs
  27. 27. 購入の予測  Google のクラウドベースの機械学習ツールでは、データ を分析してアプリケーションに、顧客の評判分析、スパム 検出、メッセージのルーティング判断、アップセル最適化 分析、ドキュメントとメールの分類などの機能を追加でき ます。  たとえば、ビール、ワイン、チーズを販売するサイトに訪問 者の購入履歴があり、訪問者がワインに興味があるかど うかを予測したい場合、Google では、トレーニングデー タを3 つの要素(高価なデザートチーズを顧客が購入し た回数、顧客が以前にワインを購入した場合に値1 とし 購入しなかった場合には値0、顧客がビールを購入した 回数)に基づいて作成できます。 https://cloud.google.com/prediction/docs/scenarios#purchaseprediction
  28. 28. 感情分析モデルの作成  このドキュメントでは、Google Prediction API を使用し て基本的な感情分析モデルを作成する方法について説明 しています。感情分析モデルは、テキスト文字列を分析し、 指定したラベルに基づいて分類する場合に使用します。 たとえば、ツイートを分析してその内容がポジティブなの かネガティブなのかを判断したり、メールを分析してその 内容が気分を良くするものか悪くするものなのか、悲しく するものなのかを判断したりできます。 https://cloud.google.com/prediction/docs/sentiment_analysis
  29. 29. Microsoft Azure Machine Learning 2014年6月16日 “Microsoft Azure Machine Learning combines power of comprehensive machine learning with benefits of cloud” http://bit.ly/1zlFNFm
  30. 30. Microsoft Azure Machine Learning  強力なクラウドベースの予測分析  新しいユーザーにも、熟練のユーザーにも適した 設計  MS Research、Xbox、Bing で実証済みのア ルゴリズム  オープンソースのR 言語を高度にサポート  ビッグデータソリューション用のHDInsight へ のシームレスな接続  モデルを運用環境にわずか数分でデプロイ http://azure.microsoft.com/ja-jp/services/machine-learning/
  31. 31. 機械学習の力  コンピューターシステムを使用して履歴データを マイニングすることで将来のトレンドや動きを予測 する機械学習は、毎日大勢の人々の生活に関係 しています。機械学習は、検索エンジン、オンライ ンレコメンデーション、ターゲット広告、仮想アシ スタント、需要予測、不正検出、スパムフィルター といった最近のあらゆるサービスを強化します。 これらは利用方法のほんの一部です。可能性は それだけではありません。
  32. 32. Azure Machine Learning の紹介  機械学習にはこれまで、複雑なソフトウェア、パフォー マンスの高いコンピューター、そしてそのすべてを理 解する経験豊富なデータサイエンティストが必要でし た。データ分析を始めたばかりの多くのユーザーに とって、さらには大企業にとっても、単純に困難でコス トがかかります。予測分析用に完全に管理されたクラ ウドサービス、Azure Machine Learning を体験 してください。クラウドを活用することで、Azure Machine Learning の機械学習は、より広範囲の ユーザーに届くようになります。将来の結果を予測す ることが達成可能になったのです。
  33. 33. ドラッグ、ドロップ、予測  Azure Machine Learning により、データサイエン スについての専門的な知識のないユーザーでもデー タをマイニングして予測できるようになります。統合開 発環境のML Studio は、ドラッグアンドドロップで 操作でき、シンプルなデータフローグラフを使用して 実験をセットアップします。ほとんどのタスクでは、1 行のコードも記述する必要がありません。さらにML Studio では、サンプル実験のライブラリが用意され ていて、時間を節約することができます。また、Bing とXbox で実証されてきたものと同じアルゴリズムを 含む、Microsoft Research の洗練されたアルゴリ ズムを特徴としています。
  34. 34. R 言語のコミュニティ  Azure Machine Learning は、経験豊かなデータ サイエンティスト向けにも設計されています。統計や データマイニングによく使われるオープンソースの プログラミング環境であるR をサポートしています。 既存のR コードをワークスペースに直接ドロップする ことも、ML Studio で独自のコードを作成することも できます。350 を超えるR パッケージが安全にサ ポートされています。既存の作業を実証されたアルゴ リズムと組み合わせて照合し、一度に最大で10 の モデルをテストできます。Azure Machine Learning の実験は簡単に共有できるため、中止し た箇所から他のユーザーが実験を再開できます。
  35. 35. クラウドで広がる可能性  Azure Machine Learning では、ソフトウェアをイ ンストールしたり、ハードウェアを構成したり、頭を悩 ます不可解な開発環境を扱ったりする必要はありま せん。ブラウザーさえあれば、どこからでもAzure に ログオンして予測モデルを開発し、新しい分析モデル をこれまでにない速さでデプロイできます。また、 Azure Machine Learning ではAzure Storage 上にファイルをほぼ無制限に保管でき、Hadoop ベースのビッグデータソリューションである HDInsight や、SQL Database、Virtual Machines といったAzure の他のデータ関連サー ビスにシームレスに接続できます。
  36. 36. IBM Watson Content Analytics 2014年5月27日 “IBM Watson Content Analytics V3.5 helps transform business outcomes by exposing meaningful, actionable insights from enterprise information” http://ibm.co/1xjPIgK
  37. 37. IBM Watson Content Analytics  非構造化データからインサイトを引き出すことに よって業績を向上させるための製品  Watson Content Analytics (旧称: Content Analytics with Enterprise Search) は、コンテン ツ分析の威力とエンタープライズ検索のスケールを1 つの製品の中で組み合わせた検索/ 分析プラット フォームです。リッチ・テキスト分析によって、非構造 化データとそれに関連する構造化データからトレンド やパターンや関係を抽出できます。そのようにして引 き出したインサイトを利用すれば、業務成果の予測と 達成に向けて、事実に基づく意思決定ができるように なります。http://ibm.co/1GRCOcw
  38. 38. Watson Content Analyticsの機能  非構造化データと非構造化コンテンツの検索: 企業全体 にわたる各種ソースのコンテンツ(文書、e-メール、レ ポートなど) が対象になります。  企業全体にわたる検索結果の分析: 事実に基づく意思決 定に役立ちます。  トレンドやパターンや関係にかかわるインサイトの抽出: ビジネス・インテリジェンスを高めて、ケース管理を拡張で きます。  他のIBM システムと協調したスケーラビリティー、柔軟 性、統合性の強化: オープン・スタンダード・プラットフォー ムを使用してさまざまなソリューションと統合できます。  スターター・パック機能の組み込み: 初期段階の実装や 小規模な実装に最適です。
  39. 39. IBM’s Watson Content Analytics Technology http://bit.ly/1wW5oVX
  40. 40. みずほ銀行と日本IBM、次世代チャネ ル構築へ「Watsonテクノロジー」活用  みずほ銀行と日本アイ・ビー・エム(以下日本IBM)はこの たび、次世代チャネル構築を目的に、音声データをテキス ト化する音声認識技術、およびIBMの保有するWatson テクノロジーや関連技術を組み合わせて、コールセンター や銀行窓口での顧客対応などでタイムリーに有益な情報 を提示するシステムを共同で構築することに合意したと発 表した。Watsonテクノロジーとは、質問や対話に基づい て、タイムリーに的確な回答を導き出すためのコグニティ ブ・コンピューティング(情報を分析し、学習や推論を行い、 アクションに結びつける、といった人間の認知的活動の実 現を目指したコンピュータ技術)の基盤。学習機能を備え ており、経験を重ねる中で自律的に回答の精度を高めて いくことができる。http://news.mynavi.jp/news/2014/11/12/147/
  41. 41. Watson Analytics のUI画面
  42. 42. 機械学習への期待の背景 ここでは、なぜ今、エンタープライズで機械学習への 期待が高まっているのかを考えてみたい。いろいろな 背景があるのだが、基本的には、個人とモバイルを対 象とした新しいマーケティング手法への期待によって 支えられているのだと筆者は考えている。 小論では、特に小売の世界での変化に注目した。
  43. 43. 第三の情報爆発  ネット上の最初の「情報爆発」は、インターネットを利用す る個人の爆発的拡大によって起きた。そこでの情報発信 の主力は、静的なテキストベースのものであった。  ネットワークのブロードバンド化と個人が享受・発信する 情報のリッチコンテンツ化による情報の増大が、それに続 く。  第二の「情報爆発」は、モバイルとSNSの普及によっても たらされた。モバイル・デバイスは個人を常にネットに接続 させ、SNSはソーシャルなグラフの内部でリアルタイムに メッセージの交換を繰り返す。  進行中の第三の「情報爆発」は、ネットワークに接続する デバイスとセンサーの爆発的な拡大によって、もたらされ ようとしている。
  44. 44. モバイルは、最強のマーケティング・ツール  21世紀初頭の大規模データの処理技術の中核は、検索 と広告技術である。  一方で、こうした大規模分散システムから派生したクラウ ドのエンタープライズでの利用は大きく拡大した。  現在のエンタープライズでのクラウド利用で、もっとも重要 なターゲットとして想定されているのは、個人が持ち歩くス マートフォン、タブレット等のモバイル・デバイスである。  個人に強くひも付き、多くのセンサーを備え、位置情報・購 買情報その他の情報が取得可能なモバイル・デバイスは、 エンタープライズにとって、最強のマーケティング・ツール になろうとしている。
  45. 45. 広告のターゲットはモバイルと個人  2010年ごろ、モバイルとSNSの爆発的な普及で、リアル タイムのメッセージがネット上のコンテンツの主流となった ことを背景に、検索のバッチ処理からリアルタイム処理へ の大きな転換が起きる。  この変化の中で、広告の主要なターゲットは、PC上のブラ ウザーからモバイルと個人に変わる。個人を特定し追跡 する技術の追求とともに、グラフの検索・知識の検索と いった、新しい検索技術の模索が始まる。  モバイルと個人をターゲットにする広告の技術は、大きく 変わろうとしている。知識の表現と言語能力へのアプロー チをも展望するこの分野での競争は、現代のIT企業間の 競争のもっとも中心的な分野になっている。
  46. 46. 企業の価値を最大化するシステム 基幹系と情報系の統合  現在のエンタープライズのシステムには、基幹系・勘定系 と呼ばれる領域と情報系・Web系と呼ばれる領域が並存 している。そうした重層的構造は歴史的に形成されたもの である。  20世紀末から21世紀のはじめにかけての時期、インター ネットとその技術の急速な普及を背景として、サーバー・ サイドのWebアプリのスタイルが登場し、基幹系のWeb アプリケーション化が、エンタープライズ・システムの技術 的な中心課題となった。エンタープライズ・システムのクラ ウド化は、こうした過程の完成段階である。  現在起きようとしていることは、エンタープライズの価値を 最大化しようとする、マーケット・ドライブの、基幹系と情報 系の統合である。
  47. 47. 「IT技術のマーケティングへの応用」は、 すべての企業にとっての課題  個人にとって最適の商品を売り込む最適の広告を打つた めには、個人の行動の把握と、ターゲットになる集団の全 体としての行動の傾向の分析は、欠かせないものになる。  それは、大規模な分散処理システムに支えられた高度化 した広告だけの問題ではない。ここで目指されている方向 は、一般の企業のマーケティングの基本でもある。  重要なことは、ネットワークとマシンの性能向上とクラウド 利用の拡大によって、一般の企業でも、大規模のデータを ハンドルし、その分析をビジネスに活かす条件が広がって いることである。  一般のコンシューマーを直接の顧客とする小売業の分野 で大きな変化が起きようとしている。
  48. 48. 小売業の変化
  49. 49. 「ショッピングと消費の世界は、次の5年の間に、以 前の50年の間そうであった以上に、変化するだろう。 商業とマーケティングのコミュニティーにいる我々の ようなものにとっては、それは危険な時代であるとと もに、機会に満ちた時代にもなるであろう。」 Paco Underhill Founder, Envirosell, Inc.
  50. 50. “The Future of Shopping” -- RichRelevance社White Paper  マーケティングと小売業は、ますます強く、解けない計算 のように感じられるかもしれない。新しいトレンド、アプ ローチ、デジタル・チャンネルは、毎朝、次々生えてくる マッシュルームのように見える。ブランドでも小売でも、両 方で、誰もが、何が妥当なのか、この次に出てくる新しい ものは何なのかに頭を悩ませている。LinkedIn, Facebook, YouTube, Twitter, Google+ ... これら の新しいチャンネルのそれぞれが、ある決定を必要として いる。それをするかしないかの。もし、それをするとすれば、 既存のメッセージや製品やキャンペーンのコンテンツをカ スタマイズしたり目標の再設定をすべきなのか? そして、 それに慣れた頃、InstagramやPinterestが現れる。ど こで、それは終わるのだろうか?
  51. 51. “The Future of Shopping” -- RichRelevance社White Paper  それは終わりはしない。しかし、ひとたび、個別の要素を 定義し解決すれば、そんなに複雑なことにはならない。 未来のショッピングの基礎は、少数の議論の余地のない 事実の中にある。ソーシャル・メディアは存在を続け、あな たの顧客は決定的にMobileで、ますますローカルなもの になる。そして女性が重要な鍵を握っている。
  52. 52. 個人化“personalization” と 参加“participation”  これである! ショッピングの予見可能な未来は、明確な ものになる。ソーシャルとモバイルとローカルな取り組み に、個人化“personalization” と参加 “participation” を掛け合わせるだけだ。(4Pは、いまや 6Pになる)。忘れないで欲しいのは、分母の女性 “Female” である。これは、急速に成長しつつある、巨大 なマーケットを表している。 4P: right Product, Place, Price and Promotion
  53. 53. 「消費者の行動データが、ショッピング の未来をドライブする」  物事を、自身のビジネスの境界内(それは、サイロ化され たチャンネルだ)の自分に快適な目線からではなく、消費 者の目線で見ることが重要である。 “オムニチャンネル・リテーリング”(ハーバード・ビジネス・ レビューがそう名付けた)は、統合されたセールスの経験 を提供する。  目標は? 買い物客にシームレスで一貫した情報を提供 しながら、物理的な店舗の利点と、オンライン・ショッピン グの豊かな情報の経験を融合させること。
  54. 54. “Personalization” : 購入にいたる道に沿った顧客中心の視点  個人化Personalizationは、ブランドと小売店が、収集さ れた行動データを活用し、すべてのチャンネルで顧客向 けに作られた顧客との関係を継続することを可能にする 接着剤である。  「既製品」のインターネット広告(データと技術に基づいて いる)は、小売店が、彼らが売っているものを欲しがってい る人をターゲットにすることや、これらの人たちが意味の ある会話に加わることを可能にする。  この会話は、あなたがあなたの顧客がどんな人かを知っ ていることにではなく、彼らが現時点で何を望み、彼らが どのように調査し、経験し、購入し、あなたが提供する製 品の配達を受けてきたかに基づいている。
  55. 55. リアルタイムの ユーザーの行動 在庫とマージン マルチ・チャンネルの 購買履歴 のデータ 属性データの カタログ サードパーティの データソース 将来予測 データ パーソナライズ化された 製品のリコメンデーション ターゲット化された プロモーション 価値あるブランドの 広告
  56. 56. 「データの声を聞く」 Amazonのリコメンデーション開発  Greg Lindenが、リコメンデーションを思いついて会社に 提案したら、マーケット担当の上級副社長(HIPPOです な)から「そんなことをしたらお客が逃げるだけだ」猛反対 されて、「そんなことはするな」と、禁止されたという。  Greg Lindenは、めげずに、こっそり「テスト」をした。そ れを見つけたHIPPOは、怒ったらしい。ただトップのおエ ライさんでも「テスト」を止めることはできない。ただ、「テス ト」の結果は、明確であった。それはAmazonに大きな収 入をもたらすことが明らかになった。この事実の前に、 HIPPO も沈黙せざるを得なかった。こうして、Amazon リコメンデーションが世に出たという。 "Early Amazon: Shopping cart recommendations” http://glinden.blogspot.jp/2006/04/early-amazon-shopping-cart.html
  57. 57. 「データの声を聞く」 求められる意思決定のスタイル  彼らはデータの声をきいた。そして、不断にデータを最適 化した。エラい人の声ではない。それが、彼らの文化の中 心部分なのだ。  エラい人の決定は、もはや、デフォールトではない。(少数 の選ばれた上級マネージャーの権力を固めるのではなく) ますます多くの責任を、実装する自由を含めて、すべての チームメンバーに移譲することは、士気を高め、コストを削 減する。  エラい人は、自分の好みで(あるいは、一番無難な)デザ インを、思いつきで選ぶ。しかし、これは会社内部の最終 戦を表しているに過ぎない。顧客は、もちろん、この激しい 論争を構成した20以上のデザインを目にすることはない。
  58. 58. Greg Lindenの教訓  「私の経験では、イノベーションは、下からしか起 きない。問題に一番近い人間が、それを解決する 一番いい位置にいるのだ。 イノベーションに依拠しようとするどんな組織も、 ある種の混沌を取り込まなければならないと、私 は信じている。忠誠と従属は、武器にはならない。 善と悪とを分離するためには、データの計測と客 観的な議論を用いるべきなのである。」
  59. 59. 参考資料 生産の場での注目すべき動き ここでは、経済のシステムの中では、「小売」 の対極にある「生産」の場での、注目すべき動 きを紹介する。 ローカルへの注目、民主化の重要性等、いく つかの共通点が見られるのが興味ふかい。
  60. 60. オークリッジ国立研究所の 3Dプリンター研究の「目的」  「研究所の3Dプリンター研究の目的は、プロトタ イピングから生産への移行と、分散化した「民主 化」された製造業を可能とすることである。そこで は、3Dプリンターが全ての人の収入の源とな る。」Lonnie Loveの発言, group leader for automation, robotics and manufacturing  近い将来には、全国28,000の高校に、3Dプリン ターを置くという。 “ORNL Seeds 3-D Printers To Drive New Revolution” 「オークリッジ国立研究所は、3Dプリンターが新しい革命を ドライブするように種をまく」http://bit.ly/1oyTaxZ
  61. 61. GEとローカル・モーターズの未来の製 造業プラットフォーム「FirstBuild」
  62. 62. GEとローカル・モーターズの未来の製 造業プラットフォーム「FirstBuild」  クラウドと3Dプリント技術を融合した次世代製造 プラットフォーム。  クラウドで全世界のアイデアを製品開発に活かす  アイデア出しから製品開発、そして完全な少量生 産から販売まで行う。  既存の流通と価格戦略を破壊する取組 http://i-maker.jp/first-build-2479.html
  63. 63. GE会長・CEO Jeff Immelt
  64. 64. ものづくりは、競争上の優位の主要な源である。企業 がアウトソーシングの能力を得てから数十年がたつが、 我々が現在目にしているのは、多くの企業がものづく りの強さを再構築している姿だ。企業は、これまで投 資の判断を、純粋に労働力のコストだけで行ってきた。 しかし、革命的なパフォーマンスを可能とする新素材 があり、精密加工技術や強力なコンピューティングの 能力は、もののつくり方を変えつつある。GEは、こうし たものづくりの多くの内実を"インソース"して行くだろ う。我々は、付加製造技術のような処理技術に投資を していく。
  65. 65. ものづくりは、産業企業にとってもそれが重要な国家 にとっても、競争上の優位の基礎である。ものづくりの 概念は既に変わっている。労働力のコストだけが問題 になる時代は終わりつつある。人々は、望むものを、 望む時につくる事が出来る。起業家達は、以前には まったくありえなかったものづくりのスペースにすんで いる。ものづくりは、デジタル化され、分散化され、民 主化される。 GEは、これらの全てではないにせよ、その大部分を リードしている。我々は、高速コンピューティング、新し いプロセス、付加製造技術に、GEグローバル研究セ ンターで、大きな投資を行いつつある。
  66. 66. Part II 機械学習のアルゴリズム 機械学習技術の利用では、ユーザーは、モデルを構 成する背後のアルゴリズムの詳細について理解を求 められないことが多い。ただ、機械学習のモデルを利 用する上で、一定の統計学的知識は必要だと感じて いる。また、どのようなメカニズムで機械学習が行わ れているかの概略を知ることも、あったほうがいいと 思う。ここでは、機械学習アルゴリズムのいくつかを紹 介する。
  67. 67. 2014/10/29 日経新聞 一定の統計学の 知識は必要である
  68. 68. 回帰モデル評価の基本的な用語 MAE = 1 N ^ yi - yi N å i=1 RMSE = Mean Absolute Error (平均絶対誤差) Root Mean Squared Error (二乗平均平方根誤差)
  69. 69. Part II 機械学習のアルゴリズム  Neural Network -- Gradient Decent  Decision Tree  Support Vector Machine
  70. 70. Neural Network -- Gradient Decent Gradient Decentは、Neural Networkで、N+1 層への出力後、N層のパラメーターを修正するBack Propagationの基本的な手段である。 ここではNeural Networkの詳細には立ちいらない が、Gradient Decentは、NNと統計理論を結びつ ける要の役割を果たしている。 Andrew NgのCourseraのML講義に依拠 https://www.coursera.org/course/ml
  71. 71. ポートランドでの 実際の家の価格 これを予測の為の 訓練用データとして 利用する 面積feet2 (x) 価格千ドル単位 (y) 2104 460 1416 232 1534 315 852 178 … … 記号の意味: m = 訓練用データの数 x = “入力” 変数/ 特徴 y = “出力” 変数/ “ターゲット” 変数 m = 97
  72. 72. 仮説: 面積feet2 (x) 価格千ドル単位 (y) 2104 460 1416 232 1534 315 852 178 … … 予測の為の 訓練用データ 家の価格hは、家の面積をxとした時、 上の式で表されると仮定する。 問題: この時、パラメーターは、どのように 選べばいいか?
  73. 73. 3 2 1 0 h は、x の一次式なので、h のグラフは、直線になる。 パラメーターθi が変わると、グラフも変わる。 訓練用データの点(x, y) について、yがもっとも、hθ(x) に近ずくように、θ0, θ1を決める。 0 1 2 3 3 2 1 0 0 1 2 3 3 2 1 0 0 1 2 3
  74. 74. 誤差 誤差 誤差 誤差
  75. 75. 誤差を最小にするθ0 , θ1を求める  サンプル中のi 番目の点を(x(i), y(i))とすれ ば、点x(i) での誤差は、hθ(x(i)) – y(i) となる。  誤差は、正負の値をとるので、単純に、誤差 の平均を取っても、打ち消しあって、全体とし ての誤差の大きさはわからなくなる。  そこで、誤差の二乗をとって、その平均を最小 にすることを考える。  θ0 , θ1の関数である、この誤差の二乗の平 均を、コスト関数と呼ぶことがある。
  76. 76. 問題の整理 仮説: パラメーター: コスト関数: 目標:
  77. 77. コスト関数
  78. 78. コスト関数J(θ0 , θ1)は、θ0 , θ1 につい ての関数なので、次のような形をしている
  79. 79. 1 コスト関数J(θ0 , θ1)の別の例 0 J(0,1)
  80. 80. (for fixed , this is a function of x) (function of the parameters )
  81. 81. (for fixed , this is a function of x) (function of the parameters )
  82. 82. (for fixed , this is a function of x) (function of the parameters )
  83. 83. (for fixed , this is a function of x) (function of the parameters )
  84. 84. Gradient descent
  85. 85. Gradient descent(勾配降下法) ある関数があって その値を最小にしたい 基本的な考え方: • あるからはじめる。 • の値を、が減少するように 変化させる。 • 最小値になるまで、繰り返す。
  86. 86. 簡単にするために、二次元のグラフで考え よう。ある点から始めて、その点から極小 点に近ずくためには、どうすればいいか? 二つの場合がある。 その点が極小点の右側にある場合には、 その点のx座標を少し減らせばいい。 その点が極小点の左側にある場合には、 その点のx座標を少し増やせばいい。 その点が、極小点の右にあるか左にある かは、その点での接戦の傾きが、正である か負であるかでわかる。 よって、α を正の数値とすれば、次の式が、 より近づいた点の位置を与える。 直感的な説明
  87. 87. このアルファを学習率 (Learning Rate)という。 If α is too small, gradient descent can be slow. アルファが、あまりに小さいと、 Gradient descentは、ゆっくり にしか進まない。 アIf ルα is ファtoo がlarge, 、あまりgradient に大きいと、 Gradient descent can descentovershoot は、the 最小値 をminimum. 通り越してIt しmay まう。fail 場to 合によっ てconverge, は、振動or したeven り、収diverge. 束しない場 合もある。
  88. 88. Gradient descentは、アルファが固定されて いても、極小値に収束できる。 局所的な最小値に近づくに つれ、gradient descent は、自動的に小さなステップ を取るようになるので、繰り 返しアルファを小さくしてゆく 必要はない。
  89. 89. Gradient descent algorithm Linear Regression Model
  90. 90. Gradient descent algorithm update and simultaneously
  91. 91. 1 0 J(0,1)
  92. 92. 0 1 J(0,1) ある場合には、最小値ではなく、局所的な 極小値に、入り込むことがある。
  93. 93. gradient descent method http://arxiv.org/pdf/1210.0811v2.pdf
  94. 94. Decision Tree Decision Treeは、直感的にもわかりやすく、同じモ デルで、数値予測にもカテゴリー分類の両方に使える というメリットがある。かつ、予測も早く正確である。た だ、統計的な方法とのつながりは、薄いように思う。 Shmueli, Patel & Bruce “Classification and Regression Trees”に依拠 http://bit.ly/1x7PSGA
  95. 95. 明日の天気 Decision tree http://www.i.kyushu-u.ac.jp/~hatano/papers/dtree_boost.pdf
  96. 96. タイタニックの生存者 性別男性 Decision tree 年齢 身内の数 http://en.wikipedia.org/wiki/Decision_tree_learning
  97. 97. 収入 Decision tree クレジットカードの審査 収入 収入 教育 家族 92.5 1.5 2.5 116 114.5 2.95 ◎ ◎ ◎
  98. 98. Decision Treeを作る  次の表のようなデータ、収入と敷地面積と芝 刈り機の所有のデータが与えられている時、 このデータの芝刈り機の所有を表すDecision Treeを作ってみよう。  最初のデータから始めて、片っ端から、二分 木を作っていってもいいが、それは少し形が悪 い。
  99. 99. 収入敷地面積芝刈り機の所有 Income Lot_Size Ownership 60.0 18.4 owner 85.5 16.8 owner 64.8 21.6 owner 61.5 20.8 owner 87.0 23.6 owner 110.1 19.2 owner 108.0 17.6 owner 82.8 22.4 owner 69.0 20.0 owner 93.0 20.8 owner 51.0 22.0 owner 81.0 20.0 owner 75.0 19.6 non-owner 52.8 20.8 non-owner 64.8 17.2 non-owner 43.2 20.4 non-owner 84.0 17.6 non-owner 49.2 17.6 non-owner 59.4 16.0 non-owner 66.0 18.4 non-owner 47.4 16.4 non-owner 33.0 18.8 non-owner 51.0 14.0 non-owner 63.0 14.8 non-owner この表は、芝刈 り機の所有の有 無でソートされて いる。
  100. 100. どのようにデータを分割するか?  一つの変数について、データをソートする。ここでは敷地面 積でソートしてみる。  連続した値の中間点を見つける。 例えば、最初の中間点は、14.4になる。(小さい方から見た 最初の値14.0 と次の14.8の中間)  データを、敷地面積> 14.4 と敷地面積< 14.4に分割する。  この分割を評価したら、次の中間点15.4 に進む。(14.8 と 16.0 の中間)  この過程を全ての中間点について繰り返し、最適の分割点 を見つける。分割の評価法については、後で述べる。
  101. 101. 最初の分割点 Lot Size = 19,000
  102. 102. 二番目の分割点 Income = $84,000
  103. 103. 最終的な分割
  104. 104. Impurityとリカーシブな分割  分割で得られた長方形について、分割の評価を与える指 標を計算する。この指標はImpurityと呼ばれ、次に見 るようにいくつかの計算法がある。  計算のそれぞれのステージで、可能な全ての分割と、全 ての変数について、この指標Imprurityを計算する。  この指標が最大になるような分割を選び、次のステージに 進む。  分割点は、Tree上のNodeになる。  ここで紹介しているCHARTというアルゴリズムでは、これ 以上分割ができなくなるまで分割を続ける。すなわち、与 えられたデータが、すべてLeaf Nodeに収まったときに、 この処理は終わる。
  105. 105. Impurinity 分割の評価1: Gini Index m個のデータを含んだ長方形AのGini Index I(A) = 1 - pk = 長方形A に含まれるデータのうち、クラス k に属するデータの割合  I(A) = 0 全てのデータが同じクラスに属する 時  最大値全てのクラスが、均等に含まれている 時(= 0.50 二分木での最大値)
  106. 106. Impurinity 分割の評価2: Entropy pk = 長方形Aの中のクラスkに属するデー タの割合 Entropyは、 0 (もっともpureな場合) log2(m) (クラスが均等に含まれる場合) の間の値をとる
  107. 107. Leaf Node(終端)のラベルを決める  Leaf Nodeのラベルは、それに含まれるデータの 「投票」とCut Offの値によって決められる。  それぞれのLeaf Node内のデータは、訓練用 データから来る。  デフォールトのCut Off の値は、0.5である。すな わち、Leaf Nodeのラベルは、多数を占めるクラ スの名前になる。  Cutoff = 0.75にすれば、そのLeafを”1”と名付け るためには、そのLeaf内に、75%以上の“1” デー タがなければいけないことになる。
  108. 108. Decision Treeの「枝刈り」  こうして得られたTreeは、Test用のデータには、 完全に一致しているのだが、予測用に使おうとす ると、Test用データ固有のノイズを拾って、むしろ 正確に予測できないという問題が起きる(Over Fitting)。  そこで、CARTでは、いったん組み上げたTreeを、 ある基準で「枝刈り」をして、Treeを小さなものに する。  その基準をCost Complexity という。
  109. 109. Cost Complexity CC(T) = Err(T) + a L(T) CC(T) = Tree Tのcost complexity Err(T) = 間違って分類されたデータの割合 a = ユーザーによって設定されたTreeのサイズに応 じたペナルティ  与えられたサイズのTreeの中で、CCが一番小さ い値をとるTreeを選ぶ。  これを、それぞれのサイズのTreeに適用する。
  110. 110. 数値予測とDecision Tree  Decision Treeのメリットの一つは、同じ考えの モデルを使って、今まで見たようなクラス分けだけ ではなく、数値予測もできることである。ただ、次 のような点で、クラス分けとは異なっている。  予測は、長方形内のターゲット変数のとる値の平 均として計算される。  Impurityは、Leafの平均からの誤差の平方和で 測られる。  パフォーマンスは、RMSE (root mean squared error)で、計測される。
  111. 111. X2<0.3 4 X1<0.0 9 w2 w1 w2 X2<0.8 3 X2<0.5 6 X1<0.5 6 w1 w2 w1 X1<0.2 7 X1<0.8 9 w2 w1
  112. 112. 線形回帰予測 w1 - 0.8X1+0.6X2<0.3 w2
  113. 113. Boosted Decision Tree Fermi Lab http://www-boone.fnal.gov/slides-talks/ conf-talk/yang/boosting-ccast.ppt
  114. 114. The MiniBooNE Detector • 12m diameter tank • Filled with 800 tons of ultra pure mineral oil • Optically isolated inner region with 1280 PMTs • Outer veto region with 240 PMTs. 11.6-10,2006 H.J.Yang - CCAST Workshop 128
  115. 115. Event Topology 11.6-10,2006 H.J.Yang - CCAST Workshop 129
  116. 116. ANN vs BDT-Performance/Stability 30 variables for training 10 Training Samples(30k/30k): selected randomly from 50000 signal and 80000 background events. Testing Sample: 54291 signal and 166630 background Smearing Testing Sample: Each Variable and testing event is smeared randomly using the formula, V_ij = V_ij * ( 1 + smear*Rand_ij ) Where Rand_ij is random number with normal Gaussian distribution. 11.6-10,2006 H.J.Yang - CCAST Workshop 130
  117. 117. ANN vs BDT-Performance/Stability  BDT is more powerful and stable than ANN ! 11.6-10,2006 H.J.Yang - CCAST Workshop 131
  118. 118. Support Vector Machine Christopher Manning and Pandu Nayak CS 276 :Information Retrieval and Web Search http://web.stanford.edu/class/cs276/
  119. 119. History  The Study on Statistical Learning Theory was started in the 1960s by Vapnik  Statistical Learning Theory is the theory about Machine Learning Principle from a small sample size.  Support Vector Machine is a practical learning method based on Statistical Learning Theory  A simple SVM could beat a sophisticated neural networks with elaborate features in a handwriting recognition task.
  120. 120. 線形のClassifiers denotes +1 denotes -1 f(x,w,b) = sign(w x + b) このデータをどの ように分類する か? w x + b<0 w x + b>0
  121. 121. denotes +1 denotes -1 f(x,w,b) = sign(w x + b) 線形のClassifiers このデータをどの ように分類する か?
  122. 122. denotes +1 denotes -1 f(x,w,b) = sign(w x + b) 線形のClassifiers このデータをどの ように分類する か?
  123. 123. denotes +1 denotes -1 f(x,w,b) = sign(w x + b) このどれでもいい のだが、... どれが一番いいの だろう? 線形のClassifiers
  124. 124. denotes +1 denotes -1 f(x,w,b) = sign(w x + b) +1クラスへの 誤った分類 線形のClassifiers このデータをどの ように分類する か?
  125. 125. denotes +1 denotes -1 f(x,w,b) = sign(w x + b) 線形のClassifier のマージンを、そ の境界がデータ の点にぶつかるま で増やすことので きる幅として定義す る . 線形のClassifiers
  126. 126. denotes +1 denotes -1 f(x,w,b) = sign(w x + b) 最大マージン Classifierは、 最大のマージンを 持つClassifierに 他ならない。 これが一番単純な SVM(LSVM)と呼ば れるものだ。 Linear SVM Support Vectors は、マージンが 迫っているデータ 点である。 1. マージンを最大にすることは、直感的に もPAC理論的にも正しい。 2. このことは、Support Vectorだけが重要 であることを意味する。それ以外の訓練 用データは、無視できる。 3. 経験的には、これはとてもうまく働く。 最大のマージン
  127. 127. Sec. 15.1 141 マージンの幾何  超平面に最も近いデータの点がSupport Vector。  マージンρ は、クラスのSupport Vector の間の分離幅 x ρ r x′ w r: の計算 点線x’−x は、決定境界と垂直だから wとは平行である。その単位ベクトルは w/|w|, だからこの直線は、rw/|w|。 x’ = x – yrw/|w|で、 x‘ はwTx’+b = 0を満たすので、 wT(x –yrw/|w|) + b = 0 |w| = sqrt(wTw) を使えば、 wTx –yr|w| + b = 0 これをrについて解けば、r が求まる。 r = y(wTx + b)/|w|
  128. 128. 142 数学的に見たLinear SVM 線形分離が可能な場合  全てのデータが、超平面から少なくとも距離1だけ離れていると仮定しよ う。この時、次の二つの条件式が訓練用データ{(xi ,yi)} について成り立つ。 wTxi + b ≥ 1 if yi = 1 wTxi + b ≤ −1 if yi = −1  Support vectorにとっては、不等号は等号になる。  先に見たように、超平面からの全てのサンプルの距離は、次の式であら わされるので、 w x b  マージンの値は、次のようになる 2 w r = w r y T + = Sec. 15.1
  129. 129. wTxa + b = 1 143 Linear Support Vector Machine (SVM)  仮説 wT x + b = 0  そのほかのスケールからの条件 mini=1,…,n |wTxi + b| = 1  これから、次の式が導かれる wT(xa–xb) = 2 ρ = ||xa–xb||2 = 2/||w||2 wT x + b = 0 wTxb + b = -1 ρ Sec. 15.1
  130. 130. が最大となり、かつ全ての{(xi , yi)}で、 144 Linear SVMs Mathematically (cont.)  こうして、二次の最適化問題を定式化できる 次の条件を満たすw とb をみつけよ。 2 w = r wTxi + b ≥ 1 if yi=1; wTxi + b ≤ -1 if yi = -1  より良い定式化は(min ||w|| = max 1/ ||w|| なので): 次の条件を満たすw とb をみつけよ。 Φ(w) =½ wTw は、最小となり; 全ての{(xi ,yi)}について、yi (wTxi + b) ≥ 1 Sec. 15.1
  131. 131. 最適化問題を解く 次の条件を満たすw とb をみつけよ。 Φ(w) =½ wTw は、最小となり; 全ての{(xi ,yi)}について、yi (wTxi + b) ≥ 1  線形の制約条件に従属した二次関数を最適化する必要が有る  二次の最適化問題は、数学的にはよく知られた問題で、それを解くため の多くの解法が知られている。  その解法には、最初の問題の全ての制約条件に関連するラグランジェ の未定乗数を持つ双対の問題を構成するという解法が含まれている。 次の条件を満たすα…αをもとめよ。 1N Q(α) =Σα- ½ΣΣααyyxTxは、最大値を取り、かつ、 i ijiji j (1) Σαiyi = 0 (2) αi ≥ 0 for all αi
  132. 132. 最適化問題の解法  この解法は、次の形をしている。 w =Σαiyixi b= yk- wTxk for any xk such that αk 0  それぞれの非ゼロのαi は、対応するxi が、support vectorであることを示している。  この時、分割関数は、次の形をしている。 f(x) = Σαiyixi  この形は、テストデータx とsupport Vector xi の内積で 決まることに注意しよう。このことに、我々はのちに立ち返る だろう。  同様に、この最適化問題を解くということは、訓練用データの 全てのペアxi Txj について、その内積を計算することを含ん でいることに留意しよう。 Tx + b
  133. 133. ノイズのあるデータセット  Hard Margin: これまでは、全 てのデータが正しく分類される ことを要求してきた。 - 分類で、エラーはない  もしも、訓練用データがノイズ を含んでいたら?  解1: 強力なカーネルを使う denotes +1 denotes -1 OVERFITTING!
  134. 134. Soft Margin Classification 分離が難しく、あるいは、ノイズが多いデータには、誤分 類を許すように、ゆるい(slack)変数ξi を追加するこ とができる。 e11 e7 e2 二次の最適化の基準はどう なるか? 次の式を最小化する   R C εk k 1 1 w . w 2
  135. 135. Hard Margin v.s. Soft Margin  古い定式化 Find w and b such that Φ(w) =½ wTw is minimized and for all {(xi ,yi)} yi (wTxi + b) ≥ 1  Slack変数込みの新しい定式化 Find w and b such that Φ(w) =½ wTw + CΣξi is minimized and for all {(xi ,yi)} yi (wTxi + b) ≥ 1- ξi and ξi ≥ 0 for all i  パラメータC は、オーバー・フィッティングをコントロールする ものと考えればいい。
  136. 136. Linear SVMs: まとめ  分類子は、分離超平面である。  もっとも重要な訓練用データは、Support Vectorである。それは、超 平面を定義する。  二次最適化アルゴリズムは、どの訓練用データがSupport Vectorで あるかを、非ゼロのラグランジェ未定乗数αi で決めることができる。  問題のデュアルな定式化でも、この解でも、両方で、訓練用データはドッ ト積の内部にしか現れない。 Find α1…αN such that Q(α) =Σαi - ½ΣΣαiαjyiyjxi Txj is maximized and (1) Σαiyi = 0 (2) 0 ≤ αi ≤ C for all αi Tx + b f(x) = Σαiyixi
  137. 137. 非線形のSVMs  多少のノイズがあっても、線形分離可能なものは、とてもうま く動く。 0 x  しかし、もし、データセットがあまりに分離が難しいものであ れば、何をすればいいだろう? 0 x  この場合には、データを高次元にマップする。 x2 0 x
  138. 138. Non-linear SVMs: 特徴空間  一般的なアイデア: 元の入力空間は、そこでは訓練用デー タが分離可能である、ある高次元の特徴空間に、常に、写像 されることができる。 Φ: x → φ(x)
  139. 139. The “Kernel Trick”  線形分類子は、ヴェクター間のドット積(内積) K(xi,xj)=xi Txjに依拠している  もし、全てのデータが、ある変形Φ: x → φ(x) で高次元空間に写像される のなら、ドット積は次のようになる。 K(xi,xj)= φ(xi) Tφ(xj)  kernel function は、ある拡張された特徴空間で内積に対応する関数である  例: 2次元ベクトルx=[x1 x2]に対し、K(xi,xj)=(1 + xi Txj)2 とする。 K(x,x)= φ(x) Tφ(x)を証明する必要がある。 ijijK(x,x)=(1 + xTx)2 iji j, = 1+ xi1 2xj1 2 + 2 xi1xj1 xi2xj2+ xi2 2xj2 2 + 2xi1xj1 + 2xi2xj2 = [1 xi1 2 √2 xi1xi2 xi2 2 √2xi1 √2xi2]T [1 xj1 2 √2 xj1xj2 xj2 2 √2xj1 √2xj2] = φ(xi) Tφ(xj), ここで、φ(x) = [1 x1 2 √2 x1x2 x2 2 √2x1 √2x2]
  140. 140. どの関数がKernelになるか?  ある関数K(xi,xj) に対して、 K(xi,xj)= φ(xi) Tφ(xj)をチェックするのは退屈である。  Mercerの定理を使う。 全てのsemi-positive definiteな対称関数はKernelである。  Semi-positive definiteな対称関数は、次のsemi-positive definite な、対称Gram行列に対応している。 K(x1,x1) K(x1,x2) K(x1,x3) … K(x1,xN) K(x2,x1) K(x2,x2) K(x2,x3) K(x2,xN) … … … … … K(xN,x1) K(xN,x2) K(xN,x3) … K(xN,xN) K=
  141. 141. Kernel Functions の例  線形: K(xi,xj)= xi Txj  p乗の多項式: K(xi,xj)= (1+ xi Txj)p  Gaussian (radial-basis function network): i j ( , ) exp( 2  Sigmoid: K(xi,xj)= tanh(β0xi ) Txj + β1) 2 2  i j x x x x  K  
  142. 142. (x1,x2) y = -1 y = +1
  143. 143. x 2 x 2 x x 1 2 ( , , 2 ) 1 2
  144. 144. Part III Azure MLでの 予測ソリューション開発サンプル
  145. 145. Azure MLの特徴
  146. 146. Microsoft Azure Machine Learning  強力なクラウドベースの予測分析  新しいユーザーにも、熟練のユーザーにも適した 設計  MS Research、Xbox、Bing で実証済みのア ルゴリズム  オープンソースのR 言語を高度にサポート  ビッグデータソリューション用のHDInsight へ のシームレスな接続  モデルを運用環境にわずか数分でデプロイ http://azure.microsoft.com/ja-jp/services/machine-learning/
  147. 147. Azure ML Studioの提供 機械学習モデルの構成  Azure ML Studio上で、モジュールをワイアリングするこ とで、簡単に機械学習モデルが構成できる。  機械学習モデルにとって、もっとも基本的なモジュールは、 モデルのアルゴリズムを提供するモジュール(多様なアル ゴリズムが用意されている)と、モデルを訓練するTrain Model モジュールと、訓練済みの完成したモデルである Score Modelモジュールの三つである。  三つのモデルのワイアリングの様子を、次の図で、示した。
  148. 148. Azure MLの基本的な構成 Algorithm Train Model Score Model ① モデルのアルゴ リズムを選択する ② モデルを訓練用 データで訓練する ③ 訓練されたモデル をデータで動かす 訓練用 データ データ 学習 学習済
  149. 149. Azure ML Studioの提供 「実験」というコンセプト  Azure ML Studioは、機械学習モデルの「実験」の場と いう位置付けを持っている。  複数のアルゴリズムのモデルの、複数のデータセット上で の振る舞いを、実験として比較することが簡単にできる。 実験を繰り返して、試行錯誤で、モデルのチューンアップ をはかるというアプローチは、とても強力である。  実験にもいくつかのステージがある。訓練段階の実験は、 訓練終了後のScore Model中心のScore段階の実験に 移行する。  Azure ML Studioは、実験の世界に閉じているわけで はない。実験が終わったら、そのモデルをAzure上の Webサービスとして、すぐにデプロイできる。
  150. 150. Azure ML Studioの概要
  151. 151. Azure ML Studio
  152. 152. 選択可能なモデルの アルゴリズム
  153. 153. Part III サンプルと使用されたモデル  クレジットのリスク予測Support Vector Machine (SVM) , Boosted Decision Tree  自転車の時間貸しboosted decision tree regression  CRMタスクboosted decision tree classifiers  飛行機の遅れの予測Two-class boosted decision tree, two-class logistic regression  ネットワーク侵入検出boosted decision tree  感情分析Linear regression, two-class logistic regression, multiclass logistic regression classifier  類似した会社を見つけるk-Means clustering  学生の成績boosted decision tree
  154. 154. クレジットのリスク予測 このモデルは、公開されて利用可能なドイツのクレ ジット・データセットを訓練用に利用して、新しいクレ ジットの申請者のリスクの良し悪しの予測について、 複数の機械学習アルゴリズムを比較する。 http://bit.ly/1uS0JEd
  155. 155. 開発の目的  この実験の目的は、クレジット・アプリからのデータに基づ いてクレジットのリスクの予測に利用できるモデルを開発 することである。複数のモデルが試されて比較され、一つ のモデルが選ばれて、リスク評価のWebサービスが、作 られる。
  156. 156. 開発の手順 1. ML workspaceを作成する 2. データをアップロードする 3. 新しい「実験」を作成する 4. モデルを訓練し、評価する 5. Web serviceに公開する 6. Web serviceにアクセスする
  157. 157. Step 1 ML workspaceを作成する
  158. 158. Step 2 データをアップロードする  データセットの特徴  データ・フォーマットの変換  ML Studioにデータをアップロードする
  159. 159. データセットの特徴  この実験では http://archive.ics.uci.edu/ml/datasets/Statlog+ (German+Credit+Data) のUCI Statlog (German Credit Card) データセットを利用している。このウエブサ イトから、german.dataファイルを使う。  このデータセットは、一群の属性で記述された人間を、ク レジット・リスクが高いか低いかに分類する。それぞれの サンプルは、人間を表しており、20の特徴がある。それら の特徴は、数値であったり、カテゴリーであったり、クレ ジット・リスクを表す二値ラベルだったりする。
  160. 160.  Attribute 1: (qualitative) Status of existing checking account  Attribute 2: (numerical) Duration in month  Attribute 3: (qualitative) Credit history  Attribute 4: (qualitative) Purpose  Attribute 5: (numerical) Credit amount  Attibute 6: (qualitative) Savings account/bonds  Attribute 7: (qualitative) Present employment since  Attribute 8: (numerical) Installment rate in percentage of disposable income  Attribute 9: (qualitative) Personal status and sex  Attribute 10: (qualitative) Other debtors / guarantors  Attribute 11: (numerical) Present residence since  Attribute 12: (qualitative) Property  Attribute 13: (numerical) Age in years  Attribute 14: (qualitative) Other installment plans  Attribute 15: (qualitative) Housing  Attribute 16: (numerical) Number of existing credits at this bank  Attribute 17: (qualitative) Job  Attribute 18: (numerical) Number of people being liable to provide maintenance for  Attribute 19: (qualitative) Telephone  Attribute 20: (qualitative) foreign worker
  161. 161. German Credit UCI dataset
  162. 162. データセットの特徴  高いクレジット・リスクのエントリーはlabel = 2を持ち、 低いクレジット・リスクのエントリーはlabel = 1を持つ。  低いリスクの人を高いリスクと誤って分類した場合のコス トは1 で、逆に、高いリスクの人を低いと誤って分類した 場合のコストは5 とする。
  163. 163. データ・フォーマットの変換  元のデータセットには、空白で区切られた形式が含まれて いる。このデータセットをCSV形式に変換して、ML Studioにアップロードする。  この変換は、Powershellを使えば、次のようにすればで きる。 cat dataset.txt | %{$_ -replace " ",","} | sc german.csv  あるいは、Unixのsedコマンドを使う。 sed 's/ /,/g' german.data > german.csv
  164. 164. ML Studioにデータをアップロードする
  165. 165. Step 3 新しい「実験」を作成する  データを準備する  訓練用とテスト用のデータを生成する
  166. 166. 左パネル右パネル
  167. 167. データを準備する  最初に、Metadata Editorを 使って、元のデータセットのカラム 名を、UCIサイトからとったデータ の記述を利用して、意味が分かり やすい名前に置き換える。  新しいカラム名は、Metadata Editorの新しいカラム名のフィー ルドに、コンマ区切りで置かれる。
  168. 168. Metadata Editor New Column Field 1. Status of checking account 2. Duration in months 3. Credit history 4. Purpose 5. Credit amount 6. Savings account/bond 7. Present employment since 8. Installment rate in percentage of disposable income 9. Personal status and sex 10. Other debtors/guarantors 11. Present residence since 12. Property 13. Age in years 14. Other installment plans 15. Housing 16. Number of existing credits at this bank 17. Job 18. Number of people being liable to provide maintenance for 19. Telephone 20. Foreign worker 21.Credit risk
  169. 169. データを準備する
  170. 170. 訓練用とテスト用のデータの生成  次に、リスク予測モデルで利用される訓練用とテスト用の データを生成する。元のデータセットを、同じ大きさの訓練 用とテスト用のデータに分割する。それには、Splitモ ジュールで、入力行に対する最初の出力行の割合を、 0.5 に設定する。
  171. 171. 訓練用とテスト用のデータの生成  高いリスクの人を低いと誤って分類した場合のコストは、 低いリスクの人を高いリスクと誤って分類した場合のコス トより、5倍ほど高いので、このコスト関数を反映した新し いデータセットを生成する。  新しいデータセットでは、高いリスクのサンプルは、5回複 製され、一方、低いリスクのサンプルは、そのままにして おく。次のページのRスクリプトを実行すればよい。  訓練用とテスト用のデータセットの分割は、同じデータが、 訓練用とテスト用の両方に含まれるのを防ぐために、この 複製の前に行う。
  172. 172. R Script モジュールの実行 dataset1 <- maml.mapInputPort(1) data.set<-dataset1[dataset1[,21]==1,] pos<-dataset1[dataset1[,21]==2,] for (i in 1:5) data.set<-rbind(data.set,pos) maml.mapOutputPort("data.set")
  173. 173. Step 4 モデルを訓練し、評価する  モデルを選択し、訓練する  テストを行い、そのスコアを評価する
  174. 174. 実験の目的とデータ分割  この実験では、モデルを生成する二つのアプローチ、すな わち、元のデータセットでの訓練と、複製されたデータセッ トでの訓練の二つを比較する。  両方のアプローチで、問題のコスト関数に揃えるために、 テストは、複製されたテストデータを利用する。  データセットの分割と複製の最終的なワークフローは、次 のようになる。このワークフローでは、Splitモジュールの 左側の出力は訓練用データで、右側の出力は、テスト用 データである。訓練用データは、Rスクリプトの実行がある のとないのがある。それは、複製のあるなしに対応してい ることに注意。
  175. 175. アルゴリズム 訓練用データ 訓練用モデル
  176. 176. アルゴリズム 訓練用データ 訓練用モデル
  177. 177. モデルを選択する  この実験では、訓練用データのサンプルの複製の効果の チェックと合わせて、二つのアルゴリズム: Support Vector Machine (SVM) とBoosted Decision Treeのパフォーマンスの比較を行う。  こうして、次の四つのモデルを生成する。 1. SVM, 元のままのデータで訓練 2. SVM, 複製したデータで訓練 3. Boosted Decision Tree,元のままのデータで訓練 4. Boosted Decision Tree,複製したデータで訓練
  178. 178. モデルを選択する  Boosted decision trees は、どんなタイプの特徴で も、うまく働く。  しかし、SVMモジュールは、線形のクラス分けを生み出 すので、そのモデルは、すべての特徴が同じスケールを 持つ時に、最良のテストエラーを返す。すべての特徴を同 一のスケールに変換するために、Scalingモジュールの Transform Dataで、tanh変換を使う。この変換は、す べての数値で表される特徴を、[0, 1]の範囲に変換する。  文字列で表される特徴は、SVMモジュールによって、カテ ゴリー特徴に変えられ、その後で、0/1の二値の特徴に変 えられる。だから、文字列で表される特徴は、わざわざ変 換する必要はないことに注意。
  179. 179. 選択可能なモデルの アルゴリズム
  180. 180. モデルをテストし、評価する  学習アルゴリズムを、Two-Class Support Vector Machineモジュールか、Two-Class Boosted Decision Treeモジュールで初期化する。その後、 Train Model モジュールを使って、実際のモデルを生 成する。  これらのモデルは、Score Model モジュールに利用さ れて、テスト・サンプルの成績を生み出す。  これらのモジュールを結合して、SVNと複製された訓練用 データを使ったワークフローのサンプルは、次のようにな る。  Train Modelは、訓練用データに結合され、Score Modelは、テスト用データと結合されることに注意。
  181. 181. 訓練用モデル スコアモデル テスト用データ
  182. 182. 訓練用モデル テスト用データ スコアモデル
  183. 183. モデルを評価する  実験の評価段階では、先の四つのモデルの正確性を計 算する。この目的のために、Evaluate Model モ ジュールを利用する。  このモジュールは、すべてのサンプルが誤ったクラス分け に対して同一のコストを持つ場合のみ、正確性を計算でき る。しかし、最初に、コストが高いサンプルを複製してある ので、Evaluate Model モジュールによる正確性の計 算は、こうしたコストを反映した次の値になる。  n+とn-は、元のデータ中の正負のサンプルの数。 e+とe-は、同じく、誤分類した正負のサンプルの数。
  184. 184. モデルを評価する Evaluate Model  Evaluate Modelモジュールは、二つの訓練済モデルを 比較する。それで、一つのEvaluate Modelモジュールを 二つのSVMモデルの比較に用い、もう一つのEvaluate Modelモジュールを、二つのboosted decision tree モデルの比較に用いる。  Evaluate Model は、多数の計量を含んだ単一行の テーブルを生み出す。  Mean Absolute Error Root  Mean Squared Error  Relative Absolute Error  Relative Squared Error  Coefficient of Determination
  185. 185. スコアモデルスコアモデル 評価モデル SVMの二つのスコアモデルDecision Treeの二つのスコアモデル 評価モデル評価モデル
  186. 186. モデルを評価する  4つの全ての結果を見るために、これらを一つのテーブルの 中に結合する。Evaluate Model は、多数の計量を含ん だ単一行のテーブルを生み出す。  Add Rowモジュールを使って、全ての結果を一つのテー ブルに結合する。  その後、Execute R ScriptのRスクリプトを使って、4つ のモジュールの正確さを記入する。  最終的なテーブルの行の名前は、手で入力される。最後に、 Project Columns モジュールを使って関係のない数字 を削除する。
  187. 187. 二つの評価モデルの出力を 一つのテーブルにまとめる # Map 1-based optional input ports to variables dataset <- maml.mapInputPort(1) a <- matrix(c("SVM","weighted", "SVM","unweighted", "Boosted Decision Tree","weighted", "Boosted Decision Tree","unweighted"), nrow=4,ncol=2,byrow=T) data.set <- cbind(a,dataset) names(data.set)[1:2] <- c("Algorithm","Training”) maml.mapOutputPort("data.set") R Script
  188. 188. Project Column
  189. 189. この実験の結果 最初のカラムは、モデルを生成するのに利用された機械学習 アルゴリズムの名前。二つ目のコラムは、訓練用データのタイ プを示す。三つ目のカラムは、コストを反映した正確さである。 この実験では、複製された訓練用データを用いた、SVMモデル が、最も正確だった。
  190. 190. 実験のパラメーターを変える SVMで、正規化を間違えた これは、先のSVMより成績が いい。重み付けないデータで 訓練したモデルに、重み付け ないデータでテストした場合。
  191. 191. 実験のパラメーターを変える これは、重み付けをx5 ではなく、x10 にした場合の スコア。最高得点。
  192. 192. ここまでのフローの全体を振り返る
  193. 193. 全体の流れ (整理前)
  194. 194. Azure MLの基本的な構成 Algorithm Train Model Score Model ① モデルのアルゴ リズムを選択する ② モデルを訓練用 データで訓練する ③ 訓練されたモデル をデータで動かす 訓練用 データ データ 学習 学習済
  195. 195. 全体の流れ (整理後)
  196. 196. 二つのアルゴリズム
  197. 197. 4つの訓練用モデル
  198. 198. 訓練用データの流れ 複製 正規化
  199. 199. 4つのスコアモデル
  200. 200. テストデータの流れ 複製 正規化
  201. 201. 2つの評価モデル
  202. 202. Step 5 Webサービスに公開する  スコア用の実験を準備する  訓練用実験からスコア用実験に変換する  サービスの入力と出力を選択する  Webサービスに公開する  Webサービスをテストする  Webサービスを実際のサーバーに移す
  203. 203. スコア用の実験を準備する  我々のモデルをWebサービスとして公開するための準備 として、二つのことをする必要がある。  第一に、実験のフェーズを、訓練用の実験からスコア用の 実験に変更する必要がある。公開用のサービスには、も はや訓練は必要ない。それは、ユーザーの入力をスコア する。訓練したモデルを保存して、訓練用の実験に使った コンポーネントを全て消去する必要がある。  第二に、Azure MLのWebサービスは、ユーザーから入 力を受け取り、結果を返すので、実験の中でこの入力と出 力を指定しなければならない。
  204. 204. 訓練用の実験からスコア用の実験に変更する  boosted tree modelが、良い成績を収めたので、それ を利用することを決めたので、最初に行うことは、SVCの 訓練用モデルを削除することである。  Two-Class Support Vector Machineを削除  それに接続していた、Train Model とScore Modelを 削除  Transform Data By Scalingモジュールを削除
  205. 205. 訓練用の実験からスコア用の実験に変更する  訓練したboosted tree model を保存する。それから、訓 練のために使った残りのモジュールを削除し、訓練されたモ デルに置き換えることができる。  残ったTrain Modelモジュールを右クリックで開き、Save as Trained Modelを選択する。Trained Modelの名前を 入力する。例えば、“Credit Risk Prediction”にする。 いったん、Trained Modelが保存されると、それはモ ジュール・パレットに現れ、別の実験で使うことができる。  Two-Class Boosted Decision Tree とTrain Model モジュールを削除する。  Credit Risk Prediction モデルをScore Modelモジュー ルの左側の入力に接続する。
  206. 206. 訓練用の実験からスコア用の実験に変更する  訓練と評価のために追加したモジュールがまだ残ってい る。次のものも削除する。  Split  二つのExecute R Script モジュール  Evaluate Model
  207. 207. Credit riskカラムの削除  もうひとつ。もとのクレジット・カード・データは、Credit Riskカラムを含んでいた。このカラムは、モデルがこのカ ラムの値を予測できるように訓練するために、Train Modelに渡されていた。しかし、モデルは今や訓練されて いるので、このカラムをTrained モデルに渡す必要はな い。このカラムをデータの流れから取り除くには、Project Columnモジュールを使えばいい。  Project Column モジュールを見つけて、キャンバスに ドラッグする。
  208. 208. Project Columnモジュールでの作業  このモジュールを、Metadata Editor モジュールの出力 につなげる。  Project Columns モジュールを選んで、Launch column selectorをクリックする。  新しいドロップメニューから“Exclude column names” を選び、テキスト・フィールドに、“Credit risk” と入れ、 OKをクリックする。  Connect the output of the Project Columns モ ジュールの出力をScore Model モジュールの右側の入 力に接続する。
  209. 209. 訓練用モデルが、Save as Trained Modelで保存されたもの。 カラム名をつける Credit risk カラムを 削除する
  210. 210. サービスの入力と出力を選択する  もとのモデルでは、スコアされるべきデータは、Score Model モジュールの右の入力ポート(“Dataset”) に渡 され、スコアされた結果は、出力ポート(“Scored Dataset”)に現れていた。サービスが走っている時も、 ユーザーのデータと結果は、同じポートでいい。  Score Model モジュールの右の入力ポートを右クリック して、Set as Publish Inputを選ぶ。ユーザー・デー タは、特徴ベクターのすべてのデータを含んでいる必要が ある。  出力ポートを右クリックして、Set as Publish Output を選ぶ。この出力は、サービスによって返されることにな る。この出力は、特徴ベクターと予測されたクレジット・リス クの予測とスコアリングの確率値を含んでいる。
  211. 211. サービスの入力と出力を選択する  もしも、Webサービスがこのデータの一部だけを返すよう にしたいなら、Score Model モジュールの後ろに、望ま ないカラムを除外するように設定して、Project Columns モジュールをつなげばいい。この時、Project Columns の出力が、Webサービスの出力になる。
  212. 212.  なぜ、UCI German Credit Card Data データセットが 残されているのか、疑問を持つかもしれない。サービスは、 ユーザーデータを使うので、もとのデータセットは必要ない はずだから。確かに、サービスは元のデータを使ってはい ない。  ただ、これらのデータのスキーマが必要なのだ。このス キーマは、カラムがいくつあって、どのカラムが数値をとる のかといった情報を含んでいる。このデータは、ユーザー のデータを解釈するのに必要なのだ。このコンポーネント は残しておく。  最後に、実験を走らせる。(Runをクリック) このモデルがちゃんと動いていることをチェックするには、 Score Model モジュールの出力を右クリックして、 Visualizeを選ぶ。元のデータが見えるはず。
  213. 213. Webサービスを公開する  我々の実験から導かれたWebサービスを公開するには、 キャンバスの下のPUBLISH WEB SERVICE をクリック してOKを押す。ML Studioは、この実験をML staging サーバー上で、Webサービスとして公開する。サービスの ダッシュボードが現れるはずだ。  いったん公開した後で、例えば、モデルを変えたいという ことで、このWebサービスを更新するには、以前に保存し た訓練用の実験を編集して、パラメーターをいじって、 trained modelとして保存すればいい。スコア用の実験 を再度開けば、何かが変わっているという通知が現れる だろう。こうして実験を更新できる。  実験を公開すれば、Webサービスは、更新されたモデル に置き換わる。
  214. 214. PUBLISH WEB SERVICE
  215. 215. Webサービスを公開する  サービスをCONFIGURATION タブをクリックすること コンフィグできる。ここでは、サービス名(でフォールトでは、 実験名)を変更でき、説明を加えることができる。また、入 出力のカラムに、もっと分かりやすい名前をつけることが できる。
  216. 216. Webサービスをテストする  DASHBOARD ページで、Staging Servicesの下の Testリンクをクリックする。ダイアログがポップアップして、 サービスへの入力データを聞いてくる。元のGerman credit risk データセットと同じカラムが出ているはず。  データセットをいれて、OKを押す。  このWebサービスで生成された結果がダッシュボードの 下に表示される。
  217. 217. Webサービスを、実際のサーバーに昇格する  これまで、サービスをML stagingサーバー上で走らせて きた。実際のサーバーに移行する準備ができたら、実際 のサーバーへの昇格をリクエストできる。  CONFIGURATION タブで、READY FOR PRODUCTION? の次のYESを押す。IT管理者に通知 が飛んで、管理者が、それを実際のサーバーに昇格させ る。
  218. 218. Step 6 Webサービスにアクセスする
  219. 219. Webサービスにアクセスする  Webサービスとして利用できるためには、ユーザーは、 サービスにデータを送り、結果を受け取ることができなけ ればならない。このWebサービスは、Azure Webサービ スで、次の二つの方法でデータのやり取りができる。  Request/Response – ユーザーはクレジット・データ の一組のデータをHTTPプロトコルで送り、サービスは一 組の結果で応える。  Batch Execution – ユーザーは、サービスに、一つ 以上のクレジット・データを含んでいるAzure BLOBの URLを送り、サービスは、結果を別のBLOBにいれ、その URLを返す。
  220. 220. Webサービスにアクセスする  WebサービスのDASHBOARD上に、開発者がこの サービスにアクセスするコードを書くのを支援する、二つ の情報リンクがある。API help pageの REQUEST/RESPONSE あるいは、BATCH EXECUTION のリンクを開けば、サンプルコードが見ら れる。  このページには、R, C#, Pythonのサンプルが含まれて いる。以下に、このWebサービスにアクセスするRコード の例を示す。
  221. 221. library("RCurl") library("RJSONIO") h = basicTextGatherer() req = list(Id="score00001", Instance=list(FeatureVector=list( "row.names"= "0", "Status of checking account"= "0", "Duration in months"= "0", "Credit history"= "0", "Purpose"= "0", "Credit amount"= "0", "Savings account/bond"= "0", "Present employment since"= "0", "Installment rate in percentage of disposable income"= "0", "Personal status and sex"= "0", "Other debtors"= "0", "Present residence since"= "0", "Property"= "0", "Age in years"= "0", "Other installment plans"= "0", "Housing"= "0",
  222. 222. "Number of existing credits"= "0", "Job"= "0", "Number of people providing maintenance for"= "0", "Telephone"= "0", "Foreign worker"= "0", "Credit risk"= "0" ),GlobalParameters=fromJSON('{}'))) body = toJSON(req) api_key = "abc123" # You can obtain the API key from the publisher of the web service h$reset() curlPerform( url = "http://xxx.cloudapp.net/workspaces/xxx/services/xxx/score", httpheader=c('Content-Type' = "application/json", 'Authorization' = "Bearer " + api_key), postfields=body, writefunction = h$update, verbose = TRUE ) result = h$value()
  223. 223. 自転車の時間貸し この回帰モデルは、以前の貸し出しの履歴、天候、曜 日等々といった与えられた特徴から、今日一日の毎 時間ごとに貸し出されるであろう自転車の数を予想す るのに、最適な特徴のセットを決定する。 http://bit.ly/1tErqdh
  224. 224. 問題の記述  以前の貸し出しの履歴、一時間ごとの天候、今日が休日・ 平日・週末であるかの情報が与えられた時、今日のそれ ぞれの時間帯での自転車の貸し出し数を予想する。この 予想は、時間ごとに異なる(例えば、朝は、貸し出しが多く、 夜には、ほとんど貸し出しがないといったように)
  225. 225. データ  このUCI Bike Rentalデータセットは、ワシントンDCで、 自転車レンタルのネットワークを展開しているCapital Bikeshare会社の実データに基ずいている。データセット は、2011年から2012年の、毎日の一時間毎に一つの 行を持ち、総計で17379行ある。一時間に貸し出される 自転車の範囲は、1台から977台までである。
  226. 226. モデル  2011年のデータを訓練用データとして使い、2012年の データをテスト用データとして使用する。  次の四つの特徴のセットを比較する。 A. 予想される日の、天候+ 休日・平日・週末という特徴 B. 直前の12時間に貸し出された自転車の数 C. 同じ時間帯で、直前の12日間で貸し出された自転車の数 D. 同じ時間帯・同じ日の条件で、以前の12週間で貸し出さ れた自転車の数
  227. 227. モデルの選択  特徴Bは、自転車に対する直近の要求を反映し、特徴C は、特定の時間帯での自転車に対する要求を反映する。 特徴Dは、特定の時間、週の特定の日の自転車に対する 要求を反映する。  ラベル(貸し出し数)は、実数値をとるので、回帰モデルを 使うことができる。同時に、特徴の数が(100以下で)比較 的少なく、疎ではないので、決定境界は、おそらく非線形 になる。これらに基づいて、boosted decision tree regressionアルゴリズムを利用すると決める。
  228. 228. 結果 FEATURES MEAN ABSOLUTE ERROR ROOT MEAN SQUARE ERROR A 89.7 124.9 A+B 51.2 86.7 A+B+C 48.5 83.7 A+B+C+D 48.8 83.2 最良の結果は、A+B+CとA+B+C+Dで与えられる。 驚くべきことに、特徴Dは、A+B+Cに対して、ほとんど 重要な改善をもたらさない。
  229. 229. CRMタスク このモデルは、フレンチ・テレコムの無名化された5万 人の顧客データから、新しい製品を買う場合の、顧客 の変動性・アップセル・志向を決定する。 http://bit.ly/1u3Hbfl
  230. 230. モデル概要  この実験の目的は、顧客の変動性(プロバイダーを変更 する)・アップセル(アップグレードやアドオンを購入する)・ 新しい製品を購入する志向(購買意欲)を予測できるモデ ルを開発することである。三つのboosted decision tree classifiers が、それぞれのモデルごとに使われ る。
  231. 231. データ  データは、フランスの電話会社オレンジの5万人の顧客 データ。それぞれの顧客は匿名化され、230の特徴を持 つ。このデータは、KDD Cup 2009からのもの。  数値の特徴も、文字列の特徴も、両方ある。これらの諸特 徴は、極めて疎である。
  232. 232. モデル  唯一のデータの事前処理は、欠けている値を処理するこ とだけである。文字列型の特徴の欠損値は”0”で置き換 える。ほとんどすべての数値型の特徴は、非負の値を持 つ。数値型の特徴の値には1を加え、欠損値は0で置き換 える。こうして、元の実際の値0と、欠損値を意味する0と を区別することができる。最初に、数値型の特徴について のみ、数学的操作の(+1)を適用する。その後で、すべて の欠損値を0(文字型の場合には“0”)で置き換える。  数値型と文字列型の両方の特徴があるので、boosted decision tree classifierを使う。

×