假设有一个三层全连接神经网络,其中输入为x=[1,2],输出y=[0.7,0.3]损失函数为平均误差,求输出层梯度
时间: 2024-03-18 15:45:50 浏览: 38
假设该三层全连接神经网络的输出层为$L_3$,输出为$y=[y_1,y_2]$,则平均误差损失函数为:
$$
L = \frac{1}{2}\sum_{i=1}^{2}(y_i-t_i)^2
$$
其中$t=[t_1,t_2]$为真实标签。根据链式法则,输出层$L_3$的梯度可以表示为:
$$
\frac{\partial L}{\partial L_3}=\frac{\partial L}{\partial y}\frac{\partial y}{\partial L_3}
$$
其中,$\frac{\partial L}{\partial y}$可以表示为:
$$
\begin{aligned}
\frac{\partial L}{\partial y_1} &= \frac{\partial}{\partial y_1}\frac{1}{2}(y_1-t_1)^2 \\
&= (y_1-t_1)
\end{aligned}
$$
$$
\begin{aligned}
\frac{\partial L}{\partial y_2} &= \frac{\partial}{\partial y_2}\frac{1}{2}(y_2-t_2)^2 \\
&= (y_2-t_2)
\end{aligned}
$$
$\frac{\partial y}{\partial L_3}$可以表示为:
$$
\begin{aligned}
\frac{\partial y_1}{\partial L_3} &= \frac{\partial}{\partial L_3}(f_3(W_3f_2(W_2f_1(W_1x+b_1)+b_2)+b_3))\\
&= f_3'(W_3f_2(W_2f_1(W_1x+b_1)+b_2)+b_3)W_3f_2(W_2f_1(W_1x+b_1)+b_2)
\end{aligned}
$$
$$
\begin{aligned}
\frac{\partial y_2}{\partial L_3} &= \frac{\partial}{\partial L_3}(f_3(W_3f_2(W_2f_1(W_1x+b_1)+b_2)+b_3))\\
&= f_3'(W_3f_2(W_2f_1(W_1x+b_1)+b_2)+b_3)W_3f_2(W_2f_1(W_1x+b_1)+b_2)
\end{aligned}
$$
其中,$f_3'$为输出层的激活函数的导数。将上述结果代入$\frac{\partial L}{\partial L_3}$的公式,可以得到输出层的梯度为:
$$
\frac{\partial L}{\partial L_3}=\left[\begin{matrix}(y_1-t_1)f_3'(W_3f_2(W_2f_1(W_1x+b_1)+b_2)+b_3)W_3f_2(W_2f_1(W_1x+b_1)+b_2)\\(y_2-t_2)f_3'(W_3f_2(W_2f_1(W_1x+b_1)+b_2)+b_3)W_3f_2(W_2f_1(W_1x+b_1)+b_2)\end{matrix}\right]
$$
注意到这里的$\frac{\partial L}{\partial L_3}$是一个列向量,其维度与输出$y$的维度相同。
阅读全文