首页 > 代码库 > Neural Network and DeepLearning (2.1)反向传播算法

Neural Network and DeepLearning (2.1)反向传播算法

How the backpropagation algorithm works

反向传播的目标是计算代价函数C分别关于wb偏导数?C/?w?C/?b

反向传播的核心是一个对代价函数C关于任何权重w(或者偏置b)的偏导数?C/?w的表达式。这个表达式告诉我们在改变权重和偏置时,代价函数变化的快慢

神经网络中使用矩阵快速计算输出

概念:每一层L权重矩阵wl,偏置向量bl,激活向量al。那么Lth的激活向量和(L-1)th的激活向量就能够通过方程关联起来:

技术分享

在这个方程中有一个中间量zl

技术分享

zl为L层神经元的带权输入

关于代价函数的两个假设

1.代价函数可以被写成一个在每个训练样本x上的代价函数Cx的均值:

技术分享

反向传播实际上是对一个独立的训练样本计算了?Cx/?w?Cx/?b,然后再所有训练验本上进行平均化获得?C/?w?C/?b

有了这个假设就可以将代价函数Cx看作C

2.代价可以写成神经网络输出的函数:

对一个单独的训练样本x其二次代价函数可以写作:

技术分享

x,y都是固定的参数,不会因为权重和偏置的改变而改变,也就是说这不是神经网络学习的对象,所以将C看作仅有输出激活值al的函数是合理的。

反向传播的四个基本方程

概念:

δjl:在lth层第jth个神经元上的误差

技术分享

1.输出误差方程:

技术分享

σ’(zjl)需要一点额外的计算。?C/?ajl依赖于代价函数的形式,例如:如果使用二次函数,那么技术分享,所以技术分享

2.使用下一层的误差δl+1来计算当前层的误差δl

技术分享

3.代价函数关于网络中任意偏置的改变率:

技术分享

4.代价函数关于任何一个权重的改变率:

技术分享

反向传播的四个方程式:

技术分享

反向传播算法

 

技术分享

 

在小批量数据(m)的基础上应用一部梯度下降学习算法

技术分享

Neural Network and DeepLearning (2.1)反向传播算法