一、全连接神经网络介绍
在多层神经网络中, 第 N 层的每个神经元都分别与第 N-1 层的神经元相互连接。
1、神经元
这个神经元接收的输入信号为向量 , 向量
为输入向量的组合权重,
为偏置项, 是一个标量。
神经元的作用是对输入向量进行加权求和, 并加上偏置项 b, 最后经过激活函数f 变换产生输出: ===>
2、网络结构
在分类问题中, 神经网络一般有多层:
- 第一层为输入层, 对应输入向量, 神经元的数量等于特征向量的维数, 输入层不对数据进行处理, 只是将输入向量送入下一层中进行计算。
- 中间层为隐含层, 可能有多个。
- 最后是输出层, 神经元的数量等于要分类的类别数, 输出层的输出值被用来做分类预测
- 第一层是输入层,对应的输入向量为
, 有 3 个神经元, 输入层不对数据做任何处理, 直接原样送入下一层。
- 中间层有 4 个神经元, 接收的数据为
, 输出向量为
。
- 第三层为输出层, 接收的数据为向量
, 输出向量为
神经网络通过激活函数而具有非线性, 通过调整权重形成不同的映射函数。现实应用中要拟合的函数一般是非线性的, 线性函数无论怎样复合最终还是线性函数, 因此, 必须使用非线性激活函数。
3、正向传播算法
算法公式:,
假设神经网络有 m 层, 正向传播算法的流程为:
二、反向传播算法
1、理解
假设神经网络有 层, 第
层的神经元个数为
。 第
层从第
层接收的输入向量为
, 第
层的权重矩阵为
, 偏置向量为
, 输出向量为
。 该层的输出可以写成如下形式:
(已有推导结论: ,
)
损失函数对权重和偏置的梯度:
发现和
中都存在
,因此定义误差项为:
即得到递推公式为:
通过递推公式知由
计算得到,因此需要从后往前计算,当
计算出来时
和
也可计算出来,这就称为反向传播
2、迭代流程
均按照一个样本迭代,若有m个样本,公式要除以m,以求平均梯度
- 正向传播, 利用当前权重和偏置值, 计算每一层的输出值--确定
- 计算输出层的误差项
。
- 反向传播, 计算隐藏层各层的误差项:
⊙ 表示元素乘法,前边表示矩阵乘法- 计算损失函数对权重和偏置的梯度: