2013年7月12日金曜日

第26回助教の会

第26回助教の会では数理情報学第6研究室の松島慎さんに発表していただきました.松島さんは昨年度博士号を取得し,現在ポスドクとして数理6研に所属しています.今回の助教の会での発表のタイトルは” Scaling up Machine Learning algorithms for classification”でして, ざっくり言うと,分類問題に対する機械学習アルゴリズムを高速化したことについて話していただけました.これは博士論文にまとめられた成果(の一部)ということです.

機械学習と言っても数理的にはある種の最適化問題を解くことで,本研究では二値分類問題に対しサポートベクターマシンで最適化問題を定式化します.要するにやりたいのは与えられたサンプル点に対し下図(1つ目)のような直線を引くことで,その直線は下図(2つ目)にある最適化問題を解くことで得られます.


この分野では,この最適化問題を近似でよいので速く解くことが求められるのですが,そのための有力なアプローチが,双対問題に対し座標降下法(Coordinate descent method)を用いるというものです.ただし,原型となるアルゴリズムでは,データが巨大化するにつれ,同時にアクセスすべきデータも増えるため,高速化のためにはデータを分割してキャッシュメモリに移し,データを局所的に参照して計算できるようにすることが不可欠になります.今回の松島さんの発表では,その目的に適うように既存のアルゴリズムを改良して実装し,実際に高速化できていることを示してくれました.

研究の核心である実装部分の話についてもう少し詳しく述べると,巨大データを扱う際には2010年にBlock Minimization という技術が提案されており,これによりハードディスク上の巨大データを小分けにしてメモリに読み込ませることで,メモリ上で高速に処理できるようになったのですが,この技術ではメモリ上で処理している間ハードディスクからの読み込みが停止するため,その時間が無駄になっていました.これに対し松島さんの方法では,できるだけ読み込みと計算処理の両方が常に動き続けるように改良されています.視覚的に分かりやすく説明しようとすると,下図のReaderとTrainerが両方同時に動くようにしたということです.


この説明については,下のYoutubeの動画が非常によくできていますので是非ご覧ください(最下部に添付の発表スライドにも埋め込まれています).

     

話は単純ですが,これを効率的に行うには,もとの座標降下法の長所である(1)反復で更新する変数は一つでよい,(2)一次収束性,(3)反復中で不必要なサンプル点を除去できる,といった性質を損なわないようにする必要があります.松島さんはそのメリットを維持した上でスケーラブルな実装を与え,実際に既存手法より数倍高速な実験例を示し,それだけでなく,既存手法では収束していなかったものでも本手法で現実的な時間で収束する例も紹介してくれました.また,松島さんの枠組みは,サポートベクターマシンに限らず広く応用できるので,最近は他の問題にも焦点を当てて研究を行っているそうです.

今回の話は数学的に難しい話は少なく,サポートベクターマシンや座標降下法などは学部生にも理解できる話なのでもっと周知する機会があってもいいような気もしました.発表を思い出すと、松島さんのやわらかい物腰のおかげか,いつも以上に質問やコメントが多かったように思います.近年,自分の研究する数値計算の分野でも,キャッシュメモリをうまく活用するアルゴリズム設計が重要視されているので興味深く感じました.そして研究の歴史に着目してみると,双対問題に座標降下法を用いることが提唱されたのが2008年で,Block Minimization が2010年です.日進月歩でこの手の研究が精力的に行われていることが伺えますね.この分野の中での松島さん自身の今後のご活躍を楽しみに思いました.

数理3研助教 相島健助

     

0 件のコメント:

コメントを投稿