I.前文
重みwを最適化するためのバックプロパゲーションニューラルネットワークと閾値b、ニューラルネットワークの最適化のコアアルゴリズム。勉強した後、数日後には、最終的には逆伝播の原理は、経験を書いてここに記録していることを理解しています。
この記事では、最初の基本的な数学的計算を導入し、パラメータ最適化由来の逆伝播法「損失計算式」に従いました。
第二に、基本的な数学的な原則
導出、連鎖ルール:B法が伝播バックと呼ばれる、wはニューラルネットワークの最適化パラメータ、カウンタ伝搬法は「勾配降下」と呼ばれる特定の実施形態では、勾配降下は、2つの基本的な数学を含みます。
1)導出
次の式を考えてみましょう:
式Xの誘導体:
例:
2)鎖ルール
例えば、xおよびy誘導体のyの導関数の導出へのz X zに連鎖ルールことを意味します。
Zの誘導体、Yを見つけます。
与えられました:
そう:
意味の3)数学的な導出
上記のように、Xに対するYの誘導体は、本質的X0における傾きを決定し、X0は、△Xの少し場合に増加され、y軸はΔyだけの数を増加させることによって得ることができます。
ΔY=量Δx*(X0における勾配)
yの値が最小になる傾向がある私たちがしたい場合は、YマイナスΔyだけを使用することができます。
Y = Y0-Δyの= *(X0における勾配)Y0-量Δx
Y0は、ΔX、X0における傾きが知られており、我々は徐々に最小y値に近づけることができます。なお、Δyの唯一y軸、実際のない増加量の近似値が、我々はこの方法による「アプローチ」Yの最小値を続けることができます。
第三に、損失計算
シンプルな伝播関数を考えてみましょう。
Y = WX + B
wは重量であり、Bは閾値であり、xは、yは予測された出力入力されている、我々出力することができ、実際の損失を引いた予測出力(差予測と実際):
実際には、我々は派生回帰簡単に乗の差として、2乗誤差。ただ、操作の難しさを減らすために、二乗誤差またはエラーの使用は、本質的には違い損失を測定していません。
実際に使用する場合、Yが導入される実際定数(ラベル値)が伝播関数(Yプライム)= WX + B
コスト=(WX + B - Y)^ 2
第四に、勾配降下
それは、Y = X ^ 2のように簡略化することができ、それが放物線であることがわかります、式の上の損失を参照してください。
予測が実際の結果になりがち作り、本質的には、それがゼロに傾向があるyの上の図である最小限のコストを、見つけることです。もう一つ注意すべきは、その式であります:
コスト=(WX + B - Y)^ 2
我们期望的是找到一个最佳的w和b来求得最小的Cost,其中x和Y其实都是已知的。所以我们是对w和b求导求得Δw和Δb。为便于计算,我们可以做以下变化:
Cost = (Error)^2
Error = wx+b-Y
根据链式法则,我们就可以得到:
所以Δw = 2*error*x
类似地可以推导出Δb=2*error
在实际使用时,error值、x值都是已知的所以我们可以求得Δw和Δb
上述反向传播的实现代码中,img即是x,Y-label即是error,除以m是因为实际操作时是一次对m个图片进行处理,这里求dw、db时需要取平均值所以除以m。其次实际代码中我们把Δw = 2*error*x的常数2忽略了,对实际操作没有影响。
五、总结
最后在优化参数时,我们会用Δw和Δb乘以一个非常小的浮点数如0.001称为步幅(learning rate),再用w-Δw、b-Δb。所以本质上来说Δw和Δb只是指明了梯度下降的方向,比如在下面的函数图形中,在x轴左侧应当增大x值,在x轴右侧则应该减小x值,我们通过斜率就可以知道具体应该减少还是增大了。
请关注公众号“零基础爱学习”一起AI学习。