交互式探索机器学习中最常用的损失函数
当预测错误且置信度高时,损失会急剧增加。这鼓励模型在不确定时保持谨慎。
使用对数函数,使得正确预测(概率接近1)的损失趋近于0,错误预测(概率接近0)的损失趋近于无穷大。
梯度表示损失的变化方向。负梯度意味着增加预测概率可以减少损失(当y=1时)。
Softmax将logits转换为概率分布,所有概率之和为1。指数函数确保所有输出为正。
即使logit值相近,经过softmax后概率也会有显著差异。相对差异比绝对差异更重要。
温度参数可以控制输出的"锐度":高温使分布更均匀,低温使分布更尖锐。
比较交叉熵损失与均方误差(MSE)在分类任务中的表现
| 特性 | 交叉熵损失 | 均方误差(MSE) |
|---|---|---|
| 错误预测时的梯度 | 大梯度,快速修正 | 小梯度,收敛慢 |
| 正确预测时的梯度 | 小梯度,稳定收敛 | 非零梯度,可能过冲 |
| 凸性 | 对于sigmoid/softmax是凸的 | 全局凸 |
| 概率解释 | 最大似然估计 | 最小二乘法 |
| 最佳应用 | 分类任务 | 回归任务 |
交叉熵衡量两个概率分布之间的差异。在分类中,它表示真实分布与预测分布之间的"距离"。最小化交叉熵等价于最大化似然函数。
交叉熵 = KL散度 + 熵。由于真实分布的熵是常数,最小化交叉熵等价于最小化KL散度。
MSE假设误差服从高斯分布,适合回归。但对于分类任务,交叉熵提供更强的梯度信号,特别是当预测错误时,能够更快地纠正模型。
直接计算log(0)会导致数值下溢。实现时通常使用log(sum(exp(x)))的技巧来避免这个问题。
将硬标签(0,1)替换为软标签(如0.1, 0.9),可以防止模型过度自信,提高泛化能力。
对于不平衡数据集,可以使用加权交叉熵,给予少数类更大的权重。
二分类使用sigmoid,多分类使用softmax。确保最后一层的激活函数与损失函数匹配。