人間の脳と勾配消失問題
わくばです!
ディープラーニングの学習をはじめて現在3日目です。思うように進みませんね(泣)
お仕事をしながらこういった勉強を行い、転職を目指している方々がいかに大変か身にしみます!
今日はニューラルネットワークの仕組みについて、誤差逆伝播法について学習しました。学習が進むほど、AIって数学得意な人にとっては強くてニューゲームだなぁと感じます笑
誤差逆伝播法というのは要するにAIにおけるPDCAサイクルみたいなもので、答えあわせをもとに改善をしていくメカニズムのことのようです。このメカニズムにはまだまだ課題があり、それが勾配消失という現象です。
誤差逆伝播法ではどのように学習結果をフィードバックしているかというと、最も単純なものでは以下のような式を用いているようです。
W1というのは修正後のパラメータ(重み)で、W0というのは修正前のものを表します。ν(ニュー)は学習率という定数、Qは活性化関数です。
注目するところは⊿Q(W0)です。これは活性化関数の微分で、言い換えると変化率、ここで言う勾配に当たります。ある点で微分係数が大きいということはまだまだ坂が急で、下があるということのなりますから大きく値を動かすんですね。要は誤差逆伝播法は活性化関数の微分を用いて修正をきかせているということが大切です。
これはレイヤーが浅いうちはいいですが深くなってくると、この微分係数が蓄積してきます。もしシグモイド関数を活性化関数として用いているとすると、シグモイドの導関数が取りうる最大値は0.25までですから、これが積み重なると修正に寄与する値がどんどん小さくなっていってゆくゆくは消え失せてしまうというのが想像できると思います。これが勾配の消失です。解決策としては活性化関数そのものを工夫していったり、様々考案されているようですね。
ところでこの問題、人間の脳ではどうなってるのでしょうか。職業柄気になったので調べてみましたが、残念ながら答えはわかっていないようですね。そもそもニューラルネットワークは人間の脳をモデルにしていると謳ってはいますが、人間の脳で同じことが起きている証拠はないそうです。なんなら人間の脳の仕組みを解析するためにAIを参考にしていることもあるようで笑。
ただ個人的に思うのは人間の脳が勾配消失なく機能している理由としては、シンプルにレイヤーが6層しかないからでは、と感じます。勾配消失はレイヤーが深くなることが前提になっていますが、人間脳は6層しかありません。どちらかというと横に広く、立体的ですよね。なので誤差逆伝播法が用いられているとしても勾配が蓄積しえないと思います。
誤差逆伝播のようなメカニズムがそもそも用いられていないと考えるほうが自然かもしれませんが笑 ボルツマンマシンなどまだまだほかのフィードバック機構もあるようなので、少しずつ理解を深めていこうと思います。
今日は以上です。何か間違いなど発見しましたらぜひコメントください。勉強になります。
明日も勉強頑張ります。