糞糞糞ネット弁慶

読んだ論文についてメモを書きます.趣味の話は http://repose.hatenablog.com

Machine Learning that Matters(ICML 2012) 読んだ

機械学習やってる人は皆読むべきだと思う.
Machine Learning that Matters (pdf)

概要

機械学習のトップカンファレンスICMLに数式/アルゴリズム/定理を1つも書かずに通った論文.
機械学習は何のために重要なのか,現実世界との繋がりを失っていないか,あなたは「機械学習って何の役に立つの?」と聞かれた時にちゃんと答えられるのか,まだ取り組まれてない重要な問題は何か,について触れた長文ブログのような論文.
contributionsは

  1. 機械学習の研究と人類と科学全体におけるもっと大きな研究との間にある欠落に対する明確な特定と解説
  2. そのギャップに取り組むための第一歩
  3. (どう訳していいかわからなかった)
  4. 機械学習において重要な問題の提示

機械学習のための機械学習(要約: マッシュルームやアヤメの分類器を死ぬほど作って何の役に立ったの?)

ベンチマークデータの問題

ここで問題とするのは,現実における問題解決とは切り離された実験によるアルゴリズムの改善である.
例えばICML2011の論文を見てみる.152本中148本は何らかの実験を行なっていて,人口データで行ったものが57本,UCI archiveのデータ(標準的な公開データセット)で行ったものが55本,UCIか人口データのどちらかでしか実験をおこなっていないのが34本だった.しかし,あるドメインにおいてしっかり実験結果を解釈した論文はたった1本しかなかった.
そりゃよく知られたデータセットで実験を行うのは

  1. 他のアルゴリズムと直接比較ができる
  2. データが有名だから結果の解釈が楽

というメリットおがある.でもそもそもアルゴリズムとの比較なんてパラメータセッティング,学習/テストデータの分け方,評価指標でいくらでも変わる.
でも実験結果の解釈はほぼ行われない.これは何故か?理由は以下の2つ.

  1. 有意義な解釈は難しい.機械学習の研究者がその(ある特有の)データセットについて詳しいなんて事はなかなか無い.
  2. 機械学習の分野ではそんな解釈にやる気が無いし必要ともしていない.レビュアーはどんなクラスが上手く分類できたかとか,ありがちだった判別ミスはなんだったかとか,なんでそのデータセットを選んだかとかは興味が無い.「精度がxポイント上がったから現実世界でこれぐらい役に立つ!」みたいな話も期待されてない.その分野の専門家とコラボした論文でも,結果の解釈にはほとんどページが割かれていない.それは我々の分野がそれを必要としていないからだ.

UCIデータセットができてからは皆irisかmushroom(最も有名なデータセット)の判別器ばかり作っているけど,じゃあそれって植物学とか菌学に貢献したの?その分類器って必要なの?そのネタで誰かジャーナル書いたの?
UCIデータセットの役割って何?「実世界の」ベンチマーク?実際のところ,データの生成過程を触れないんじゃ人口データと大して変わらないし,UCIデータセットで何か問題を解いたってそれは現実世界と結びつけることはできない.そういう事を忘れるか無視してしまえば,データセットなんてただの数字の集合でしかない.むしろ,UCIデータセットのせいで皆分類か回帰ばっかり解くようになってしまっている.それだけでなく,問題を定式化し,特徴量をどのように定めるかを学ぶ必要性も重要視されなくなってきているので若手研究者が新しい問題に取り組む事を妨げている.
こういったトレンドは少なくとも20年は続いてきた.次の20年のトレンドを変える事はできるだろうか?そもそもそれを望んでいるのか?

評価関数の問題

機械学習の評価は通常抽象化された指標,例えば判別精度,RMSE,F値なんかが使われている.これらの指標は問題固有の指標などを無視して,他のデータセットなどとも比較可能なように抽象化されてる.でもこの数字に従っていくと何か有用な情報が得られるのか?
例えば植物学においてirisの分類だったら80%ぐらいの精度であれば十分だったとしても,あなたが食べるマッシュルームが有毒か食用かを分類するんだったら99%の精度が欲しいだろう.これは違うドメインの問題を同じ尺度で図ろうとしているから起こる事だが,そもそも同じ尺度だからと言って同じ意味ではないのである.
よく全データセットにおいての精度の平均を取って評価してる論文とかあるけど,上記の例を考えればそんな事しても何の意味もない.x%改善したというのはデータセットによって全く意味が違うからだ.
ROCやAUCなども評価指標として使われるが,false positiveとfalse negativeが同じ重みで扱われていたり,異常に高いfalse positiveなども曲線に含んでいるなど,色々と欠点があるので結局評価指標としては微妙.
t検定なども改善が「有意か」どうかで使われるけど,検定は数字の列しか見ていないので,その改善が実世界でどれぐらい意義があるかを計算しているわけではない.もちろん,そんな事は当然知っているわけだが,t検定を示すのみで終わってそれ以外の指標で評価することなど殆ど無い.というか,実験の最後のピリオド代わりにt-検定の結果を載せてる事ばかりだ.

フォロースルーの欠如

データ落としてきてWekaに突っ込むだけなら誰にでもできる.問題なのは

  1. 前準備
    1. 機械学習で解くべき問題を見つけ
    2. どんなデータを集め,選び,捨て
    3. 特徴量を抽出するのかを決め
  2. 機械学習への貢献
    1. 適切なアルゴリズムを選んでチューニングし
    2. 評価指標を選び実験を行い
  3. インパク
    1. 結果を解釈し
    2. そのドメインの専門家を巻き込み
    3. 適切なコミュニティに結果を公表し
    4. ユーザに結果を納得してもらう事

である.こんな一連の作業を見せたら機械学習研究者は疲れきってしまうか怯えるだろうが,それぞれのステップは実世界にインパクトを与える研究課題を探すためには必要となる作業である.しかし機械学習の分野では中段の部分のみが重視されている.
ICMLでは2010年から"invited applications"なるトラックが始まったけど,それでもICML本会議や Machine Learning,Journal of Machine Learning Researchなどに通すためには論文中で「機械学習への貢献(こんなすげーアルゴリズム考えたぜ!か理論的かつ詳細な証明)」を示さなければならない.どんなにそれが素晴らしかったとしても,どんなに先進的だったとしても,(↑の表の3段目である部分における)インパクトと同じじゃなければ意味が無い.
研究と実世界とを紐付けるのはコミュニティが成熟する過程の一部である.

改善案

意味のある評価指標を使え

これまでの評価指標に加えて,例えば何ドル節約したとか,何人助けることができるとか,何時間節約できたかとか,生活の質がこれぐらい向上するとか,そういった指標を持ち出すべきだ.そういった指標に焦点を当てることによって,研究そのものをより改善するようになる.それらの指標はどのようにデータを選ぶべきか,どのように実験すべきか,目的関数をどうすべきかを教えてくれる.少なくとも論文において,精度の改善を実際のドメインでの値に落としこむ事ができる.
もし我々の目標がどんなドメインでも使える汎用的な手法の開発だったなら,↑のような指標を使ってどうやって達成するのか不思議に思うだろう.しかし,前にも述べたように,異なるドメインをまとめて評価するのはあまり意味が無い.むしろ,その手法で年1万ドル増収できるとか,年300件の不要な外科手術を行わずに済むとか示す方がより意味がある.

機械学習の外の世界と関われ

多くの機械学習における共同研究は問題やデータの定義を手助けしてくれる別ドメインの専門家と行う.彼らは機械学習とその問題における意義との間にあるミッシングリンクを埋めてくれる.これは機械学習が解くべき問題への正しい示唆を与えてくれる.

Eyes on the Prize

また,機械学習の観点から見て面白そうとかやりがいがあるという研究ではなく,取り組むべき潜在的インパクトがある研究を考えるべきだ.どれぐらいの人や種,国,面積がその問題の解によって影響を受けるのか?どれぐらい意味のある改善が行われるのか?(を考えろ)

Warrickらはこれら3つの課題に取り組んだ.彼らは病院で医師らと研究を行い,低酸素症を検知し,胎児を障害や死から救う緊急介入を可能にした.彼らの手法では50%の精度と7.5%のfalse positiveで低酸素症を検知しており,実験は次のステップである配備まで進んでいる.このようないくらでもある.

Machine Learning Impact Challenges

6つの問題を提示している

  1. 機械学習による分析の結果によって法的判断を行うか,法案を通せ
  2. 機械学習による意思決定で100万ドル貯めろ
  3. 機械学習による高精度な翻訳で2国間の衝突を回避しろ
  4. 機械学習による防衛でネット上の不正侵入を50%減らせ
  5. 機械学習による診断,もしくは介入によって人命を救え
  6. 機械学習によってある国の人間開発指数を10%向上させろ

これらの問題は1つのドメインの問題ではない事や,ある種の技術に依存しないという点でDARPA Grand ChallengeやNetflix Prize,Yahoo! Learning to Rank Challengeなどの既存の問題とは大きく異なっている.
よく,機械学習の研究では人間よりも高い精度を出す事に注力されがちだが,上にあげた問題においては,人間よりも高い精度を出す事は必ずしも必要とされていない.重要なのは,世界にインパクトを与えるのに十分なぐらいの精度を出すことだ.例として田舎に住む病気の少年を考えてみる.彼のために2マイル離れたところに行く医者を呼びに行くためにはオリンピックレベルの速さで走る必要は無い(パフォーマンス).医者が少年の病気に間に合えば良いのだ(インパクト).

課題になってくること

ジャーゴン

feature extractionとかbias-variance tradeoffとかensemble methodsとかcross varidationとかlow dimensional manifoldとかregularizationとかmutuanl informationとかkernel methodsとか専門用語使いすぎ.研究者だけでなく,統計学者にすら伝わらない.別の言い方を考えろ.

リスク

機械学習によるシステムが人と同じぐらい,もしくはそれよりも間違いが少なかったとしても,機械学習に頼りきりになるのは別の問題が引き起こされるためによりリスキーだ.いつミスが起こって(?),責任は誰にあるのか?どのタイミングでシステムに介入すべきなのか.これらの懸念は医療や宇宙工学,金融などのリアルタイム性を持つドメインにおいてより顕著になってくる.

複雑さ

機械学習のツールやライブラリが充実しているとはいえ,他の分野の研究者が機械学習の手法を単純に応用するのは難しい.これは問題そのものや,使うべき特徴量,パラメータサーチなどの知識が無い事が原因である.そのため,機械学習による解はよく(それらの調整を行なってくれる)Ph.Dがいないと使えないと言われてしまう.これは同時に,機械学習によるインパクトが広く伝わりにくいという事でもある.