TokyoNLP#7で「きれいなジャイアンのカカカカ☆カーネル法入門-C++」を発表しました

TokyoNLP#7に参加して,「きれいなジャイアンのカカカカ☆カーネル法入門-C++」を発表してきました.

幹事の @nokuno さんをはじめ,他の発表者の方々や懇親会の買い出しをしてくださったみなさま,参加者のみなさま,そしてなにより会場を提供してくださったECナビさんと@ajiyoshiさんに改めて感謝申し上げます.

大分時間が空いてしまったけれど一応前回からの続き.

発表資料を公開します.一部修正してあります.

発表のポイントは以下のあたり.

  • 入力とデータ点 (サポートベクタ) との類似度 (カーネル) の重みづけ和でモデルを表現している!
  • オンライン学習を双対表現に変換するのはとても簡単だよ!
  • カーネルは便利だけれど,効率よく計算できることが大切!

今回の発表で伝えたかったことはここらへんあたり.最近は機械学習に関わる書籍や情報も増えて,初心者への参入障壁は大分下がったと感じている.けれど,初心者向けとされている文献でも本当の初心者にとってはなかなか辛いものがある.

かくいう自分は,なかなか一つ目のポイントがわからず,ずいぶんと時間を費やしてしまった.当時は機械学習に関する日本語の文献は少なかった.自分は勉強しているつもりでもちゃんとポイントを理解せずに読んでいるので,勉強しても勉強してもほとんど身につかなかった.

そんな「何がわからないかわからない人」を「初心者」にする,というのが毎回の発表のモットー.細かい話は記憶に残らなくてもいいから,こんなものなのかな,というイメージが少しでも伝わっていれば幸いである.

ただ,カーネル法ならではの嬉しさというものをイマイチ伝えられなかったような気がする.自分自身が勉強不足なところもあるけれど,ここらへんはもう少し深堀りしたい.何を隠そう,自分自身がカーネル法の勉強を始めて日が浅いため,カーネル法の嬉しさをあまり語れない,という問題を抱えていたりする.精進したい.


質疑応答で頂いたコメント,質問は以下のとおり.

  • 関数ポインタよりも関数オブジェクトの方が速い (thanks to @niamさん)
  • Q. 特徴次元数 << 事例数の場合,主問題で解くのがよいと言っていたけれど,見た目の事例数とSVになりうる事例数は違うのでは?
    • 実際の特徴次元数はデータを眺めればわかるけれど,解がスパースになるかはやってみないとわからないからなぁ..
  • Q. 主問題でも表現できる/解ける問題を敢えてカーネルで解く理由は?
    • 他のカーネルとの組み合わせなど,カーネルとして定義できることのメリットはあると思うのだけれど,自信を持って答えることができなかった (今もできません..)


さて,今回はタイトルからもわかる通り (いや,伝わらなかったのだが),アニメ「日常」のネタを盛り込むことに下.前回の反省を活かし,ネタを少な目にするつもりだったのだけれど,寝不足の変なテンションでついつい盛ってしまった.そして予想を大きく裏切って想定以上に観衆のみなさまは元ネタを知らず,前回に引き続き非常にアウェーな発表となってしまった.

休み時間に言われたことだけれど,実はTokyoNLPの参加者は基本的にリア充なので,アニメネタなどが伝わりづらいとのこと.うーむ.


最後に,懇親会でもちょっと語ってしまったのだけれど,普段から機械学習に対して思っていることを少しだけ.特徴空間の設計や学習手法の選択,パラメータの事前設定というのは人間の事前知識を予測モデルに組み込んでいると捉えている.今回の発表以前に僕がカーネル法に興味を持った理由というのが,人間の知識をカーネルという形でうまく切り出してモジュール化しているというところである.解きたい問題に対して,どこまで人間が事前知識を与えて,どこからデータとアルゴリズムに任せるのがよいのか,ということをここ最近考えている.


今回はトップバッターだったので,他の方の発表もじっくり聞くことができた.場を思いっきり冷した状態でバトンタッチしてしまった @a_bicky さんはSVMと文字列カーネルについて紹介してくださった.実データについて適用されており,なぜうまくいったのか,文字列カーネルがどのような特徴を捉えているのか,という議論で盛り上がった.@hitoshi_ni さんは文書要約のチュートリアル発表.深入りはせずとも,門外漢の自分でもなんだか文書要約のトイプログラムくらい書けそうな気がするくらい素晴らしい発表.情報検索の母である故Karen Sparck Jones氏の名前が要約の文脈で出てきてびっくり.要約をやっていたなんて知らなかった.@stakemura さんの話は非公開の部分もあるので内容は割愛するとして,以前から勉強会でご一緒させて頂いたことがあるけれど,こんなに熱い方だったとは! ちょっと感動してしまいました.最後に @nokuno さんは翻訳のデコーダ部分について発表してくださった.予習も復習もしていないけれど,徐々に統計的機械翻訳についてわかってきたような気がする.自分でも勉強しないと..


勉強会の様子は@nokuno さんがまとめてくださっているのでそちらも参考に

教科書 & 文献

カーネル法に的を絞った和書は現在3冊が出版されている.どれも良書なのでとりあえず買っておけば本棚がかっこよくなるかもしれない.

  • [1] カーネル多変量解析
    • 専門家である産総研の赤穂氏による著書.まさにカーネル法のザ・入門書.
    • 個人的には理論から応用までちょうど良い粒度で書いてある.

カーネル多変量解析―非線形データ解析の新しい展開 (シリーズ確率と情報の科学)

カーネル多変量解析―非線形データ解析の新しい展開 (シリーズ確率と情報の科学)

カーネル法入門―正定値カーネルによるデータ解析 (シリーズ 多変量データの統計科学)

カーネル法入門―正定値カーネルによるデータ解析 (シリーズ 多変量データの統計科学)

  • [3] カーネル法によるパターン解析
    • 個人的にはよくぞ翻訳してくださいました! という本
    • アルゴリズムの疑似コードが多いので,つまみ食いしながら読める.
    • サポートベクターマシン入門」と同じ訳者.翻訳がおかしいという話も聞くが,個人的には翻訳の質は気にならない.専門書としては日本語の自然さよりも厳密さが大切なので,原書にない情報まで加えて丁寧に説明してくれるので,個人的にはこの方のファンだったりする.

カーネル法によるパターン解析

カーネル法によるパターン解析


その他の資料

良い資料はたくさんあるけれど,たいてい朱鷺の杜に書いてあるので,そちらにバトンタッチ!