ディープラーニングは概念にメッシュをかける仕組み
東大の人工知能の講座は、日曜夜に第6回の宿題を提出した。全12回なので、半分が終わったことになる。今回は、Denoising Autoencoderというテーマだった。
そして、ようやくディープラーニングについて、雰囲気がわかってきた。つまりディープラーニングというのは、「概念にメッシュをかける仕組み」なんだな。
デジタルカメラを例に考えるとわかりやすい。
デジタルカメラは、「光にメッシュをかける仕組み」だ。レンズを通して入ってくる光を、メッシュ(網の目)で区切り、1ピクセルごとに色を決めて保存する。
最初に普及したデジカメQV-10は、30万画素だった。つまりこの機械は、レンズ越しに見える世界を30万の点に区切って保存する装置だ。約20年後に発売されたiPhone 6sのカメラは1200万画素だ。画面の解像度は、640☓480ドットから4032 x 3024ドットになった。同じ景色を、それだけ細かく切り取るようになったわけだ。
ディープラーニングでは、ネコと犬の見分け方、将棋をうまく指す方法、などの「概念」にメッシュをかけることができる。「ネコと犬の見分け方」は、人間が聞くとかんたんそうだが、言葉で説明しようとすると(つまり、プログラムに書こうとすると)、かなり難しい。
人間は、ネコとはなにか、犬とはなにか、ということをもやっとした「概念」として持っている。ディープラーニングでは、多層のニューラルネットワークをつかって、この概念に網をかけて、その形状を明らかにすることができるのだ。
ニューラルネットワークというのは、以下のような形をしている(wikipediaより引用)。
基本、ユニット(◯の部分)を増やしたり、層を増やしていくと、より難しい概念を獲得できるようになる。ただ、複雑な形状にすると、学習が難しくなる。それが、近年のコンピューティングパワーの進化と、開発された計算手法の進化で、そこが可能になってきている。
と、よく説明されているのだが、やっぱり実際に手でプログラムを書くとそこがよくわかった。
たとえば、3層でうまくいったものを、4層にしたら学習率が下がってしまったりする。なんでそうなるのか不思議だったのだが、計算を重ねると値が小さくなってうまく扱えなくなったり、逆にコンピュータの扱える値を超えて計算がオーバーフローしたりするのだ。
そして、層をもっと深くしたりして、ややこしいニューラルネットワークをつくると、手元のMacbookだと、計算にやたらと時間がかかる。それが、東大のGPUマシンにログインして計算すると爆速で終わるのだ。
ということで、自宅にGPUマシン、いるんじゃないかな。この話の1回目に登場した廣瀬くんが暴力的な機械を買っていてうらやましい。
読んでくださってありがとうございます。サポートいただいたお金は、noteの他のクリエイターのサポートに使わせていただきますね。