(1)什么是梯度下降和链式求导法则
1.梯度下降
假设我们有一个函数J(w),如下图所示。
现在,我们要求当w等于什么的时候,J(w)能够取到最小值。从图中我们知道最小值在初始位置的左边,也就意味着如果想要使J(w)最小,w的值需要减小。而初始位置的切线斜率a>0(也是该位置对应的导数大于0),w=w-eta*a(eta是学习率)就能让w的值减小,循环求导更新w直到J(w)取到最小值。如果函数J(w)包含多个变量,那么就要分别对不同的变量求偏导来更新不同变量的值。(这里的梯度下降没有详细解释,需要深入理解的同学自行查阅资料)
2.链式求导法则
举个例子:
我们经常用到的激活函数是sigmoid函数,那我们就拿这个函数来求导数。
(2)BP算法的详细介绍
参见《机器学习》周志华著,课本上的P101页-P104页,讲的很详细,仔细看看,公式推导一下,理解的很清楚。
(3)用一个例子全面理解BP算法
为了方便起见,这里定义了三层网络,输入层(第0层),隐藏层(第1层),输出层(第二层)。并且每个结点没有偏置(有偏置原理完全一样),激活函数为sigmod函数(不同的激活函数,求导不同),符号和网络结构说明如下:

本文详细介绍了神经网络中的反向传播(BP)算法,包括梯度下降和链式求导法则的基本概念。通过一个具体例子,展示了如何运用BP算法修正权重,使预测值逐渐逼近真实值。同时,提供了BP算法的Python实现代码,并讨论了BP神经网络的优缺点。
最低0.47元/天 解锁文章
2363

被折叠的 条评论
为什么被折叠?



