神经网络的训练是通过调整隐层和输出层的参数,使得神经网络计算出来的结果
与真实结果
y
尽量接近。神经网络的训练主要包括正向传播和反向传播两个过程。正向传播的基本原理是,基于训练好的神经网络模型,输入数据通过权重和激活函数计算出隐层,隐层通过下一级的权重和激活函数得到下一个隐层,经过逐层迭代,将输入的特征向量从低级特征逐步提取为抽象特征,最终输出分类结果。反向传播的基本原理是,首先根据正向传播结果和真实值计算出损失函数
L
(
W
),然后采用梯度下降法,通过链式法则计算出损失函数对每个权重和偏置的偏导,即权重或偏置对损失的影响,最后更新权重和偏置。本节将以图2.9中的神经网络为例,介绍神经网络训练的正向传播和反向传播过程。
每个神经网络层的正向传播过程是,权重矩阵的转置乘以输入向量,再通过非线性激活函数得到输出。
图2.9中的神经网络的输入为3个神经元,记为
x
=[
x
1
;
x
2
;
x
3
];隐层包含3个神经元,记为
h
=[
h
1
;
h
2
;
h
3
];输出层包含2个输出神经元,记为
。输入和隐层之间的连接对应的偏置为
b
(1)
,权重矩阵为
图2.9 神经网络
隐层和输出层之间的连接对应的偏置为 b (2) ,权重矩阵为
该神经网络采用sigmoid函数作为激活函数
输入到隐层的正向传播过程为,首先权重矩阵 W (1) 的转置乘以输入向量 x ,再加上偏置 b (1) ,得到
然后经过sigmoid激活函数,得到隐层的输出
隐层到输出层的正向传播过程与上述过程类似。
示例
假设该神经网络的输入数据为
x
=[
x
1
;
x
2
;
x
3
]=[0.02;0.04;0.01],偏置向量为
b
(1)
=[0.4;0.4;0.4],
b
(2)
=[0.7;0.7],期望输出为
。在神经网络训练之前,首先对两个权重矩阵进行随机初始化:
其次计算隐层在激活函数之前的输出
对上面得到的三个数分别做sigmoid计算,得到隐层的输出
然后计算输出层在激活函数之前的输出
对上面的两个数分别做sigmoid运算,得到最终输出