码迷,mamicode.com
首页 > 编程语言 > 详细

反向传播算法简介

时间:2019-08-25 19:54:21      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:button   ima   关于   media   LLC   quick   oat   relative   html   

<!doctype html>



反向传播算法


反向传播算法

参考:http://neuralnetworksanddeeplearning.com/chap2.html

BP 算法所关注的是损失函数 C 关于神经网络每一个权重 w 和偏置 b 的偏导。BP 算法向我们展示权值和偏置对损失值的影响。BP 不仅仅是一个快速的算法,其同时为我们提供了一个视角,让我们观察权值和偏置是如何影响网络输出的。

热身:使用矩阵计算网络输出

先介绍一个网络权重和偏置值的数学表示:,左侧的数学表达式表示第 层网络的第 个元素和第 层第 个元素之间的权重。同样的, 表示第 层第个元素的偏置值, 表示 层第 个元素的激活函数输出。利用这种数学表示, 可以表示为:

使用矩阵形式表示上述表达式:

定义 为激活函数的输入值则可以将上面表达式 表示为:

损失函数的两个要求

BP 算法用于计算网络中所有权重 和偏置 关于损失函数 的偏导数 。为了使BP算法正常运行,我们需要对损失函数做两条约束。我们先给出一个常用的均方差损失函数,如下式

表达式 中元素解释如下, 是训练网络的样本个数; 是训练样本 的期望值(也就是样本的标签); 标识着网络的层数; 是网络在输入为 时输出层激活函数的输出。

现在描述我们对损失函数的要求。首先,损失函数可以写成所有训练样本损失值均值的形式:

我们做上面的要求是因为训练的过程中我们常常使用批训练的方式,而不是每次只训练一个样本。批训练之后我们求当前批次样本损失值的平均数来更新权重和偏置。

其次,损失函数可以使用网络输出层作为参数: 是网络输出层的输出。以均方差损失函数为例,当样本为时,网络的损失值为:

上式中所有元素的值都是已知的, 是标签、 是网络输出层的输出。

Hadamard 积,

Hadamardd 积(哈达玛积)表示矩阵按对应元素做乘法:,例如:

BP 算法依赖的四个方程

BP 算法用于计算网络中权值与偏置关于损失值的偏导,也就是计算: 。在给出计算方法前我们先引入一个中间变量 ,这个变量表示网络第 层第 个元素的值对整个网络损失的贡献。BP 算法可以帮我们计算出 ,然后我们就可以得到

为了便于理解,这里我们假设网络中的某个神经元(第 层 第 个)旁边住着一个小恶魔,它可以帮我们调整神经元的输出。小恶魔不出手时这个神经元的输入为:,小恶魔出手后,当前神经元的输入为:,输出为 。小恶魔对当前神经元的调整最终将影响整个网络的输出,小恶魔出手后对整个网络损失值的影响为:

如果这是一个善良的小恶魔,那么它可以帮我们调整输入一减少损失函数的值。如果 的值不为0,那么调整,将减小整个网络的损失值。如果的值为0,那么小恶魔的调整对网络损失的贡献就非常小,除非比较大。

我们定义如下:

的矩阵表示方法为:。BP 算法可以帮助我们计算网络中每一层的

?

?

?

?

?

?



反向传播算法简介

标签:button   ima   关于   media   LLC   quick   oat   relative   html   

原文地址:https://www.cnblogs.com/jiahu-Blog/p/11408982.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!