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

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

Jul 13, 2015

Download

Technology

maruyama097
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: エンタープライズと機械学習技術

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

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

Agenda

Part Iエンタープライズでの機械学習技術利用の広がり

Part II機械学習のアルゴリズム

Part IIIAzure MLでの予測ソリューション開発サンプル

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

Part I

エンタープライズでの機械学習技術利用の広がり

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

Part Iエンタープライズでの機械学習技術利用の広がり

ビッグデータ処理と統計学的アプローチ

機械学習技術とは何か?

2014年の各社の動き

Google Prediction API

MS Azure Machine Learning

IBM Watson Analytics

機械学習への期待の背景

小売業の変化

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

ビッグデータ処理と統計学的アプローチ

複数の大規模なデータの集まりから、有意な情報を引き出すには、主に二つの方法がある。一つは、MapReduceやテーブルのJoinのような組み合わせ論的で決定論的な方法である。ここでは可能なすべてのデータの組み合わせが新しい情報をもたらす。もう一つの方法は、統計学的・確率論的な手法で、データから情報を抽出しようとする方法である。機械学習技術は、後者に、その基礎を置いている。

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

ビッグ・データ処理と人間の能力

我々が利用できるデータは、年々、増大している。そればかりではない。あるデータと他のデータの関連を考えることで、複数のデータを組み合わせた、新しいデータが生まれる。そのサイズは、元のデータより、さらに巨大になる。

こうした全組み合わせのスキャンが必要な巨大な処理は、機械にまかせるしかない。ビッグデータ処理の一つの側面は、こうしたタイプのデータ処理の機械化である。

ただ、人間は巨大なデータをそのまま利用できるわけではない。人間がハンドルできるのは、ごく限られた大きさのデータだけだ。多くの場合、巨大なデータが価値を持つのは、そこから意味のある情報を引き出せるからだ。そこで、結果として引き出された情報は、元のデータと比べると、圧倒的に小さなサイズの情報である。

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

ビッグデータ処理と統計的手法

逆に、少数のデータのサンプルから、もとになるデータの基本的な特徴を抽出する手段が、昔から存在する。統計的手法がそれである。

例えば、テレビの「視聴率」の調査では、関東・関西等の11地区では毎日、青森・岩手等の16地区では月初めの二週間の調査が行われているが、それに参加しているのは、関東、関西、名古屋の3地区で600世帯、それ以外の地区は200世帯であると言われている。

それに対して、5年ごとに行われる「国勢調査」は、すべての世帯を対象に行われる悉皆調査である。

機械学習アルゴリズムは、基本的には、ビッグデータ処理に、統計的手法を導入しようというものである。

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

ビッグデータ処理の様々なスタイル

検索 – PageRankによる絞り込み

Web検索は、可能的にはすべてのWeb上のデータを対象とする、典型的なビッグデータ処理である。少数のデータをサンプリングして、その中を検索しても意味はない。ただし、検索条件にマッチしたすべてのページが表示されるわけではない。主要には、PageRankという指標を導入して、それが高いものだけを表示するのが、非常に革新的なアイデアだった。

一般に、巨大なデータから、有用な小さなデータを抽出するのを、データ・マイニングとかフィルタリングというが、Googleによる検索は、こうしたデータ・マイニングの成功例でもある。

ただし、PageRankの計算には、事前の全件スキャンが必要である。これは人間にはできないことだ。

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

ビッグデータ処理の様々なスタイル

Amazonのrecommendation

Amazonのrecommendationも典型的なビッグデータ処理の一つである。そこでは、個人が購入した商品に対して、同じ商品を購入した他の人たちが、他にどのような商品を購入したかがチェックされる。その結果、一番、多い組み合わせが、リコメンドされる。(おそらく全件チェックなのだとおもうが、よく分からない。)

検索でのPageRankとは違って、商品の購入予測には、いろいろなファクターを導入することが可能である。それまでの自身の購買履歴・年齢・性別・住んでいる地域・趣味等々。こうした予測をリアルタイムで行うには、全件の突き合わせより、事前の統計予測の方が現実的である。

こうした手法は、現在、急展開中の個人向けの広告でも同様である。

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

ビッグデータ処理の様々なスタイル

センサー・ネットワークの場合

各家に、電力の消費量(ある場合には発電量)・温度・湿度等を感知するスマートメーターが設置されている場合を考えよう。この時、各家の監視・電力の配分・異常チェックは必須なので、ある時間ごとでの全センサーのスキャンは必須である、

一方、時間帯(夜と昼等)や季節の変化による、電力消費量の変化は、ある程度、予測可能である。この定常的な予測値に対して、「異常」のチェックが可能になる。

ここでは、決定論的なコントロールと確率論的な予測の両方が必要になる。

ロボットやヘリコプターの姿勢制御では、各部分の自由度が高いので、確率論的な制御が適しているとも言われている。

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

機械学習技術とは何か?

ここでは、大規模なデータ解析に統計的なアプローチを取る機械学習技術の大まかな、アウトラインを示す。現在は萌芽的なものでしかないのだが、機械学習技術の中核である「機械自身が、与えられたデータから適切な振る舞いを学んでゆく」というモデルは、人工知能のモデルとしても、「スマート・コンピュータ」の一歩としても、興味深いものである。

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

機械学習アルゴリズムに可能なこと

数値予測とカテゴリー分類

機械学習アルゴリズムは、数値予測とカテゴリーへの分類という二つのことを行う。

数値予測は、与えられた複数のパラメーターから、一つの数値を予測する。例えば、 (住所、土地面積、建物の種類)から、建物の値段を予測する

ある選手の過去のデータから、来年度の成績を予測する。マイケル・ルイス 「マネー・ボール」

過去36ヶ月の気温のデータから、来月の気温を予測する

カテゴリー分類は、与えられた複数のパラメーターから、それが、どのカテゴリーに属するかの予測をする 与えられた個人情報から、クレジットの与信の可否を決める

手書文字の画像データが与えられた時、何の文字かの判定

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

機械学習モデル構成のステップ

モデルの選択・訓練・テスト・評価

あるデータが入力として与えられた時、ある答えを出力するシステムを作る。これを、モデルと呼ぼう。通常は、こうした機能をもつプログラムを開発するのだが、機械学習では、ユーザーは基本的には、プログラムを作らない。

1. 基本的な機械学習アルゴリズムに基づくモデルは、いくつか与えられており、そのうち一つを選ぶことから始める。

2. プログラムを書く代わりに、選んだモデルに、訓練用のデータを与えることで、機械自身が自ら学習して、統計的に正しい答えを出すモデルになることを期待する。

3. 訓練によって構成されたモデルが、望んだ振る舞いをするかは、訓練用データとは、別のデータによってテストされる。

4. その結果の評価で、モデルの調整を行う。

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

機械学習モデル構成のサンプル

クレジットカードの与信システム

ある個人の (年齢, 収入, 学歴, 既婚/未婚)の四つの特徴から、クレジットカードの与信の可否を決める機械学習モデルを考えてみよう。

もしも、クレジット会社が、先の四つの個人の特徴から、与信の可否を決めるアルゴリズムを持っているのなら、そのアルゴリズムをプログラムとして組み込むのが一番正確なので、機械学習モデルを使う必要はない。ここでは、このクレジット会社は、四つの特徴をベースに、面談した窓口の担当者が「総合的」に判断しているものとしよう。

こうした時、機械学習モデルを構成するには、すでにこの会社で審査が終了している次のような形式の一定数のデータが、訓練用とテスト用に必要になる。(年齢, 収入, 学歴, 既婚/未婚, 与信の可否)

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

機械学習モデル構成のサンプル

クレジットカードの与信システム

次の形式の訓練用データとテスト用データ(年齢, 収入, 学歴, 既婚/未婚, 与信の可否)

が、それぞれ与えられたとしよう。この時、例えば、次のような手順で機械学習モデルは構成される。

1. 機械学習アルゴリズムとしてSVM(Support VectorMachineアルゴリズム)を実装したモデルを選ぶ。

2. このモデルに、訓練用のデータ2,000件を読み込ませるこれを「訓練用データで、モデルを訓練する」という。

3. 訓練されたモデルが、望んだ振る舞いをするかを、テスト用データ 1,000件でテストする。

4. その結果の評価で、モデルやパラメーターの調整を行う。

5. 問題がなければ、実際の与信に、このモデルを利用する。

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

データ構造・アルゴリズム等

プログラム

設計

実装

配備

アプリケーション

レスポンスリクエスト

学習モデルと訓練用データの選択

機械学習アルゴリズム

設計

機械学習

配備

アプリケーション

レスポンスリクエスト

訓練用データ

人間の仕事

機械の仕事

Smart Machine

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

2014年の各社の動き

Google Prediction API

Microsoft Azure Machine Learning

IBM Watson Analytics

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

Google Prediction API

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

MS Azure Machine Learning

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

IBM Watson Analytics

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

機械学習アルゴリズムが、クラウドを利用で、誰でも利用可能に

現状:「機械学習には、これまで、複雑なソフトウェア、パフォーマンスの高いコンピューター、そしてそのすべてを理解する経験豊富なデータ サイエンティストが必要でした。 .... 」

クラウド利用「クラウドを活用することで、... 機械学習は、より広範囲のユーザーに届くようになります。将来の結果を予測することが達成可能になったのです。」

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

参考資料

各社のページから

Google Prediction API

Microsoft Azure Machine Learning

IBM Watson Content Analytics

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

Google Prediction API

2010年8月2日

“Machine Learning: Google Prediction API”

http://bit.ly/1GRx02Z

2014年9月23日

https://cloud.google.com/prediction/

Page 24: エンタープライズと機械学習技術
Page 25: エンタープライズと機械学習技術

Google Prediction API

使いやすい RESTful インターフェースを通じてGoogle の機械学習アルゴリズムを利用できる、データの分析と予測のための API です。

データを活用する: 過去の履歴を使用して、将来のトレンドを予測できます。Prediction API を使用すると、メッセージのルーティング、スパムの検出、ユーザーにおすすめのサービスの紹介が行えます。データは Google の強力なインフラストラクチャが分析します。

https://cloud.google.com/prediction/?hl=ja

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

高速&高信頼性: Cloud Storage を使用して複数のデータ センターを横断してデータが複製されます。ほとんどの予測クエリは 200 ミリ秒もかかりません。パフォーマンスも向上します。

クラウドの統合: Google サービスは互いに連携するよう設計されています。Google BigQuery からの結果を使用したり、Cloud Storage から最大 2.5 GB のデータセットを取得したりして予測モデルを作成できます。Prediction API は Google App Engine から直接使用できます。

Google Prediction API

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

応用サンプル

https://cloud.google.com/prediction/docs

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

購入の予測

Google のクラウドベースの機械学習ツールでは、データを分析してアプリケーションに、顧客の評判分析、スパム検出、メッセージのルーティング判断、アップセル最適化分析、ドキュメントとメールの分類などの機能を追加できます。

たとえば、ビール、ワイン、チーズを販売するサイトに訪問者の購入履歴があり、訪問者がワインに興味があるかどうかを予測したい場合、Google では、トレーニング データを 3 つの要素(高価なデザート チーズを顧客が購入した回数、顧客が以前にワインを購入した場合に値 1 とし購入しなかった場合には値 0、顧客がビールを購入した回数)に基づいて作成できます。

https://cloud.google.com/prediction/docs/scenarios#purchaseprediction

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

感情分析モデルの作成

このドキュメントでは、Google Prediction API を使用して基本的な感情分析モデルを作成する方法について説明しています。感情分析モデルは、テキスト文字列を分析し、指定したラベルに基づいて分類する場合に使用します。たとえば、ツイートを分析してその内容がポジティブなのかネガティブなのかを判断したり、メールを分析してその内容が気分を良くするものか悪くするものなのか、悲しくするものなのかを判断したりできます。

https://cloud.google.com/prediction/docs/sentiment_analysis

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

Microsoft AzureMachine Learning

2014年6月16日

“Microsoft Azure Machine Learning combines power of comprehensive machine learning with benefits of cloud”

http://bit.ly/1zlFNFm

Page 31: エンタープライズと機械学習技術
Page 32: エンタープライズと機械学習技術

Microsoft AzureMachine Learning

強力なクラウド ベースの予測分析

新しいユーザーにも、熟練のユーザーにも適した設計

MS Research、Xbox、Bing で実証済みのアルゴリズム

オープン ソースの R 言語を高度にサポート

ビッグ データ ソリューション用の HDInsight へのシームレスな接続

モデルを運用環境にわずか数分でデプロイ

http://azure.microsoft.com/ja-jp/services/machine-learning/

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

機械学習の力

コンピューター システムを使用して履歴データをマイニングすることで将来のトレンドや動きを予測する機械学習は、毎日大勢の人々の生活に関係しています。機械学習は、検索エンジン、オンライン レコメンデーション、ターゲット広告、仮想アシスタント、需要予測、不正検出、スパム フィルターといった最近のあらゆるサービスを強化します。これらは利用方法のほんの一部です。可能性はそれだけではありません。

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

Azure Machine Learning の紹介

機械学習にはこれまで、複雑なソフトウェア、パフォーマンスの高いコンピューター、そしてそのすべてを理解する経験豊富なデータ サイエンティストが必要でした。データ分析を始めたばかりの多くのユーザーにとって、さらには大企業にとっても、単純に困難でコストがかかります。予測分析用に完全に管理されたクラウド サービス、Azure Machine Learning を体験してください。クラウドを活用することで、Azure Machine Learning の機械学習は、より広範囲のユーザーに届くようになります。将来の結果を予測することが達成可能になったのです。

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

ドラッグ、ドロップ、予測

Azure Machine Learning により、データ サイエンスについての専門的な知識のないユーザーでもデータをマイニングして予測できるようになります。統合開発環境の ML Studio は、ドラッグ アンド ドロップで操作でき、シンプルなデータ フロー グラフを使用して実験をセットアップします。ほとんどのタスクでは、1 行のコードも記述する必要がありません。さらに ML Studio では、サンプル実験のライブラリが用意されていて、時間を節約することができます。また、Bing と Xbox で実証されてきたものと同じアルゴリズムを含む、Microsoft Research の洗練されたアルゴリズムを特徴としています。

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

R 言語のコミュニティ

Azure Machine Learning は、経験豊かなデータサイエンティスト向けにも設計されています。統計やデータ マイニングによく使われるオープン ソースのプログラミング環境である R をサポートしています。既存の R コードをワークスペースに直接ドロップすることも、ML Studio で独自のコードを作成することもできます。350 を超える R パッケージが安全にサポートされています。既存の作業を実証されたアルゴリズムと組み合わせて照合し、一度に最大で 10 のモデルをテストできます。Azure Machine Learning の実験は簡単に共有できるため、中止した箇所から他のユーザーが実験を再開できます。

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

クラウドで広がる可能性

Azure Machine Learning では、ソフトウェアをインストールしたり、ハードウェアを構成したり、頭を悩ます不可解な開発環境を扱ったりする必要はありません。ブラウザーさえあれば、どこからでも Azure にログオンして予測モデルを開発し、新しい分析モデルをこれまでにない速さでデプロイできます。また、Azure Machine Learning では Azure Storage 上にファイルをほぼ無制限に保管でき、Hadoop ベースのビッグ データ ソリューションであるHDInsight や、SQL Database、Virtual Machines といった Azure の他のデータ関連サービスにシームレスに接続できます。

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

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

Page 39: エンタープライズと機械学習技術
Page 40: エンタープライズと機械学習技術

IBM Watson Content Analytics

非構造化データからインサイトを引き出すことによって業績を向上させるための製品

Watson Content Analytics (旧称: Content Analytics with Enterprise Search) は、コンテンツ分析の威力とエンタープライズ検索のスケールを 1つの製品の中で組み合わせた検索 / 分析プラットフォームです。リッチ・テキスト分析によって、非構造化データとそれに関連する構造化データからトレンドやパターンや関係を抽出できます。そのようにして引き出したインサイトを利用すれば、業務成果の予測と達成に向けて、事実に基づく意思決定ができるようになります。 http://ibm.co/1GRCOcw

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

Watson Content Analyticsの機能

非構造化データと非構造化コンテンツの検索: 企業全体にわたる各種ソースのコンテンツ (文書、e-メール、レポートなど) が対象になります。

企業全体にわたる検索結果の分析: 事実に基づく意思決定に役立ちます。

トレンドやパターンや関係にかかわるインサイトの抽出:

ビジネス・インテリジェンスを高めて、ケース管理を拡張できます。

他の IBM システムと協調したスケーラビリティー、柔軟性、統合性の強化: オープン・スタンダード・プラットフォームを使用してさまざまなソリューションと統合できます。

スターター・パック機能の組み込み: 初期段階の実装や小規模な実装に最適です。

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

IBM’s Watson Content Analytics Technology

http://bit.ly/1wW5oVX

Page 43: エンタープライズと機械学習技術
Page 44: エンタープライズと機械学習技術
Page 45: エンタープライズと機械学習技術
Page 46: エンタープライズと機械学習技術

みずほ銀行と日本IBM、次世代チャネル構築へ「Watsonテクノロジー」活用

みずほ銀行と日本アイ・ビー・エム(以下日本IBM)はこのたび、次世代チャネル構築を目的に、音声データをテキスト化する音声認識技術、およびIBMの保有するWatson

テクノロジーや関連技術を組み合わせて、コールセンターや銀行窓口での顧客対応などでタイムリーに有益な情報を提示するシステムを共同で構築することに合意したと発表した。Watsonテクノロジーとは、質問や対話に基づいて、タイムリーに的確な回答を導き出すためのコグニティブ・コンピューティング(情報を分析し、学習や推論を行い、アクションに結びつける、といった人間の認知的活動の実現を目指したコンピュータ技術)の基盤。学習機能を備えており、経験を重ねる中で自律的に回答の精度を高めていくことができる。 http://news.mynavi.jp/news/2014/11/12/147/

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

Watson Analytics のUI画面

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

機械学習への期待の背景

ここでは、なぜ今、エンタープライズで機械学習への期待が高まっているのかを考えてみたい。いろいろな背景があるのだが、基本的には、個人とモバイルを対象とした新しいマーケティング手法への期待によって支えられているのだと筆者は考えている。

小論では、特に小売の世界での変化に注目した。

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

第三の情報爆発

ネット上の最初の「情報爆発」は、インターネットを利用する個人の爆発的拡大によって起きた。そこでの情報発信の主力は、静的なテキストベースのものであった。

ネットワークのブロードバンド化と個人が享受・発信する情報のリッチコンテンツ化による情報の増大が、それに続く。

第二の「情報爆発」は、モバイルとSNSの普及によってもたらされた。モバイル・デバイスは個人を常にネットに接続させ、SNSはソーシャルなグラフの内部でリアルタイムにメッセージの交換を繰り返す。

進行中の第三の「情報爆発」は、ネットワークに接続するデバイスとセンサーの爆発的な拡大によって、もたらされようとしている。

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

モバイルは、最強のマーケティング・ツール

21世紀初頭の大規模データの処理技術の中核は、検索と広告技術である。

一方で、こうした大規模分散システムから派生したクラウドのエンタープライズでの利用は大きく拡大した。

現在のエンタープライズでのクラウド利用で、もっとも重要なターゲットとして想定されているのは、個人が持ち歩くスマートフォン、タブレット等のモバイル・デバイスである。

個人に強くひも付き、多くのセンサーを備え、位置情報・購買情報その他の情報が取得可能なモバイル・デバイスは、エンタープライズにとって、最強のマーケティング・ツールになろうとしている。

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

広告のターゲットはモバイルと個人

2010年ごろ、モバイルとSNSの爆発的な普及で、リアルタイムのメッセージがネット上のコンテンツの主流となったことを背景に、検索のバッチ処理からリアルタイム処理への大きな転換が起きる。

この変化の中で、広告の主要なターゲットは、PC上のブラウザーからモバイルと個人に変わる。個人を特定し追跡する技術の追求とともに、グラフの検索・知識の検索といった、新しい検索技術の模索が始まる。

モバイルと個人をターゲットにする広告の技術は、大きく変わろうとしている。知識の表現と言語能力へのアプローチをも展望するこの分野での競争は、現代のIT企業間の競争のもっとも中心的な分野になっている。

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

企業の価値を最大化するシステム基幹系と情報系の統合

現在のエンタープライズのシステムには、基幹系・勘定系と呼ばれる領域と情報系・Web系と呼ばれる領域が並存している。そうした重層的構造は歴史的に形成されたものである。

20世紀末から21世紀のはじめにかけての時期、インターネットとその技術の急速な普及を背景と して、サーバー・サイドのWebアプリのスタイルが登場し、基幹系のWeb

アプリケーション化が、エンタープライズ・システムの技術的な中心課題となった。エンタープライズ・システムのクラウド化は、こうした過程の完成段階である。

現在起きようとしていることは、エンタープライズの価値を最大化しようとする、マーケット・ドライブの、基幹系と情報系の統合である。

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

「IT技術のマーケティングへの応用」は、すべての企業にとっての課題

個人にとって最適の商品を売り込む最適の広告を打つためには、個人の行動の把握と、ターゲットになる集団の全体としての行動の傾向の分析は、欠かせないものになる。

それは、大規模な分散処理システムに支えられた高度化した広告だけの問題ではない。ここで目指されている方向は、一般の企業のマーケティングの基本でもある。

重要なことは、ネットワークとマシンの性能向上とクラウド利用の拡大によって、一般の企業でも、大規模のデータをハンドルし、その分析をビジネスに活かす条件が広がっていることである。

一般のコンシューマーを直接の顧客とする小売業の分野で大きな変化が起きようとしている。

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

小売業の変化

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

「ショッピングと消費の世界は、次の5年の間に、以前の50年の間そうであった以上に、変化するだろう。商業とマーケティングのコミュニティーにいる我々のようなものにとっては、それは危険な時代であるとともに、機会に満ちた時代にもなるであろう。」

Paco Underhill

Founder, Envirosell, Inc.

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

“The Future of Shopping”-- RichRelevance社 White Paper

マーケティングと小売業は、ますます強く、解けない計算のように感じられるかもしれない。新しいトレンド、アプローチ、デジタル・チャンネルは、毎朝、次々生えてくるマッシュルームのように見える。ブランドでも小売でも、両方で、誰もが、何が妥当なのか、この次に出てくる新しいものは何なのかに頭を悩ませている。LinkedIn, Facebook, YouTube, Twitter, Google+ ... これらの新しいチャンネルのそれぞれが、ある決定を必要としている。それをするかしないかの。もし、それをするとすれば、既存のメッセージや製品やキャンペーンのコンテンツをカスタマイズしたり目標の再設定をすべきなのか? そして、それに慣れた頃、InstagramやPinterestが現れる。どこで、それは終わるのだろうか?

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

“The Future of Shopping”-- RichRelevance社 White Paper

それは終わりはしない。しかし、ひとたび、個別の要素を定義し解決すれば、そんなに複雑なことにはならない。未来のショッピングの基礎は、少数の議論の余地のない事実の中にある。ソーシャル・メディアは存在を続け、あなたの顧客は決定的にMobileで、ますますローカルなものになる。そして女性が重要な鍵を握っている。

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

個人化 “personalization” と参加 “participation”

これである! ショッピングの予見可能な未来は、明確なものになる。ソーシャルとモバイルとローカルな取り組みに、個人化 “personalization” と参加“participation” を掛け合わせるだけだ。(4Pは、いまや6Pになる)。忘れないで欲しいのは、分母の女性“Female” である。これは、急速に成長しつつある、巨大なマーケットを表している。

4P: right Product, Place, Price and Promotion

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

「消費者の行動データが、ショッピングの未来をドライブする」

物事を、自身のビジネスの境界内(それは、サイロ化されたチャンネルだ)の自分に快適な目線からではなく、消費者の目線で見ることが重要である。“オムニチャンネル・リテーリング”(ハーバード・ビジネス・レビューがそう名付けた)は、統合されたセールスの経験を提供する。

目標は? 買い物客にシームレスで一貫した情報を提供しながら、物理的な店舗の利点と、オンライン・ショッピングの豊かな情報の経験を融合させること。

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

“Personalization” :購入にいたる道に沿った顧客中心の視点

個人化 Personalizationは、ブランドと小売店が、収集された行動データを活用し、すべてのチャンネルで顧客向けに作られた顧客との関係を継続することを可能にする接着剤である。

「既製品」のインターネット広告(データと技術に基づいている)は、小売店が、彼らが売っているものを欲しがっている人をターゲットにすることや、これらの人たちが意味のある会話に加わることを可能にする。

この会話は、あなたがあなたの顧客がどんな人かを知っていることにではなく、彼らが現時点で何を望み、彼らがどのように調査し、経験し、購入し、あなたが提供する製品の配達を受けてきたかに基づいている。

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

リアルタイムのユーザーの行動

マルチ・チャンネルの購買履歴

在庫とマージンのデータ

属性データのカタログ

サードパーティのデータソース

将来予測データ

パーソナライズ化された製品のリコメンデーション

ターゲット化されたプロモーション

価値あるブランドの広告

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

「データの声を聞く」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

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

「データの声を聞く」求められる意思決定のスタイル

彼らはデータの声をきいた。そして、不断にデータを最適化した。エラい人の声ではない。それが、彼らの文化の中心部分なのだ。

エラい人の決定は、もはや、デフォールトではない。(少数の選ばれた上級マネージャーの権力を固めるのではなく)ますます多くの責任を、実装する自由を含めて、すべてのチームメンバーに移譲することは、士気を高め、コストを削減する。

エラい人は、自分の好みで(あるいは、一番無難な)デザインを、思いつきで選ぶ。しかし、これは会社内部の最終戦を表しているに過ぎない。顧客は、もちろん、この激しい論争を構成した20以上のデザインを目にすることはない。

Page 64: エンタープライズと機械学習技術
Page 65: エンタープライズと機械学習技術
Page 66: エンタープライズと機械学習技術

Greg Lindenの教訓

「私の経験では、イノベーションは、下からしか起きない。問題に一番近い人間が、それを解決する一番いい位置にいるのだ。イノベーションに依拠しようとするどんな組織も、ある種の混沌を取り込まなければならないと、私は信じている。忠誠と従属は、武器にはならない。善と悪とを分離するためには、データの計測と客観的な議論を用いるべきなのである。」

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

参考資料

生産の場での注目すべき動き

ここでは、経済のシステムの中では、「小売」の対極にある「生産」の場での、注目すべき動きを紹介する。

ローカルへの注目、民主化の重要性等、いくつかの共通点が見られるのが興味ふかい。

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

オークリッジ国立研究所の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

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

GEとローカル・モーターズの未来の製造業プラットフォーム「FirstBuild」

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

GEとローカル・モーターズの未来の製造業プラットフォーム「FirstBuild」

クラウドと3Dプリント技術を融合した次世代製造プラットフォーム。

クラウドで全世界のアイデアを製品開発に活かす

アイデア出しから製品開発、そして完全な少量生産から販売まで行う。

既存の流通と価格戦略を破壊する取組

http://i-maker.jp/first-build-2479.html

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

GE会長・CEOJeff Immelt

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

ものづくりは、競争上の優位の主要な源である。企業がアウトソーシングの能力を得てから数十年がたつが、我々が現在目にしているのは、多くの企業がものづくりの強さを再構築している姿だ。企業は、これまで投資の判断を、純粋に労働力のコストだけで行ってきた。しかし、革命的なパフォーマンスを可能とする新素材があり、精密加工技術や強力なコンピューティングの能力は、もののつくり方を変えつつある。GEは、こうしたものづくりの多くの内実を"インソース"して行くだろう。我々は、付加製造技術のような処理技術に投資をしていく。

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

ものづくりは、産業企業にとってもそれが重要な国家にとっても、競争上の優位の基礎である。ものづくりの概念は既に変わっている。労働力のコストだけが問題になる時代は終わりつつある。人々は、望むものを、望む時につくる事が出来る。起業家達は、以前にはまったくありえなかったものづくりのスペースにすんでいる。ものづくりは、デジタル化され、分散化され、民主化される。

GEは、これらの全てではないにせよ、その大部分をリードしている。我々は、高速コンピューティング、新しいプロセス、付加製造技術に、GEグローバル研究センターで、大きな投資を行いつつある。

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

Part II

機械学習のアルゴリズム

機械学習技術の利用では、ユーザーは、モデルを構成する背後のアルゴリズムの詳細について理解を求められないことが多い。ただ、機械学習のモデルを利用する上で、一定の統計学的知識は必要だと感じている。また、どのようなメカニズムで機械学習が行われているかの概略を知ることも、あったほうがいいと思う。ここでは、機械学習アルゴリズムのいくつかを紹介する。

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

2014/10/29日経新聞

一定の統計学の知識は必要である

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

回帰モデル評価の基本的な用語

MAE =1

Nyi - yi

^

i=1

N

å

RMSE =

Mean Absolute Error(平均絶対誤差)

Root Mean Squared Error(二乗平均平方根誤差)

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

Part II機械学習のアルゴリズム

Neural Network -- Gradient Decent

Decision Tree

Support Vector Machine

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

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

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

ポートランドでの実際の家の価格

これを予測の為の訓練用データとして利用する

面積 feet2

(x)価格 千ドル単位

(y)

2104 460

1416 232

1534 315

852 178

… …

記号の意味:

m = 訓練用データの数x = “入力” 変数 / 特徴y = “出力” 変数 / “ターゲット” 変数

m= 97

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

仮説:

面積 feet2

(x)価格 千ドル単位

(y)

2104 460

1416 232

1534 315

852 178

… …

予測の為の訓練用データ

家の価格hは、家の面積をxとした時、上の式で表されると仮定する。

問題:

この時、パラメーター は、どのように選べばいいか?

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

0

1

2

3

0 1 2 3

0

1

2

3

0 1 2 3

0

1

2

3

0 1 2 3

h は、x の一次式なので、h のグラフは、直線になる。パラメーター θi が変わると、グラフも変わる。

訓練用データの点(x, y) について、yがもっとも、hθ(x)に近ずくように、θ0, θ1を決める。

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

誤差

誤差

誤差誤差

Page 83: エンタープライズと機械学習技術
Page 84: エンタープライズと機械学習技術
Page 85: エンタープライズと機械学習技術
Page 86: エンタープライズと機械学習技術
Page 87: エンタープライズと機械学習技術
Page 88: エンタープライズと機械学習技術

誤差を最小にするθ0 , θ1を求める

サンプル中のi 番目の点を (x(i), y(i))とすれば、点 x(i) での誤差は、hθ(x

(i)) – y(i) となる。

誤差は、正負の値をとるので、単純に、誤差の平均を取っても、打ち消しあって、全体としての誤差の大きさはわからなくなる。

そこで、誤差の二乗をとって、その平均を最小にすることを考える。

θ0 , θ1の関数である、この誤差の二乗の平均を、コスト関数と呼ぶことがある。

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

仮説:

パラメーター:

コスト関数:

目標:

問題の整理

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

コスト関数

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

コスト関数 J(θ0 , θ1)は、θ0 , θ1 についての関数なので、次のような形をしている

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

10

J(0,1)

コスト関数 J(θ0 , θ1)の別の例

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

(for fixed , this is a function of x) (function of the parameters )

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

(for fixed , this is a function of x) (function of the parameters )

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

(for fixed , this is a function of x) (function of the parameters )

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

(for fixed , this is a function of x) (function of the parameters )

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

Gradient descent

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

ある関数があって

その値を最小にしたい

基本的な考え方:

• ある からはじめる。

• の値を、 が減少するように

変化させる。

• 最小値になるまで、繰り返す。

Gradient descent(勾配降下法)

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

簡単にするために、二次元のグラフで考えよう。ある点から始めて、その点から極小点に近ずくためには、どうすればいいか?

二つの場合がある。その点が極小点の右側にある場合には、その点のx座標を少し減らせばいい。その点が極小点の左側にある場合には、その点のx座標を少し増やせばいい。

その点が、極小点の右にあるか左にあるかは、その点での接戦の傾きが、正であるか負であるかでわかる。

よって、α を正の数値とすれば、次の式が、より近づいた点の位置を与える。

直感的な説明

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

If α is too small, gradient descent can be slow.

If α is too large, gradient descent can overshoot the minimum. It may fail to converge, or even diverge.

アルファが、あまりに小さいと、Gradient descentは、ゆっくりにしか進まない。

アルファが、あまりに大きいと、Gradient descentは、最小値を通り越してしまう。場合によっては、振動したり、収束しない場合もある。

このアルファを学習率(Learning Rate)という。

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

Gradient descentは、アルファが固定されていても、極小値に収束できる。

局所的な最小値に近づくにつれ、gradient descent

は、自動的に小さなステップを取るようになるので、繰り返しアルファを小さくしてゆく必要はない。

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

Gradient descent algorithm Linear Regression Model

Page 103: エンタープライズと機械学習技術
Page 104: エンタープライズと機械学習技術

Gradient descent algorithm

update and

simultaneously

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

10

J(0,1)

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

0

1

J(0,1)

ある場合には、最小値ではなく、局所的な極小値に、入り込むことがある。

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

http://arxiv.org/pdf/1210.0811v2.pdf

gradient descent method

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

Decision Tree

Decision Treeは、直感的にもわかりやすく、同じモデルで、数値予測にもカテゴリー分類の両方に使えるというメリットがある。かつ、予測も早く正確である。ただ、統計的な方法とのつながりは、薄いように思う。

Shmueli, Patel & Bruce

“Classification and Regression Trees”に依拠

http://bit.ly/1x7PSGA

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

明日の天気

http://www.i.kyushu-u.ac.jp/~hatano/papers/dtree_boost.pdf

Decision tree

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

タイタニックの生存者

http://en.wikipedia.org/wiki/Decision_tree_learning

性別 男性

年齢

身内の数

Decision tree

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

収入

収入

収入

教育

家族

92.5

1.5

2.5

116

114.5

2.95◎

◎◎

クレジットカードの審査

Decision tree

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

Decision Treeを作る

次の表のようなデータ、収入と敷地面積と芝刈り機の所有のデータが与えられている時、このデータの芝刈り機の所有を表すDecision Treeを作ってみよう。

最初のデータから始めて、片っ端から、二分木を作っていってもいいが、それは少し形が悪い。

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

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

収入 敷地面積 芝刈り機の所有

この表は、芝刈り機の所有の有無でソートされている。

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

どのようにデータを分割するか?

一つの変数について、データをソートする。ここでは敷地面積でソートしてみる。

連続した値の中間点を見つける。例えば、最初の中間点は、14.4になる。 (小さい方から見た最初の値 14.0 と次の 14.8の中間)

データを、敷地面積 > 14.4 と敷地面積 < 14.4に分割する。

この分割を評価したら、次の中間点 15.4 に進む。 (14.8 と16.0 の中間)

この過程を全ての中間点について繰り返し、最適の分割点を見つける。分割の評価法については、後で述べる。

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

最初の分割点Lot Size = 19,000

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

二番目の分割点Income = $84,000

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

最終的な分割

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

Impurityとリカーシブな分割

分割で得られた長方形について、分割の評価を与える指標を計算する。この指標はImpurityと呼ばれ、次に見るようにいくつかの計算法がある。

計算のそれぞれのステージで、可能な全ての分割と、全ての変数について、この指標Imprurityを計算する。

この指標が最大になるような分割を選び、次のステージに進む。

分割点は、Tree上のNodeになる。

ここで紹介しているCHARTというアルゴリズムでは、これ以上分割ができなくなるまで分割を続ける。すなわち、与えられたデータが、すべてLeaf Nodeに収まったときに、この処理は終わる。

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

Impurinity分割の評価 1: Gini Index

m個のデータを含んだ長方形 Aの Gini Index

I(A) = 1 -

pk = 長方形 A に含まれるデータのうち、クラスk に属するデータの割合

I(A) = 0 全てのデータが同じクラスに属する時

最大値 全てのクラスが、均等に含まれている時 (= 0.50 二分木での最大値)

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

Impurinity分割の評価 2: Entropy

pk = 長方形Aの中のクラスkに属するデータの割合

Entropyは、

0 (もっともpureな場合) log2(m) (クラスが均等に含まれる場合)

の間の値をとる

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

Leaf Node(終端)のラベルを決める

Leaf Nodeのラベルは、それに含まれるデータの「投票」とCut Offの値によって決められる。

それぞれのLeaf Node内のデータは、訓練用データから来る。

デフォールトのCut Off の値は、0.5である。すなわち、Leaf Nodeのラベルは、多数を占めるクラスの名前になる。

Cutoff = 0.75にすれば、そのLeafを”1”と名付けるためには、そのLeaf内に、75%以上の “1” データがなければいけないことになる。

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

Decision Treeの「枝刈り」

こうして得られたTreeは、Test用のデータには、完全に一致しているのだが、予測用に使おうとすると、Test用データ固有のノイズを拾って、むしろ正確に予測できないという問題が起きる(Over Fitting)。

そこで、CARTでは、いったん組み上げたTreeを、ある基準で「枝刈り」をして、Treeを小さなものにする。

その基準を Cost Complexity という。

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

Cost Complexity

CC(T) = Err(T) + a L(T)

CC(T) = Tree Tのcost complexity

Err(T) = 間違って分類されたデータの割合

a = ユーザーによって設定されたTreeのサイズに応じたペナルティ

与えられたサイズのTreeの中で、CCが一番小さい値をとるTreeを選ぶ。

これを、それぞれのサイズのTreeに適用する。

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

数値予測とDecision Tree

Decision Treeのメリットの一つは、同じ考えのモデルを使って、今まで見たようなクラス分けだけではなく、数値予測もできることである。ただ、次のような点で、クラス分けとは異なっている。

予測は、長方形内のターゲット変数のとる値の平均として計算される。

Impurityは、Leafの平均からの誤差の平方和で測られる。

パフォーマンスは、RMSE (root mean squared

error)で、計測される。

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

w2

X2<0.34

X1<0.09

w1

w2

X2<0.56

X1<0.56

w1

w1w2

X1<0.27

X1<0.89

w2 w1

X2<0.83

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

線形回帰予測

w1

-0.8X1+0.6X2<0.3

w2

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

Boosted Decision Tree

Fermi Lab

http://www-boone.fnal.gov/slides-talks/conf-talk/yang/boosting-ccast.ppt

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

11.6-10,2006 H.J.Yang - CCAST Workshop 128

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.

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

11.6-10,2006 H.J.Yang - CCAST Workshop 129

Event Topology

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

11.6-10,2006 H.J.Yang - CCAST Workshop 130

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 issmeared randomly using the formula,V_ij = V_ij * ( 1 + smear*Rand_ij )

Where Rand_ij is random number with normal Gaussian distribution.

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

11.6-10,2006 H.J.Yang - CCAST Workshop 131

BDT is more powerful and stable than ANN !

ANN vs BDT-Performance/Stability

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

Support Vector Machine

Christopher Manning and Pandu Nayak

CS 276 :Information Retrieval and Web Search

http://web.stanford.edu/class/cs276/

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

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.

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

denotes +1

denotes -1

f(x,w,b) = sign(w x + b)

このデータをどのように分類するか?

w x + b<0

w x + b>0

線形のClassifiers

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

denotes +1

denotes -1

f(x,w,b) = sign(w x + b)

線形のClassifiers

このデータをどのように分類するか?

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

denotes +1

denotes -1

f(x,w,b) = sign(w x + b)

線形のClassifiers

このデータをどのように分類するか?

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

denotes +1

denotes -1

f(x,w,b) = sign(w x + b)

このどれでもいいのだが、...

どれが一番いいのだろう?

線形のClassifiers

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

denotes +1

denotes -1

f(x,w,b) = sign(w x + b)

+1クラスへの誤った分類

線形のClassifiers

このデータをどのように分類するか?

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

denotes +1

denotes -1

f(x,w,b) = sign(w x + b)denotes +1

denotes -1

f(x,w,b) = sign(w x + b)

線形のClassifierのマージンを、その境界がデータの点にぶつかるまで増やすことのできる幅として定義する

.

線形のClassifiers

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

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. 経験的には、これはとてもうまく働く。

最大のマージン

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

141

マージンの幾何

超平面に最も近いデータの点が Support Vector。

マージン ρは、クラスの Support Vector の間の分離幅

r

ρx

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|

Sec. 15.1

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

142

数学的に見た Linear SVM 線形分離が可能な場合

全てのデータが、超平面から少なくとも距離1だけ離れていると仮定しよう。この時、次の二つの条件式が訓練用データ{(xi ,yi)} について成り立つ。

Support vectorにとっては、不等号は等号になる。

先に見たように、超平面からの全てのサンプルの距離は、次の式であらわされるので、

マージンの値は、次のようになる

wTxi + b ≥ 1 if yi = 1

wTxi + b ≤ −1 if yi = −1

w

2=r

w

xw byr

T +=

Sec. 15.1

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

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||2wT x + b = 0

wTxa + b = 1

wTxb + b = -1

ρ

Sec. 15.1

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

144

Linear SVMs Mathematically (cont.)

こうして、二次の最適化問題を定式化できる

より良い定式化は (min ||w|| = max 1/ ||w||なので):

次の条件を満たす w と bをみつけよ。

が最大となり、かつ全ての {(xi , yi)}で、

wTxi + b ≥ 1 if yi=1; wTxi + b ≤ -1 if yi = -1

w

2=r

次の条件を満たす w と bをみつけよ。

Φ(w) =½ wTw は、最小となり;

全ての {(xi ,yi)}について、 yi (wTxi + b) ≥ 1

Sec. 15.1

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

最適化問題を解く

線形の制約条件に従属した二次関数を最適化する必要が有る

二次の最適化問題は、数学的にはよく知られた問題で、それを解くための多くの解法が知られている。

その解法には、最初の問題の全ての制約条件に関連するラグランジェの未定乗数を持つ双対の問題を構成するという解法が含まれている。

次の条件を満たす α1…αNをもとめよ。Q(α) =Σαi - ½ΣΣαiαjyiyjxi

Txj は、最大値を取り、かつ、(1) Σαiyi = 0

(2) αi ≥ 0 for all αi

次の条件を満たす w と bをみつけよ。

Φ(w) =½ wTw は、最小となり;

全ての {(xi ,yi)}について、 yi (wTxi + b) ≥ 1

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

最適化問題の解法 この解法は、次の形をしている。

それぞれの非ゼロの αi は、対応する xi が、support vectorであることを示している。

この時、分割関数は、次の形をしている。

この形は、テストデータ x とsupport Vector xi の内積で決まることに注意しよう。このことに、我々はのちに立ち返るだろう。

同様に、この最適化問題を解くということは、訓練用データの全てのペア xi

Txj について、その内積を計算することを含んでいることに留意しよう。

w =Σαiyixi b= yk- wTxk for any xk such that αk 0

f(x) = ΣαiyixiTx + b

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

ノイズのあるデータセット

Hard Margin: これまでは、全てのデータが正しく分類されることを要求してきた。

-分類で、エラーはない

もしも、訓練用データがノイズを含んでいたら?

解 1: 強力なカーネルを使う

denotes +1

denotes -1

OVERFITTING!

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

分離が難しく、あるいは、ノイズが多いデータには、誤分類を許すように、ゆるい(slack)変数 ξi を追加することができる。

e7

e11

e2

Soft Margin Classification

二次の最適化の基準はどうなるか?

次の式を最小化する

R

k

kεC1

.2

1ww

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

Hard Margin v.s. Soft Margin

古い定式化

Slack変数込みの新しい定式化

パラメータ C は、オーバー・フィッティングをコントロールするものと考えればいい。

Find w and b such that

Φ(w) =½ wTw is minimized and for all {(xi ,yi)}

yi (wTxi + b) ≥ 1

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

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

Linear SVMs: まとめ 分類子は、分離超平面である。

もっとも重要な訓練用データは、Support Vectorである。それは、超平面を定義する。

二次最適化アルゴリズムは、どの訓練用データがSupport Vectorであるかを、非ゼロのラグランジェ未定乗数 αi で決めることができる。

問題のデュアルな定式化でも、この解でも、両方で、訓練用データはドット積の内部にしか現れない。

Find α1…αN such that

Q(α) =Σαi - ½ΣΣαiαjyiyjxiTxj is maximized and

(1) Σαiyi = 0

(2) 0 ≤ αi ≤ C for all αi

f(x) = ΣαiyixiTx + b

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

非線形の SVMs

多少のノイズがあっても、線形分離可能なものは、とてもうまく動く。

しかし、もし、データセットがあまりに分離が難しいものであれば、何をすればいいだろう?

この場合には、データを高次元にマップする。

0 x

0 x

0 x

x2

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

Non-linear SVMs: 特徴空間

一般的なアイデア: 元の入力空間は、そこでは訓練用データが分離可能である、ある高次元の特徴空間に、常に、写像されることができる。

Φ: x → φ(x)

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

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 + xiTxj)

2 とする。

K(xi,xj)= φ(xi)Tφ(xj)を証明する必要がある。

K(xi,xj)=(1 + xiTxj)

2,

= 1+ xi12xj1

2 + 2 xi1xj1 xi2xj2+ xi22xj2

2 + 2xi1xj1 + 2xi2xj2

= [1 xi12 √2 xi1xi2 xi2

2 √2xi1 √2xi2]T [1 xj1

2 √2 xj1xj2 xj22 √2xj1 √2xj2]

= φ(xi)Tφ(xj), ここで、 φ(x) = [1 x1

2 √2 x1x2 x22 √2x1 √2x2]

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

どの関数が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=

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

Kernel Functions の例

線形: K(xi,xj)= xi Txj

p乗の多項式: K(xi,xj)= (1+ xi Txj)

p

Gaussian (radial-basis function network):

Sigmoid: K(xi,xj)= tanh(β0xi Txj + β1)

)2

exp(),(2

2

ji

ji

xxxx

K

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

(x1,x2)

y = +1

y = -1

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

)2,,( 21

2

2

2

1 xxxx

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

Part III

Azure MLでの予測ソリューション開発サンプル

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

Azure MLの特徴

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

Microsoft AzureMachine Learning

強力なクラウド ベースの予測分析

新しいユーザーにも、熟練のユーザーにも適した設計

MS Research、Xbox、Bing で実証済みのアルゴリズム

オープン ソースの R 言語を高度にサポート

ビッグ データ ソリューション用の HDInsight へのシームレスな接続

モデルを運用環境にわずか数分でデプロイ

http://azure.microsoft.com/ja-jp/services/machine-learning/

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

Azure ML Studioの提供

機械学習モデルの構成

Azure ML Studio上で、モジュールをワイアリングすることで、簡単に機械学習モデルが構成できる。

機械学習モデルにとって、もっとも基本的なモジュールは、モデルのアルゴリズムを提供するモジュール(多様なアルゴリズムが用意されている)と、モデルを訓練する TrainModel モジュールと、訓練済みの完成したモデルであるScore Modelモジュールの三つである。

三つのモデルのワイアリングの様子を、次の図で、示した。

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

Azure MLの基本的な構成

Algorithm

Train Model

Score Model

①モデルのアルゴリズムを選択する

②モデルを訓練用データで訓練する

③訓練されたモデルをデータで動かす

訓練用データ

データ

学習

学習済

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

Azure ML Studioの提供

「実験」というコンセプト

Azure ML Studioは、機械学習モデルの「実験」の場という位置付けを持っている。

複数のアルゴリズムのモデルの、複数のデータセット上での振る舞いを、実験として比較することが簡単にできる。実験を繰り返して、試行錯誤で、モデルのチューンアップをはかるというアプローチは、とても強力である。

実験にもいくつかのステージがある。訓練段階の実験は、訓練終了後のScore Model中心のScore段階の実験に移行する。

Azure ML Studioは、実験の世界に閉じているわけではない。実験が終わったら、そのモデルをAzure上のWebサービスとして、すぐにデプロイできる。

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

Azure ML Studioの概要

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

Azure ML Studio

Page 166: エンタープライズと機械学習技術
Page 167: エンタープライズと機械学習技術
Page 168: エンタープライズと機械学習技術

選択可能なモデルのアルゴリズム

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

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

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

クレジットのリスク予測

このモデルは、公開されて利用可能なドイツのクレジット・データセットを訓練用に利用して、新しいクレジットの申請者のリスクの良し悪しの予測について、複数の機械学習アルゴリズムを比較する。

http://bit.ly/1uS0JEd

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

開発の目的

この実験の目的は、クレジット・アプリからのデータに基づいてクレジットのリスクの予測に利用できるモデルを開発することである。複数のモデルが試されて比較され、一つのモデルが選ばれて、リスク評価のWebサービスが、作られる。

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

開発の手順

1. ML workspaceを作成する

2. データをアップロードする

3. 新しい「実験」を作成する

4. モデルを訓練し、評価する

5. Web serviceに公開する

6. Web serviceにアクセスする

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

Step 1ML workspaceを作成する

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

Step 2データをアップロードする

データセットの特徴

データ・フォーマットの変換

ML Studioにデータをアップロードする

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

データセットの特徴

この実験ではhttp://archive.ics.uci.edu/ml/datasets/Statlog+(German+Credit+Data) のUCI Statlog (German Credit Card) データセットを利用している。このウエブサイトから、german.dataファイルを使う。

このデータセットは、一群の属性で記述された人間を、クレジット・リスクが高いか低いかに分類する。それぞれのサンプルは、人間を表しており、20の特徴がある。それらの特徴は、数値であったり、カテゴリーであったり、クレジット・リスクを表す二値ラベルだったりする。

Page 176: エンタープライズと機械学習技術
Page 177: エンタープライズと機械学習技術

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

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

German Credit UCI dataset

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

データセットの特徴

高いクレジット・リスクのエントリーは label = 2を持ち、低いクレジット・リスクのエントリーは label = 1を持つ。

低いリスクの人を高いリスクと誤って分類した場合のコストは 1 で、逆に、高いリスクの人を低いと誤って分類した場合のコストは 5 とする。

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

データ・フォーマットの変換

元のデータセットには、空白で区切られた形式が含まれている。このデータセットをCSV形式に変換して、MLStudioにアップロードする。

この変換は、Powershellを使えば、次のようにすればできる。

あるいは、Unixのsedコマンドを使う。

cat dataset.txt | %{$_ -replace " ",","} | sc german.csv

sed 's/ /,/g' german.data > german.csv

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

ML Studioにデータをアップロードする

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

Step 3新しい「実験」を作成する

データを準備する

訓練用とテスト用のデータを生成する

Page 183: エンタープライズと機械学習技術
Page 184: エンタープライズと機械学習技術
Page 185: エンタープライズと機械学習技術
Page 186: エンタープライズと機械学習技術

左パネル 右パネル

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

データを準備する

最初に、Metadata Editorを使って、元のデータセットのカラム名を、UCIサイトからとったデータの記述を利用して、意味が分かりやすい名前に置き換える。

新しいカラム名は、MetadataEditorの新しいカラム名のフィールドに、コンマ区切りで置かれる。

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

Metadata EditorNew 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

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

データを準備する

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

訓練用とテスト用のデータの生成

次に、リスク予測モデルで利用される訓練用とテスト用のデータを生成する。元のデータセットを、同じ大きさの訓練用とテスト用のデータに分割する。それには、Splitモジュールで、入力行に対する最初の出力行の割合を、0.5 に設定する。

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

訓練用とテスト用のデータの生成

高いリスクの人を低いと誤って分類した場合のコストは、低いリスクの人を高いリスクと誤って分類した場合のコストより、5倍ほど高いので、このコスト関数を反映した新しいデータセットを生成する。

新しいデータセットでは、高いリスクのサンプルは、5回複製され、一方、低いリスクのサンプルは、そのままにしておく。次のページのRスクリプトを実行すればよい。

訓練用とテスト用のデータセットの分割は、同じデータが、訓練用とテスト用の両方に含まれるのを防ぐために、この複製の前に行う。

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

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")

Page 193: エンタープライズと機械学習技術
Page 194: エンタープライズと機械学習技術

Step 4モデルを訓練し、評価する

モデルを選択し、訓練する

テストを行い、そのスコアを評価する

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

実験の目的とデータ分割

この実験では、モデルを生成する二つのアプローチ、すなわち、元のデータセットでの訓練と、複製されたデータセットでの訓練の二つを比較する。

両方のアプローチで、問題のコスト関数に揃えるために、テストは、複製されたテストデータを利用する。

データセットの分割と複製の最終的なワークフローは、次のようになる。このワークフローでは、Splitモジュールの左側の出力は訓練用データで、右側の出力は、テスト用データである。訓練用データは、Rスクリプトの実行があるのとないのがある。それは、複製のあるなしに対応していることに注意。

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

アルゴリズム

訓練用モデル

訓練用データ

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

アルゴリズム

訓練用モデル

訓練用データ

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

モデルを選択する

この実験では、訓練用データのサンプルの複製の効果のチェックと合わせて、二つのアルゴリズム: Support Vector Machine (SVM) と Boosted Decision Treeのパフォーマンスの比較を行う。

こうして、次の四つのモデルを生成する。

1. SVM, 元のままのデータで訓練

2. SVM, 複製したデータで訓練

3. Boosted Decision Tree,元のままのデータで訓練

4. Boosted Decision Tree,複製したデータで訓練

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

モデルを選択する

Boosted decision trees は、どんなタイプの特徴でも、うまく働く。

しかし、SVMモジュールは、線形のクラス分けを生み出すので、そのモデルは、すべての特徴が同じスケールを持つ時に、最良のテストエラーを返す。すべての特徴を同一のスケールに変換するために、ScalingモジュールのTransform Dataで、tanh変換を使う。この変換は、すべての数値で表される特徴を、[0, 1]の範囲に変換する。

文字列で表される特徴は、SVMモジュールによって、カテゴリー特徴に変えられ、その後で、0/1の二値の特徴に変えられる。だから、文字列で表される特徴は、わざわざ変換する必要はないことに注意。

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

選択可能なモデルのアルゴリズム

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

モデルをテストし、評価する

学習アルゴリズムを、Two-Class Support Vector Machineモジュールか、Two-Class Boosted Decision Treeモジュールで初期化する。その後、Train Model モジュールを使って、実際のモデルを生成する。

これらのモデルは、Score Model モジュールに利用されて、テスト・サンプルの成績を生み出す。

これらのモジュールを結合して、SVNと複製された訓練用データを使ったワークフローのサンプルは、次のようになる。

Train Modelは、訓練用データに結合され、Score Modelは、テスト用データと結合されることに注意。

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

訓練用モデル

スコアモデル

テスト用データ

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

訓練用モデル

スコアモデル

テスト用データ

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

実験の評価段階では、先の四つのモデルの正確性を計算する。この目的のために、Evaluate Model モジュールを利用する。

このモジュールは、すべてのサンプルが誤ったクラス分けに対して同一のコストを持つ場合のみ、正確性を計算できる。しかし、最初に、コストが高いサンプルを複製してあるので、Evaluate Model モジュールによる正確性の計算は、こうしたコストを反映した次の値になる。

n+とn-は、元のデータ中の正負のサンプルの数。e+とe-は、同じく、誤分類した正負のサンプルの数。

モデルを評価する

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

モデルを評価する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

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

スコアモデル スコアモデル

評価モデル

SVMの二つのスコアモデル Decision Treeの二つのスコアモデル

評価モデル 評価モデル

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

モデルを評価する

4つの全ての結果を見るために、これらを一つのテーブルの中に結合する。Evaluate Model は、多数の計量を含んだ単一行のテーブルを生み出す。

Add Rowモジュールを使って、全ての結果を一つのテーブルに結合する。

その後、 Execute R ScriptのRスクリプトを使って、4つのモジュールの正確さを記入する。

最終的なテーブルの行の名前は、手で入力される。最後に、Project Columns モジュールを使って関係のない数字を削除する。

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

二つの評価モデルの出力を一つのテーブルにまとめる

# Map 1-based optional input ports to variablesdataset <- 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

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

Project Column

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

この実験の結果

最初のカラムは、モデルを生成するのに利用された機械学習アルゴリズムの名前。二つ目のコラムは、訓練用データのタイプを示す。三つ目のカラムは、コストを反映した正確さである。

この実験では、複製された訓練用データを用いた、SVMモデルが、最も正確だった。

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

実験のパラメーターを変える

SVMで、正規化を間違えた

これは、先のSVMより成績がいい。重み付けないデータで訓練したモデルに、重み付けないデータでテストした場合。

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

実験のパラメーターを変える

これは、重み付けを x5ではなく、x10 にした場合のスコア。最高得点。

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

ここまでのフローの全体を振り返る

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

全体の流れ(整理前)

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

Azure MLの基本的な構成

Algorithm

Train Model

Score Model

①モデルのアルゴリズムを選択する

②モデルを訓練用データで訓練する

③訓練されたモデルをデータで動かす

訓練用データ

データ

学習

学習済

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

全体の流れ(整理後)

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

二つのアルゴリズム

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

4つの訓練用モデル

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

訓練用データの流れ

複製

正規化

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

4つのスコアモデル

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

テストデータの流れ

複製

正規化

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

2つの評価モデル

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

Step 5Webサービスに公開する

スコア用の実験を準備する

訓練用実験からスコア用実験に変換する

サービスの入力と出力を選択する

Webサービスに公開する

Webサービスをテストする

Webサービスを実際のサーバーに移す

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

スコア用の実験を準備する

我々のモデルをWebサービスとして公開するための準備として、二つのことをする必要がある。

第一に、実験のフェーズを、訓練用の実験からスコア用の実験に変更する必要がある。公開用のサービスには、もはや訓練は必要ない。それは、ユーザーの入力をスコアする。訓練したモデルを保存して、訓練用の実験に使ったコンポーネントを全て消去する必要がある。

第二に、Azure MLのWebサービスは、ユーザーから入力を受け取り、結果を返すので、実験の中でこの入力と出力を指定しなければならない。

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

訓練用の実験からスコア用の実験に変更する

boosted tree modelが、良い成績を収めたので、それを利用することを決めたので、最初に行うことは、SVCの訓練用モデルを削除することである。

Two-Class Support Vector Machineを削除

それに接続していた、Train Model と Score Modelを削除

Transform Data By Scalingモジュールを削除

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

訓練用の実験からスコア用の実験に変更する

訓練した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モジュールの左側の入力に接続する。

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

訓練用の実験からスコア用の実験に変更する

訓練と評価のために追加したモジュールがまだ残っている。次のものも削除する。

Split

二つのExecute R Script モジュール

Evaluate Model

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

Credit riskカラムの削除

もうひとつ。もとのクレジット・カード・データは、CreditRiskカラムを含んでいた。このカラムは、モデルがこのカラムの値を予測できるように訓練するために、Train Modelに渡されていた。しかし、モデルは今や訓練されているので、このカラムをTrained モデルに渡す必要はない。このカラムをデータの流れから取り除くには、Project Columnモジュールを使えばいい。

Project Column モジュールを見つけて、キャンバスにドラッグする。

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

Project Columnモジュールでの作業

このモジュールを、Metadata Editor モジュールの出力につなげる。

Project Columns モジュールを選んで、Launch column selectorをクリックする。

新しいドロップメニューから“Exclude column names” を選び、テキスト・フィールドに、“Credit risk” と入れ、OKをクリックする。

Connect the output of the Project Columns モジュールの出力を Score Model モジュールの右側の入力に接続する。

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

訓練用モデルが、Save as Trained Modelで保存されたもの。

カラム名をつける

Credit risk カラムを削除する

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

サービスの入力と出力を選択する

もとのモデルでは、スコアされるべきデータは、Score Model モジュールの右の入力ポート(“Dataset”) に渡され、スコアされた結果は、出力ポート(“Scored Dataset”)に現れていた。サービスが走っている時も、ユーザーのデータと結果は、同じポートでいい。

Score Model モジュールの右の入力ポートを右クリックして、Set as Publish Inputを選ぶ。ユーザー・データは、特徴ベクターのすべてのデータを含んでいる必要がある。

出力ポートを右クリックして、Set as Publish Output

を選ぶ。この出力は、サービスによって返されることになる。この出力は、特徴ベクターと予測されたクレジット・リスクの予測とスコアリングの確率値を含んでいる。

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

サービスの入力と出力を選択する

もしも、Webサービスがこのデータの一部だけを返すようにしたいなら、Score Model モジュールの後ろに、望まないカラムを除外するように設定して、Project Columns モジュールをつなげばいい。この時、Project Columns の出力が、Webサービスの出力になる。

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

なぜ、 UCI German Credit Card Data データセットが残されているのか、疑問を持つかもしれない。サービスは、ユーザーデータを使うので、もとのデータセットは必要ないはずだから。確かに、サービスは元のデータを使ってはいない。

ただ、これらのデータのスキーマが必要なのだ。このスキーマは、カラムがいくつあって、どのカラムが数値をとるのかといった情報を含んでいる。このデータは、ユーザーのデータを解釈するのに必要なのだ。このコンポーネントは残しておく。

最後に、実験を走らせる。(Runをクリック)このモデルがちゃんと動いていることをチェックするには、Score Model モジュールの出力を右クリックして、Visualizeを選ぶ。元のデータが見えるはず。

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

Webサービスを公開する

我々の実験から導かれたWebサービスを公開するには、キャンバスの下のPUBLISH WEB SERVICE をクリックしてOKを押す。ML Studioは、この実験をML staging サーバー上で、Webサービスとして公開する。サービスのダッシュボードが現れるはずだ。

いったん公開した後で、例えば、モデルを変えたいということで、このWebサービスを更新するには、以前に保存した訓練用の実験を編集して、パラメーターをいじって、trained modelとして保存すればいい。スコア用の実験を再度開けば、何かが変わっているという通知が現れるだろう。こうして実験を更新できる。

実験を公開すれば、Webサービスは、更新されたモデルに置き換わる。

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

PUBLISH WEB SERVICE

Page 236: エンタープライズと機械学習技術
Page 237: エンタープライズと機械学習技術

Webサービスを公開する

サービスをCONFIGURATION タブをクリックすることコンフィグできる。ここでは、サービス名(でフォールトでは、実験名)を変更でき、説明を加えることができる。また、入出力のカラムに、もっと分かりやすい名前をつけることができる。

Page 238: エンタープライズと機械学習技術
Page 239: エンタープライズと機械学習技術
Page 240: エンタープライズと機械学習技術

Webサービスをテストする

DASHBOARD ページで、Staging Servicesの下のTestリンクをクリックする。ダイアログがポップアップして、サービスへの入力データを聞いてくる。元の German credit risk データセットと同じカラムが出ているはず。

データセットをいれて、OKを押す。

このWebサービスで生成された結果がダッシュボードの下に表示される。

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

Webサービスを、実際のサーバーに昇格する

これまで、サービスをML stagingサーバー上で走らせてきた。実際のサーバーに移行する準備ができたら、実際のサーバーへの昇格をリクエストできる。

CONFIGURATION タブで、 READY FOR PRODUCTION? の次のYESを押す。IT管理者に通知が飛んで、管理者が、それを実際のサーバーに昇格させる。

Page 242: エンタープライズと機械学習技術
Page 243: エンタープライズと機械学習技術

Step 6Webサービスにアクセスする

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

Webサービスにアクセスする

Webサービスとして利用できるためには、ユーザーは、サービスにデータを送り、結果を受け取ることができなければならない。このWebサービスは、Azure Webサービスで、次の二つの方法でデータのやり取りができる。

Request/Response – ユーザーはクレジット・データの一組のデータをHTTPプロトコルで送り、サービスは一組の結果で応える。

Batch Execution – ユーザーは、サービスに、一つ以上のクレジット・データを含んでいるAzure BLOBのURLを送り、サービスは、結果を別のBLOBにいれ、そのURLを返す。

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

Webサービスにアクセスする

WebサービスのDASHBOARD上に、開発者がこのサービスにアクセスするコードを書くのを支援する、二つの情報リンクがある。API help pageのREQUEST/RESPONSE あるいは、BATCH EXECUTION のリンクを開けば、サンプルコードが見られる。

このページには、R, C#, Pythonのサンプルが含まれている。以下に、このWebサービスにアクセスするRコードの例を示す。

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

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",

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

"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()

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

自転車の時間貸し

この回帰モデルは、以前の貸し出しの履歴、天候、曜日等々といった与えられた特徴から、今日一日の毎時間ごとに貸し出されるであろう自転車の数を予想するのに、最適な特徴のセットを決定する。

http://bit.ly/1tErqdh

Page 249: エンタープライズと機械学習技術
Page 250: エンタープライズと機械学習技術

問題の記述

以前の貸し出しの履歴、一時間ごとの天候、今日が休日・平日・週末であるかの情報が与えられた時、今日のそれぞれの時間帯での自転車の貸し出し数を予想する。この予想は、時間ごとに異なる(例えば、朝は、貸し出しが多く、夜には、ほとんど貸し出しがないといったように)

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

データ

このUCI Bike Rentalデータセットは、ワシントンDCで、自転車レンタルのネットワークを展開しているCapitalBikeshare会社の実データに基ずいている。データセットは、2011年から2012年の、毎日の一時間毎に一つの行を持ち、総計で17379行ある。一時間に貸し出される自転車の範囲は、1台から977台までである。

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

モデル

2011年のデータを訓練用データとして使い、2012年のデータをテスト用データとして使用する。

次の四つの特徴のセットを比較する。

A. 予想される日の、天候 + 休日・平日・週末という特徴

B. 直前の12時間に貸し出された自転車の数

C. 同じ時間帯で、直前の12日間で貸し出された自転車の数

D. 同じ時間帯・同じ日の条件で、以前の12週間で貸し出された自転車の数

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

モデルの選択

特徴Bは、自転車に対する直近の要求を反映し、特徴C

は、特定の時間帯での自転車に対する要求を反映する。特徴Dは、特定の時間、週の特定の日の自転車に対する要求を反映する。

ラベル(貸し出し数)は、実数値をとるので、回帰モデルを使うことができる。同時に、特徴の数が(100以下で)比較的少なく、疎ではないので、決定境界は、おそらく非線形になる。これらに基づいて、boosted decision tree regressionアルゴリズムを利用すると決める。

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

結果

FEATURESMEAN 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に対して、ほとんど重要な改善をもたらさない。

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

CRMタスク

このモデルは、フレンチ・テレコムの無名化された5万人の顧客データから、新しい製品を買う場合の、顧客の変動性・アップセル・志向を決定する。

http://bit.ly/1u3Hbfl

Page 256: エンタープライズと機械学習技術
Page 257: エンタープライズと機械学習技術

モデル概要

この実験の目的は、顧客の変動性(プロバイダーを変更する)・アップセル(アップグレードやアドオンを購入する)・新しい製品を購入する志向(購買意欲)を予測できるモデルを開発することである。三つのboosted decision tree classifiers が、それぞれのモデルごとに使われる。

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

データ

データは、フランスの電話会社オレンジの5万人の顧客データ。それぞれの顧客は匿名化され、230の特徴を持つ。このデータは、KDD Cup 2009からのもの。

数値の特徴も、文字列の特徴も、両方ある。これらの諸特徴は、極めて疎である。

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

モデル

唯一のデータの事前処理は、欠けている値を処理することだけである。文字列型の特徴の欠損値は ”0”で置き換える。ほとんどすべての数値型の特徴は、非負の値を持つ。数値型の特徴の値には1を加え、欠損値は0で置き換える。こうして、元の実際の値0と、欠損値を意味する0とを区別することができる。最初に、数値型の特徴についてのみ、数学的操作の(+1)を適用する。その後で、すべての欠損値を0(文字型の場合には “0”)で置き換える。

数値型と文字列型の両方の特徴があるので、boosted decision tree classifierを使う。

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

アンバランスをテストする

3つの問題すべて、ポジティブなサンプルが少数で、アンバランスである。ある場合には、このことは、classifierが、ポジティブなサンプルが少ない特徴空間の領域の無視を、引き起こす可能性がある。

これをテストするために、それぞれの問題について、二つのモデルを訓練する。一つは、元のデータをそのまま使い、もう一つは、ポジティブなサンプルとネガティブなサンプルの数が、大雑把に等しくなるように、ポジティブなサンプルの複製を追加したデータを使うようにする。

これは、ポジティブとネガティブに分割して、ネガティブなデータにポジティブなデータのコピーを13個作って追加する、Rスクリプトで行うことができる。

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

結果

このモデルは、それぞれのタスクに対してポジティブな結果の確率を出力する。観測結果をポジティブとする、任意の閾値を選択できるので、receiver operating characteristic (ROC) 曲線 (AUC)以下の領域のパフォーマンスを測定する。ChurnとUp-sellの場合は、もっとバランスのとれたデータを作り出すために複製されたサンプルは、モデルのパフォーマンスを、僅かだが改善する。

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

Upsell AUC

no replication 0.853

replicated positives 0.865

Appetency AUC

no replication 0.805

replicated positives 0.8

Churn AUC

no replication 0.711

replicated positives 0.728

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

飛行機の遅れの予測

これは、飛行機の遅れの予測の二項分類モデルである。USの運輸省の定時運行記録とNOAAの天候データを利用し、二つのデータを整理・結合して、モデルを構築している。

http://bit.ly/1sa5HpC

Page 264: エンタープライズと機械学習技術
Page 265: エンタープライズと機械学習技術

モデルの概要

この実験の目的は、定期旅客飛行に15分以上の遅れがないかどうかを予測するモデルを構築することである。モデルは、US運輸省の定時運行記録とNOAAの天候データを利用している。

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

問題

定時運行の記録と天候データから、定期旅客飛行の到着時間に、15分以上の遅れがないかどうかを予測する。

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

飛行機発着データ

US運輸省のTranStatsデータ集http://www.transtats.bts.gov/DL_SelectFields.asp?Table

_ID=236&DB_Short_Name=On-Time から、定時旅客飛行のデータ。このデータは、2013年の4月から10月までをサポートしている。

AzureML Studioにアップロードする前に、データはアメリカ大陸のもっとも発着の多い70の空港をカバーするようにフィルターをかける。

次のカラムを選ぶ。 'Year', 'Month', 'DayofMonth',

'DayOfWeek','Carrier’,'OriginAirportID','DestAirportID','CRSDepTime','DepDelay','DepDel15', 'CRSArrTime','ArrDelay','ArrDel15','Cancelled'

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

気象データ

飛行中止は、15分以上の遅れとしてカウントする。

路線変更は、カウントしない。

一時間ごとの地上の天候観測データは、NOAAの、http://cdo.ncdc.noaa.gov/qclcd_ascii/ から。

2013年の4月から10月までの天候データは、それぞれの空港に隣接した気象観測所をカバーしている。

AzureML Studioにアップロードする前に、気象観測所のIDは、対応する空港のIDにマップし、70の発着数の多い空港の近隣ではない気象観測所は、除外しておく。データのカラムは、年・月・日ごとに分割する。

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

カラムの選択

次のカラムを選ぶ。

'AirportID', 'Year','Month','Day', 'Time', 'TimeZone', 'SkyCondition', 'Visibility','WeatherType','DryBulbFarenheit', 'DryBulbCelsius', 'WetBulbFarenheit', 'WetBulbCelsius', 'DewPointFarenheit','DewPointCelsius', 'RelativeHumidity', 'WindSpeed', 'WindDirection', 'ValueForWindCharacter','StationPressure', 'PressureTendency', 'PressureChange', 'SeaLevelPressure', 'RecordType', 'HourlyPrecip', 'Altimeter'

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

飛行データの前処理

最初に、対象から外して構わないカラム、DepDelay, DepDel15, ArrDelay, Cancelled をデータから除外する。

カラム ‘DayOfWeek’,‘OriginAirportID’, ‘DestAirportID’ は、カテゴリーの属性を表しているが、整数値を取るので、はじめは連続した数値として読み込み、その後で、Metadata Editorを使ってカテゴリー型に変換しなければならない。

飛行記録を一時間ごとの気象記録と、定時出発時刻を、ジョイン・キーの一つとして結合しようと思う。そのためには、CSRDepTimeカラムは、直前の一番近い時間に、丸められる。

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

気象データの前処理

最初に、大部分が欠損値であるカラムは除外される。これらには、次のものが含まれる。すべての文字列型のカラム、ValueForWindCharacter,WetBulbFarenheit,WetBulbCelsius,PressureTendency,PressureChange,SeaLevelPressure,StationPressure

その後、 Missing Value Scrubberが、残りのカラムに適用される。

気象観測の時間は、直後の最も近い時間に丸められる。そうすることで、飛行機の定時出発時間とジョインすることが出来るようになる。飛行機の定時出発時間と気象データは、反対方向に丸められることに注意。こうすることで、モデルに、飛行機の時間について過去に行われた気象観測だけを利用することを保証する。

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

データの結合

飛行記録は、気象データと、飛行の出発地と目的地でジョインされる。

気象データは、ローカルな時間で記録されている。ただ、飛行の出発地・目的地は、別のタイムゾーンになっている可能性があることに注意。それで、タイムゾーンの違いの調整は、定時出発時間と気象観測時間から、タイムゾーン・カラムを引くことで行われる。

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

訓練用と検証用のサンプルの準備

訓練用と検証用のサンプルは、データを4月−9月の記録を訓練用に、10月の記録を検証用に分割することで行われる。年と月のカラムは、データから削除する。

さらに、訓練用のデータは、同じ高さの入れ物に収まるように数値化される。同じ操作を、検証用データに対しても適用する。

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

モデルの訓練と検証

Two-class boosted decision tree モデルを訓練用データで訓練する。 このモデルは、10個のランダムなパラメータの範囲で、最良のAUC(Area Under the Curve)を与えるように最適化されている。

比較のために、同様に最適化されたtwo-class logistic regression モデルを用いる。

訓練されたモデルは、検証用のデータで評価される。Evaluate Model モジュールが、両者の品質を分析するために使われる。

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

事後処理

空港のIDは、人間が読むことのできる空港名と地名にジョインされ、結果を解析しやすくする。

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

結果

boosted decision tree モデルの AUC は、検証用データに対して0.697で、logistic regreesion モデルのAUC 0.675より、ほんの少しだが、いい。

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

ネットワーク侵入検出

この実験例は、Knowledge Discovery and Data Mining (KDD) Cup 1999 からのデータを利用している。どのネットワーク上の活動が、侵入・攻撃の一部かを検出するために、様々のネットワークの特徴を利用している。

http://bit.ly/1tEq2au

Page 278: エンタープライズと機械学習技術
Page 279: エンタープライズと機械学習技術

モデル概要

この実験の目的は、どのネットワーク上の活動が、侵入・攻撃の一部かを検出するモデルを開発することである。こうした二項分類問題のためには、特徴はクラスについて極めて予想的で、クラスはバランスが取れている必要がある。訓練用データは、KDD Cup 1999から。

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

データ

KDD Cup 1999からのこのデータは、訓練用とテスト用の両方のデータを含んでいる。訓練用のデータの分類の正確さは、歴史的には、テスト用のデータよりも高い。というのも、テスト用のデータには、新しいネットワークへ侵入の例が含まれているから。訓練用のデータは、約126Kの大きさで、ラベルを含めて43カラムである。三つのカラムがラベルの情報で、モデルを訓練するのに利用できるるのは、40カラムである。これらの40カラムは、ほとんどが数値型で、幾つかが文字列/カテゴリー型である。テスト用データは、約22.5Kのテスト・サンプル(訓練用データと同じ43カラム)からなる。

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

Readerモジュール

このデータは、アクセスを容易にするために、パブリックなblobにアップロードされている。AzureMLは、blobのような別のストレージから、コードを書くことなしに、数クリックでデータを読み込むことができる reader モジュールを提供している。

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

モデル

モデルの最初のステップは、後の分類のためにデータを調整することである。 “Class” カラムが予測すべきラベルを含んでいる。これらのラベルは、“normal” (侵入なし) か、攻撃の名前である。ある攻撃は、訓練用データには、多くのサンプルを持たず、テスト用データには、新しい攻撃が含まれている。

これらの複数クラスのラベルを、問題をわかりやすくするために、二値のクラスラベルに変換する。AzureMLstudioは、こうした前処理を簡単にするモジュールが組み込まれている。 indicator value モジュールがクラスラベルを二値化し、project column モジュールが、この二値化されたカラムのクラスラベルを選択するのに利用される。(元のクラスラベルは排除される)

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

Projectモジュールと可視化

この実験開発の一部として、特徴の選択/相関を通じて、多くの特徴がこのラベルと非常に高く相関していることを見出す。これは、統合的なデータでは、共通に見られることである。

Azure MLは、この可視化を、ほんの数クリックで提供する。そのためには、project モジュールの出力上で可視化のオプションを選択し、可視化を始めるには、任意の特徴のヘッダーをクリックして、ドロップダウンの比較のクラスラベル選べばいい。

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

Evaluateモジュールとモデルの比較

少数の特徴がラベルと強く相関しているので、最良のモデルを決定するために、線形と非線形の分類モデルと、特徴の選択をしたデータとそうでないデータの組み合わせをテストする。この比較は、evaluate model モジュールを通じて行われる。

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

Results

The nonlinear classifier (boosted decision tree) performs slightly better than the linear classifier (logistic regression):

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

モデルの比較

今度は、特徴を選択したデータで、boosted decision tree モデルで訓練した結果と比較してみよう。分類のパフォーマンスは、ほとんど同じであるが、boosted decision treeでは、すべての特徴を使った方は、少しいい。評価ワークフローでは、これを使う。こうした、高い分類AUCは、このデータセットに、典型的なものであることに注意。

Page 287: エンタープライズと機械学習技術
Page 288: エンタープライズと機械学習技術

感情分析

このモデルは、Amazonの製品レビューと本のレーティングを使って、普通のテキストでのレビューのレーティングを予測する。

http://bit.ly/1sa4kY5

Page 289: エンタープライズと機械学習技術
Page 290: エンタープライズと機械学習技術

モデル概要

この実験の目的は、Amazon.comのデータに基づいて、製品のレビューを予測するために、感情の分類モデルを開発することである。これは、通常の回帰問題で、回帰問題と複数クラス分類問題として解くことができる。

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

問題

製品レビューのレーティングを予想する。レーティングは、1,2,3,4,5である。これは、通常の回帰問題で、回帰問題と複数クラス分類問題として解くことができる。

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

データ

UPennの研究者によって集められた(http://www.cs.jhu.edu/~mdredze/datasets/sentiment/ )、Amazonの本のレビュー。

元のデータセットは、ランキング 1,2,3,4,5 を付けた975K個のレビューからなる。実験を高速に行うために、このデータセットを 10K のレビューに縮小した。レビューは、すべて英語で、1997-2007の間に書かれたもの。

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

モデル

feature hashingモジュールを使って、英語のテキストを、整数値を取る特徴に変換する。

次の三つのモデルを比較する。

1. Linear regression モデル(線形回帰)

2. 基本の分類子として、two-class logistic regression を使った、通常の回帰モデル

3. multiclass logistic regression classifierを使った、複数クラス分類モデル

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

結果

ALGORITHMMEAN ABSOLUTE

ERRORROOT MEAN

SQUARE ERROR

Ordinal Regression 0.82 1.41

Linear Regression 1.04 1.36

Multiclass Classification

0.85 1.57

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

類似した会社を見つける

このクラスタリング・モデルは、公開されているWikipediaの会社についての論文のテキストを用いて、S&P 500の会社を、類似した会社を同定する。

http://bit.ly/1zymHPc

Page 296: エンタープライズと機械学習技術
Page 297: エンタープライズと機械学習技術

モデル概要

この実験は、類似した会社をクラスター化するモデルを開発する。訓練用のデータは、S&P 500 指標の会社のWikipediaの論文から取られている。このモデルは、既存の S&P 500社との類似をベースにして、新しい会社のラベル付けに利用できる。

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

問題

S&P 500社のWikipediaの論文をベースに、会社をクラスター化する。このモデルは、例えば、既存のS&P 500

社とどのように似ているかに基づいて、新しい会社をラベル付けするのに利用できる。

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

データ

データは、Wikipedia XMLのダンプから取られている。それぞれの特定の会社のテキスト・コンテンツの抽出、wikiフォーマットの除去、非英数字の除去、すべてのテキストの小文字への変換は、ML studioの外で、前処理される。会社の既存のカテゴリーも追加される。いくつかの会社については、Wikiの論文が存在しない。それで、レコードの数は 500より少ないことに注意。

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

モデル

最初に、論文の内容は、Feature Hashing モジュールに渡され、テキストデータは、それぞれのトークンのハッシュ値に基づいて、数値型に変換される。このデータは、K-meanクラスタリングを直接利用するには、あまりに高次元で、かつ、疎である。それゆえ、Execute R Script モジュール内で、次元を10変数に下げるPCAが用いられる。PCAの結果は、Rモジュールの右側の出力を開くことで、ビジュアライズ化されることに注意。

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

試行錯誤から、PCA変換されたデータの、もっとも高い偏差を持つ第一変数が、クラスタリングに悪影響を与えているように見えることに気づく。それで、Project Columns モジュールを使って、この変数は除去される。

そうすると、このデータは、K-Means アルゴリズムを用いて、3つのクラスターに分割される。試行錯誤で、合理的な結果を生み出すこの数字は発見された。4ないしは5個へのクラスター分割も試された。

最後に、Metadata Editorを使って、クラスターのラベル変数が、カテゴリー名に変換される。また、これらの結果は、ダウンロードのために、CSVファイルに変換される。

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

結果

結果は、Metadata Editorからの出力をビジュアライズすることで見ることができる。 カテゴリー・カラム(Wikipediaからのデータでわかる)を、割り当てられたカラムに対してプロットする。

3つのクラスターは、ほぼ、次のようなカテゴリーに対応している。 Cluster 0: 自由消費財、基本消費財、金融、ヘルスケア

Cluster 1: 情報技術

Cluster 2: エネルギー、機械、通信

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

評価

このクラスタリングは、はっきりとしたものではない。Cluster 0には、いくつかの情報産業とエネルギー会社が含まれているし、産業とマテリアルがCluster 0とCluster 1に分割されている。

クラスタリングは、実行ごとに、変わることに注意。

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

学生の成績

このモデルは、KDD Cup 2010 のデータを使って、インテリジェントなチューターシステムと学生とのやり取りのログに基づいて、数学の問題での学生の成績を予測するものである。

http://bit.ly/1thdQJf

Page 305: エンタープライズと機械学習技術
Page 306: エンタープライズと機械学習技術

モデル概要

この実験の目的は、学生のテストの成績を予測するモデルを開発することである。訓練用データは、KDD Cup 2010のAlgebra20082009である。学習の問題は、学生が、与えられた問題を最初の試行で解けるかどうかを予測することである。

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

データと問題の記述

この実験では、データは、KDD Cup 2010からのAlgebra_2008_2009訓練用データである。このデータは、次のサイトからダウンロードできる。https://pslcdatashop.web.cmu.edu/KDDCup/downloads.jsp

このデータは、学生のチューターシステムのログを含んでいる。与えられている特徴は、問題のid、その簡単な説明、学生のid、タイムスタンプ、問題を正しく解くまでに何回試行したかの回数が含まれている。

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

学習問題は、学生が最初の試行で与えられた問題を解くことができるかを予測すること。KDD Cupのルールに従えば、学習アルゴリズムの正確さは、Root Mean Square Error (RMSE)で測定される。元々のデータは、8.9Mのレコードを持っている。実験を高速化するために、データのサンプルを100K行のものにダウンサイズする。データは、異なった型(数値型・カテゴリー型・タイムスタンプ型)を持つ23のカラムを持つ。カラムは、タブで区切られている。

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

ワークフローの開発

データセットは、Apply R Operationモジュールでは扱えない、非ASCII文字を含んでいる。パッサウにあるデータセットを使う前に、次のPowershellコマンドで、非ASCII文字を削除する。

gc algebra_2008_2009_train.txt –head 100000 |

sc algebra_train_small.txt

sc tmp.txt -Encoding ASCII -Value (gc

algebra_train_small.txt)

cat tmp.txt | %{$_ -replace "\?\?sqrt","+sqrt"} |

sc algebra_train_small.txt_ascii

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

その結果のファイル、algebra_train_small.txt_asciiは、まだ、かなり大きい。36Mある。このファイルを、Azureのblobストレージに格納し、それから、Readerモジュールを使って、実験にアップロードする。blobストレージにファイルを格納するPowershallコマンドは、次の通り。

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

Add-AzureAccount

$key = Get-AzureStorageKey

-StorageAccountName <your storage account name>

$ctxt = New-AzureStorageContext

–StorageAccountName $key.StorageAccountName

-StorageAccountKey $key.Primary

Set-AzureStorageBlobContent

–Container <container name in your storage account>

-File "algebra_train_small.txt_ascii"

–Context $ctxt

Page 312: エンタープライズと機械学習技術
Page 313: エンタープライズと機械学習技術

Readerモジュールのパラメーター

Readerモジュールのパラメーターは、先に示した通りである。この例では、ストレージのアカウント名は、“datascience”で、データセットファイルalgebra_train_small.txt_ascii は、“sampleexperiments”コンテナーに置かれている。アカウント・キーは、Azureのストレージ・アカウントのアクセス・キーである。このキーは、アカウントのAzure管理ポータルから取得できる。

( https://manage.windowsazure.com ).

Page 314: エンタープライズと機械学習技術
Page 315: エンタープライズと機械学習技術

データ変換

次のステップでは、先に示したように、我々の学習アルゴリズムに適合するフォーマットにするために、一連の変換を行う。Metadata Editor を使って、タイムスタンプ・カラム “First Transaction Time” を、文字列フォーマットに変換する。これは、訓練用/テスト用のデータの分割に必要である。その後、Project Columnsを使って、実験では使わない一連のカラムを削除する。Missing Value Scrubber を使って、すべての欠損値を0で置き換える。

次のステップで、“Unit Name, Section Name”カラムを、“Unit Name” と “Section Name”の二つのカラムに分割する。これらは、Execute Rモジュールの次のRコードを使って行われる。

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

データ変換のRコードdataset <- maml.mapInputPort(1)

b <-data.frame(do.call(rbind,strsplit(as.vector(dataset[,3]),",")))

names(b) <- c("Unit Name","Section Name")

data.set <- cbind(dataset[,1:2],b,dataset[,4:15])

maml.mapOutputPort("data.set")

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

実験の四分割

実験の最初のステップは、データのロードと先に示した、最初のデータの変形である。

データの調整がすんだら、実験を4つのブランチに分割する。それぞれのブランチで、異なった特徴のデータでテストする。いくつかの特徴のセットは、以前に、1で使われたものである。最初のブランチの特徴セットは、次に示すように、 StudentID, Unit, Name, Section Name, Problem Name, Problem View, Opportunity features, それと問題の文字列での記述である。

Page 318: エンタープライズと機械学習技術
Page 319: エンタープライズと機械学習技術

カラムの削除

非整数値をとる特徴は、カテゴリー型の特徴として扱われる。このブランチでは、Project Columnを用いて、Hintカラムを削除することから始める。というのも、Hintカラムは、新しい学生の成功を予測するには利用できないからである。その後、Splitモジュールを用いて、データセットを訓練用とテストように分割する。

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

テストの実行

すべてのサンプルは、タイムスタンプを持つので、分割は、時間ベースで行われる。2008年からのFirst Transaction Timeを持つすべての行は、訓練用セットに、2009年のものはテスト用セットとする。Splitモジュールのパラメーターは、右側に示されている。分割が終わったら、Boosted Decision Tree を使って二項分類モデルを生成して、テスト用データでの成績を記録する。Train Model モジュールのカラムのラベルは、Correct First Attempt である。

Page 321: エンタープライズと機械学習技術
Page 322: エンタープライズと機械学習技術

RMSEの計算

次のApply Math OperationとElementary Statistics モジュルのシーケンスでは、先に示したようにモデルのRMSEを、生の成績と真のラベルで計算する。

回帰モデルでは、この計量はEvaluator モジュールで計算されることに注意。ただし、他のモデルでは、この計量を手動で計算する必要がある。最初のApply Math Operation モジュールでは、ラベルカラムとScore Modelモジュールで生成された成績カラムとの差を計算する。

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

RMSEの計算

二つ目のApply Math Operationモジュールでは、この差の2乗を計算する。Elementary Statistics モジュールは、差の2乗の平均を計算する。最後に、 最後のApply Math Operation モジュールが、平方根を計算するのに用いられる。これら四つのモジュールのパラメーターは、次の通り。

Page 324: エンタープライズと機械学習技術
Page 325: エンタープライズと機械学習技術
Page 326: エンタープライズと機械学習技術

時間の変更

第二のブランチでは、先に示したように、時間の次元を変更する。さらに、第一のブランチの特徴に加えて、問題の記述に従って、ユーザーによって現在解かれている最後の二つの問題の名前を利用する。

与えられたデータセットでは、ユーザーの活動は、タイムスタンプの昇順に格納されている。また、このデータセットでは、ユーザーの活動は、インターリーブされていない。すなわち、最初から、第一のユーザーのすべての行があり、それに第二のユーザーのすべての行が続く。以下同様である。こうして、ユーザーの最後のステップを見つけるためには、RowIDカラムを利用する。

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

時間の変更

ユーザーを固定するために、このカラムは時間軸として働く。Apply Math Operationを使って、このカラムに1

を加えることで、すべての行を、時間単位で一つ前に進める。こうして、Joinモジュールを使って、元のデータセットを、RowID, StudentID, ProblemNameApplyをキーとして、シフトされたデータセットとジョインする。 結果として、それぞれの行が、同じDtudenyIDとProblemIDについて、時間 t と t-1のレコードを持つように、データセットを拡張する。Left Outer Joinを使って、以前のステップを持たない行は、同じDtudenyIDとProblemIDを持つようにする。Apply Math Operation とJoin の組み合わせを適用して、2ステップ前の特徴を得ることができるようにする。

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

Apply Math Operation とJoin のパラメータ

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

余分なカラムの除去

二つを実行してみると、いくつか同じカラムがある。例えば、Joinモジュールの使い方で、ProblemName カラムは、ステップ t, t-1, t-2について、3回複製されている。

Project Columnsモジュールを使って、余分なカラムを除去する。最終的に、Left Outer Joinを使ったので、Join操作で生み出されたいくつかの行は、欠損値を持ちうる。Missing Values Scrubber を使って、すべての欠損値を、文字列”0”で置き換える。Missing Values Scrubber のパラメータは、先の図で示した。

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

After computing the new set of features the workflow of the second branch is identical to the one of the first branch.

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

第三のブランチ

第三のブランチでは、第二のブランチで使われた特徴に加えて、第一のブランチの元の特徴に連結して、特徴の平方と立方を使う。特徴の平方と立方は、Execute R Operationモジュールを使って、先に示したRコードで計算される。

新しい特徴の計算が終わると、訓練・成績付け・評価を、最初の二つのブランチと同じように行う。

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

第四のブランチ

第四のブランチでは、最初の三つのブランチとは、全く異なる特徴を使用する。

それぞれのStudentIDについて、時間 t までの(ただし、t を含まず)のCorrect First Attempt の平均値を計算する。この値を、CFA(StudentID,t)で表す。同様に、Hints(StudentID,t) で、特定のStudentIDの時間 t までの(ただし、t を含まず)のHintの平均値を表す。

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

CFAとHintsの生成

これらの平均の計算をスピードアップするために、データセット全体を考えるのではなく、時間 t 以前の、最も最近の10個のレコードを見る。

CFA(Problem Name,t), CFA(Step Name,t), CFA(Description,t), Hints(Problem Name,t), Hints(Step Name,t), Hints(Description,t)の定義も同じように与えられる。

First Transaction Time=t(x)とカラム名のStudentID(x), Problem Name(x), Step Name(x), Description(x)が与えられたサンプル x に対して、先の8つのCFAとHintsが生成される。

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

CFAとHints

CFA(StudentID(x),t(x)), CFA(Problem Name(x),t(x)), CFA(Step Name(x),t(x)), CFA(Description(x),t(x)),

Hints(StudentID(x),t(x)), Hints(Problem Name(x),t(x)), Hints(Step Name(x),t(x)), Hints(Description(x),t(x))

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

Rコードの実行

同様に、8つの追加のCFAとHintsの特徴が、StudentIDとProblem Name, Problem NameとStep Name, StudentId とUnitName, StudentIDとProblem Descriptionの連結を用いて計算する。 結局、Correct First Attempt の値を予測する16の特徴を得る。これらの16の特徴の計算は、Execute R Operationモジュールで、Rコードでなされる。このコードは、長く退屈であるが、高度に最適化されている。

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

カラムの除去

これらの特徴を計算した後で、Rコードで追加されたいくつかの余分なカラムを除去する。このために、Project Columns モジュールを使う。第四のブランチで、特徴を計算するワークフローは、次のようになる。

新しい特徴のセットの計算が終わると、最初の三つのブランチと同じように、訓練・成績付け・評価に進む。

Page 337: エンタープライズと機械学習技術
Page 338: エンタープライズと機械学習技術

RMSEの計算と集計

4つのブランチ全てで、RMSEの計算が終わると、Add Row モジュールを使って、結果を集める。さらに、Execute Rモジュールを使って、注釈を作る。

実験のこの最後の部分のワークフローは、次のようになる。

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

最終結果

We conclude the fourth set of features gives the lowest RMSE.