azure mlやってみよう

24
[LT]Azure MLやってみよう ~そうだ! 機械学習やってみよう~ 「ネクストスケープ×Sansan 」 .NET勉強会 青木淳夫

Upload: atsuo-aoki

Post on 17-Jul-2015

370 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Azure MLやってみよう

[LT]Azure MLやってみよう~そうだ! 機械学習やってみよう~

「ネクストスケープ×Sansan 」 .NET勉強会

青木淳夫

Page 2: Azure MLやってみよう

このLTでは・・

▪ Azure MLについて紹介します。

▪ LTですが淡々としたスライドです。

Page 3: Azure MLやってみよう

自己紹介

▪ 青木 淳夫です。

▪ @aoki1210

▪ http://d.hatena.ne.jp/aoki1210/

▪ Microsoft MVP ASP.NET/IIS、Sitecore MVP

▪ ネクストスケープという会社で働いています

▪ http://www.nextscape.net

▪ 日本No.1のクラウド企業としてマイクロソフト社より3年連続表彰(Partner of the Year Azure)

▪ 技術者 絶賛募集中です!

Page 4: Azure MLやってみよう

参考までアンケート

▪ AzureML知っている方?

▪ AzureML試された方?

Page 5: Azure MLやってみよう

AzureMLとは

▪ 先週GA(正式サービス開始)されたばかりのMicrosoft Azureというクラウドで動作する機械学習(Machine Learning)サービス

Page 6: Azure MLやってみよう

機械学習って何?

▪ 人間が行っている学習能力と同様の機能をコンピュータで実現しようとする技術

Page 7: Azure MLやってみよう

10年前にビルゲイツも語っていた注目技術

▪ 米マイクロソフトの創業者ビル・ゲイツ氏は今から10年前の2004年2月にこう語った。

▪ 「自ら学習するマシンを生み出すことには、

マイクロソフト10社分の価値がある」

日経コンピューターの記事よりhttp://itpro.nikkeibp.co.jp/article/COLUMN/20140729/571282/

Page 8: Azure MLやってみよう

機械学習の概要(Wikipediaより)

▪ センサやデータベースなどからある程度の数のサンプルデータ集合を入力して解析を行い、そのデータから有用な規則、ルール、知識表現、判断基準などを抽出し、アルゴリズムを発展させる。なおデータ集合を解析するので統計学との関連が深い。

▪ そのアルゴリズムは、第一にそのデータが生成した潜在的機構の特徴を捉え、複雑な関係を識別(すなわち定量化)する。そして第二にその識別したパターンを用いて新たなデータについて予測を行う。データは観測された変数群のとりうる関係の具体例と見ることができ、アルゴリズムは機械学習者として観測されたデータの部分(訓練例などと呼ぶ)を学習することでデータに潜在する確率分布の特徴を捉え、学習によって得た知識を用いて新たな入力データについて知的な決定を行う。

▪ 1つの根本的な課題は、観測例に全てのとりうる挙動例を示すあらゆる入力を含めるのは(多くの実用的な関心事の場合)大きすぎて現実的でないという点である。したがって、学習者は与えられた例を一般化して、新たなデータ入力から有用な出力を生成しなければならない。

▪ 光学文字認識では、印刷された活字を事前の例に基づいて自動認識する。これは典型的な機械学習の応用例である。

▪ 機械学習は検索エンジン、医療診断、スパムメールの検出、金融市場の予測、DNA配列の分類、音声認識や文字認識などのパターン認識、ゲーム戦略、ロボット、など幅広い分野で用いられている。応用分野の特性に応じて学習手法も適切に選択する必要があり、様々な手法が提案されている。これらの手法は、テストデータにおいての検出・予測性能において評価されることがある。大量のデータから従来にない知見を得るというビッグデータの時代では、特にその応用に期待が集まっている

▪ 1959年、アーサー・サミュエルは機械学習を「明示的にプログラムしなくても学習する能力をコンピュータに与える研究分野」だとした。

▪ トム・M・ミッチェル(英語版)は、よく引用されるさらに厳格な定義として「コンピュータプログラムがある種のタスクTと評価尺度Pにおいて経験Eから学習するとは、タスクTにおけるその性能をPによって評価した際に、経験Eによってそれが改善されている場合である」とした。

▪ この文脈における一般化とは、学習用データセットを使って訓練した後に新たな見たことのない例について正確に判断できるアルゴリズムの能力をいう。学習者の最も重要な目的は、経験から一般化することである[6]。訓練例は一般に未知の確率分布に従っており、学習者はそこから新たな例について有用な予測を生み出す何か一般的なもの、その分布に関する何かを引き出す必要がある。

▪ 機械学習システムによっては人間の直観によるデータ解析の必要性を排除しようとしているが、人間と機械の協調的相互作用を取り入れたものもある。しかしそもそも、システムのデータ表現方法やデータの特徴を探る機構は人間が設計したものであり、人間の直観を完全に排除することはできない。

Page 9: Azure MLやってみよう

まずは、やってみよう

▪ 機械学習というと難しく感じるかもしれませんが、手を動かしてみるのが一番

▪ サンプルとギャラリーを見るだけでも楽しい

Page 10: Azure MLやってみよう

AzureMLの作成方法

Azureのポータルから、AzureMLを新規作成できる

Page 11: Azure MLやってみよう

AzureML Studioって?

・Webブラウザで動く・Azureの管理ポータルとは別・管理アカウントも別・使いやすいUI

Page 12: Azure MLやってみよう

サンプルが多く提供

サンプルも見れる

Page 13: Azure MLやってみよう

サンプルから新規作成も簡単

レコメンドの例をクリックする

Page 14: Azure MLやってみよう

モデルが展開される モデルが展開される

Page 15: Azure MLやってみよう

実行してみよう

Runボタンで実行できる

Page 16: Azure MLやってみよう

実行結果

Runボタンで実行できる

NDCG(Normalized Discounted Cumulative Gain)…ランキングを評価するための手法。提案された順位付けの正しさを示し大きい値であるほど良い

0.916511

Page 17: Azure MLやってみよう

①入力データ(3つ)

入力データ2(ユーザー情報)

入力データ3(レストラン情報)

入力データ1(ユーザーによるレストランのレーティング)

ここでは固定データですが、通常、インプットデータには、Readerを使います。Blob、Table、SQL Azure、Hiveなどをインプットデータとできます。

Page 18: Azure MLやってみよう

②入力データを前準備(整形)

ユーザー情報で必要なカラムを選択

レストラン情報で必要なカラムを選択

データを整形できる

Page 19: Azure MLやってみよう

③データを分割

レーティングデータを分割

データを分析用(学習用)と正解用(検証用)の2つに分ける

Page 20: Azure MLやってみよう

④トレーニング(機械学習)と検証

トレーニング(機械学習)

評価

レコメンドは、色々なパターンで出力できる

結果出力

Page 21: Azure MLやってみよう

出力結果は

▪ CSVで出力できる

▪ Webサービスでも呼び出せる

Page 22: Azure MLやってみよう

一昔前に独自のリコメンドサービス作ろうとしたら

▪ DBサーバーN台

▪ WEBサーバーN台

▪ 協調フィルタリングのアルゴリズムを実装

▪ 数年前は、お高いお話だった・・

▪ 今なら、クラウド+AzureMLで簡単にお安く

Page 23: Azure MLやってみよう

というわけで

▪ 機械学習!?と身構えるのではなく、将来性のある便利なツールととらえたほうが楽しめます。

▪ ビッグデータを扱えて、Webでいつでも使える、再利用しやすいSSIS(SQLServer Integration Service)みたいなもの。

▪ IT Pro(非エンジニア)でも使える。

Page 24: Azure MLやってみよう

最後に

▪ Machine Learningおすすめです

▪ ご清聴ありがとうございました