为什么要用“交叉熵”做损失函数


大家好啊,我是董董灿。

今天看一个在深度学习中很枯燥但很重要的概念——交叉熵损失函数。

作为一种损失函数,它的重要作用便是可以将“预测值”和“真实值(标签)”进行对比,从而输出 loss 值,直到  loss 值收敛,可以认为神经网络模型训练完成。

那么这个所谓的“交叉熵”到底是什么,为什么它可以用来作为损失函数呢?

1、熵与交叉熵

“交叉熵”包含了“交叉”和“熵”这两部分。

关于“熵”的描述在理解熵的本质一文中有更详细的说明。总的来说,熵可以用来衡量一个随机变量的不确定性,数学上可表示为:

H(i) = - ∑ P(i) * log(P(i))

对于上面的公式,我们稍微变一下形,将负号和 log(P(i)) 看做一个变量,得到:

PP(i) = -log(p(i))

那么熵的公式就可以写作:

H(i) = ∑ P(i) * PP(i)

此时熵的公式中,P(i) 和 PP(i) 是服从相同的概率分布。因此,熵H(i)就变成了事件 PP(i) 发生的数学期望,通俗理解为均值。

熵越大,表示事件发生的不确定性越大。

而交叉熵是用于比较两个概率分布之间的差异,对于两个概率分布 P 和 Q 而言,

### 为什么在机器学习或深度学习中使用交叉熵作为损失函数 #### 背景与定义 交叉熵是一种衡量两个概率分布之间差异的方法,在机器学习领域被广泛用于分类任务中的损失计算。其核心思想是比较模型预测的概率分布 \(q\) 和真实标签的概率分布 \(p\) 的相似程度[^1]。 对于二分类问题,假设模型输出为 \(\hat{y}\),表示样本属于正类别的概率,则负对数似然可以写成如下形式: \[ L(y, \hat{y}) = -[y \cdot \log(\hat{y}) + (1-y) \cdot \log(1-\hat{y})] \] 其中 \(y\) 是真实的类别标签(取值为 0 或 1),而 \(\hat{y}\) 则是由模型估计得到的概率值[^3]。 当扩展到多分类场景下时,交叉熵损失则通过 softmax 数将原始分数转换为合法的概率向量后再进行对比评估[^4]: ```python import tensorflow as tf def cross_entropy_loss(y_true, y_pred): return -tf.reduce_sum(y_true * tf.math.log(tf.clip_by_value(y_pred, 1e-9, 1.)), axis=-1) # Example usage with TensorFlow tensors true_labels = tf.constant([[1., 0., 0.]]) # One-hot encoded label for class '0' predicted_probs = tf.constant([[0.7, 0.2, 0.1]]) # Predicted probabilities by the model loss = cross_entropy_loss(true_labels, predicted_probs) print(loss.numpy()) # Output should be close to ~0.3567 ``` 上述代码片段展示了如何利用 TensorFlow 实现基本版本的交叉熵损失计算过程[^5]。 --- #### 使用交叉熵的理由 ##### 数学性质适配性强 交叉熵本质上来源于最大似然估计理论框架下的目标设定——即寻找使得训练数据上观察结果发生的联合概率最大的参数配置方案之一。因此,采用该方法不仅具有坚实的统计基础支持,而且还能有效引导优化算法朝正确方向前进直至收敛至全局最优解附近区域范围内为止。 ##### 对抗梯度消失现象效果显著 相比于均方误差(MSE)这类传统回归型指标而言,在处理激活层引入非线性变换后的神经元响应信号变化规律方面表现尤为突出。具体来说,由于 sigmoid 类型单元在其两端饱和区域内会产生极小幅度波动特征从而导致反传过程中权重更新速度减缓甚至停滞不前等问题出现;然而借助于 logit 形式的重新表述方式后可明显缓解此类困境状况发生几率降低不少。 ##### 物理意义清晰直观易懂 从信息论角度来看待这一概念的话就可以解释成为试图最小化实际观测序列所携带的信息量同由当前假定条件下推测出来的期望表达之间的差距大小关系程度高低之分界点位置所在何处而已罢了[^2]! --- #### 总结 综上所述,无论是出于理论严谨性的考虑还是实践应用层面的需求考量因素出发点来看待这个问题都能够得出结论认为选用 Cross Entropy Loss Function 来解决 Classification Problems 是十分合理恰当的选择法之一.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董董灿是个攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值