数式が分かれば研究のためのプログラムは書けたも同然

朝、親知らずの消毒のために歯医者へ。もうかさぶたも順調に回復しているので、あとは様子を見てください、とのことで、歯を抜いた穴にガーゼを詰めることもなく終了。確かにもう冷たいものを飲んだり食べたりしないかぎり、痛くないし、治ってきた感あり (親知らずを抜いた翌日にひどい風邪をもらったので、治りが悪かっただけかもしれない)。

NAIST情報科学研究科を今年受験する人向けの スプリングセミナーのページ を公開。受講希望の受付も同時に始めたので、興味ある人は応募していただけるとありがたい。ちなみに松本研の募集テーマは以下。

研究テーマ: 英作文における前置詞誤りの検出
定員: 3
期間: 2日間 (3月8-9日)
受け入れ条件: PythonFizzBuzz が書けること
概要: 英語を書くときどの前置詞を書けばいいのか迷った経験はありませんか? 言語処理技術を用いて、前置詞の誤りの自動検出に挑戦してみましょう。

なんか FizzBuzz が書けること、と書いてしまったせいか、希望者が少なかったらどうしよう、と思わなくもないのだが、FizzBuzz が書けない人は恐らくプログラミングの実習は (TA がつきっきりでやるのでもなければ) 難しいと思われるので、仕方ないかなぁ。FizzBuzz という単語を知らないで、無駄に怖がって敬遠してしまう人がいないかどうかが心配なのだが (知らない方は検索していただけると……)、これがどういう数式で書けるかが分かったら、あと書くことは (効率やきれいかどうかなどを無視すれば) ほぼ自明で、たぶんここが「簡単」だと思える人は、情報系の研究に向いていると思う。(効率とか他の人が見たときの印象だとか考えて「難しい」と思う人もいるだろうが、そういう人は研究よりはエンジニアに向いているのではないかと思う。そもそも全く書けない人は研究にもエンジニアリングにも向いていないだろう。向いていないからならないほうがいい、と言いたいわけではないが)

昼はひたすら添削。言語処理学会年次大会の原稿と修士論文の原稿が五月雨式に来るので、最適なスケジューリングをどのようにすればよいのか考える。とりあえず、手許にあるコメント待ち原稿リストを常に小さく保っていればいいだけなのだが……。

午後は研究会。elga-s さんの進捗と shuhei-k くんの進捗。elga-s さんの話は昨日聞いていたので安心して聞けたが、shuhei-k くんの話はほとんど脈絡がないのでいつも緊張感が走る。とはいえ、今回はちゃんと数式が書いてあったので、なにがしたいのかは分かり、あとは実装すればいいだけということも明らかになったので、一安心。

自然言語処理のプログラムが書けない」という苦手意識がある人、思うにプログラムを書くこと自体に難があるのではなく、数式を書く (読む) ことに問題があるのではないかと思う。あるいは、数式をコード (プログラム) に落とし込む、という能力。イメージで語るのは口がうまい人には雑作もないことだろうが (逆に口が下手に人にはものすごい苦行だと思うが……)、結局数式が書けたら (空間効率や時間効率を度外視すると) プログラミングのほとんどは解けていて、
あとはそれを使っている言語の形に翻訳するだけである。ここに苦手意識のある人は、ぜひ [twitter:@shuyo] さんの 数式をnumpyに落とし込むコツを一読されるとよい。ターゲットは numpy (Python) なのだが、論文に書かれていることを自分が研究に使っているプログラミング言語に翻訳する着眼点は言語によらないものなので、大変参考になる。

夕方から共著の論文の執筆。少しずつサーベイからやっているのでけっこう時間がかかる (このためにこれまでに読んだ論文をちまちまスキャンしていた)。最近自分で論文を書いていなかったが (報告書や研究計画書を代わりに書いているが)、やはりゼロから生み出すのはなかなかしんどい。今回は1.5pほど書くだけなのでまだましだが、これは片手間にできるものではないなぁ。とはいえ、実験のセクションより前の部分は、基本的には研究計画書を書くのとほとんど変わらないので、そこまで大変ではないのだが……。

結局午前3時まで原稿を書いたりなんだりとしていて、帰って寝たのは午前4時。とうとう自分も〆切前の様相を呈してきた。とりあえず、今週末から来週にかけてが正念場 (絶対風邪を引いてはいけない) である。