全链接bp算法
这里作为自己对卷积神经网络反向传播算法的理解。首先还是从经典的全链接bp算法开始。
1、前向传播
所谓神经网络就是将许多个单一“神经元”联结在一起,这样,一个“神经元”的输出就可以是另一个“神经元”的输入。例如,下图就是一个简单的神经网络:
![File:Network331.png](https://i-blog.csdnimg.cn/blog_migrate/44658a88bc5832d3dde932e844626d46.png)
我们使用圆圈来表示神经网络的输入,标上“
”的圆圈被称为偏置节点,也就是截距项。神经网络最左边的一层叫做输入层,最右的一层叫做输出层(本例中,输出层只有一个节点)。中间所有节点组成的一层叫做隐藏层,因为我们不能在训练样本集中观测到它们的值。同时可以看到,以上神经网络的例子中有3个输入单元(偏置单元不计在内),3个隐藏单元及一个输出单元。
![\textstyle +1](https://i-blog.csdnimg.cn/blog_migrate/432a432c3317e3e4fad0d5a570cfb100.png)
这里我们将激活函数 扩展为用向量(分量的形式)来表示,即
,那么,上面的等式可以更简洁地表示为:
我们将上面的计算步骤叫作前向传播。回想一下,之前我们用 表示输入层的激活值,那么给定第
层的激活值
后,第
层的激活值
就可以按照下面步骤计算得到:
将参数矩阵化,使用矩阵-向量运算方式,我们就可以利用线性代数的优势对神经网络进行快速求解。
假设我们有一个固定样本集 ,它包含
个样例。我们可以用批量梯度下降法来求解神经网络。具体来讲,对于单个样例
,其代价函数为:
这是一个(二分之一的)方差代价函数。给定一个包含 个样例的数据集,我们可以定义整体代价函数为: