nttr study 20130206_share
TRANSCRIPT
ビッグデータの分析手法
機械学習アルゴリズムとその応用
Copyright © Fixstars Corporation. All rights reserved.
2013 年 2 月 6 日 ( 水 )
自己紹介
@foota, nox株式会社フィックスターズ所属
並列処理・ GPGPU ・高速化以前は理化学研究所の研究員
薬学 / 創薬の研究分子動力学 (MD) ・分子軌道法 (MO)
ブログ「良いもの。悪いもの。」http://handasse.blogspot.com/
本日話すこと
ビッグデータと機械学習機械学習アルゴリズムについて
k- 平均法サポートベクターマシンHITSスペクトラルクラスタリング
機械学習アルゴリズムの活用事例質問応答システム創薬データ分析プログラミングコンテスト
ビッグデータと機械学習
ビッグデータと呼ばれる膨大で多様なデータ 非構造化データであることが多い 膨大な量 一見して関連性を見出すことが難しい
有益な情報を取り出すことが困難 いかにして情報を取り出すか
分析の手段としての機械学習 データの特徴を捉え、識別し、そして予測を行う 人間の学習を模したもの コンピュータにより自動的に行う
機械学習アルゴリズムがどのようにビッグデータを分析して有用な情報を抽出するのか ?
ビッグデータ活用の現状
医療 創薬 病気の診断 ゲノミクス
物理シミュレーション 気象シミュレーション 地震・津波シミュレーション
インターネット検索 Web Twitter SNS
経済 POS データ トレンド分析
情報爆発
(IBM Corporation 資料より )
機械学習アルゴリズムについて
機械学習アルゴリズム
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)他にも様々なアルゴリズムが使われている
k- 平均法 (k-means)
データの数 クラスタ数1. ランダムに個の点を決め、そ
れを中心のクラスタとする。(a)
2. 各 と各 との距離を求め、 を最も近い中心のクラスタに割り当て直す。 (b) (d) (f) (h)
3. 割り振ったデータをもとに各クラスタの中心を計算する。(c) (e) (g)
4. 上記の処理で全ての のクラスタの割り当てが変化しなかった場合は処理を終了する。それ以外の場合は、上記の処理を繰り返す。 (i)
(C. M. Bishop, PRML より )
サポートベクターマシン (SVM)
SVM( サポートベクターマシン ) は、二値のパターン識別器を構成するアルゴリズムであり、訓練データから、各データ点との距離が最大となる分離平面を求めるマージン最大化という基準でパラメータを学習する。
SVM を利用できるライブラリとして LIBSVM などが有名。http://www.csie.ntu.edu.tw/~cjlin/libsvm/
SVM のアルゴリズム𝒟= {(𝒙 𝑖 ,𝑐𝑖 )∨𝒙𝑖∈ℝ𝑑 ,𝑐 𝑖∈ {−1 ,1 }}𝑖=1
𝑛
は 1 もしくは -1 の値を持ち がそれに属するクラスを意味する。 は 次元の特徴ベクトル。
とを分離する、マージンが最大になる超平面を探すことが目的となる。
HITS アルゴリズム
HITS はハイパーリンク構造を持つページのスコアを計算する方法で、 hub 値と auth 値を持つ。簡単に言えば、ページに対するリンクと被リンクのスコア。 Google の PageRank と類似のアルゴリズム。
隣接行列 として以下の式で計算
変形する
スペクトラルクラスタリング
入力データに対し、 k- 近傍法 (k-NN) による隣接行列を作る (対称行列になるようにmutual k-NN とする ) 。
上記の隣接行列に対して正規化カットした結果を k-means などでクラスタリングする。
スペクトラルグラフ理論
隣接行列に対する正規化カット (Normalized Cut)は NP 困難となるが、グラフラプラシアンの固有値問題に帰着できる。
𝐃− 12 (𝐃−𝐖 )𝐃
− 12 𝑧=𝜆 𝑧 , 𝑧=𝐃
12 𝒚
は固有値 , は固有ベクトル はラプラシアン行列
: グラフ間の重み行列 : を対角化成分とした行列
𝑛𝑐𝑢𝑡 ( 𝐴 ,𝐵 )= 𝑐𝑢𝑡 (𝐴 ,𝐵)𝑎𝑠𝑠𝑜𝑐 (𝐴 ,𝑉 )
+𝑐𝑢𝑡 (𝐴 ,𝐵)𝑎𝑠𝑠𝑜𝑐(𝐵 ,𝑉 )
𝑐𝑢𝑡 ( 𝐴 ,𝐵 )= ∑𝑢∈𝑎,𝑣∈𝐵
𝑤(𝑢 ,𝑣 )
機械学習アルゴリズムの活用事例
質問応答システム Watson
(IBM and the Jeopardy Challenge http://www.youtube.com/watch?v=KVM6KKRa12g より )
技術的課題
幅広い分野への対応問題文とカテゴリの解釈高い正答率での回答確信度の推定応答速度
( 情報処理 Vol.52 No.7 July 2011 p.840 日本 IBM東京基礎研究所資料より )
回答率の正解率の向上
( 情報処理 Vol.52 No.7 July 2011 p.840 日本 IBM東京基礎研究所資料より )
初期のシステムと番組勝者との比較 性能向上の履歴
Watson の仕組み – DeepQA フレームワーク
( 情報処理 Vol.52 No.7 July 2011 p.840 日本 IBM東京基礎研究所資料より )
創薬
機械学習予測システム (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/
創薬 : インシリコスクリーニング
( 理化学研究所 創薬・医療技術基盤プログラム資料より )
化合物データベース10万~ 1,000万化合物
ドッキングにより化合物を濃縮
1,000~ 10,000 化合物
選択された化合物100~ 1,000 化合物
機械学習活性判別システム
創薬 : 機械学習活性判別システム
( 理化学研究所 創薬・医療技術基盤プログラム資料より )
サポートベクターマシン (SVM) を利用
機械学習アルゴリズムを利用しない場合と比較して数倍の精度を確認。
創薬 : ADMET 予測技術
サポートベクターマシン (SVM)やランダムフォレストを利用
( 理化学研究所 創薬・医療技術基盤プログラム資料より )
創薬 : Merck Molecular Activity Challenge
大手製薬企業メルクによる化合物活性の予測高い精度で予測することで創薬の大きな助けとな
る近年注目されている Deep Learning というアルゴ
リズムが特に良い予測をしたデータ分析コンペサイト Kaggle によるコンテス
ト
プログラミングコンテスト
Kaggle製薬企業による化合物活性予測戸籍調査の返信予測モバイルサイトによる購入予測
TopCoderNASA による車両画像認識NASA によるクレーター画像判別米研究所による大豆の生産予測都市における病気や犯罪などの危険予測
Kaggle
データ分析コンペティションサイトデータサイエンティストの多くが参加
データマイニング系のコンテストで有名な KDD Cup なども開催
TopCoder
世界最大手の競技プログラミングサイト世界中の優秀なハッカーが腕を競い合う
様々なジャンルのコンテストがあるが、アルゴリズムを扱ったコンテストが一般的
特にマラソンマッチと呼ばれる 2~ 3週間を期限とするコンテストでデータ分析系の問題が出される
社内プログラミングコンテスト : 年収額予測
ある都市で継続的に戸口・財産調査が行われた。それらをまとめたデータセットがコンテスト参加者に与えられている。そのデータセットには年収額を含む 18 の項目がある。年収額が伏せられた別のデータセット (17項目 )が与えられたとき、年収額の予測を行うことが今回の問題となる。14.4万件の訓練データ → 5万件を予想
1. 年齢2. 性別3. 人種4. 婚姻5. 出産数6. 誕生地7. 農家かどうか8. 住居の所有権9. 世帯主との関係
10. 学校への在籍11. 就業について12. 労働者の種別13. 昨年内に労働した週数14. 先週に労働した時間数15. 最後に労働した年16. 5 年以内の移住について17. 職場への主な交通手段
年収額
評価方法
% ./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 とする。
解答に使われた機械学習アルゴリズム
ランダムフォレストロジスティック回帰C5.0多層パーセプトロンによる誤差逆伝播法素性に基づく行列因子分解
コンテストの結果
順位 氏名 最終スコア 暫定スコア 言語 最終投稿日時
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
コンテストの考察
1~ 3位のアルゴリズムはすべて異なり、それぞれ、ロジスティック回帰、多層パーセプトロンによる誤差逆伝播法、ランダムフォレストとなっている。 一概にどのアルゴリズムが最も良いとは言い切れない。
なぜ勝者になれたのか ?優勝者は暫定順位では 3位だったが、開催期間のほぼすべての時
間を使い、訓練データを精査することで、外れ値をもつデータを可能な限り除外した。
暫定 1位 ( 最終結果3位 ) の方は短期間で効率よくアルゴリズムを決定して訓練データでは高い予測精度を発揮した。
最終テストにおいてより良い結果を挙げることができたのは精度の高い訓練データであったことが示唆される。
データセットの調査とその精度はとても大事。
まとめ : ビッグデータと機械学習
様々なビッグデータに対して様々な機械学習アルゴリズムが利用されている。重要な点は、アルゴリズムに合ったデータを選ぶのではなく、デー
タに合ったアルゴリズムを選ぶということ。扱う対象を調査した上で方法を決定する。
対象に特化した特徴がないか ? 大規模データなのか ? 速度と精度のバランスは ? 並列処理可能な問題か ?
Hadoop を利用 ? MPI を利用 ? 分散ノード ? メニーコア ? GPGPU?
すべての大規模データに適用できる銀の弾丸はない
ご清聴ありがとうございました !