手动实现二分类的交叉熵损失函数
时间: 2024-08-12 09:01:36 浏览: 78
手动实现二分类的交叉熵损失函数(也称为Logistic Loss)主要用于训练模型预测二元结果的概率。在机器学习中,它常用于逻辑回归和神经网络等模型。交叉熵公式如下:
对于单个样本 \( (x_i, y_i) \),其中 \( x_i \) 是输入特征向量,\( y_i \) 是对应的标签(0 或 1),预测概率 \( p_i = \sigma(z_i) \),这里 \( z_i \) 是线性变换后的值,\( \sigma(x) = \frac{1}{1 + e^{-x}} \) 是sigmoid激活函数。交叉熵损失 \( L_i \) 计算为:
\[ L_i = -y_i \log(p_i) - (1 - y_i) \log(1 - p_i) \]
如果 \( y_i = 1 \),那么损失简化为 \( -\log(p_i) \);如果 \( y_i = 0 \),则为 \( -\log(1 - p_i) \)。
在Python中,你可以这样做:
```python
import numpy as np
def binary_cross_entropy_loss(y_true, y_pred):
# y_true 形状为 (batch_size,), 类别标签(0 or 1)
# y_pred 形状为 (batch_size,), 预测的概率值(0 到 1之间)
loss = -(y_true * np.log(y_pred) + (1 - y_true) * np.log(1 - y_pred))
return np.mean(loss)
```
阅读全文