6.3 Neurons Networks Gradient Checking

Posted ooon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了 6.3 Neurons Networks Gradient Checking相关的知识,希望对你有一定的参考价值。

BP算法很难调试,一般情况下会隐隐存在一些小问题,比如(off-by-one error),即只有部分曾德权重得到训练,或者忘记计算bais unit,这虽然会得到一个正确的结果,但效果差于准确BP得到的结果。

有了cost function,目标是求出一组参数W,b,这里以技术分享表示,cost function 暂且记做技术分享。假设 技术分享,则 技术分享,即一维情况下的Gradient Descent:

技术分享

根据6.2中对单个参数单个样本的求导公式:

技术分享

可以得到每个参数的偏导数,对所有样本累计求和,可以得到所有训练数据对参数 技术分享 的偏导数记做技术分享技术分享是靠BP算法求得的,为了验证其正确性,看下图回忆导数公式:

技术分享

可见有:技术分享那么对于任意 技术分享 值,我们都可以对等式左边的导数用:

技术分享来近似。

给定一个被认为能计算 技术分享 的函数技术分享,可以用下面的数值检验公式

技术分享

应用时,通常把技术分享设置为一个很小的常量,比如在技术分享 数量级,最好不要太小了,会造成数值的舍入误差。上式两端值的接近程度取决于 技术分享 的具体形式。假定技术分享 的情况下,上式左右两端至少有4位有效数字是一样的(通常会更多)。

技术分享是一个n维向量而不是实数时,且 技术分享,在 Neorons Network 中,J(W,b)可以想象为 W,b 组合扩展而成的一个长向量 技术分享,现在又一个计算 技术分享的函数 技术分享,如何检验技术分享能否输出到正确结果呢,用技术分享的取值来检验,对于向量的偏导数:

技术分享

根据上图,对 技术分享求导时,只需要在向量的第i维上进行加减操作,然后求值即可,定义 技术分享,其中

技术分享

技术分享 和 技术分享 几乎相同,除了第 技术分享 行元素增加了 技术分享,类似地,技术分享 得到的第 技术分享 行减小了 技术分享,然后求导并与技术分享比较:

技术分享

上式中左边为BP算法的结果,右边为真正的梯度,只要两者很接近,说明BP算法是在正确工作,对于梯度下降中的参数是按照如下方式进行更新的:

技术分享

即有 技术分享 分别为:

技术分享

最后只需总体损失函数J(W,b)的偏导数与上述技术分享 的值比较即可。

除了梯度下降外,其他的常见的优化算法:1) 自适应技术分享的步长,2) BFGS L-BFGS,3) SGD,4) 共轭梯度算法,以后涉及到再看。

以上是关于 6.3 Neurons Networks Gradient Checking的主要内容,如果未能解决你的问题,请参考以下文章

有没有人有关于 Spiking Neurons 或其他类型的图像机器学习的信息

文献导读 | Single-Cell Sequencing of iPSC-Dopamine Neurons Reconstructs Disease Progression and Identifi

在networkx中标记边缘

洛谷 P3507 [POI2010]GRA-The Minima Game

探讨COMP9444 Neural Networks

深度学习面试题37:LSTM Networks原理(Long Short Term Memory networks)