週1のチュートリアルでお勉強

午前中、情報工学演習(データ構造とアルゴリズム演習)の授業。今回から実際のマシンを使った実習をするのだが、今年完成した新実験棟での初めての授業で、入り方が分からない。カードを事前にもらっておかないといけない、ということが分かったのだが、そんなことになっていたのか。守衛さんに言わなくても入れるのは改善だと思うが、全ての建物でこうなるといいのにな。

午後は論文紹介。

  • Alexander M. Rush, Sumit Chopra, Jason Weston. A Neural Attention Model for Sentence Summarization. EMNLP 2015.

を紹介してもらう。[twitter:@kiyukuta] さんがSlideshare に分かりやすいまとめを上げてくださっている(しかし、非常に解説が分かりやすいのだが、どうやったらこういう風に論文を読み解けるようになるのだろうか?)ので、自分が付け加えることはないのだが、要は Attention Model というのはソフトなアライメントだと考えることができる(ので、機械翻訳でも使うことができるし、任意のアライメントが必要なタスクで使うことができる)、というのがこの論文でよく分かる。

しかしまだよく分からないのは文長が異なるときにどのように処理しているかで、横着せず論文をちゃんと読まないと分からないか……(文長が同じなら誤差を計算するのは簡単だが、文長が違うとどちらかを埋めたりしないと合わなくなってしまうし、埋め方で全然結果が変わってしまいそう)。

夕方は研究会。今学期は例年と趣向を変えて、研究室インターンシップで研究室に配属された B3 の人たちにも研究会に出てもらっているので、在学生にはチュートリアルや論文紹介(サーベイ報告)をしてもらっている。NAIST 松本研では「Dレク」と呼ばれていて、博士後期課程の学生が何かチュートリアルをする(チュートリアルおよびサーベイ報告の意図としては、博士論文の1章に相当するくらいの関連研究をまとめる機会、という話を聞いたことがある)ものであったが、うちは B3 の人向けなので、B4 も含めて全員にやってもらうのであった。

研究室内で開催されるチュートリアル、聞いている人のためのものかと思う学生が多いと思うのだが(学部まで、講義を聞いたりする経験が長いと、そう考えがち)、どちらかというとチュートリアルをやることで話す方の人が勉強するため、というのが主眼である(なので、誰かのスライドを見つけてきて使い回すのではなく、自分でスライドを作ってほしい。これが決定的に苦手な人もいるのだが、企業ではコピペした資料は社外に出せなかったりするので、今の内からちゃんと意識して作れるようになった方がいい)。

その1回目が今回だったのだが、トップバッターは SVM のマージン最大化についてのチュートリアル。いや、そもそも SVM を知らないどころか機械学習について勉強していない相手に突然これは無理では、と(みんなが)思ったが、当然20分やそこらで話せるものではなく、1時間程度かかる。説明すると理解が深まる、という意味では、自分の理解したいことをこうやって話すのは確かに適切な機会の利用方法ではあるが、もう少し相手のレベルを考えてもらったほうがいいのでは(汗)

あとは word2vec のチュートリアル。特に B3 向けという内容ではなかったが、Java で word2vec を実装した、という話で、階層的 softmax について自分もちゃんと理解していなかったので、勉強になり、よかった。

やはりチュートリアルをしようと思うと、それなりに準備しないとダメなんだろうなぁ、と思った1日であった。なぜか知らないが、うちの研究室、もっと準備してきてほしいところ、そこまで準備しないで(つまり準備に時間を使わないで)来る人多いのだが、準備ができていないからと延期を願い出たり、バックれたりしないので、その点は偉いと思う。