人工知能プログラミングするなら Scala

午前中は UT Cafe でまったり過ごす。構内にこういうカフェがあるのはいいなー。かなりお金を使ってしまいそうだが……。UT Cafe では残念ながら mobilepoint はつながらなかったので、Pocket Wifi でつなぐ。ちなみに東大の総合図書館の中では e-mobile がつながらなかったので、火曜日は図書館で少し作業したかったのにできなかった。速いのはいいのだが、使えるエリアが限定されているなぁ。

午後は東京電機大学理工学部にお邪魔する。キャンパスがどこか実はいまいち分かっていなかったのだが、池袋から東武東上線の急行で約50分、高坂もしくは北坂戸というのが最寄り駅になる。

スクールバスが高坂および北坂戸それぞれから10分間隔くらいでずっと出ているし、高坂駅からは路線バスも出ているので、スクールバス7分路線バス10分というのもそこまで不便ではない。歩くと40分くらいかかるらしいが……。NAIST もスクールバス出してもらえれば学外から来る人に便利になっていいと思うのだが、ほとんどの学生は構内に住んでいるし、出しても閑散としているだろうから(あと歩いて20分だったらまだ歩ける距離だ)、なかなか難しいのだろう。(スクールバスを出すのと単身寮の数を増やすのだと、単身寮の数を増やしてくれるほうが総合的にメリットあるように思う)

バスがキャンパスに近づくと、山をかき分け中に入っていき、ちょうど本厚木にある NTT コミュニケーション科学基礎研究所のような感じ。校舎本体や周辺を見ると、なんかこれ見たことあるなぁと思ったが、Stanford と同じような感じ。Stanford より当然緑は遥かに多いが、構内を車で移動していたり、スクールバスが出ていたり(教員専用のスクールバスがあるそうで)、これは思いのほかいい環境なんじゃなかろうか。

今回東京電機大学にお邪魔したのは大学学部で研究室が同じ(科学史・科学哲学分科)だった高橋達二くんに、数ヶ月前ひょっこりメールをもらって、東京に来るなら久しぶりに会おうよ、という話をしていて、もし水曜日までいるなら「人工知能プログラミング」という彼の授業で特別講師として話してくれないか、と依頼されたからであった。実は水曜日は研究室の全体ミーティングの日なので、そちらを休んでいいのか分からなかったが、松本先生に相談すると「こういう機会があったらぜひどんどん行ってください」とのことだったので、来ることにしたのだった。(いま考えると、着任前は大学での仕事がどれくらいか全く分からなかったし、不安だったなぁ)

この「人工知能プログラミング」という授業も、人工知能に関する授業ではあるのだが、実際に手を動かして人工知能を作ってみる、という内容で、この学部の授業には珍しく、100人以上受講生がいるそうで、実際自分の回までに出てきているのは(実習の授業なのに)125人いたとのことで、気が引き締まる。自分はそんなに真面目な学生ではなかったし……

実は講義の1時間前にキャンパスについたので、彼の研究室に先にお邪魔して(彼自身は授業があった)、彼の学生さんたちにそれぞれの研究内容について話してもらった。彼はいま助教なのだが、この4月から研究室を持ったらしく、修士の学生さんが2人、外国人の研究生が1人、学部生の人たちも入れると全部で10人くらい、わいわいと楽しく研究をしているみたい。修士の学生さんたちなんかは話してみると相当優秀で、がんばっているのだなぁと感動する。彼は担当しているコマ数が異常(一度計算したことがあるのだが、同じ助教なのに自分の50倍の時間の授業を受け持っている)なのに、研究成果も挙げていてすごい。

たとえば、ある学生さんの研究は、人工知能の領域ではmulti-armed bandit problemという問題があるのだが、こういうタスク、人間は非常によくできるそうなのだが、機械はあまりうまくないそうで、そのギャップを埋める研究をしたりしているそうで。

授業では、「人工知能プログラミング」の前半の講義で探索について話したらしいので、グラフの探索アルゴリズムかな漢字変換や単語の分かち書き機械翻訳などいろんなところで使われていますよー、いま学んでいるアルゴリズムは実際に使われているものですよー、という話をする。90分と聞いていたのでスライド70枚くらい作ってみたのだが、けっこういろいろ喋っていたら時間が足りず、インターンシップについて宣伝するつもりが時間が足りずに失敗。一応事前にスライドを配布資料として配ってくれていたので、インターンシップに関する質問も質疑応答タイムのときに出てきたりしたので、補足説明でいろいろ話せたのはよかった。理論的な話もかなり食いつきがよく、質問が次々上がって感激する。高橋くんもその学生さんも「いつもの授業と違ってすごく質問が多くてよかった」と言っていたが、一応役目は果たせたかな……。

ちなみに「人工知能プログラミング」では Scala を使って実習するらしく、Scala いいよ Scala と宣伝された。

Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)

Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)

Java との相性もいいらしいので、Hadoop 上で Scala 使うのも悪くないのかも? Java で Hadoop を書くのは筋が悪いという話はその通りだと思うのだが、できる範囲でできることをするしかないのかなと……。

授業終了後彼の研究室に移動して、彼自身の研究について、そしてこれからの研究ビジョンについて聞く。先日日記にも書いた行動経済学のように、人間がどのように推論しているか、どのように認知しているか、というのが彼の研究テーマなのだが、簡単なブラウザ程度で実行できる実験をデザインし、学生100人くらいを被験者にやってもらい、それで論文を書く、というサイクルは斬新で驚いた。いまでは Amazon Mechanical Turk みたいに安くデータを作ってもらうサービスがいろいろ出てきたが、無料で参加してくれる学生に敵うものはないだろう(笑)

終電の時間を気にしつつ学生さんたちと一緒にご飯を食べ、@totobook2 さんと名刺交換をしたり(笑) 電車に駆け込む。いろいろ私立大学と国立大学の違いについて話したり、どういう研究をこれからするべきかなんて話をしたり、話題は尽きないなぁ。やはりお互い哲学出身だと問題意識を共有しているからだろうか。

また機会があったらいろんな場所に行きたいので、講義資料は常にアップデートしておくことにしよう(笑) 本日はどうもありがとうございました〜