IT社員3人組によるリレーブログ

某IT企業に勤める同期3人が、日常で思ったことを記録していきます (twitter: @go_mount_blog)

DeepLearningってなんでこんなに流行ってるの?

どうも、Koheiです。

最近毎回、台風来てますねって言ってる気がします。

 

さて、今日は今を時めくDeep Learningについて書きたいと思います。

難しい理論や仕組みはいったん置いておいて、まずはDeepLearningが話題になったきかっかけやその特徴について話を中心にしていきたいと思います。

 

その前に、AIと機械学習ってよくわかんね。。。という方は下記の記事をどうぞ

go-mount.hatenablog.com

 

f:id:go-mount:20180824235510j:plain

2012年DeepLearningが巻き起こした震撼

事件はILSVRCという競技会で起こりました。

ILSVRCとは、ImageNet large scale visual recognition challengeの略で、簡単に言うと、AIを使って画像認識が正確にできるかを競うコンテストです。

サイトはこちら↓

ImageNet Large Scale Visual Recognition Competition 2012 (ILSVRC2012)

2012年のコンテストでは、1000種類120万枚の学習用の画像データを使って、15万枚の画像を正しく分類できるかが課題でした。

 

様々な研究者が必死に機械学習アルゴリズムを設計し、パラメータ調整することでコンマ数%の精度向上を狙っていた中、HintonらがDeepLearningを使った画像認識手法が2位以下に精度10%以上の差をつけてぶっちぎりで優勝しました。

 

10%以上の差をつけたというのは、かつてない衝撃で

「もうDeep Learningしかねえじゃん!」となって、翌年からILSVRCでは参加者のほとんどがDeep Learning使いだすくらいです

今やILSVRCはDeepLearningのワールドカップになっちゃってます。

 

当時の日本の研究者がこの結果を見たつぶやきが面白いのでLinkを張っておきます

togetter.com

 

 ちなみにそのときの分類結果の一部*1は下記のとおりです。

f:id:go-mount:20180824002609p:plain

*1.(Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. "Imagenet classification with deep convolutional neural networks." Advances in neural information processing systems. 2012)

画像の分類結果も、人間でも間違えそう…というものも多く、AIの進化を感じさせられます。

そのほかの結果も下記に公開されております。

.http://image-net.org/challenges/LSVRC/2012/supervision.pdf

 

Googleが猫の画像に反応するAIを作りあげる

画像認識の世界でざわつきが起こって数カ月、DeepLearningは一般のニュース記事でも話題を作りました。

 

www.rbbtoday.com

Googleは26日(現地時間)、同社の「Google X Labs」が人間の脳をシミュレーションする研究で大きな成果を挙げたと発表した。コンピューターが猫を認識する能力を自ら獲得することに成功したという

 「人間の脳をシミュレーションする」とありますが、これがDeep Learningのことを言っています。まだ当時はDeepLearningという言葉がメジャーではなかったので、脳のシミュレーションと書いているんだと思います。

 

世の中AIとかよくわかんね、って人もこの記事を読んだら

よくわかんねえけどGoogleのコンピュータが自ら猫を認識した!?すげー!!

みたいになるわけですね。こうしてAIやDeepLearningがお茶の間に浸透していきました。

 

ここでGoogleがやったことをざっくりまとめると、

youtubeからランダムに抽出した画像10million(ラベル付けなし)を使ってDeepLearningモデルを構築

1000台(16000CPU)のマシンで3日間計算させた

・人間の顔や、体、猫を高精度で判別するモデルと画像が生成された

 

つまり、大量データと巨大なコンピュータを使って、教師無し学習のクラスタリングで特定の画像を分類する画像判別モデルを生成した…ということなのです。

この辺だけ聞くと、まあ教師無し学習ね、って感じですが、

注目すべきは、特定の画像を高精度で判別するモデルと画像が生まれた、という点です。

 

例えば人の顔に反応する画像は下記のとおりです。

f:id:go-mount:20180824233619p:plain

google DeepLearingモデルが生成した人の顔を高精度で判別するモデル*2

(*2 Le, Quoc V. "Building high-level features using large scale unsupervised learning." Acoustics, Speech and Signal Processing (ICASSP), 2013 IEEE International Conference on. IEEE, 2013.

 

判別モデルが生成する画像を見てみると、確かに「人間っぽい」「猫っぽい」特徴が出ていたりします。コンピュータが人と思うのはこういう特徴か、というのが可視化されたわけです。

詳しくは下記のgoogleのオフィシャルブログでも見ることができるので、興味がある方はどうぞ

 

googleblog.blogspot.com

 

DeepLearningの特徴

 さて、この2つの事件でDeepLearningが何やらすごそうということが分かったのですが、結局のところこれまでの機械学習と何が違うんでしょうか

  

そのヒントは上の二つの記事にあります。

 

1. 曖昧な特徴を自動的に選んで正確にモデル化している

Googleの記事にもありますが、人の特徴を判別する画像、よくできています。

なんとなく人の顔の形を取ってるし、目の位置や鼻の位置も納得です。これは誰に教えられるでもなくDeepLearningでコンピュータが自動的に判断した特徴になります。

今回はDeepLearinigのアルゴリズムはざっくり省略していますが、DeepLearningはこうしたうまく明確化できない曖昧な特徴をモデル化するのに適しています

 

2. 大量データと大量の計算資源を使っている

1.ならではとも言えますが、やはり曖昧な特徴をうまくモデル化するために大量のデータと膨大な計算が必要になります。これまでの機械学習の方法とは違って、とにかく数で圧倒して特徴を計算させるスタイルに近いです。逆に言うと、少量で単純なデータの分類であれば、DeepLearningを使ううまみはあまりありません。

まとめ

ここまでDeepLearningが話題になったきっかけと、DeepLearningの特徴について簡単にまとめてみました。

アルゴリズムについてはほとんど語りませんでしたが、また次回、DeepLearningがなぜここまで高精度なモデルが作れるのか?という観点で書きたいと思います。

 

ではでは