ニューラルネットワークについて
概要
画像認識に使われているニューラルネットワークという物を知っていますか?
人間の脳にある神経細胞のつながりをプログラムで擬似的に表したものです。
文字で書くと簡単な話ですが、実際深堀していくと、微分がでてきたりして、どうにもハードルが高く感じるところがあります。
自分なりに勉強し、こういうことかな?と落とし込めたので、まとめていきたいと思います。
ニューラルネットワークとは
ある値X1を入力したときのY1
X2のときY2のように、
入力と正しい出力を幾つかインプットし
正しいYが出力されるようw(重み)やバイアス(b)を調整する
調整方法を誤差逆伝搬方という
ニューラルネットワークの計算方法
u1=x*w11+b1
σ(u1)=1/1+exp((-1)*u1)
u2=x*w12+b2
σ(u1)=1/1+exp((-1)*u2)
Y=(u1*w21)+(u2*w22)+b
σ(Y)=1/1+exp((-1)*Y)
重み、バイアス更新
η:学習率(1回の学習で重みやバイアスを更新する量の調整値)
w11=w11-η*(y-t)*(1-y)*y*w21*u1*x
w21=w21-η*(y-t)*(1-y)y*u1
w12=w12-η*(y-t)*(1-y)*y*w22*u2*x
w22=w22-η*(y-t)*(1-y)y*u2
b1=b1-η*(y-t)(1-y)(y*w21*(1-u1)*u1
b2=b2-η*(y-t)(1-y)(y*w22*(1-u2)*u2
b=b-η*(y-t)(1-y)y
感想
ニューラルネットワークでもっともわからなかったところが、重みやバイアス更新をするときに使われる誤差逆伝搬だった。ネットで調べてみると
誤差逆伝播法を宇宙一わかりやすく解説してみるといったサイトがあったため、参考にし、式を書き起こしてみた。