目录
1、反向传播的定义
前面的文章《什么叫梯度学习》,介绍了梯度学习的原理,本文将介绍神经网络“自动学习”的核心算法:反向传播,即使BP算法。BP算法的输入输出关系实质上是一种映射关系,建立在梯度下降的基础上。
BP算法的学习过程由正向传播过程和反向传播过程组成。在正向传播过程中,输入信息通过输入层经隐含层,逐层处理并传向输出层。如果在输出层得不到期望的输出值,则取输出与期望的误差的平方和作为目标函数,转入反向传播,逐层求出目标函数对各神经元权值的偏导数,构成目标函数对权值向量的梯量,作为修改权值的依据,网络的学习在权值修改过程中完成。误差达到所期望值时,学习结束。BP算法本质是一个监督学习算法。
BP算法的阶段:
前向传播阶段:将训练输入网络以获得激励响应
反向传播阶段:将激励响应同训练输入对应的目标输出求差,从而获得隐层和输出层的响应误差。
2、简单网络的反向传播实例
举一个例子:
以上是3层神经网络,每层只有一个神经元,第一层表示数据输入,最后一层表示数据输出。假设如下变量:
输入和期望输出值:
输入值a(L-1) | 期望值输出y(L+1) |
5 | 2 |
损失函数采用均分方差误差:
1、前向传播的过程:
1)随机各个神经元的权重参数和偏移参数
层次 | 权重w | 偏置值b |
L | 0.1 | 1 |
L+1 | 0.5 | 2 |
2)计算各层的输出值
3)计算目标损失
损失函数的计算结果较大,启动反向传播阶段
2、反向传播的过程
1)微分
根据链式法则:
2)更新参数值
更新完所有变量后,重复前向传播和反向传播过程,直到损失函数接近0。
在复杂神经网络中,网络的层数和每层的神经元数量都比较大,神经元的输出可能还用到激活函数,参数的更新都遵循反向传播的原理。