2016年08月21日

できるだけわかりやすく説明してみるという実験:ニューラルネットの汎化能力

ニューラルネットによる学習は、平たく言ってしまえば「与えられた教師信号に見られる一定のパターンを見つける」ということである。
そこで与えられた入力値と出力値の対に対して正しく答えが出せるように内部構造を変化させていく。これを「学習」と呼んでいる。
ニューラルネットは一度で与えられた入力値ー出力値の対を学習するのではなく、その誤差を少しずつ減らすようにして、誤差曲線を描く。 

ここでなぜニューラルネットは一度で学習をしないのか?という疑問がわくかもしれない。
普通のコンピューターの処理では、値を記憶するということは一度で済むはずである。

この答えはニューラルネットワークの大きな特徴である「汎化能力」にある。



汎化能力によって、与えられた教師信号をそのまま覚えるのではなく、そこから教師信号にある上位概念を探そうとする。それによって、学習時には与えなかった問題についても正しい答えを出力できるようになるのだ。

もう少しわかりやすく説明するために、あるニューラルネットに手書き文字を学習させる例をあげてみよう。

あるニューラルネットに「あ い う え お」の手書き文字を学習させるとする。
このとき、教師信号としては、10人が書いたそれぞれの文字を入力値とし、その文字を指す記号(たとえば「あ」のときは"0"、「い」のときは"1"...といった感じ)を出力値とする。
この組み合わせを数百組与える。

手書き文字を書いた10人はそれぞれ個性的な字を書くのだが、なんとかこのニューラルネットはそれらを正しく認識できるようになった。

ここで新たに11人目の人物が登場する。

彼は他の10人に負けないほど特徴的な文字を書くのだが、これまでの10人に鍛えられたニューラルネットは、それまで学習のための教師信号になかった11人目が書いた文字も正しく認識できる。

ニューラルネットは、教師信号にあった10人が書いた文字そのものを記憶したのではなく、それらにみられる特徴を類推することで手書き文字を認識するようになった、ということである。
つまり汎化能力とはこういうことだ。

この汎化能力を発揮するために、学習は一度でできるものではない。

そしてここで大切なことは、ここで得られた「汎化された概念」つまり、与えられた教師信号から類推した特徴というものは、ニューラルネットの内部状態を解析しても簡単に分かるものではない。
このことはかつてニューラルネットがオカルトである、というとぼけた批判を受ける元になったのである。

また、もし11人目が書いた手書き文字がまったく認識できず、まったく違った答えを出力する、ということもありうる。この場合は、10人の手書き文字から発見した特徴というものが、このニューラルネットの誤解であり、その中に全然違うルールを発見していた、ということである。

たとえば、最初の10人の手書き文字のデータを作る時に使っていた鉛筆と、11人目が書いた鉛筆が違う種類であった場合。
このとき、最初の10人の手書き文字を学習する段階で、我々には分からないその鉛筆が持つある特徴があって、それを手がかりに「あ い う え お」を識別できる、ということがあるかも知れない。
そうするとそれまで使っていたものとは違う鉛筆で書いた11人目の文字にはその手がかりがなくなり、正しい答えを出力できなくなる、ということだ。
以上は飽く迄も「そういうこともありうる」という飛躍した例ではあるが。

そしてそのような場合は、一度10人の手書き文字について正しく出力できるようになったニューラルネットは、それまでに得た類推を一旦破壊し、誤差曲線の谷を登ることで別の類推をしようとする

ものごとの道理として考えられていることが、ある日その道理にそぐわないものが現れたときには、一度その道理を破壊して、別の道理を見つけるということがニューラルネットの中でも起こっているのである。
 

OLランキングで1位になりたい!賛同していただける方は下記をクリック!

コメントする

名前
URL
 
  絵文字