見出し画像

GPUが使いたくて朝早く家を出るひと

東大の人工知能の公開講座は、ようやく、ディプラーニングの本命分野と言われるCNN(畳み込みニューラルネットワーク)までたどりついた。学習課題は相変わらずMNISTの手書きの数字認識をやっているのだけれど、認識率もとうとう99%を超えた。

たとえばこんな文字(左上は6だ)を99%以上識別できるということなので、人間よりもうまくできているレベルといってもいいかもしれない。

今回使っているCNNという技術は、下図のように画像の表面をスキャンするように表面をなぞっていき、ニューラルネットワークを学習させる仕組みだ。(UFLDL Tutorial, Stanford universityより引用)

「畳込み」というけれど、あんまり畳み込んでるっぽくなくて、それよりも、ブラウン管の「走査線」に似てるなと思った(例が古くてすみません)。

数回前の講義から、プログラムの開発にはGoogleの人工知能開発ライブラリのTensorFlowを使うようになっている。ただこれが、あんまり使いやすくないのだ。というのは、こういうライブラリは、人間が楽に開発できるように作られているのが普通なのだが、TensorFlowは逆だ。コンピュータが計算しやすいように、人間がプログラムを書いてあげるようなつくりになっている。

最初は、なんじゃこりゃと思ったのだけれど、やっているうちにどうしてこうなってるのかわかってきた。本格的なディープラーニングを行おうと思うと、とにかく計算量が膨大になる。だからすこしでも速く終えるために、ぜんぶまとめて処理を書いて、それを一気にGPUにわたしてあげたいのだ。

実際、このあたりの課題から普通のPCで処理するのはきびしくなってきた。今回の宿題は、結局、会社のGPUマシン(TITAN X搭載)で動作確認して提出したんだけど、それでも13分以上かかった。ぼくのMacbook Proで計算すると、たぶん40倍くらいかかるから、9時間もかかることになる!

あと、思ったのは、CPUとかGPUをぶんまわすのって、気持ちいいんだよね。ぼくは自動車には興味がないんだけど、スピードを出して走るひとの気持ちってこんな感じかもなと思う。計算をはじめるとブーンってファンが回って、アクティビティモニタが振り切れるのを見てると「謎の半導体メーカー、すごいぜ!って」なる。

もうひとつ、予想外の出来事もあった。いま会社にしかGPUマシンがないので、朝、はやく会社にいきたくてしかたがなくなるのだ。ぼくとしたことがめずらしく、最近しばしば一番乗りで出社をカマしております。家にGPUマシンを買おうと思ったけど、あとでいいかも。

読んでくださってありがとうございます。サポートいただいたお金は、noteの他のクリエイターのサポートに使わせていただきますね。