誕生から10年がたち、ディープラーニングは著しく複雑化しました。一定の規模のディープラーニングでは、もう全体がどのような理屈で動いているかを明確に説明できる人はいないでしょう。
もちろん細部や個別のしくみは理解できているのですが、それらを組み合わせると、なぜ今のパフォーマンスを発揮できるのかが、わからないのです。
ディープラーニングは、その存在自体が黒魔術のようになっている、と言うこともできます。
またディープラーニングにおいては、層がディープになってもちゃんと機能するよう、無数の黒魔術も生み出されました。
これらも人工知能の進化に欠かすことのできない技術なのですが、そのすべてを伝えるのは本連載の趣旨から外れてしまいます。ここでは1つだけ、「ドロップアウト」という黒魔術の概要だけを皆さんにシェアしてみましょう。
ドロップアウトとは、一言でいえばディープラーニングの「過学習」を防ぐ技術です。過学習は、ディープラーニングを理解するうえで重要な概念なので、そこから説明しますね。
ディープラーニングは本当にすごい武器です。正確にはすごすぎる武器です。画像として認識できるものなら、どんな入力と出力のペアでも学習できるのでは、と言われるくらいです。
先ほどのディープラーニングの例ではコップの判別でしたが、コップ以外のどんなものでも判別できるようになるはずだ、ということです。
でも、入力と出力のペアを丸暗記させてしまってはダメですよね。第6回でもお話ししたように、どれほど丸暗記したところで、未知の将棋の局面や未知のコップの画像がこれからいくらでも出てくるのですから。
しかし、ディープラーニングは放っておくと「丸暗記」で解決しようとします。5万個のコップの写真(データ)があったら、その5万個の形をそのまま暗記し、絶対に間違えないように努力してしまいます。この状態を専門用語で「過学習」と言うのです。
図2-4 ディープラーニングの難題「過学習」
能力がありすぎるディープラーニングは問題を「丸暗記」して解いてしまう。
丸暗記したディープラーニングは、学習した問題を非常によく解けるようになります。一方で、まったく未知の問題には、丸暗記すればするほど正解率が落ちていきます。これがすべての人工知能の研究者が恐れる「過学習」の状態です。
テストや受験のときの記憶が蘇った方もいると思いますが、人間でもコンピュータでも、丸暗記はダメなんですね。
では、どのようにすれば「過学習」を防げばよいでしょうか。
それには、ディープラーニングが暗記ではなく、特徴を抽出するように仕向ければいいのです。つまり、何かしらの本質をつかめる状態にするとよいということです。
そこで出てくるのがドロップアウトです。
ドロップアウトという言葉は、日本語の会話でもたまに使われますよね。組織などから「ドロップ」する、つまる「抜ける」という意味です。
それと同じく、ディープラーニングが学習中に、ところどころ参加しているニューロンをランダムにドロップアウトさせるのです(ここで言うニューロンは、ディープラーニングの各層における、人間の脳のニューロンに当たるものを意味しています)。
図2-5 ドロップアウトのイメージ
ディープラーニングの学習中に、 ランダムに素子を離脱(ドロップアウト)させる。
学習中にランダムにニューロンをドロップアウトさせられることは、当たり前ですがディープラーニング側にとって厳しい状態です。とても「丸暗記」はできません。そこでディープラーニングは、必死になって入力の特徴をつかもうとするのです。
このように書くと「そんなものか」と思われるかもしれませんが、なぜドロップアウトさせると、ディープラーニングは必死になって入力の特徴をつかもうとするのか、正確な説明はとても難しい。まさにこれも黒魔術なのです。
力がありすぎるディープラーニングをわざと学習困難にして、逆にその実力が発揮できるようにする、というのはとてもおもしろい考え方ですよね。
(最後に付け足しで。ドロップアウトは、あくまで多数あるディープラーニングの黒魔術の1つです。しかし大筋では、ディープラーニングの黒魔術たちは過学習を防ぐことを大きな目標としているものが多いようです。)
今、ディープラーニングは どれくらいのことができるのか?
cakesは定額読み放題のコンテンツ配信サイトです。簡単なお手続きで、サイト内のすべての記事を読むことができます。cakesには他にも以下のような記事があります。
cakesは定額読み放題のコンテンツ配信サイトです。簡単なお手続きで、サイト内のすべての記事を読むことができます。cakesには他にも以下のような記事があります。