By Many Wonderful Artists

人工知能(AI)関連の話題で頻出するワード「ニューラルネットワーク」および「ディープラーニング」について、何がどのように動作しているのかを簡単かつわかりやすく解説するムービー「How Does Deep Learning Work?」がYouTube上で公開されています。

How Does Deep Learning Work? | Two Minute Papers #24 - YouTube

ニューラルネットワークは人間の脳のルーズモデルをコンピューター上のプログラミングで再現したものです。言い換えるなら、我々人類が知りうる人間の脳内の働きにインスピレーションを受けたもの、と言えるかもしれません。



そのニューラルネットワークを画像認識タスクと2次元のグラフを例に解説します。まずは以下の平面上にある曲線を見てみます。この曲線は点の集合であり、この点は画像や音、あるいは他の入力データと考えてください。



曲線は赤色と青色の2つがありますが、これらはそれぞれ異なる分類を示していると考えればOK。今回は赤色を「電車」、青色を「ウサギ」とします。



曲線は基本的に電車やウサギといった画像の集まりであり、これらの限られたデータを使ってネットワークを訓練します。その後、平面上に新しい点、つまりは新しい画像が出現したとします。この新しい画像は電車の画像なのか、それともウサギの画像なのか、これを判断するのがアルゴリズムの仕事です。

「分類問題」と呼ばれるこの問題の単純であまり優れているとは言い難い解決方法が、平面を線で半分に分けることです。赤色の領域に属する点は電車の画像、青色の領域に属する点はウサギの画像、と分類されるわけです。



しかし、以下の画像を見るとわかるように、初めから引いてある青色の線ですら赤色の領域に少しだけ侵入してしまっています。これはつまり、一部のウサギの画像が電車の画像と誤分類されてしまうことを意味しています。



もしかすると誤分類される画像はウサギか電車か判別しづらいものかも。



たった1本の線で2つの画像を分類することはできないように思えますが、単純なニューラルネットワークだけを使用して画像を分類しようとした場合にも同じような結果になると考えられます。

それではこんな風に曲線を使って2つの境界を決めるというのはどうでしょうか?



あるいは、アルゴリズムで平面を変形させることで1本の線で分類を行うこともできます。この変形がうまくいけば、2つの分類はより正確に行えるようになります。



さらに、例えば以下のような絡まったらせん状の線の場合、1本の線で分類することは難しいように思えます。



しかし、平面を正しく歪ませれば容易に1本の線での分類が可能です。



この方法にはいくつかのルールがあります。例えば、らせん状の線の片方を取り除いて他の場所に置いておく、といったことは不可能です。これらの変形は位相変換でなければなりません。位相変換であるということは重要な構造を引き裂かないことを意味しており、変形した解決策が元の形に戻っても意味のあるものになるということです。

ここまでニューラルネットワークについて簡単に説明してきましたが、ここからはディープラーニングについての解説がスタート。ニューラルネットワークが隠れた複数のレイヤーを持ち、より効果的にデータの内部表現を作成することができるようになったものがディープラーニングです。



ニューラルネットワークの例え話で出てきた画像認識タスクの場合、レイヤーを重ねていくことでエッジ検出器が表示され、エッジの組合わせとしてオブジェクトパーツが生成され、後のレイヤーオブジェクトパーツの組合わせによりオブジェクトモデルが作成されます。



以下のような円の中に異なる分類の円がある場合。



ニューラルネットワークがこれを1本の線で区切ろうと平面を歪ませても、1本の線できれいに分類することは難しいものです。







これを1本の線で分類しようとすると、直感的に考えると、赤色の部分を指で押し込めば赤色と青色の領域を1本の線で区切ることができそうです。



3次元のマッピングで見ると分類可能であることがよくわかります。



これを2次元で見てみるとこんな感じ。1本の線で赤色と青色の領域を区別できることがわかります。このような変換を自由に行うことができれば、一見分類が難しそうなものも簡単に分類できるというわけ。



さらにデータが複雑に絡み合っていて最良の解決策がどれか分からない場合もあります。



そんな場合に役立つのが結び目理論で、これは絡み合ったりほどけたりするものについての学問です。結び目理論はこの種の問題を研究するのに役立ち、最終的には交通標識を認識して自動運転カーを設計するのにも役立つ可能性があるとのこと。



ニューロンの数が少なく、レイヤーもひとつしかない場合、複雑な分類はうまくいきませんが……



ニューロンとレイヤーを増やすと、複雑な分類も簡単に可能になります。これがニューラルネットワークとディープラーニングの違い、というわけです。