误差反向传播算法(BP)和梯度下降算法

为什么需要反向传播算法

在多层感知器中,输入数据从输入层输入,经过中间层(隐层),最终从输出层输出。但是由于误差修正学习无法跨层调整,因此修正学习法一般只用于中间层(隐层)与输出层之间,而输入和中间层之间的连接权重采用随机数确定,这就存在输入数据不同,但在中间层的值却相同的问题,影响分类准确性。针对该问题,鲁梅尔哈特的人于1986年提出了误差反向传播算法,该算法使得神经网络再次回到人们的视野。

什么是误差反向传播算法?

通过比较实际输出和期望输出得到的误差信号,把误差信号从输出层逐层向前传播,得到各层的误差信号,再基于此误差,通过调整各层的连接权重以减小误差,基本流程如下图,其中权重的调整方法是梯度下降算法。
在这里插入图片描述
(图来源百度)
以下两方面需要展开讲解:

1、误差的表示

在模型中采用最小二乘误差函数(各种误差函数的汇总后续再写专题)建立实际输出yn和预期输出rn二者间的误差表达式,如式(1)所示,其中yn如式(2)所示,整合式(1)和(2)可得式(3),E是关于权重w和阈值h的误差函数。
在这里插入图片描述

2、梯度下降算法调整权重

梯度在前面文章中已经提到,如果沿着梯度方向走,将会最快达到误差的最小值。如果将w视为E中唯一的变量,h为常量,则梯度可表示为函数在当前位置的导数,在该情况下,可视为E对w的偏导数,即
在这里插入图片描述
梯度明确后,那为什么“下降”呢?根据定义,梯度方向是表示值大小增大的方向,而此处需要找最小值,因此需要梯度下降,即下降最快的方向是梯度的负方向。
因此梯度下降法可表示为式(5),并记式(6)为w的增量。
在这里插入图片描述
其中参数a表示学习率,决定了参数移动到最优值速度快慢,如果学习率过大,很可能会越过最优值,找不到,如果学习率过小,优化的效率可能会迭代很多次才找到最优解,收敛速度慢。
对于式(5),E对w求偏导的表达式,还需要结合连续偏导法则展开,数学公式较多,此处不详细展开哈。对于该公式的推到可采用一阶泰勒展开式证明。
算法中通过不断调整权重以使误差达到最小,从中得到最优的连接权重。
除了梯度下降算法,还存在一些基于该算法的优化算法,如随机梯度下降算法。

激活函数sigmoid

1、为什么需要激活函数?

式(3)中的f是激活函数,那为什么需要激活函数呢?如果把表达式中的f拿掉进行运算,会发现这个表达式是线性表达式,难以进行非线性问题的预测,因此需要使用激活函数解决该问题。

2、激活函数的选择

在M-P模型中,我们采用step函数作为激活函数,结果是输出0或1,不连续所以不可导,在此,为了使误差能够传播,激活函数采用可导的sigmoid函数。
在这里插入图片描述
(图来源网络)
激活函数除了sigmoid,还有其他的类型,后续再写汇总专题。
以上仅个人理解,若有问题,欢迎交流哈。

更多文章,还可关注公众号“小黄有点忙”。
在这里插入图片描述

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值