计算图(等待编辑中)
Affine层
softmax函数
y
k
=
e
x
p
(
x
k
)
∑
1
n
e
x
p
(
x
i
)
y_k=\frac{exp(x_k)}{\sum{_1^n} exp(x_i)}
yk=∑1nexp(xi)exp(xk)
直接使用该函数会导致溢出,用下面函数替换
y
k
=
e
x
p
(
x
k
)
∑
1
n
e
x
p
(
x
i
)
=
e
x
p
(
x
k
+
C
)
∑
1
n
e
x
p
(
x
i
+
C
)
y_k=\frac{exp(x_k)}{\sum{_1^n} exp(x_i)}=\frac{exp(x_k+C)}{\sum{_1^n} exp(x_i+C)}
yk=∑1nexp(xi)exp(xk)=∑1nexp(xi+C)exp(xk+C)
误差反向传播
误差反向传播算法仅仅是一种在神经网络的训练过程中用来计算梯度的方法,它能够计算损失函数对网络中所有模型参数的梯度,这个梯度会反馈给某种学习算法,例如梯度下降法,用来更新权值,最小化损失函数。
步骤一:设置模型参数初始值
步骤二:正向计算预测值
使用模型参数初始值和输入值x,逐层计算,得到神经网络的预测值0.59,它而样本标签0.8相差比较大,因此需要使用误差函数来调整模型参数,也就是训练网络。
第三步:计算误差
使用平方损失函数计算出预测值和标签值之间的误差。
第四步:误差反向传播
使用误差反向传播算法对误差损失函数的梯度信息进行反向传播,同时更新所有的模型参数,首先更新输出层模型参数。