kisa12012の日記 RSSフィード Twitter

2013-12-15

機械学習界隈の情報収集方法

こんにちは.Machine Learning Advent Calendar (MLAC) 2013の14日目を担当します,@です.普段は博士学生として,各地を放浪しながら機械学習の研究をしてます.今回の記事はボストンで執筆しています.現地時間(EST)での締切は守ったのでセーフ…ですよね?

本日は機械学習の技術的な内容の話ではなく,筆者が実践している機械学習関連の情報収集方法について纏めます*1.大きく分けて,学会情報の管理・論文情報の収集・その他の三種について述べたいと思います.今回のトピックの多くは他の分野にも通用する話になっているかと思います.他の分野の方がどのように情報収集されているのかも気になるところです.

学会情報の管理

  • まずは学会情報の管理についてです.機械学習に関連するカンファレンスは(特に近年乱立気味で)非常に沢山あります.全てをチェックして回るのは,極一部の超人を除く通常の人型生物には不可能なタスクです.代表的な学会を個人的な印象とともに,以下に簡単に記載すると*2
    • ICML/NIPS/AISTATS/ECMLPKDD は機械学習系の最先端論文が集まるカンファレンス.最新の動向を見るために,必ず採択論文のチェックが必要.
    • UAI/ICLR/COLT は会議毎にクセが強い.機械学習の中の一分野のみを対象としている事が多いが,総じて質は高いため自身が関連する学会はチェックが必須.
    • KDD/IJCAI/AAAI/SDM/ICDM/WWW では上の機械学習手法の実応用への拡張が豊富.WSDM/CIKMも見逃せない.
    • ACL/EMNLP/ICCV/ECCV/CVPR/ICASSP は言語処理・画像処理・音声処理それぞれの分野に適応した手法の提案が多数.ここでのアイデアや手法機械学習系へ逆輸入されることも多々.
    • VLDB/SIGMOD などのデータベース系でもたまに機械学習系の論文がちらほら.
    • JMLR/MLJ/TPAMIなど,ジャーナルも多数.
  • があります.とても全部は追いきれないため,学会の開催情報や締切情報の効率的な管理が必須です.以前は色々試していましたが,一年程で更新が止まるサービスが多く持続的な管理には不向きな事が多かったです.最近は,自分でWikicfpのリストを管理する方法に落ち着いています.
  • Wikicfp http://www.wikicfp.com/cfp/
    • 主に学会の締切情報管理に利用しています.論文投稿のデッドラインを効率的に管理出来る点で気に入ってます.
    • 自分が管理したいカンファレンスをリストに登録すると,論文投稿締切前や開催前にメールやRSSで連絡をしてくれます.
    • また,アーカイブに過去のカンファレンスを保存しておくと次年度の情報もメール等で連絡してくれます.時系列表示やical形式での登録も可.
    • 筆者が管理しているWikicfpはこちら.上で挙げた会議+αの管理に利用しています.

論文収集

その他情報の収集

筆者が実践している情報収集方法について,ここまでだらだらとまとめてきました.日々これらの情報を通して基礎体力をつけつつ,自分のタスクに繋げるための勉強として,近年のD論サーベイ部分あるいは書籍を読む→引用論文で重要なものをピックアップして読む→これらの知識を土台に最近の論文に当たる,のプロセスを回すのが最短経路であると思います.

おそらく2・3年後には,今とはまったく異なる情報収集方法に変わっているものと想像します.日々改良を重ねてより良い方法を探索していきたいです,とありきたりな言葉で本日のMLACを締めさせていただきます.

*1:NIPS2013参加報告を書こうかとも考えたのですが,I'm a banditブログ記事で筆者が重要だと思ったことの半分程度は既に解説されてしまいました.確率的最適化や近接勾配法まわりの今年のブレークスルーは,こちらの記事を参照すれば大雑把に把握できると思います.それ以外の分野で面白いと思った話については別の機会があれば後日紹介したいと思います. NIPS読み会などでしょうか?

*2機械学習の「朱鷺の社Wiki」でも機械学習関連の学会情報を簡単に纏められています.

2013-10-18

確率的勾配降下法+α の話をしました

先日PFIセミナーにて,「SGD+α: 確率的勾配降下法の現在と未来」というタイトルで発表をしました!発表の機会を設定して頂いたPFIの皆様,ありがとうございます.スライドは以下になります.

確率的勾配降下法(SGD)はシンプルで大規模データから”そこそこの”解を得るには非常に有効なアルゴリズムです.一度自分で実装してSGDを回してみたことのある人も多いと思います.

一方で

  • 結局ステップ幅の設定が大変
  • 正規化とか前処理しないとそれほど上手く動いてくれない

などなどSGDには欠点も多く,たくさんの人が使う際に苦しめられてきた現実もあるのではないでしょうか.

今回の発表では,SGDの欠点を克服するため,およびさらなる長所を加えるための,最新の+α拡張研究について紹介しました.

内容は,

  • ステップ幅設定に今後悩まされないための +α手法
  • 前処理なし,オンラインで自動正規化を行うための +α手法
  • バッチデータから厳密解を高速に得るための +α手法

の3つを紹介しています.

もちろん今回紹介した+α手法以外にも,省メモリ化拡張手法 (こちらは前回のICML2013読み会で紹介しました)等様々な+αが考案されています.過去の単純なSGDでは満足に使えなかった場合も,SGD+αであれば上手く動くケースも多々あるのではないかと思います.そんな未来を夢見つつ,今回の発表をしました.ご参考となれば幸いです.

2013-07-11

ICML読み会2013 で発表してきました

  • 先日行われたICML読み会2013で発表してきました.主催者の @sla さん,会場提供をして頂いた中川先生,および読み会を盛り上げて頂いた他発表者・参加者の皆様ありがとうございました!やはり論文読み会は刺激的で非常に楽しいひとときが過ごせました.
    • これからも定期的に論文読み会が開催されるとの事なので,これからも楽しみですね.(KDD読み会とかNIPS読み会とか?)
  • 自分は”Large-Scale Learning with Less RAM via Randomization”という論文の紹介を行いました.発表資料を以下に載せておきます.

  • 論文の概要は,
    • "そもそも重みベクトルの値を格納するのにfloat型が本当に必要なの?もっとビット数減らしても精度変わらないんじゃないの?ビット数減らせれば,GPUやL1cacheに載せる事も考えられるようになるよね."というモチベーションから出発.
    • Regret等の理論保証のある形での学習/予測時のビット数削減方法を提案.
  • という話になっています.
  • 発表資料中に誤りや訂正すべき点などあれば,コメント等でご報告頂ければ幸いです.

2013-03-20

研究の参考にしているサイト集

  • 自分のメモ書きとして,たびたび論文執筆やプレゼン時に参考にしているサイトを以下にまとめてみました.
    • 自身の研究分野である,コンピュータサイエンス人工知能分野に関連する資料が多めです.
    • 他に参考となる有用なサイトをご存知の方がいらっしゃれば,コメント等で教えて頂けると筆者が喜びます!

English Check Manual

  • 東大,牧島先生の作成した英字論文執筆/校正のためのチェックマニュアル
  • 英字論文を書く際に,(特に日本人が)誤りやすい文法や単語を修正例とともに示したもの.
  • 自分が英文を書く時はもちろん,校正時もこのチェックマニュアルに従って,誤り箇所に番号を振る形で修正しています.

英語論文の書き方

  • 東大,松尾先生の作成した英語論文の作成マニュアル
  • 論文の完成度を高めるために何をすれば良いか,論文執筆の全体像・心構え・Tips集等盛り沢山
  • 毎回新しい論文を書くたび,参拝する気持ちで読み直しています.

How to write a good research paper and give a good research talk

  • Dr. Simon Peyton Jonesによる,良い研究論文の書き方,良い研究トークの仕方に関するスライド資料.
  • 研究の進め方・研究発表の仕方を逐次見直す時に該当部を確認しています.
  • 発表のビデオもあり,リンクや参考資料も豊富.

On Presenation at International Conferences

  • Dr. Yu Zhengによる,国際会議発表を成功させるためのプレゼン資料.
  • 特に,英語非ネイティブプレゼン資料を作成,発表する際に気をつけるべき事項が盛り沢山.
  • 英語のプレゼン資料を作成する際に必ず参考にしています.

How to Succeed in Graduate School

  • Dr. Marie desJardinsによる,大学院(博士課程)で成功するための多くの注意事項を書いた論文
  • 研究そのものの話だけでなく,研究仲間の話,お金・健康・生活の話,そして遊びの話まで包括.
  • 一度通して読んだことで血肉となり,その後の研究生活に非常に役立ちました.

2012-12-09

NIPS2012より識別モデル学習の進展を垣間見る

こんばんは.@です.しがない機械学習大学院生をやっております.Machine Learning Advent Calendar 2012 9日目では,"NIPS2012より識別も出る学習の進展を垣間見る"という無駄に野心的なタイトルで,先ほどまで開催されていたNIPS2012で発表された数本の論文概要を紹介します.機械学習,特に識別モデル学習の最先端が多少なりとも垣間見える,もしくは論文本体を読んでみようと思わせられる記事になっていれば幸いです.

重要: 概要紹介のみですので,数式は一切出てきません.(数式を記述する前に力尽きました……)

NIPS2012とは?

ホームページ : http://nips.cc/Conferences/2012/

機械学習のトップ国際会議の一つ.機械学習の理論的な面を解析した論文や,理論的背景を持ったアルゴリズムの導出を提案した論文が多いですが,脳科学ロボット・画像解析・言語解析等への機械学習応用を目的とした論文も数多く出ている会議です.MLAC 6日目の@さんの記事もNIPS2012で発表された論文です.

今年は,12月3日〜8日までアメリカネバダ州のレイク・タホで開催されてました.

NIPSについて詳しくは,朱鷺の社のNIPS紹介の記事をご参照下さい.

紹介する論文

今回紹介するのは,以下の識別モデル学習に関連した3本の論文です.

Learning Multiple Tasks using Shared Hypotheses
A Stochastic Gradient Method with an Exponential Convergence Rate with Finite Training Sets
Volume Regularization for Binary Classification

Learning Multiple Tasks using Shared Hypotheses

概要

複数の関連する分類問題を同時に最適化するマルチタスク分類問題を考える.例として,個々人の受信メールから重要度の高いメールを抽出するタスクマルチタスク問題として考えられる*1 *2

上記のようにパーソナライゼーション等のタスクでは,タスク数は非常に多いが一人ひとりのデータ数が少ない場合が考えられる.この条件下では,タスク数より少ない数の学習器のみを用い,タスク間で学習器をシェアしながら学習を行う方が理論的にも実験的にもよりよい結果が得られる事を示した.

背景

  • タスク毎のデータ量が少ない場合,十分な汎化性能を持つような学習は困難
    • パーソナライゼーション等では一般的な現象
  • タスクを一つのタスクと思って単一の学習器で学習する場合は,タスク間で異なる特性を捉えられず識別精度が悪化
  • 中庸をとりたい,つまり複数のタスクで分類器を共有
    • 分類器の学習に,複数タスクのデータを用いることが可能に

貢献

  • 本問題設定におけるVC次元の上限・下限を導出
  • VC次元を用いた汎化誤差上限を評価
    • タスク数:多 仮説数:少 の時,各タスクで分類器を学習した場合より小さい汎化誤差上限で抑えられる

アルゴリズム

  • 1. 各タスクのデータを学習用とバリデーション用に分割
  • 2. 各タスクが用いる学習器をランダムに割り当て
  • 3. 各学習器に割り当てられたタスクの全学習用データでの損失最小化問題を解き,学習器を更新
  • 4. 各タスクのバリデーションデータに関して一番予測精度の高い学習器に割り当て直す
  • 5. 一定の回数反復,あるいは一定の収束基準を満たすまで,3.4ステップを反復
  • 6. 学習用とバリデーション用データを用いて各学習器を更新

雑感

  • パーソナライゼーション系のマルチタスク学習には相当強そう
    • タスクの分割が大雑把だったとしても上手く動きそうなのが素晴らしい
  • 実装は簡単,背後の理論は複雑かつ盤石,と良い研究のお手本

A Stochastic Gradient Method with an Exponential Convergence Rate with Finite Training Sets

概要

データが事前に固定されていれば,ある種の一般的条件設定のもとで,データ数に対して定数オーダーの計算コストで線形収束を実現するSGDを提案.確率的最適化手法であるSGDと全データの勾配を毎ステップ計算して最適化するGDハイブリッド(良いとこ取り)手法を提案し,こちらも理論的・実験的に非常に高速に最適解へ収束する事を示した.

背景

貢献

  • Stochastic Average Gradient method (SAG) を提案
  • SAGは線形収束することを証明
    • 損失関数微分可能,最適化問題はStrongly Convexである等の条件がいくつかあるが,大体の問題設定では満たされる

アルゴリズム

  • 1. データを1つランダムに選択し,現在の重みベクトルで勾配を計算
  • 2. 各データの「最後に」算出された勾配を集め,その平均ベクトルを用いて学習器を更新
  • 3. 一定の回数反復,あるいは一定の収束基準を満たすまで,1,2ステップを反復

実装上の工夫など

  • SAGを回す前に一度SGDをワンパス回すとさらに収束早くなる場合が多い
  • 正則化項を入れる場合は,正則化項は勾配近似せずに陽に最適化すると良い
  • 線形分類器の場合は,各データに関して保存しておくべき量はスカラー値1個のみ

雑感

  • 以前も結構話題になっていたので,すでに読んでいる人も多い?
  • 以前実装して実験を回してみましたが,実際SGDより遥かに高速に収束してました
  • 証明を解釈する会開きましょう(白目)

Volume Regularization for Binary Classification

概要

分類問題を多次元空間の「点(重みベクトル)」ではなく「箱(重みベクトルの集合)」の形で最適化する.ここで「箱」の形で最適化する,とは「箱」中の重みベクトル集合の中で最悪性能を示す重みベクトル最適化問題を評価した場合の値を最大化する事.さらに,理論的にはPAC-Bayesian Boundを求めており,ノイズ環境下ではAROWやSVMよりも非常に高い性能を示すことを確認している.

背景

  • 既存の線形モデルは,信頼度や代替となる重みベクトルの情報を持たせる事が困難
  • Bayesian Classifierは,計算量やメモリ制約の問題から近似手法が必要
  • これまた中庸を取る
  • 重みベクトル集合,つまり「箱」の最適化を行う

最適化問題アルゴリズム

  • (3)式 : 累積損失項 + log (箱の体積) + 正則化項 の総和を最小化する「箱」を求める
  • 各損失関数正則化項は「箱」内で最悪の重みベクトルでの評価値を用いる
  • COMID (FOBOS) で逐次的に最適化
    • 「箱」の形に限定しているため,各軸の最小値と最大値さえ求めれば良い
    • 線形モデルである特性から,正則化項がL2の場合,各軸毎に最適化問題を分解できる
    • 損失関数正則化項も箱全体の重みベクトルを使う必要がなく,いくつかの代表値のみを用いてパラメータ更新が可能

雑感

*1Gmailの優先トレイでは,実際にこのようなマルチタスク学習が用いられている.“The Learning Behind Gmail Priority Inbox”, Douglas Aberdeen, Ondrey Pacovsky, Andrew Slater, LCCC : NIPS 2010 Workshop on Learning on Cores, Clusters and Clouds. http://research.google.com/pubs/archive/36955.pdf

*2:こちらも紹介記事を書いています.