【読了時間:約 10分

 ”ディープラーニング”がもたらしたブレイクスルー

今や毎日のように人工知能に関するニュースが飛び込んできますが、その中でも特に注目を集めているのが”ディープラーニング”です。

研究開発を進める企業として最も有名な例はGoogleでしょうか。最近もGoogleがディープラーニングによる画像認識を体験できるwebインタフェースを公開し、話題を集めました。

(『グーグルの人工知能を利用できるWebインタフェースが登場』)

では、ディープラーニングとは一体何なのでしょうか。

本稿ではこのディープラーニングについて、そのイメージをつかむことに重点を置いて説明していきたいと思います。

 

 人間の神経構造を模したニューラルネットワークの発展版

ディープラーニングの考えのもととなっているニューラルネットワークは、人間の脳神経回路を真似することによってデータを分類しようというアイデアに基づくアルゴリズムです。

人間の脳はニューロン(神経細胞)のネットワークで構成されていて、あるニューロンはほかのニューロンとつながったシナプスから電気刺激をニューロン同士の繋がるの強さに応じて受け取り、その電気が一定以上たまると発火して、次のニューロンに電気刺激を伝えます。

これを数学的に表現すると、あるニューロンがほかのニューロンから0か1の値を受け取り、その値に何らかの重みをかけて足し合わせるという計算をしていると表現できます。

ここでいう重みというのは、ニューロン同士のつながりの強さを表していると考えられます。

受け取った値の合計がある一定の値(閾値)を超えると1になり、超えなければ0になります。そして、1の値になったニューロンは再び次のニューロンに値を受け渡していくのです。

一連の流れの中で肝となるのは重みづけで、人間のニューロンが学習によってシナプスの結合強度を変化させるように、学習する過程で重みづけを変化させ、最適な値を出力するように調整することで、精度を高めていきます。

neural4

ディープラーニングがニューラルネットワークと異なる最大の点は、何層ものネットワークを積み重ねているという部分です。

ニューラルネットワークを構成する際、今までも当然何層にもネットワークを重ねるという試みは行われてきました。しかし、3層以上にすると精度が向上しないという問題を抱えていたのです。正解と予測とのズレから重み付けを修正していくのですが、ネットワークが深すぎて重み付け調整が届かなくなってしまうのが原因でした。

 

 自己符号化機を何層も重ねていく

この問題を解決したのがディープラーニングのアルゴリズムの根幹を成す自己符号化機と多層学習です。

自己符号化機では、出力層と入力層のどちらにも学習させたいデータの正解例を読み込ませます。この行為が目的としているのは学習させたいデータを表す特徴量として、よりたくさんの情報を持っている特徴量を作り出すことです。

neural2

入力層と出力層のデータは同じですが、真ん中の隠れ層を二つと比べてデータの数を敢えて小さくします。例えば1000個の特徴量で表現されるデータに対して隠れ層を100個で構成するようにすれば、データを100個の特徴量で表現出来るようにニューラルネットワークは重みを調整します。こうすることで特徴量を徐々に圧縮していくことが出来ます。

また自己符号化機ではこの特徴量圧縮を行う際に、少しだけデータにノイズを加えます。本来のデータとは少しだけ違う形に敢えて変換してしまいますが、そうることでより一層圧縮された特徴量を、本来のデータを非常に正確に表すものにすることが出来るのです。

そして圧縮された特徴量を持つ隠れ層は、次の層においてまた出力層及び入力層として用いられます。そしてまた間にある隠れ層において特徴量は圧縮され、更に数は少なくなりますが学習させたいデータを正確に表現する特徴量が得られます。

neural3

これを何回も何回も重ねて行うことで、最終的に特徴量としてベストなものだけが残ることになるのです。

 

 従来のアルゴリズムが踏み込めなかった領域へ

機械学習という分野においては、コンピュータにたくさんのデータに関するパラメータ(特徴量)を学習させて、それを基にして未知データを分類させます。下に示す図は、機械学習における”教師なし学習”の概念図です。

job10

この時、精度を高めるためには適したパラメータをコンピュータに学習させなくてはなりません。それは人間が選択するのですが、多すぎても少なすぎても精度が落ちてしまうため、職人技の領域になっていました。

この状況にディープラーニングはブレイクスルーをもたらしました。先述したように自己符号化機を何層も積み重ねることで、分類させたいデータについて、どのようなパラメータで学習すれば精度が良くなるのかコンピュータ自身が最適化することを可能にしたのです。

ディープラーニングがしていることは私たち人間がしている学習と同じように考えることが出来ます。

例えば、私たちが友人の顔を覚える時のことを考えてみましょう。

顔について、様々な特徴量が考えられるかと思います。目の大きさ、髪の長さ、肌の色、口の形、 耳の大きさ、鼻の形などなど意外と顔というものは大量の情報を持っているのです。これら全てが特徴量だと言えます。

そして私たち人間はこの特徴量を全て用いて顔を認識しているわけではないと思います。顔全体の輪郭で判断することもあれば目の大きさ、髪型などで判断することもあるでしょう。

顔を認識する際に全ての特徴量を用いるのではなく、私たちは自分の中で納得のいく形で友人それぞれの顔を認識し分けています。

ディープラーニングは、アルゴリズムで特徴量の圧縮を行うという形で同じ学習を可能にしたのです。

 

東京大学の松尾豊准教授が記された『人工知能は人間を超えるか-ディープラーニングの先にあるもの-』によれば、ディープラーニングはそれまで人間がするしかなかった領域に足を踏み込んだアルゴリズムだとされています。

“ディープラーニングは、データをもとに、コンピュータが自ら特徴量をつくり出す。人間が特徴量を設計するのではなく、コンピュータが自ら高次の特徴量を獲得し、それをもとに画像を分類できるようになる。ディープラーニングによって、これまで人間が介在しなければならなかった領域に、ついに人工知能が一歩踏み込んだのだ。”

(p.147より引用)

 

 ディープラーニングが画像認識コンペティションで見せた実力

ディープラーニングが革新的なアルゴリズムとして認識され始めたのは、2012年のIRSVRCという画像認識のコンペティションでした。たくさんの画像をコンピュータに分類させ、その精度を競う大会で、ディープラーニングを活用したトロント大学のヒントン教授率いるチーム(“SuperVision”)が2位以下に圧倒的な差をつけて勝利したのです。

下に示す図は画像認識の誤差率を示しています。ディープラーニングを用いたSuperVisionが2位以下を圧倒しています。

convolutional-neural-network-cv-5-638

(SlideShare,ConvolutionalNeuralNetwork@CV勉強会関東, より引用)

 

 ディープラーニングによって概念学習が可能に

ディープラーニングはそれまでの機械学習では到達できなかった高次元のものを学習することを可能にしたと言われています。

その代表例が、Googleがコンピュータに猫を認識させたという事例です。

2012年にGoogleのXLabが発表したところによれば、Youtubeの動画からランダムに選んだ大量の画像データをディープラーニングによってコンピュータに読み込ませたところ、猫の特徴量を示すネットワークを構築することが出来たと報告されています。

勿論これは教師なし学習なので、コンピュータ側はその選別した特徴量が示すものを「猫」と分かっているわけではありません。画像を読み込ませて学習させていく中で、最終的に残ったのが猫を示す画像だったということです。これはつまり、猫という概念を示すものを抽出することに成功した、その意味でGoogleは「コンピュータに猫という概念を認識させることに成功した」と述べていると考えられます。

20130608212518

 

 ディープラーニングがもたらす可能性

ディープラーニングによって高次元の、抽象的なものについての学習が可能になったことを、松尾豊氏は著書の中で次のように語っています。

ディープラーニングの登場は、少なくとも画像や音声という分野において、「データをもとに何を特徴表現すべきか」をコンピュータが自動的に獲得することができるという可能性を示している。簡単な特徴量をコンピュータが自ら見つけ出し、それをもとに高次の特徴量を見つけ出す。その特徴量を使って表される概念を獲得し、その概念を使って知識を記述するという、人工知能の最大の難関に、ひとつの道が示されたのだ。

もちろん、対象は画像や音声だけではないし、これだけですべての状況における「特徴表現の問題」が解決されたとはとても思えない。しかし、きわめて重要なひとつのブレークスルーを与えているのは間違いない。「人間の知能がプログラムで実現できないはずがない」と思って、人工知能の研究はおよそ60年前にスタートした。いままでそれが実現できなかったのは、特徴表現の獲得が大きな壁となって立ちふさがっていたからだ。ところが、そこにひと筋の光明が差し始めている。暗い洞窟の先に、いままで見えなかった光が届き始めた。できなかったことには理由があり、それが解消されかけているのだとしたら、科学的立場としては、基本テーゼに立ち返り、「人間の知能がプログラムで実現できないはずはない」という立場をとるべきではないだろうか。

いったん人工知能のアルゴリズムが実現すれば、人間の知能を大きく凌駕する人工知能が登場するのは想像に難くない。少なくとも、私の定義では、特徴量を学習する能力と、特徴量を使ったモデル獲得の能力が、人間よりもきわめて高いコンピュータは実現可能であり、与えられた予測問題を人間よりもより正確に解くことができるはずである。それは人間から見ても、きわめて知的に映るはずだ。

今後のディープラーニングを巡る技術発展の末にどのような未来が待ち受けているのでしょうか。注目が集まります。

Photo by Pixabay [参考文献]

Credoをフォローする