def cost_derivative(self, output_activations, y): return (output_activations - y)改为交叉熵损失函数的导数
时间: 2024-06-03 10:12:29 浏览: 54
79047707_LSim_LIB_V3_0_0.zip
如果使用交叉熵损失函数,则代价函数的公式为:
$$
C = -\frac{1}{n} \sum_{i=1}^n [y_i \ln a_i + (1-y_i) \ln (1-a_i)]
$$
其中,$n$ 为样本数量,$y_i$ 表示第 $i$ 个样本的真实标签,$a_i$ 表示模型预测的标签。
对代价函数求导有:
$$
\begin{aligned}
\frac{\partial C}{\partial a_i} &= -\frac{1}{n} \sum_{i=1}^n \left[\frac{y_i}{a_i} - \frac{1-y_i}{1-a_i} \right] \\
&= -\frac{1}{n} \sum_{i=1}^n \left[\frac{y_i}{a_i(1-a_i)} - \frac{1-y_i}{(1-a_i)a_i} \right] \\
&= -\frac{1}{n} \sum_{i=1}^n \left[\frac{y_i}{a_i(1-a_i)} - \frac{1}{a_i} + \frac{1}{1-a_i} - \frac{1-y_i}{(1-a_i)a_i} \right] \\
&= -\frac{1}{n} \sum_{i=1}^n \left[\frac{y_i-a_i}{a_i(1-a_i)} \right]
\end{aligned}
$$
因此,交叉熵损失函数的导数为:
$$
\frac{\partial C}{\partial z_i} = a_i - y_i
$$
其中,$z_i$ 表示第 $i$ 个样本的输出结果经过 sigmoid 函数激活后的值。
阅读全文