一.准备工作
反向传播算法是神经网络中一个重要的过程。
了解反向传播算法之前先来理解几个概念:
1.全导 和偏导
求导是数学计算中的一个计算方法,它的定义就是,当自变量的增量趋于零时,因变量的增量与自变量的增量之商的极限。在一个函数存在导数时,称这个函数可导或者可微分。可导的函数一定连续。不连续的函数一定不可导。
全导数是对各个变量求偏导后叠加
偏导数是只对其中一个变量求导数,物理几何意义是一个平面(平行于x或y或z轴)上的一条线,表示固定面上一点的切线斜率。
举例:
f(x,y)=x的平方+y的平方
那它的全导数 就是 2x+2y
对于点(1,1),
x方向的偏导数(只对x求导,y方向数值固定) 是 2x
y方向的偏导数 是 2y
2.链式求导法则:
最简单的理解,
有一个函数为:x1/x0,无法直接求解,经过转换后 是(x1/x2)*(x2/x3)*(x3/x0)
转换为3个式子的相乘, 每个式子可以求解,继而间接求解出x1/x0
将上面的x1/x0 替换为 某个函数对其中一个变量的导数,这就叫链式求导法则
3.学习速率:
学习速率是反向传播算法的的一个配置参数。
在第一次随机出一组参数并得到结果,由结果算得误差之后要对神经网络中的参数进行调整。
学习速率 就是定义 再次调整时的“步子” 大小。
步子越大,对误差的学习越快,但不够精细,可能导致错过那个最优值;
步子越小,学习的够精细,但耗时就更长。
4.反向传播算法:
简单理解,根据每次训练结果产生的误差值,对神经网络的参数不断修正,直到误差为0或者达到要求值。
二.详解