2014.11.25
ディープラーニングとニューラルネットワーク・ラーニングの対比:ホワイトボード・ウォークスルー
By ユン・サンオク(MapR Technologies データサイエンティスト)
こんにちは、MapRのホワイトボード・ウォークスルーセッションにようこそ。Sungwook Yoonです。私は、MapRのデータサイエンティストで、プロフェッショナルサービスチームの一員です。今日はディープラーニングについてお話しようと思います。
ディープラーニングをご存知ですか?
あなたは以前にディープラーニングについて聞いたことがあるかもしれませんし、むしろ良いことなのですがその語句を全く聞いたことがないかもしれません。今日、ディープラーニングについてお話している理由はマシンラーニングについては沢山知っているが、ディープラーニングをニューラルネットワークと同じようなものと考えているデータサイエンティストの友人が何人かいるからです。10年ごとに、「ニューラルネットワーク」という語句が現れ、人気を集め、そして消えていきました。今回、私たちは沢山の競争をし、深い構造を得ました。それでは、ニューラルネットワークとディープラーニングの違いは何なのでしょうか?このウォークスルーセッションでそれらの違いを明らかにしたいと思います。
一般的に、マシンラーニングとは何なのかについて簡単にお話しておきましょう。マシンラーニングとはなんらかのインプットをして、アウトプットを得るということを意味しています。アウトプットからインプットを実際に生成するプロセスは完璧にはモデル化されていません。例えば、絵を猫と分類することについて考えてみましょう。あなたは絵を見て、そして猫であると認識しますが、どのようにして猫と認識しているのでしょうか?マシンラーニングはこのプロセスを完全に模倣しているわけではありません。むしろ、そのプロセスを抽象化し、それによりそのプロセスを回避し、そして絵が猫かそうでないかという分類を完了させる方法を見つけます。一般的に、マシンラーニングとはそのようなものです。
実際のプロセスはブラックボックスで、知ることはできません。しかし、マシンラーニングは実際のプロセスを再現することなく、それを推定する方法を持っています。
ニューラルネットワークはマシンラーニングにおけるモデリング手法の1つです。ニューラルネットワークには接続されたニューロンの層があるのが見て取れます。実は、それらは人間の脳の分析にヒントを得たものです。ニューロンとシナプス、ニューロン同士がお互いに接続しているということをおそらく聞いたことがあるでしょう。ニューラルネットワークは、まさに脳の仕組みを模倣しようとしています。脳の何十億というニューロンを正確にモデル化しようとしているものではありません。むしろ、単にそれを動作可能なものにしようとしているのです。ニューロンネットワークは以下のように機能します。インプットを入力すると、次の層に重みをかけて接続されます。これは、シナプスが重みをかけて接続され、そして、ニューロンがアウトプットを生成し、そのアウトプットが次のレベルに接続されるという一連のプロセスに類似しています。あなたが何かを感じたり触ったりしたとき、脳にそのインプットをが入力され、そのプロセスがネットワーク内でモデル化されます。
それでは、ニューラルネットワークを学ぶこととは何なのでしょうか?それは、ネットワークの重みを調整することを意味します。この構造は学ぶことができますが、非常に複雑で学ぶための真の手法は存在しません。学ぶ方法はいくつかあり、その構造を調整する手法は沢山ありますが、このトピックは取り扱いません。私たちはネットワークの重みを調整することに焦点を当てます。ここでの学習はボトムアップ式、すなわち、アウトプットからインプットへ向かうものです。インプットから導かれたアウトプットによって、アウトプットと推定するものが同じであるかどうかを確認します。もし、それが異なれば、間違いをおかしたということになるので、もう一度繰り返します。重みの更新は、間違いの量に基づいて行われます。その量は重みに反映され、一連の流れの前のほうまで伝播されます。これは逆伝播(バックプロパゲーション)と呼ばれ、アウトプットからインプットに向かっています。ニューラルネットワーク・ラーニングは上に述べたように機能します。
ディープラーニングはニューラルネットワーク・ラーニングとどのように異なるのでしょうか?ディープラーニングは同じラベルで、同じ構造を持っています。それでは、何が違うのでしょうか?ディープラーニングに適用される、概念上の発展の大きな核となるものがあります。単にインプットからアウトプットへ向かうというよりも、以下のように考えてみてください。猫を心のなかに思い浮かべ、その猫を描写しようとするということを想像してみてください。このプロセスは、逆向きです。従って、あなたは猫を想像して最終的に画素を生成するまで次のレベルのものを生成します。これが、ディープラーニングの基本的な概要になります。生成はボトムアップ式ですが、興味深いことに、学習は実際は逆向きです。つまり、インプットからアウトプットに向かいます。学習は連続する層の間で発生します。
調整された重みを基にインプットを次の層に移し、反対に、次の層からインプットを生成しようとします。ほとんど一致していれば、それ以上実行する必要はありません。
再構築されたものとインプットや次の層との間にギャップがあれば、重みを調整する必要があります。従って、ここでの学習はニューラルネットワークと比較したとき、全く反対のものです。
それはインプットを再構築しようとします。よって、全体のアイディアとしては、ニューラルネットワークを異なったものを学習するという考えから始まったネットワークや生成プロセスとみなすものです。
終了する前に、2つの点を明確にしておきたいと思います。1)この概念は、しばらくまわりにありました。グーグルが2年前に発表しましたが、グーグルはコンピュータが猫を識別できるようにするために16,000のCPUコアと10億ものつながりを使用しています。このプロジェクトは大々的に公表され、とても知られるようになりました。2)ディープラーニングは異なる語句と関係しています。オートエンコーダ、スパースコーディング、畳み込みニューラルネットワークといった語句はディープラーニングを意味しています。それでは、ありがとうございました。ツイッターのMapRアカウントをフォローしてください。