前馈神经网络
1.前馈神经网络简介
前馈神经网络中,把每个神经元按接收信息的先后分为不同的组,每一组可以看做是一个神经层。每一层中的神经元接收前一层神经元的输出,并输出到下一层神经元。整个网络中的信息是朝着一个方向传播的,没有反馈的信息传播,可以用一个有向无环图来表示。
前馈神经网络可以视为通过一系列的映射函数将样本 X X X映射得到理想函数(分类器) Y Y Y的一种神经网络
函数 Y Y Y可以看作是一个通过简单非线性函数的多次复合得到的函数,如
该图表示的映射关系为x→f1→f2→f3→f,深度为3。映射网络如图
前馈神经网络的训练过程为优化权重系数 w w w和偏置值 b b b,使得 f ( x ; w , b ) f(x;w,b) f(x;w,b)逼近理想函数
2.基本结构单元
1)数据预处理:对数据进行中心化,标准化,对参数矩阵进行初始化,一般使用随机策略
2)层次结构:第一层为输入层,中间层为隐藏层,最后一层为输出层
3)神经元:一个节点为一个神经元
4)信息传播公式:
5)激活函数:对信息传播做非线性变换,使得神经网络更适合解决实际问题,常用的激活函数有Sigmoid,线性修正单元(RELU),softmax
6)损失函数:用来衡量模型的预测值和真实值差异程度的函数,常用的有交叉熵损失函数,softmax损失函数
7)反向传播更新参数:通过损失函数计算各权重系数参数梯度,并按照学习率更新权重系数
对于损失函数,根据链式求导法则
这样子需要将三个偏导数计算出来就可以得到参数梯度
(又可称计算误差项
δ
(
l
)
\delta(l)
δ(l))
可知第
l
l
l层的误差项可以通过第
(
l
+
1
)
(l+1)
(l+1)层的误差项计算得到
于是可以得到
以此更新权重参数
3.网络结构设计
前馈神经网络的训练过程如图
对于输入数据i1、i2,通过前向传播函数与权重参数w和偏置值b结合计算得到h1、h2的基础输入值ah1、ah2,随后再将基础输入值带入激活函数得到h1、h2的值,o1、o2以此类推
计算完前向传播的数值之后,开始通过损失函数计算梯度值来更新权重参数,以w5的更新为例子
通过链式求导法则,有
∂ E t o t a l ∂ w 5 = ∂ E t o t a l ∂ o 1 ∗ ∂ o 1 ∂ a o 1 ∗ ∂ a o 1 ∂ w 5 {{{∂E_{total}}} \over∂w_5} ={{{∂E_{total}}} \over∂o_1} * {{{∂o_1}} \over∂a_{o1}} * {{{∂a_{o1}}} \over∂w_5} ∂w5∂Etotal=∂o1∂Etotal∗∂ao1∂o1∗∂w5∂ao1
分别求导得到w5的梯度,再根据
更新权重参数w5,同理更新其他权重参数,直到预测值与真实值相近为止,就可以得到一个训练好的前馈神经网络模型