反向传播算法BackPropagation

本文内容摘自GitHub以及周志华《机器学习》、古德费洛《深度学习》

一、概念

在训练过程中,前向传播可以持续向前直到它产生一个标量代价函数。反向传播算法,简称为backprop,允许来自代价函数的信息通过网络向后流动,以便计算梯度。

二、算法描述

反向传播算法非常简单
这里给出一个GitHub上用Python实现的BP算法,写的很清楚明白,获得了622个star,名列前茅

BP算法Python实现源代码
下面给出反向传播算法(误差逆传播算法)的伪代码
反向传播算法BackPropagation_第1张图片
下图所示描述了以上伪代码中符号的具体意义:
反向传播算法BackPropagation_第2张图片
在这里插入图片描述
在这里插入图片描述

反向传播算法BackPropagation_第3张图片
反向传播算法BackPropagation_第4张图片
在这里插入图片描述在这里插入图片描述
参数的更新变化如下所示:
反向传播算法BackPropagation_第5张图片
所有参数的更新法则都如下所示:
在这里插入图片描述
有了上述公式,就可以很轻松地写出BP算法,写完之后剩下的就是调参数训练了,一般学习率常设置为0.1
当初学BP算法,课后作业就是实现一些函数的拟合,比如可以试一下拟合y=x1+x2,这个函数可以设计为两输入,一输出的BP网络,再比如y=sinx,就可以设计为单输入,单输出的BP网络。具体做的时候就是先给一些样本训练,训练完了之后自己再输入一些自变量值,看看得到的是不是期望的输出,很简单,只要把上述代码实现了之后,自然就实现了函数拟合的功能。

你可能感兴趣的:(深度学习)