東大のディープラーニング公開講座がヤバくていろいろ考えさせられた件
1カ月ほど前から、東京大学の松尾研のディープラーニング公開講座に行っている。
ネットで募集していたのであわてて申し込んだら、とんでもない数の人が集まっていて熱気がすごい。学部生、院生、社会人、あわせて300人以上が同時に授業を受けている。
初回こそ、人工知能概論のような話だったけれど、2回目以降はものすごい速度で授業が進む。そして宿題の量と質もすごい。2回と3回目の授業だけで、普通の学校の半年分くらいの内容になっている気がする。東大、ほんとにやべーよ。
毎回、授業の冒頭は「ふんふん、そうか」とはじまるのだけれど、終わり間近に大量のサンプルコードを見せられて、それをすごい勢いで説明され、最後にゴツイ宿題が出る。授業終了後は、ポカーンってなる(授業中にぜんぶ理解しているひと、どれくらいいるんだろう)。
友人の物書堂の社長の広瀬くん(iPhone辞書アプリ開発の大御所!)も、たまたまいっしょに講義を受けていて、いつも隣にすわって勉強している。毎回、終了後に二人で「どうなってるんだ……」と言いながら帰ることになる。
でも「ぜんぜんわかんねーよ」とかいいながら、廣瀬くんはたいていその日のうちに宿題を終える(こういうやつ、学生時代にもいたよね)。ぼくはピースオブケイクのCEOであるから、CTOのkonpyu氏に泣きついたりしつつ、なんとか1週間かけて終えている(宿題を提出するだけ、学生時代からだいぶ進歩した)。
第3回の宿題の締切は、いまこれを書いている日曜日の夜なんだけど、手書き数字を識別するプログラムを、k-NNという学習アルゴリズムで書けという内容だ。東大の専用マシンをオンラインで操作してプログラムを投稿し、「60分以内で計算が終わるよう作りなさい」というものなんだけど、なんとか30分程度で計算が終わるものができた。認識率も97%を超えて、その旨を昨日の夜にFacebookに投稿した。
そしたら廣瀬くんからすぐレスがついた。
笑うしかない。なんで10倍も速いのか。でも、プログラミングってやつは、こういうものなのだ。実力差が出すぎる。
くやしいのでいろいろ調べてるんだけど、おもしろいなあと思う。というのは、コーディングにはNumPyというPython用の数値計算ライブラリを使うんだけど、高速化を意識すると、メモリの配置とかCPUの仕様まで意識してプログラミングをする感じになる。
プログラミング言語の歴史を、すっごく大まかに言うと、ずっとCPUとかメモリを隠蔽する「高級思考」で進化してきたのに、人工知能という大量リソースを必要とする分野で、逆戻りしちゃってるのだ。
30年前とか20年前の、アセンブラとかC言語でプログラミングをしているころにもどったみたいで、不思議な気持ちになる。「低級言語」の知識は不滅なのか、それとも、これが最後のそういう機会か。どっちなんだろうね。
次回は、なんで会社の代表のぼくがこんなことを自分でやっているのかを書こうかな。そんなことより経営しろとか、編集しろとか、メールの返事しろって言われそうだけど、ちゃんと理由があるのです。
* * *
それと、お知らせを。
ピースオブケイクでは、人工知能エンジニアを募集してます。データも、GPUも、解くべき課題も、ぜんぶあります。興味があるひとはこちらまで。