BP网络中反向传播过程梯度下降算法的学习心得

梯度下降的公式

BP网络中更新权值的公式

当时一直不理解为什么要这样更新权值,后来了解到相关的梯度、方向导数等概念才逐渐清晰。

首先我们要清楚梯度是函数在此点变化最快的方向,但是三维空间函数z=f(x,y)的梯度为什么只有二维,咋能表示三维方向呢?

其实不然,因为本来就是表示二维方向,而不是三维,梯度只是表示自变量维度空间的方向。

如上图,我们要找最小值点,其实只是找(x,y)点,并不是一个三维点,最小值点加最小值(函数值)才构成这个三维空间中的三维点。也就是说,我们所说的函数值变化最快的方向(梯度的方向),其实只是一个二维的与xoy平面平行的一个方向,我们的变化方向也是一个平行于xoy平面的二维方向集(像一个圆片),而非像一个球形的三维方向集。因为我们只是选择自变量的变化方向(因变量的值由自变量带入函数得出)。

这就好比下山,我们站在一点处不是上下左右四面八方都看,而是“环顾四周”,仅这一个水平圆片方向集确定方向(你也不能飞天遁地是吧),确定方向后走一步,然后落到前面的山体上(分解动作有点像猫和老鼠中Tom反应过来才能掉下去),这相当于限制在了这个三维函数中。

以上是我在理解梯度是一个“方向”后对它为啥是个二维方向而不是三维空间中的三维方向一直搞不懂后来顿悟后的感悟。

下面来讲解为什么BP中如下式那样反向更新权值。

首先了解更新权值的目的是让总误差函数(Etotal,以下简称E)的值最小,这就像上述用梯度下降法求最小值了。

E是所有权值的函数,所有权值是他的自变量。

上式最后一项的偏导部分就是梯度的其中一维(梯度各维分别为对应各自变量的偏导),也就是对W5这个自变量,

表示此维梯度(方向)的分量,可以看做是此维上E变化最快的方向,叫做学习率,其实更确切应该叫步长,表示下山时这一步迈了多大,前面负号表示是在减小(下山,因为梯度方向是增加最快的方向,所以反向是减小最快的),因此,上式意思就是从原来这个地方按照减小最快的方向迈了一步(步长就是学习率),更新所有权值就是更新了所有分量,那点就更新完毕了。就像下图更新了两个分量:(学习率为0.1,原点为(1,3),此点梯度为(2,6)这是合着所有分量一起更新,上述的BP是一个分量一个分量更新。把下式拆开就是分量更新:第一个分量:1-0.1*2  ,第二个分量 3-0.1*6)

这里的每个分量更新就相当于BP中每个权值更新,而(梯度)的结果中每个分量都是J(O)函数的对应分量偏导。

以上是我在理解反向传播算法的一些心得,其中因为懒而不想打公式,所以从网上找的截图,本文所有截图均来自以下两篇文章。

https://blog.csdn.net/ft_sunshine/article/details/90221691

https://blog.csdn.net/qq_41800366/article/details/86583789

请大家支持原创。本文文字部分全部为原创内容,转载请附本文链接。

猜你喜欢

转载自blog.csdn.net/weixin_43756600/article/details/105580470