反向传播算法
反向传播算法英文简称为BP,其基本思想是逐一地由样本集中的样本计算出实际输出和误差测度,通过误差测度对权重序列进行调整,重复这个循环,直到误差降至最低。
步骤:用输出层的误差调整输出层权值矩阵,并用此误差估计输出层的直接前导层误差,再用输出层前导层误差估计更前一层的前导层误差,如此获得所有其他各层的误差估计,并用这些估计实现对权矩阵的修改,形成将输出端表现出的误差沿着输入信号相反的方向逐级向输入端传递的链式求解过程。
BP算法学习过程应用到深度学习中分为两个子过程:输入数据正向传递子过程、误差数据反向传递子过程,即“正向传播求误差,反向传播求偏导”。完整的学习过程:对于一个训练样本,将输入正向传播到输出产生误差,然后将误差信号反向从输出层传递到输入层,利用误差信号求出权重修改量,通过权重修改量更新权值,这一过程称为以此迭代。如果误差仍不满足,重复这个迭代。
梯度下降法
梯度下降法就是沿着负梯度方向搜索最优解,是一种致力于找到函数极值点的算法。常见的梯度下降法有:批量梯度下降法、随机梯度下降法、小批量梯度下降法。为逃离某些不理想的局部最小值,在深度学习中一般选择随机梯度下降算法。
算法流程:
1、确定当前位置的损失函数梯度,以权重w为例,通过损失函数对w求偏导f’
2、用步长s乘以损失函数的梯度,得到当前位置的下降距离,s*f’
3、确定是否所有的w梯度下降的距离都小于阈值p,如果小于阈值算法终止,当前所有的w即为最终结果,否则进入第四步
4、更新所有的w值,更新表达式如下,更新完后转入第一步:
w=w-s*f' --权重减去下降距离(梯度*步长)