赞
踩
在一个多层的神经网络中,反向传播算法就是不断的学习这个网络的权值和偏值,采用梯度下降法使得该神经网络的输出值与真实的目标值之间的误差最小。
1,那么为什么更新权值和偏值可以使得代价函数最小化呢? 2,以及如何更新权值和偏值呢?
由于该算法使用了很多的符号,这里需要解释一下各个符号的意义。
表示第层的第k个神经元到第层的第j个神经元连线上的权值,如下图给出了⽹络中第⼆层的第四个神经元到第三层的第⼆个神经元的链接上的权重:
我们的权值为什么要这么标记呢,那是因为我们神经网络中每一层的权值都是以矩阵的方式存储的,那么也可以这么理解,他表示第j行第k列对应的元素值,其意义是:第j行表示的就是层所有神经元与层第j个神经元连接相对应的权值。这样记为了方便运算,乍看起来有点别扭而已。
表示层第j个神经元的输入,表示层第j个神经元的输出,表示第层第j个神经元的偏值,C表示代价函数。那么有:
其中表示激活函数,比如sigmoid函数。这个且不用考虑。我们符号先说明到这里,剩下的用到再说。
1,那么为什么更新权值和偏值可以使得代价函数最小化呢?
我们训练神经网络的目的就是使得代价函数(比如二次代价函数)最小化,我们其实不必在意代价函数的具体形式,不影响我们对BP算法的理解。但是还是要啰嗦一下,以便说明为什么要对权值和偏值进行更新,比如一个单独的训练样本x,其二次代价函数为:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。