nttr study 20130206_share

34
ビビビビビビビビビビビ ビビビビビビビビビビビビビビビ Copyright © Fixstars Corporation. All rights reserved. 2013 年 2 年 6 年 ( 年 )

Upload: noriyuki-futatsugi

Post on 28-May-2015

2.747 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Nttr study 20130206_share

ビッグデータの分析手法

機械学習アルゴリズムとその応用

Copyright © Fixstars Corporation. All rights reserved.

2013 年 2 月 6 日 ( 水 )

Page 2: Nttr study 20130206_share

自己紹介

@foota, nox株式会社フィックスターズ所属

並列処理・ GPGPU ・高速化以前は理化学研究所の研究員

薬学 / 創薬の研究分子動力学 (MD) ・分子軌道法 (MO)

ブログ「良いもの。悪いもの。」http://handasse.blogspot.com/

Page 3: Nttr study 20130206_share

本日話すこと

ビッグデータと機械学習機械学習アルゴリズムについて

k- 平均法サポートベクターマシンHITSスペクトラルクラスタリング

機械学習アルゴリズムの活用事例質問応答システム創薬データ分析プログラミングコンテスト

Page 4: Nttr study 20130206_share

ビッグデータと機械学習

ビッグデータと呼ばれる膨大で多様なデータ 非構造化データであることが多い 膨大な量 一見して関連性を見出すことが難しい

有益な情報を取り出すことが困難 いかにして情報を取り出すか

分析の手段としての機械学習 データの特徴を捉え、識別し、そして予測を行う 人間の学習を模したもの コンピュータにより自動的に行う

機械学習アルゴリズムがどのようにビッグデータを分析して有用な情報を抽出するのか ?

Page 5: Nttr study 20130206_share

ビッグデータ活用の現状

医療 創薬 病気の診断 ゲノミクス

物理シミュレーション 気象シミュレーション 地震・津波シミュレーション

インターネット検索 Web Twitter SNS

経済 POS データ トレンド分析

Page 6: Nttr study 20130206_share

情報爆発

(IBM Corporation 資料より )

Page 7: Nttr study 20130206_share

機械学習アルゴリズムについて

Page 8: Nttr study 20130206_share

機械学習アルゴリズム

k- 平均法 (k-means)サポートベクターマシン (SVM; Support Vector Machine)HITS (Hyperlink-Induced Topic Search)スペクトラル・クラスタリング (Spectral Clustering)ランダム・フォレスト (Random Forest)局所性鋭敏型ハッシュ (LSH; Locality Sensitive Hashing)潜在的ディリクレ分配法 (LDA; Latent Dirichlet

Allocation)ラベル伝播法 (Label Propagation)確率的潜在意味索引付け (PLSI; Probabilistic Latent

Semantic Indexing)条件付き確率場 (CRF; Conditional Random Fields)他にも様々なアルゴリズムが使われている

Page 9: Nttr study 20130206_share

k- 平均法 (k-means)

データの数 クラスタ数1. ランダムに個の点を決め、そ

れを中心のクラスタとする。(a)

2. 各 と各 との距離を求め、 を最も近い中心のクラスタに割り当て直す。 (b) (d) (f) (h)

3. 割り振ったデータをもとに各クラスタの中心を計算する。(c) (e) (g)

4. 上記の処理で全ての のクラスタの割り当てが変化しなかった場合は処理を終了する。それ以外の場合は、上記の処理を繰り返す。 (i)

(C. M. Bishop, PRML より )

Page 10: Nttr study 20130206_share

サポートベクターマシン (SVM)

SVM( サポートベクターマシン ) は、二値のパターン識別器を構成するアルゴリズムであり、訓練データから、各データ点との距離が最大となる分離平面を求めるマージン最大化という基準でパラメータを学習する。

SVM を利用できるライブラリとして LIBSVM などが有名。http://www.csie.ntu.edu.tw/~cjlin/libsvm/

Page 11: Nttr study 20130206_share

SVM のアルゴリズム𝒟= {(𝒙 𝑖 ,𝑐𝑖 )∨𝒙𝑖∈ℝ𝑑 ,𝑐 𝑖∈ {−1 ,1 }}𝑖=1

𝑛

は 1 もしくは -1 の値を持ち がそれに属するクラスを意味する。 は 次元の特徴ベクトル。

とを分離する、マージンが最大になる超平面を探すことが目的となる。

Page 12: Nttr study 20130206_share

HITS アルゴリズム

HITS はハイパーリンク構造を持つページのスコアを計算する方法で、 hub 値と auth 値を持つ。簡単に言えば、ページに対するリンクと被リンクのスコア。 Google の PageRank と類似のアルゴリズム。

隣接行列 として以下の式で計算

変形する

Page 13: Nttr study 20130206_share

スペクトラルクラスタリング

入力データに対し、 k- 近傍法 (k-NN) による隣接行列を作る (対称行列になるようにmutual k-NN とする ) 。

上記の隣接行列に対して正規化カットした結果を k-means などでクラスタリングする。

Page 14: Nttr study 20130206_share

スペクトラルグラフ理論

隣接行列に対する正規化カット (Normalized Cut)は NP 困難となるが、グラフラプラシアンの固有値問題に帰着できる。

𝐃− 12 (𝐃−𝐖 )𝐃

− 12 𝑧=𝜆 𝑧 , 𝑧=𝐃

12 𝒚

は固有値 , は固有ベクトル はラプラシアン行列

: グラフ間の重み行列 : を対角化成分とした行列

𝑛𝑐𝑢𝑡 ( 𝐴 ,𝐵 )= 𝑐𝑢𝑡 (𝐴 ,𝐵)𝑎𝑠𝑠𝑜𝑐 (𝐴 ,𝑉 )

+𝑐𝑢𝑡 (𝐴 ,𝐵)𝑎𝑠𝑠𝑜𝑐(𝐵 ,𝑉 )

𝑐𝑢𝑡 ( 𝐴 ,𝐵 )= ∑𝑢∈𝑎,𝑣∈𝐵

𝑤(𝑢 ,𝑣 )

Page 15: Nttr study 20130206_share

機械学習アルゴリズムの活用事例

Page 16: Nttr study 20130206_share

質問応答システム Watson

(IBM and the Jeopardy Challenge http://www.youtube.com/watch?v=KVM6KKRa12g より )

Page 17: Nttr study 20130206_share

技術的課題

幅広い分野への対応問題文とカテゴリの解釈高い正答率での回答確信度の推定応答速度

( 情報処理 Vol.52 No.7 July 2011 p.840 日本 IBM東京基礎研究所資料より )

Page 18: Nttr study 20130206_share

回答率の正解率の向上

( 情報処理 Vol.52 No.7 July 2011 p.840 日本 IBM東京基礎研究所資料より )

初期のシステムと番組勝者との比較 性能向上の履歴

Page 19: Nttr study 20130206_share

Watson の仕組み – DeepQA フレームワーク

( 情報処理 Vol.52 No.7 July 2011 p.840 日本 IBM東京基礎研究所資料より )

Page 20: Nttr study 20130206_share

創薬

機械学習予測システム (k-MUSES)理化学研究所で開発している機械学習活性判別システムhttp://www.riken.jp/dmp/bunshi.html

Merck Molecular Activity Challenge製薬企業メルク主催による化合物活性予測コンテストhttps://www.kaggle.com/c/MerckActivityhttp://blog.kaggle.com/2012/10/31/merck-co

mpetition-results-deep-nn-and-gpus-come-out-to-play/

Page 21: Nttr study 20130206_share

創薬 : インシリコスクリーニング

( 理化学研究所 創薬・医療技術基盤プログラム資料より )

化合物データベース10万~ 1,000万化合物

ドッキングにより化合物を濃縮

1,000~ 10,000 化合物

選択された化合物100~ 1,000 化合物

機械学習活性判別システム

Page 22: Nttr study 20130206_share

創薬 : 機械学習活性判別システム

( 理化学研究所 創薬・医療技術基盤プログラム資料より )

サポートベクターマシン (SVM) を利用

機械学習アルゴリズムを利用しない場合と比較して数倍の精度を確認。

Page 23: Nttr study 20130206_share

創薬 : ADMET 予測技術

サポートベクターマシン (SVM)やランダムフォレストを利用

( 理化学研究所 創薬・医療技術基盤プログラム資料より )

Page 24: Nttr study 20130206_share

創薬 : Merck Molecular Activity Challenge

大手製薬企業メルクによる化合物活性の予測高い精度で予測することで創薬の大きな助けとな

る近年注目されている Deep Learning というアルゴ

リズムが特に良い予測をしたデータ分析コンペサイト Kaggle によるコンテス

Page 25: Nttr study 20130206_share

プログラミングコンテスト

Kaggle製薬企業による化合物活性予測戸籍調査の返信予測モバイルサイトによる購入予測

TopCoderNASA による車両画像認識NASA によるクレーター画像判別米研究所による大豆の生産予測都市における病気や犯罪などの危険予測

Page 26: Nttr study 20130206_share

Kaggle

データ分析コンペティションサイトデータサイエンティストの多くが参加

データマイニング系のコンテストで有名な KDD Cup なども開催

Page 27: Nttr study 20130206_share

TopCoder

世界最大手の競技プログラミングサイト世界中の優秀なハッカーが腕を競い合う

様々なジャンルのコンテストがあるが、アルゴリズムを扱ったコンテストが一般的

特にマラソンマッチと呼ばれる 2~ 3週間を期限とするコンテストでデータ分析系の問題が出される

Page 28: Nttr study 20130206_share

社内プログラミングコンテスト : 年収額予測

ある都市で継続的に戸口・財産調査が行われた。それらをまとめたデータセットがコンテスト参加者に与えられている。そのデータセットには年収額を含む 18 の項目がある。年収額が伏せられた別のデータセット (17項目 )が与えられたとき、年収額の予測を行うことが今回の問題となる。14.4万件の訓練データ → 5万件を予想

1. 年齢2. 性別3. 人種4. 婚姻5. 出産数6. 誕生地7. 農家かどうか8. 住居の所有権9. 世帯主との関係

10. 学校への在籍11. 就業について12. 労働者の種別13. 昨年内に労働した週数14. 先週に労働した時間数15. 最後に労働した年16. 5 年以内の移住について17. 職場への主な交通手段

年収額

Page 29: Nttr study 20130206_share

評価方法

% ./exe_file train.dat test.dat

1回の実行に用いるテストデータファイル内のデータ数は 1,000 件とし、暫定テストデータ 5,000 件は 5 ファイル、最終テストデータ 50,000 件は 50 ファイルに分割され、ファイルごとに実行される。ここでは、 1 ファイル (1,000 件 )を 1ケースとする。

実際の年収額と予測した年収額の二乗平均平方根誤差 (RMSE) を求め、以下の式でスコアが与えられる。 1ケースが 1,000 件であることから、 n=1000 とする。

Page 30: Nttr study 20130206_share

解答に使われた機械学習アルゴリズム

ランダムフォレストロジスティック回帰C5.0多層パーセプトロンによる誤差逆伝播法素性に基づく行列因子分解

Page 31: Nttr study 20130206_share

コンテストの結果

順位 氏名 最終スコア 暫定スコア 言語 最終投稿日時

1*** 47.526946 45.667594 Ruby 2012/6/30 20:02

2*** 47.189242 45.363833 Haskell 2012/6/30 22:13

3*** 47.172834 45.910145 C++ 2012/6/30 16:26

4*** 45.030060 43.658967 Python 2012/6/27 23:59

5*** 44.871869 42.659491 C 2012/6/29 9:53

6*** 44.697920 46.124126 Python 2012/6/30 16:14

7*** 44.468423 42.560599 C++ 2012/6/26 9:54

8*** 42.639191 40.837311 Ruby 2012/6/30 23:33

9*** 35.959067 35.051351 C++ 2012/5/16 20:00

10*** 35.614639 34.813002 Python 2012/5/16 20:00

Page 32: Nttr study 20130206_share

コンテストの考察

1~ 3位のアルゴリズムはすべて異なり、それぞれ、ロジスティック回帰、多層パーセプトロンによる誤差逆伝播法、ランダムフォレストとなっている。 一概にどのアルゴリズムが最も良いとは言い切れない。

なぜ勝者になれたのか ?優勝者は暫定順位では 3位だったが、開催期間のほぼすべての時

間を使い、訓練データを精査することで、外れ値をもつデータを可能な限り除外した。

暫定 1位 ( 最終結果3位 ) の方は短期間で効率よくアルゴリズムを決定して訓練データでは高い予測精度を発揮した。

最終テストにおいてより良い結果を挙げることができたのは精度の高い訓練データであったことが示唆される。

データセットの調査とその精度はとても大事。

Page 33: Nttr study 20130206_share

まとめ : ビッグデータと機械学習

様々なビッグデータに対して様々な機械学習アルゴリズムが利用されている。重要な点は、アルゴリズムに合ったデータを選ぶのではなく、デー

タに合ったアルゴリズムを選ぶということ。扱う対象を調査した上で方法を決定する。

対象に特化した特徴がないか ? 大規模データなのか ? 速度と精度のバランスは ? 並列処理可能な問題か ?

Hadoop を利用 ? MPI を利用 ? 分散ノード ? メニーコア ? GPGPU?

すべての大規模データに適用できる銀の弾丸はない

Page 34: Nttr study 20130206_share

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