Hatena::ブログ(Diary)

shi3zの長文日記 RSSフィード Twitter

2015-05-31

ディープラーニングがなんなのか簡単に知りたい人はこれを読もう 09:39

 Googleがディープラーニングを利用して写真を勝手に整理する機能を付けたことでディープラーニングが一気に身近に感じられるようになった。


 僕も最近ブログでディープラーニングの話をすることが多いせいか、「ディープラーニングについて簡単に要約して教えて」と言われるんだが、そもそも人工知能の話は簡単に要約できるほど単純ではない。


 僕だってニューラルネットとか、20年前から自分で実験したり作ったりしてたわけだから、そういう時代の流れを経験してないと本当のところは理解できないのではないかと思う。が、まあビジネスパーソンの皆様は結論だけ知りたがるのよね。結局、何ができるのって。


 まあとりあえず読めば間違いないのはこの本


 ではあるけれども、これすら長い、読むのがめんどくせーという人もいるみたいなので、ディープラーニングの原理ではなく、トレンドと概要だけざっくり掴みたいのであれば今月号の日経エレクトロニクスがいい。


http://gyazo.com/0c72798ecd1c6f0752b3d9c88278ed07.png

 

 松尾さんの本よりも技術的に踏み込んだ内容でありながら、現状の状況を図や表でうまく整理している。

 なんか表がおかしい部分もあるけど(TorchとCuDNNが同列になっていたり)。


 あと、似たような感じでライトに読めそうなのはこれ



 ディープラーニングには何が出来て何が出来ないのか、ということをざっくり説明すると、まず学習と利用に分けられる。

http://i.gyazo.com/55ca4e6767bc73cd5f75c2a437580119.png


 ディープラーニングの典型的な利用例である画像の学習は上図のような形で行われる(技術的にはコンボリューショナルニューラルネットワーク等を使用する)。


 有名なのは0から9までの数字を手書きしたパターンを無数に読み込ませて判別するMNISTというテストだけど、別にこれはなんでもいい。


 同じ原理でなんでも学習できる。

 ポイントは、予め分類されたデータを学習させておくと、ニューラルネットワークが勝手に特徴を学習していくれるということ。


 この学習にはべらぼうな時間とメモリーが必要で、まあ自宅のパソコンでやるのは無理がある。

 オシャンティーなMacBookあたりでかるーく学習させようと思ったら地獄を見る。一週間ブン回しても学習が終わらないという状況が容易にやってくるのだ。


 高速なSSDNVIDIAの最新GPU、最低でも16GB以上のメモリーを持ったマシンを使ってようやく初歩的な学習を実用的な速度で行うことができる。


ASUSTek NVIDIA GeForce GTX TITAN X搭載ビデオカード GTXTITANX-12GD5

ASUSTek NVIDIA GeForce GTX TITAN X搭載ビデオカード GTXTITANX-12GD5


 特に今イチオシはNVIDIAのGeForce TITAN X。

 CUDAコアは3072と、Amazon Web Servicesのg2サーバの二倍以上、そしてメモリー(VRAM)が12GBと、まさにディープラーニングのためにあるかのような大盤振る舞い。


 GeForce GTX980のメモリは4Gなので、TITAN Xはなんと3倍。

 これが16万円で買えるとかお買い得すぎる。


 ただ、NVIDIAの橋本和幸さんによると、TITAN Xは全世界的に品不足らしいので今買わないと手に入らないかもしれない。



 次に、ニューラルネットワークを利用するときは下図のようなイメージになる。


http://gyazo.com/566d176d9aa16df4cc782d2bea32a00a.png



 学習済みのニューラルネットワークに、全く未知の(つまり学習してない)データを見せると、ニューラルネットワークはそれが過去に学習したどのタイプの分類に近いか推定する。


 学習されたニューラルネットワークを利用するためには、そこまで高度なコンピューティングパワーはいらない。


 iPhoneでも動くくらい

 だから簡単にどんなことができるのか体験したければアプリをダウンロードすればいい


D

Gigaom | Democratizing deep learning with an iPhone app and open source SDK

 

 

 今流行ってるディープラーニングは画像が主流(従来技術では画像認識が一番難しかった)だが、学習できるものは画像だけに限らない。


 とにかくざっくりぼんやりしたデータを分類しておけば特徴を学習してくれるので、音声だろうがテキストだろうが学習できる。


 Googleの画像判別は、画像認識のためのコンボリューションニューラルネットワーク(CNN)を前段に、それを文章化するためのリカレントニューラルネットワーク(RNN)を後段に持ってきている。


 CNNに代表されるニューラルネットワークは内部状態を持たず、学習結果がネットワークそのものに保存される。つまり、ある時点のニューラルネットワークに同じ入力を与えれば常に同じ出力が返ってくる。


 これに対し、RNNは内部状態を持ち、同じ入力を与えても文脈によって出力が異なる。

 イメージ的にはCNNが数学上の関数に近い(同じ入力に対しては常に同じ答え)のに対し、RNNはコンピュータや動物に近い。



 僕は単なるソフトウェアにお金を払う時代は20世紀に終わったと考えている。

 21世紀の最初の10年は、ソフトウェアではなく体験に対してお金を払う時代になった。


 ニコニコ動画がいい例で、ニコニコ動画では動画コンテンツそのものを販売してはいない。

 動画を快適に見る権利だけが販売されている。


 他に「体験に課金」しているのはネットゲームやソーシャルゲームが挙げられる。また、ネットワークコンテンツではないが、AKB48やOK GOのようにコンテンツそのものを無料で配信し、ライブに集客するという構造(ライブへの参加=体験)や、握手券(という握手体験)を販売することに成功した。これも体験に対する課金である。


 2010年から2015年までは、ネット上の土地(つまりクラウド・ストレージ)を販売するビジネスを各社が展開し始めた。

 

 iCloudしかり、Dropboxしかり、OneDriveしかり。

 しかしついにGoogleが容量無制限の画像ストレージサービスを始めた。


 つまり、これからはネットの「土地」は事実上無料になるのである。

 実際、ブログサービスは無料で使えるものが多い。僕もはてなダイアリープラスを実質的に無料で使っている。


 クラウド上の1TBと、ローカルの1TBでは、まだまだローカルの方が安い。

 この差は永遠に埋まらないかもしれない。

 むしろ問題なのは回線で、しかし回線に関しては競争が激しいので今はユーザからは事実上サンクコストとして無視されている。



 ソフトはタダ、土地もタダ、となると、もはや我々ソフトウェアエンジニアやソフトウェア企業はどうやって生き残ればいいのか。まさかアイドルをプロデュースするわけにもいくまい。


 ということは、これからの10年はどうなっていくのかというと、ひとつの仮説として、ニューラルネットワークだけが価値を持つ時代が到来するのではないかと思う。



 なぜならニューラルネットワークを教育するには依然として膨大な計算資源とマンパワーを必要とするからだ。

 

 

 Googleがかつて猫を認識するニューラルネットワークを作った時には、1000台のコンピュータと1億の費用が掛かったという。


 今は同じことはもっと安くできるかもしれないが、それ以前にコンピュータが学習するためのデータセットを揃えるのは極めて大変である。


 ここに単純だが膨大なマンパワーが必要となり、こうして得られたニューラルネットワークはその存在そのものが大きな財産になるだろう。


 

 そしてニューラルネットワークは学習し続けることで価値を増していくことができる。

 ニューラルネットワークを利用する場合にはある時点のニューラルネットワークのスナップショットをダウンロードすれば良いが、それが学習し続けるためには膨大な計算資源を維持する必要があり、ソフトウェアの本質的な価値は、そうしたニューラルネットワークが学習し続ける環境を維持することにのみ集約されていくのかもしれない。


 そうすることによって、人工知能が本質的な価値を持つ時代がようやく到来する。

 技術的特異点(シンギュラリティ)の到来が益々現実味を増してきた。


※追記 2016/9/30

 この投稿から1年と少しが経ち、僕もこの本を書いた松尾先生に会いに行ってこんな本を書きました。

 たった一年で凄い変化です。

 そして僕は自分の経営する会社UEIをAI専業会社に改組しました(http://uei.co.jp)

 AIに興味がある人、自分の仕事に活かしてみたい人、ご相談はお気軽に