こんにちは、江端智一です。今回は前回に引き続き、現在進行中の第3次AIブームの最大のけん引技術である「ニューラルネットワーク」の、「深層学習(ディープラーニング)」についてお話したいと思います。
以前にもお話しましたが、私は、第2次AIブームの真只中にあって、大学でAI研究のチームを立ち上げ(させられ)、ゼロからプログラムを書いて、ニューラルネットワークをテーマとして論文を執筆して大学を卒業した身の上です。
ですので、他の人より、かなり楽勝で、ニューラルネットワークの新しい学習方式である「深層学習」を理解できるだろう ―― と、気楽に考えていました。
しかし、私は、この「深層学習」を"学習"するために、かなりの時間を費やしたのですが、これが、どうにも理解できないのです。
私を混迷の縁に追いやったのが、どこでも頻出してくる、以下の2つの写真です。
ニューラルネットワークは、データを取り扱うことはできます。しかし、それは信号としての数値のみです。ニューラルネットワークそのものに、画像データを、画像データの形式のまま、各層に転送する能力などありません。
画像の上の写真は、まるでニューロの各層が画像を映像として転送しているかのような錯覚を与えますが ―― そんなこと、人間の脳だってやっていません(人間の脳のシナプスも、単なるニューロンの発火信号をリレーしているだけです)
ところが、一部の学術系の論文やプレゼンテーションの資料を除き、明らかに、その事実を放置して、誤った記載をしています。
もっとも、理解していなくても、結果的にそれが正しい内容になっていれば問題はありません。しかし、これらの記事はニューラルネットワークの事実を歪めている内容となっています。
さらに問題なのが、以下の写真です。
この写真が掲載されている記事を読んでいると、「ニューラルネットワークが、中間層にこのような特徴が現われる画像を、自動的に抽出している」というように読めます。
うそです。
これは、畳み込みネットワーク(Convolutional Neural Network : CNN)が、このような特徴を出るような画像を取り出す前処理の説明に使っているものです。CNNでは、小さい画像ピクセルの集合から、そのピクセルの集合の纏めとなる情報を纏めて、さらに次の層に渡しています(後述します)。
そういう処理をしているのですから、最初の層で「部分」の画像が出てきて、最後の層で「全体」の画像がでてくるのは当たり前です。そういう風に作っているのですから。ニューラルネットワークが、自動的に部分から全体の画像特徴を抽出している訳ではありません。
にもかかわらず、これを「ニューラルネットが自動的に部分から全体への自動抽出を実行している」と記載している記事が散見されます。ただ、仕方ないともいえるかもしれません。なにしろ私自身も、つい先日までそう信じていたくらいですから。
私は、自分でCNNのサンプルプログラムをプログラミングするまで、このうそを見破ることができませんでした。
上の写真は、特定の画像を与えた時に、最終層でニューロンが発火した時に、それを逆方向から探して、どの「前処理をした画像」に反応をしていたのかを調べて、該当するたくさんの画像を、単に並べただけのものです(後述します)。
Copyright © ITmedia, Inc. All Rights Reserved.