聞けば一瞬聞かなければ一夏

今日から10月まで特に勉強会のない研究室。朝10時半に来て、朝ミーティングを行なう。8月は、基本的に毎日午前10時半に研究室に来て、みんなの前で

  • 昨日(まで)に何をしたか
  • 今日は何をする予定か

ということを数分ずつ報告してもらう予定(2人インターンシップに行っているので、最大で8名=30分あればよい)。

学生にありがちなのは「今回何をしたか」しか報告しないことなのだが、それだと継続的に前に進んでいかないので、「前回のTODOは何であったか」「TODOの進捗(前回からの差分)は何か」「次回までのTODOは何か」という3点は最低限盛り込んで話してもらうことを前期の進捗報告で研究室の学生にトレーニングしてもらった。それで特に弱いなと感じたのは「次回までのTODOは何か」を自分で考えて宣言することだったので、8月は毎日その練習をしてもらおうと思うのである。

11時から18時まで大半の時間を研究室で過ごし、いろいろと質問に答える。聞けば一瞬、聞かなければ数週間、というようなのが自然言語処理ではものすごく多いので、知っている人にバンバン聞くとよい。あと、教えることが一番の勉強なので、同期や後輩に(いま「どう貴家」が候補に出てきてびっくりした……)学んだことをすぐ教えるのもいい。グループでやるのはそういうところがいいなぁ。

  • Moses(機械翻訳ツール)のデバッグの仕方。数字(BLEU)だけ見ていては、どこが問題なのか分からないので、ちゃんと翻訳された実例を見る。あまりに結果がおかしい場合、データの前処理に失敗していることがほとんど。
  • SRILM(言語モデル)でn-gram言語モデルを作る方法。スムージングのアルゴリズムや、シェルスクリプトについて理解する。エラー文字列でぐぐるとだいたいメーリングリストとかFAQが引っかかる(ほとんどは英語で書かれている)。
  • word2vec でクラスタリングする方法。想定しない結果であったとき、アルゴリズムから見当をつけ、ソースコードやマニュアルを見て原因を突き止める。
  • CRF++ で系列ラベリングする方法。正則化とは何か。素性テンプレートとは何か。モデルをテキストで出力させ、意図通りに展開されていて、期待通りに重みが学習されているのか見る。

(少なくともここ10年の)自然言語処理の独学が難しいのは、アルゴリズムの問題とツールの問題が絡まっていて、アルゴリズムを理解するには機械学習(数学)の知識が、ツールを理解するにはプログラミングの知識が必要で、それをクリアしたうえで自然言語処理固有の問題(高次元スパース性、系列や木・グラフといった構造学習、言語学的な意味や文法の話などなど)があるので、一部だけ取り出す、といったことが難しいからだろうか。

そういえば[twitter:@tanichu]さんの「イラストで学ぶ人工知能概論」が近日出るらしい。

イラストで学ぶ 人工知能概論 (KS情報科学専門書)

イラストで学ぶ 人工知能概論 (KS情報科学専門書)

このシリーズは(基本的に)学部生向けに書かれているので、突然この本だけを読んでも理解できるようになっているのが非常によい。このシリーズのどの本も、必ずしもイラストが理解の助けになっていない(たとえばアルゴリズムを提案した人の絵が書いてあって、吹き出しで説明しているとか?)のだが、イラストがある、ということで、手に取る人を増やすということには多大なる貢献をしている(本は積ん読にする人も多いし)ので、今後もがんばってほしいと思っている。

自然言語処理の部分は少し読ませてもらったが、要素技術について必要十分に網羅されていて、最近のトピックもさりげなく入っているし、グラフの探索のように前のほうの章で導入した内容と関連づけて説明しているので、学部1-2年生で自然言語処理に興味がある人がいたら、この本を勧めようかな?