交叉熵、KL散度、极大似然和对数似然

前言:

      本文整理自https://www.cnblogs.com/silent-stranger/p/7987708.html,感谢MaHaLo的渊博知识。

1.介绍:

      当我们开发一个分类模型的时候,我们的目标是把输入映射到预测的概率上,当我们训练模型的时候就不停地调整参数使得我们预测出来的概率和真实的概率更加接近。

      这篇文章我们关注在我们的模型假设这些类都是明确区分的,假设我们是开发一个二分类模型,那么对应于一个输入数据,我们将他标记为要么绝对是正,要么绝对是负。比如,我们输入的是一张图片,来判断这张图片是苹果还是梨子。

      在训练过程中,我们可能输入了一张图片表示的是苹果,那么对于这张输入图片的真实概率分布为yi=(苹果:1,梨子:0),但是我们的模型可能预测出来的是另一种概率分布yi^(苹果:0.4,梨子:0.6),然后我们发现了在这张输入图片上的真实概率分布和预测出来的概率分布差别很大,所以我们要调整参数,来使得这两个分布更加接近。

      但是我们怎么定义这个接近呢?也就是我们如何去衡量预测概率分布yi^和真实概率分布yi的接近程度?

### 关系概述 在机器学习领域,Softmax、KL以及交叉熵紧密关联,在分类任务中扮演着重要角色。Softmax函数用于将模型最后一层的线性输出转换成概率分布形式[^1]。 ```python import numpy as np def softmax(x): e_x = np.exp(x - np.max(x)) return e_x / e_x.sum(axis=0) logits = np.array([2.0, 1.0, 0.1]) probs = softmax(logits) print(probs) ``` ### 数学定义与联系 #### KL (Kullback-Leibler Divergence) KL衡量的是两个概率分布PQ之间差异的程。其计算方式如下: \[D_{\mathrm{KL}}(P \parallel Q)=\sum_i P(i)\cdot(\log(P(i))-\log(Q(i)))\] 当应用于神经网络时,通常取真实标签的概率分布作为\(P\),而预测得到的概率分布作为\(Q\)。需要注意的是,KL不是对称的距离量方法。 #### 交叉熵 (Cross Entropy) 对于离型随机变量而言,给定真实的概率分布p估计的概率分布q,则它们之间的交叉熵表示为: \[H(p,q)=-\sum _{{x\in {\mathcal {X}}}}p(x)\,\log q(x).\] 在多类别分类场景下,如果采用one-hot编码的真实标签y通过softmax获得的预测值s来表达上述公式的话,那么针对单一样本i的交叉熵损失可写作: \[CE(y^{(i)}, s^{(i)})=\sum_j y_j^{(i)} (-\log(s_j^{(i)})).\] 实际上,交叉熵可以视为负对数的一个特例,并且经常被用作监督学习中的目标函数之一。 ### 应用实例分析 考虑到实际应用环境的不同需求,选择合适的评估指标至关重要。比如在某些情况下,尽管L2 loss能够有效测量数值差距,但对于处理概率性质的数据来说,KL交叉熵往往更为适宜[^2]。 特别是在构建深学习架构的过程中,为了简化实现并提高效率,很多框架默认集成了`softmax_cross_entropy_with_logits_v2()`这样的API接口,它内部自动完成了从原始得分到最终决策边界的整个流程——先经由softmax映射至合法区间内再求解对应的交叉熵误差项[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值