一つだけでも成功すればいいタスクと一つだけでも失敗してはいけないタスク

朝は昨日書いた原稿をもう一度軽く読み直して印刷。プリントアウトしないと推敲できない性格なのである。あとはちょっと時間を置いてから再度見よう。

午前中はTAの表彰状の紙を探して右往左往。首都大の情報通信コースでは大学院生に実験や演習のTAをしてもらっているのだが、時給の割にはそこそこ負荷が高いようで、あまり成り手がいないそうである。履歴書にも書けるし、教えることで勉強にもなるし、一度くらいはやったらいいと思うのだが……。そこで、少しでもTAするインセンティブを上げるために、数年前からTAに感謝状を出すようにしたそうで、この感謝状の手配(誰が対象か調べ、教員経由で出席を依頼し、賞状の紙と額縁を発注して人数分印刷し、表彰式でコース長に手渡しするのを依頼し、当日の司会をする)がコース幹事の仕事なのであった。

お昼に研究室のメンバーの写真をプロのカメラマンが撮影してくれると聞いていたので学生を招集したのだが、撮影してもらえるのは教員だけだということで、そちらは遠慮して研究室のゼミの風景や研究の風景だけ撮ってもらう。研究の息抜きの風景も、と思ってみんなでマリオカートに興じる姿も収めてもらったが、どんな仕上がりになるかな?

午後は卒論の進捗報告。4人中1人が実験完了し、あとは論文にまとめる(書いていて追加の実験が必要になったりする可能性はあるが)だけ。残り3人は、実験しつつ論文も書きつつ、なのでちょっと大変だと思うが、お互い同期がいるというのは相談しやすいので、みんなでがんばってほしい。

夕方は卒論関係のプログラムのデバッグx2。けっこうみんな書けているのだが、NLPっぽくなるとしんどいのかな、とも思う。松本研にいたので最近まであまり意識しなかったが、自然言語処理のプログラミングって特殊な感じだしなぁ。機械学習の部分はブラックボックスと考えたとしても、少なくとも何が入力で何が出力なのか(タスク)を意識する必要がある、ということと、効率的なデータ構造(とアルゴリズム)にしないとデータ量によっては計算量爆発がすぐ起きる、というのが注意点かな?

あとプログラミングの8割はデータの前処理と後処理で、そこはあまり頭を使っても仕方ないので、とりあえずナイーブな方法でよいので最短で入力から出力が得られるパイプラインを作ってみて、それからひたすら色んなやり方をトライしてみるしかない、とか……。

研究開発のタスクはざっくり分けると「たくさん試して一つでも成功したものがあれば正解」という並列的なものと「可能性は無限に近くあるが、途中一つでも間違えると正解に到達しない」という直列的なものがあり、自然言語処理は前者のタスクが相対的に多いので、とにかく手を早く動かしてたくさん失敗するといい。形態素解析構文解析や統計的機械翻訳デコーダ(翻訳エンジンのコアの部分)のように、後者のタスク的な性格が強い分野もあるけど……。もちろん、そもそも正解があるかどうか分からないタスクもたくさんあるのだが、それはいろんなタスクを経験しないと境界線が分かってこないと思うし。

結果が出てくると楽しくなってくるので、できるだけ最初のタスクではちょっとした成果が出るようにしたほうがいいのかな、とも思ったりする。成果がなくても博士後期課程に進学して、コツコツと続けてしっかりとした研究をしている人もいるので、個人次第かもしれないが……。