[神经网络]2.2/2.3-How the backpropagation algorithm works-The two assumptions we need...(翻译)

来源:互联网 发布:dr.martens 1460 淘宝 编辑:程序博客网 时间:2024/05/04 05:02

The two assumptions we need about the cost function(2个关于成本函数的假设)

反向传播的全局是计算网络的成本函数C关于权重w和偏差b的偏导数C/wC/b。关于反向传播的工作,我们需要做2个主要的假设。在开始假设之前,在头脑中有一个成本函数的例子是有用的。我们将使用最后一张的二次成本函数(方程(6))。形式如下:
C=12nx||y(x)aL(x)||2                  (26)

这里:n是训练样本的总数;sum指的是所有独立训练样本x的和;y=y(x)是对应的所期望的输出;L定义了网络层的数量;并且aL=aL(x)是当x是输入的时候,网络的输出。

好了,那么我们需要做些什么假设来了解我们的成本函数C,以使反向传播可以被应用?第一个假设是,成本函数可以写成平均C=1nxCx,其中x是训练样本。又因为这是平方的成本的函数,因此一个训练样本的成本是 Cx=12||yaL||2.这个假设也适用于所有本书中其它成本函数。

我们这样假设的原因,是因为反向传播实际上是计算偏导数(求导后,系数为1)。记住这个假设,我们将成本函数Cx写成C。我们最终会将x 放回,但是现在省去符号的麻烦。

第二个假设我们需要做的是,成本可以被写成是神经网络的输出函数:
这里写图片描述
举个例子,平方成本函数满足这个要求,因为对于每个训练样本x,平方成本可以写成:
C=12||yaL||2=12j(yjaLj)2                  27

并且因此是输出激活的函数。当然,成本函数也依赖于我们期望的输出y,并且你可能会奇怪为什么不考虑成本为y的函数。记住,虽然训练的例子x是固定的,所以输出y也是一个固定参数。特别是,它不是我们可以修改权重和偏差的东西,即,它不是神经网络学习的东西。并因此把C作为一个单独的输出激活aL功能,y是一个参数,有助于定义函数。

The Hadamard product, s⊙t(Hadamard乘积,s⊙t)

反向传播算法基于普通线性代数运算-比如向量加法、矩阵的乘法等等。但是有一些运算平时很少被使用。特别地,假设st是具有相同维度的2个向量。那么我们使用st来定义向量元素的乘积。那么st等价于(st)=sjtj。下面是一个例子:
这里写图片描述
这种对应元素相乘有时也被称为Hadamard乘法或者Schur乘法。我们这里称它为Hadamard乘法。好的矩阵库提供了Hadamard乘积的快速实现,并且将在实现反向传播时使用。

0 0
原创粉丝点击