数式を出さない方がいい場合と出した方がいい場合

午前中は自然言語処理の授業。予習としてこの授業では Coursera で公開されている Stanford の講義を見てきてもらっている。毎週40分〜1時間くらいなので、基礎英語を聞くより簡単だし、スライドもあるので理解しやすい(字幕をつけることもできる)と思うのだが、学生的にはどうなんだろうか……。将来国際会議で発表したり聴講したりすることを考えると、これくらいの速度で英語を聞く練習をしておいたほうがいいと思うのだが、こういうの見ない人は見ないだろうしなぁ。

演習では各人の書いてきたコードをみんなで確認する。基本的には先週の復習だが、書いたプログラムを説明する、というのも大事な能力なので(もうそういうのはいいよ、という人はそもそも授業に来ないだろうし)、この授業でみんな練習してほしいと考えている。

お昼からSLP(自然言語処理の教科書)の輪読。ロジスティック回帰の式の導出をしてくれたりする。機械学習の勉強会を今学期していないので、ときどきはこういう数式を扱うような機会があるのはよいことである。結局機械学習が関係すると「こんな感じ」というイメージだけで理解することは不可能どころか不正確である場合が往々にしてあり、ちゃんと数式と用語や記号の定義を確認しないと意味がないのである。(このあたりが苦手な学生は、そもそも機械学習を研究テーマに選ばないだろうけど)

午後はDL(深層学習)勉強会である。今週は人工知能学会誌の深層学習の連載記事の2回目「多層ニューラルネットワークによる深層表現の学習」を紹介してもらう。先週は restricted Boltzmann machines(RBM)の話だったが今週は autoencoder(自己符号化器)の話。どんなことをしているのかは分かるのだが、実際使うときにどういうふうにやるのか、分からないなぁ。発表の中で Theano のデモをしてくれたのは、とてもよかった。けっこうソースコードも読みやすいし、これはなにかできそうな雰囲気。あと、自然言語処理が専門ではない人に話すなら数式を出せないかもしれないが、研究室はそうではないので、ちゃんと数式を出してくれると圧倒的に分かりやすいし、分からない場合も、分からないということが分かるので、分かった気になる、という事態を防ぐことができる。

夕方はいくつか研究の相談。タスクが決まっている人には、どういうデータで何をすればいいのか、というアドバイスをしたり、タスクもデータも決まっている人には具体的にどういう実験をすればいいかの助言をしたり。タスクが決まっていない人にはまずタスクを決めようか、という話をするが、人によって進捗具合が違うし、切羽詰まり具合も異なり(B4/M1/M2で最終〆切と要求水準が違い、さらに現在の状況とこれからの進むスピードの見積もりも違う)、スケジュール感もまちまちだし、一般化しにくい。進んでいる人を見て焦ったり、逆に進んでいない人を見てあれでもいいのかと思ったり、両方ありうるが、周囲の状況に関わらず自分のことをやっていれば、最終的には大きな成果につながるのではないかと思うし、淡々と手を動かすのがいいのではないかな。