2016年10月19日
ニューラルネットの層とメタレベルの問題
前回の続き。
ニューラルネットが色々な人が書いた手書き文字を正しく認識する、ということは文字そのものを学習で覚えるというのではなくて、文字を一般化して学習する能力を持っている、ということである。
このことに注目した僕は、一般的に「論理的である」と考えられている「形態理論」、たとえば「左右対称性」などのような論理的に扱うことが考えられるような問題について、そこにゆらぎ、すなわちその論理性から外れる部分があったとしてもそれらを丸めて扱うことがニューラルネットには可能なのではないだろうか?という仮説に基づいて、それを僕は実験によって証明した。
結論としては、ニューラルネットは人間と同様、形態理論から少し外れる程度のゆらぎであれば、それらを含めて認識できるようになる、ということが分かった。
形そのものを扱う「手書き文字認識」にとって、 この「ゆらぎを含む形態理論認識」というものは、ひとつメタレベルの問題を扱っていることになるのではないだろうか?
ニューラルネットが色々な人が書いた手書き文字を正しく認識する、ということは文字そのものを学習で覚えるというのではなくて、文字を一般化して学習する能力を持っている、ということである。
このことに注目した僕は、一般的に「論理的である」と考えられている「形態理論」、たとえば「左右対称性」などのような論理的に扱うことが考えられるような問題について、そこにゆらぎ、すなわちその論理性から外れる部分があったとしてもそれらを丸めて扱うことがニューラルネットには可能なのではないだろうか?という仮説に基づいて、それを僕は実験によって証明した。
結論としては、ニューラルネットは人間と同様、形態理論から少し外れる程度のゆらぎであれば、それらを含めて認識できるようになる、ということが分かった。
形そのものを扱う「手書き文字認識」にとって、 この「ゆらぎを含む形態理論認識」というものは、ひとつメタレベルの問題を扱っていることになるのではないだろうか?
このことを最初から考えていた僕は、手書き文字で一般的に使われるニューラルネットの層を一段増やしてみることから始めた。
たとえば下図は中間層をひとつ持ち、入力層と出力層がある、3層のニューラルネットである。
このニューラルネットが手書き文字認識を学習する能力があるのだとすれば、この中間層をもうひとつ増やすことで、手書き文字認識のメタレベルに当たる問題である「ゆらぎを含んだ形態理論」を扱えるようになるのではないか?という仮説だった。
つまり下記のような構造を持ったニューラルネットである。

これは中間層を二つ持った4層構造のニューラルネットである。
入力層に入ったデータは、中間層の一層目で形態そのものを扱い、中間層の二層目でそのメタレベルの問題を扱うように学習するのではないだろうか?という仮説であった。
これは最初、うまくように見えたが、当時のコンピューターの能力では学習に時間がかかりすぎ、研究の結論にたどり着くまでの時間は現実ではないように見えた。
そこで、この学習を最適化しようと考えたわけだが、そのときに中間層を一層減らした3層構造のニューラルネットで色々と試してみることからやってみた。
ところがここで驚くべきことが起こった。
なんと、ただ試しにやってみた3層構造のニューラルネットはあっさりと「ゆらぎを含んだ形態理論」を学習してしまったのだ。
このことは、「一層目で形態を扱い、二層目でそのメタレベルの問題を扱う」という仮説をくつがえす、僕の研究にとっては大きな衝撃だった。
冷静になって考えてみると、そもそもものごとを「形態」と「そのメタレベルの問題」に分けて考えていたこと自体が「ゆらぎを含む問題を直感的に扱うニューラルネット」という発想から逸脱していたのかも知れない。与えられた問題を直感的に扱うということは、その学習済みのネットワークの内部を細かく調べたとしても、そこには「それをどういうロジックで認識できるようになったのか?」というものが言語的に見られるものではない。
つまりニューラルネットの構造を論理的に捉えようとしていたことが間違っていたのだ。
雑なたとえをするのであれば、人間の脳はを見たところで、その人が何を考えているのか?ということはわからないのと同様。(なんとなくこのたとえは間違っているような気もするが、、、)
これは今のディープラーニングが「特徴抽出」というところに重きをおいていることについても言えるような気がする。
3層構造のニューラルネットが、形態とそのメタレベルの問題を同じように扱える、ということは、すでにそれを言語的に説明することができないもののはずであるが、それを「特徴抽出」という還元的な手法でアプローチすることは本当に正しいことなのだろうか?という疑問を僕は持っている。
たとえば下図は中間層をひとつ持ち、入力層と出力層がある、3層のニューラルネットである。
このニューラルネットが手書き文字認識を学習する能力があるのだとすれば、この中間層をもうひとつ増やすことで、手書き文字認識のメタレベルに当たる問題である「ゆらぎを含んだ形態理論」を扱えるようになるのではないか?という仮説だった。
つまり下記のような構造を持ったニューラルネットである。

これは中間層を二つ持った4層構造のニューラルネットである。
入力層に入ったデータは、中間層の一層目で形態そのものを扱い、中間層の二層目でそのメタレベルの問題を扱うように学習するのではないだろうか?という仮説であった。
これは最初、うまくように見えたが、当時のコンピューターの能力では学習に時間がかかりすぎ、研究の結論にたどり着くまでの時間は現実ではないように見えた。
そこで、この学習を最適化しようと考えたわけだが、そのときに中間層を一層減らした3層構造のニューラルネットで色々と試してみることからやってみた。
ところがここで驚くべきことが起こった。
なんと、ただ試しにやってみた3層構造のニューラルネットはあっさりと「ゆらぎを含んだ形態理論」を学習してしまったのだ。
このことは、「一層目で形態を扱い、二層目でそのメタレベルの問題を扱う」という仮説をくつがえす、僕の研究にとっては大きな衝撃だった。
冷静になって考えてみると、そもそもものごとを「形態」と「そのメタレベルの問題」に分けて考えていたこと自体が「ゆらぎを含む問題を直感的に扱うニューラルネット」という発想から逸脱していたのかも知れない。与えられた問題を直感的に扱うということは、その学習済みのネットワークの内部を細かく調べたとしても、そこには「それをどういうロジックで認識できるようになったのか?」というものが言語的に見られるものではない。
つまりニューラルネットの構造を論理的に捉えようとしていたことが間違っていたのだ。
雑なたとえをするのであれば、人間の脳はを見たところで、その人が何を考えているのか?ということはわからないのと同様。(なんとなくこのたとえは間違っているような気もするが、、、)
これは今のディープラーニングが「特徴抽出」というところに重きをおいていることについても言えるような気がする。
3層構造のニューラルネットが、形態とそのメタレベルの問題を同じように扱える、ということは、すでにそれを言語的に説明することができないもののはずであるが、それを「特徴抽出」という還元的な手法でアプローチすることは本当に正しいことなのだろうか?という疑問を僕は持っている。