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

2016年08月20日

できるだけわかりやすく説明してみるという実験:(もしかしたらこの世界で僕だけが気づいているのかもしれないこと)学習曲線と世界

今から僕は20年以上前に気づいたことをできるだけわかりやすく説明してみようと思う。
もしかしたらこれはこの世界で僕だけが気づいていることなのかも知れない。
「もしかしたらこれはこの世界で僕だけが気づいていることなのかも知れない」ということは実はこの世界の誰にでもあって、ただほとんどの人はそれを誰にも伝えないまま、その「自分だけが知っていること」を誰にも伝えることなく、それを墓まで抱いてこの世を去るのかも知れない。

おそらくほとんどの人はそうなのだろう。 
この世界は無数の無名の哲学者たちにあふれている。
そしてその無名の哲学者たちは、(非常に残念なことに)この世で得ることができたある"知"を後世に残すことなく、自分の脳内に残したままこの世を去っていく。

親切にも「自分だけが知っていること」を何らかの方法でこの世に残してくれた人については、その智慧をこの人類の財産として、後世に生きる人々がこの世界を捉えるための手がかりとすることができるように、という愛を、後世に生きる人々に残したことになる。

すなわち、哲学は常に愛にもとづいている。

さて、前置きが長くなってしまったが、ここからは僕が後世に残す愛のためのステージだ。
もしかしたらこの世界で僕だけが気づいているのかも知れないあることについて、できるだけわかりやすく書いてみようと思う。
 

それは20年以上前に僕がニューラルネットの研究をしていた時に気づいたこと。
なのでもしかしたら、ニューラルネットの研究をしている人たちは皆、これに気づいているのかも知れない。
人工的に作られた、"人間の脳を模倣したプログラムが学習する過程で、世界をどう捉えるか"ということについて。

ニューラルネットが与えられた課題について学習するとき、その学習は単純に一方向に進むものではない。
たとえば人間が書いた文字を認識するように学習する場合、あたえられた「あ い う え お」の手書き文字を正しく認識するまでには、ああでもないこうでもないが繰り返される。
学習回数を横軸、正解との誤差を縦軸に取ると、下記で表されるグラフのように学習が進められる。

学習曲線1

横軸に時間(=学習回数)、縦軸にニューラルネットの実際の出力と正解値との誤差をとるこのグラフに描かれる学習過程を表す曲線は「誤差曲線(あるいは「学習曲線」)」と呼ばれる。
学習回数が繰り返されるたびにニューラルネットが出力する値と正解値の誤差が小さくなり、その誤差は限りなく0に近づいていく。

ここで注目すべきことは、この誤差曲線が単純に0に近づいていく、つまり一方向に学習を進めていく、ということではなく、紆余曲折しながら、時には一旦誤差が増える方向に戻ったりしながら、最終的には誤差=0に近づいていくように学習を進める、ということである。

ニューラルネットは、入力値と、そこで期待される出力値の対(これを「教師信号」という)を複数渡され、それらの入力値ー出力値の組み合わせ通りに正しく出力値を出せるように内部状態を変化させていく。つまり、誤差がより少なくなるように内部状態を変化させていくのである。
これをニューラルネットでは「学習」と呼ぶ。

最初に教師信号として複数の入力値ー出力値の対を与えられたニューラルネットは、それらすべての入力値について正しい出力値を出力することができるように、そこにある規則性を類推することになる。
ここで類推されている規則性については、我々がそのニューラルネットの内部状態を見てもおそらくどういう類推をしているのか、ということは分からないものである。
とにかくこのとき、ニューラルネットは与えられた教師信号に何らかの規則性を見出し、それらについて誤差がすくなくなるように学習をしていく。
学習曲線2

たとえば教師信号として、100対の入力値ー出力値を与えたとすると、それら100対すべてについて誤差が限りなく0となるように学習できることは、よっぽど単純な問題を解かせようとする場合を除いて稀である。
普通は100対中90対ぐらいまでは正解を出せるが、残りの10対については正解値を出力できない、ということが起こりうる。
つまり最初にニューラルネットが類推した規則性が間違っていたということである。
このとき、誤差曲線は下図の②のような”谷"に入ってしまった、と考えることができる。

学習曲線3
この②の状態から抜け出すためには、それまで類推していたことが誤りであったということを認め、学習をし直す必要がある。
それまでほぼ正しく正解値を出力できていた90対について一旦あきらめ、類推していた規則性を一旦壊す必要がある。
このため、誤差曲線は一旦誤差を増やす方向に振れることになる。
学習曲線4
一旦誤差を増やすという犠牲を負った後、ふたたびニューラルネットは与えられた100対全てに対して正解値を出力できるように学習を進めていく。

こうしてニューラルネットは与えられた100対の教師信号について、さっきまでは正しい値を出力できなかった10対についても正しく正解が出せるように誤差曲線を下っていく。

あるいは、一旦限りなく誤差=0となるまで学習したニューラルネットに、101個目の新たな教師信号を与えた場合に、それがそれまでの100個について学習した内容とは異なるということが起こりうる。
つまり、101個目については類推した規則性が当てはまらない、ということである。
この場合についても、ニューラルネットは上記と同様に、それまで学習した内容を一旦破壊して、101個全てに対して正しい値を出力できるように学習し直そうとする。

このようにしてニューラルネットは数々の山と谷を乗り越え、誤差=0を目指そうとする。

そしてさらにまた"谷"はやってくる。

先ほどの谷(図中の②)よりかは誤差が少なくなってはいるが、今度は深い谷である。
学習曲線5
 この谷は深いので、それを乗り越えるためにこれまで学習したことを再度破壊して学習し直す、ということは難しい。
この深い谷を乗り越えた先には、先ほどと同じようにさらに誤差を小さくすることができる、という保証もない。
ここで深い谷に陥ったニューラルネットは学習を止めてしまうことになる。

学習曲線6
これがかつてニューラルネットの研究の限界と言われていたローカル・ミニマム(Local Minumum:局所的最低値)問題である。
ニューラルネットは、学習によって得られた入力値ー出力値の誤差が最少となる状態を、本来はもっと小さな誤差値がありうるにもかかわらず、そこで学習をやめてしまう、という問題である。
これはニューラルネットの研究の限界である、と言われてきた。

さて、僕は20年以上前にこのような研究をしていて、他のニューラルネット研究者と同様にこのローカル・ミニマム問題に絶望したわけであるが、ここで僕はある哲学的な気づきを得た。
僕はそれについて何度か人に説明しようとしたのだが、それが伝わることはなかった。
ここで僕はもう一度それを何とかわかりやすく伝えようと考えている。

この世界のすべての事象はカオスである。
そしてそのカオスを何とか捉えようとして、(時には無理矢理)そこに規則性を見出そうとする試みこそが科学である。
つまり我々がこのカオスを捉えようとするときには入力値と出力値からなる教師信号を与えられているだけで、僕たちがそれに対して正しい答えを出すことができる「科学的な理論」を得たとしても、それはローカル・ミニマムかも知れない。

時折世間を賑わす「科学では解明出来ないこと」ということが、「オカルト」として出てくることがあるが、それらをも説明しうる「理論」を導くためには、今我々が陥っている「科学」という名の深い谷を一旦登ってみる必要があるのかも知れない。

逆に言えば、僕は科学をそれほど信用していない、 と書いたが、つまり今の科学というものも所詮は「深い谷」なのでは、と疑っている、ということである。

このようなことに僕はニューラルネットの研究を通じて気づくことになったが、世のニューラルネット研究者は皆同じことを思っているのだろうか?


OLランキングで1位になりたい!賛同していただける方は下記をクリック!
にほんブログ村 OL日記ブログ ドジOLへ

コメントする

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