【机器学习入门】交叉熵损失函数与MLE准则

本文介绍了交叉熵损失函数与最大似然估计(MLE)之间的关系,强调它们在监督学习中的重要性。文章通过线性回归、逻辑回归和多分类问题的实例详细解释了交叉熵在不同情况下的应用,并阐述了如何通过最小化交叉熵损失函数来调整模型,使其逼近真实数据分布。

0 总结

先放出结论方便查看,细节的推导可以阅读后续章节。

0.1 MLE与交叉熵

MLE准则导出的损失函数与交叉熵损失函数等价,如下:
J ( θ ) = − E x , y ∼ P d a t a [ l o g P m o d e l ( y ∣ x ; θ ) ] J(\pmb\theta)=-\mathbb{E}_{\pmb x,\pmb y\sim P_{data}}[logP_{model}(\pmb y|\pmb x;\pmb\theta)] J(θθθ)=Exxx,yyyPdata[logPmodel(yyyxxx;θθθ)]
监督学习是给定输入 x \pmb x xxx(样本)和输出 y \pmb y yyy(标签)来对模型进行训练的一个过程。

  • 从最大似然估计准则的角度看,这个过程可以看成是对条件概率 P ( Y ∣ X ; θ ) P(Y|X;\pmb\theta) P(YX;θθθ)的一个最大似然估计过程。
  • 从相对熵和交叉熵的角度看,这个过程可以看成调整 Q ( X ) Q(X) Q(X)使其逼近 P ( X ) P(X) P(X)的过程,而 H ( P , Q ) H(P,Q) H(P,Q)的最小值就是 H ( P ) H(P) H(P),那么我们对交叉熵 H ( P , Q ) H(P,Q) H(P,Q)进行最小化而获得的 Q ( X ) Q(X) Q(X)则应该能够很好逼近 P ( X ) P(X) P(X)

详见第4节

0.2 交叉熵损失函数具体形式

下列符号中: N N N为样本数, M M M为类别数

1.线性回归问题

J ( θ ) = − E x , y ∼ P d a t a [ l o g P m o d e l ( y ∣ x ; θ ) ] = 1 N ∣ ∣ y − y ^ ∣ ∣ 2 2 \begin{aligned} J(\pmb\theta)&=-\mathbb{E}_{\pmb x,\pmb y \sim P_{data}}[logP_{model}(\pmb y| \pmb x;\pmb\theta)]\\ &=\frac{1}{N}||\pmb y -\pmb{\hat y}||^2_2 \end{aligned} J(θθθ)=Exxx,yyyPdata[logPmodel(yyyxxx;θθθ)]=N1yyyy^y^y^22

2.logistic回归(二分类问题)

J ( θ ) = 1 N ∑ i = 1 N − y i l o g y i ^ − ( 1 − y i ) l o g ( 1 − y i ^ ) J(\pmb\theta)=\frac{1}{N}\sum_{i=1}^N-y_ilog\hat{y_i}-(1-y_i)log(1-\hat{y_i}) J(θθθ)=N1i=1Nyilogyi^(1yi)log(1yi^)其中:

  • y i y_i yi为0或1,若类别为A则为1,类别为B则为0
  • y i ^ \hat{y_i} yi^为模型输出的将样本分类为A的概率,则 ( 1 − y i ^ ) (1-\hat{y_i}) (1yi^)为分类成B的概率, y i ^ = σ s i g m o i d ( θ T x i + b ) \hat{y_i}=\sigma_{sigmoid}(\pmb\theta^T\pmb{x_i}+b) yi^=σsigmoid(θθθTxixixi+b)

3.多分类问题

J ( θ ) = − 1 N ∑ i = 1 N ∑ j = 1 M y i , j l o g y ^ i , j J(\pmb\theta)=-\frac{1}{N}\sum_{i=1}^N\sum_{j=1}^{M}y_{i,j}log\hat{y}_{i,j} J(θθθ)=N1i=1Nj=1Myi,jlogy^i,j其中:

  • y i , j y_{i,j} yi,j为0或1,若类别 j j j符合样本 i i i则取值为1,不符合则为0
  • y ^ i , j \hat{y}_{i,j} y^i,j为模型输出的将样本 i i i分类为类别 j j j的概率, y ^ i , j = σ s o f t m a x ( [ θ T x i + b ] j ) \hat{y}_{i,j}=\sigma_{softmax}([\pmb\theta^T\pmb{x_i}+\pmb b]_{j}) y^i,j=σsoftmax([θθθTxixixi+bbb]j)
  • [ θ T x i + b ] j [\pmb\theta^T\pmb{x_i}+\pmb b]_{j} [θθθTxixixi+bbb]j为输出层的第 j j j个输出,可解释作分类为类别 j j j的对数概率

1 最大似然估计MLE

1.1 似然函数与对数似然函数

给定一个概率分布 P ( x ) P(x) P(x),假设该分布由某组参数 θ \pmb\theta θθθ确定,那么该概率分布可以写成 P ( x ; θ ) P(x;\pmb\theta) P(x;θθθ)的形式。

  • 将参数 θ \pmb\theta θθθ固定,将 x x x看作变量,则 P ( x ; θ ) P(x;\pmb\theta) P(x;θθθ)称为概率分布,可以看作是在参数 θ \pmb\theta θθθ取到某组具体值的情况下的具体概率分布。
  • x x x固定,将 θ \theta θ看作变量,则 L ( θ ) = P ( x ; θ ) L(\pmb\theta)=P(x;\pmb\theta) L(θθθ)=P(x;θθθ)称为似然函数。似然函数可以看作是在数据 x x x已经被获取的情况下,参数 θ \theta θ在不同取值的情况下 x x x发生的概率。

对于一组独立同分布的数据 x = ( x 1 , x 2 , . . . , x n ) T \pmb{x}=(x_1,x_2,...,x_n)^T xxx=(x1,x2,...,xn)T,其联合分布通常可以写成连乘的形式: L ( θ ) = P ( x ; θ ) = ∏ i = 1 n P ( x i ; θ ) L(\pmb\theta)=P(\pmb{x};\pmb\theta)=\prod_{i=1}^{n}P(x_i;\pmb\t

<think> 首先,用户的问题是:“我想了解二分类交叉熵损失函数的相关信息 请问二分类交叉熵损失函数介绍”。这涉及到二分类交叉熵损失函数(Binary Cross-Entropy Loss)。 系统级指令要求: - 所有行内数学表达式必须使用 `$...$` 格式。 - 独立公式必须使用 `$$...$$` 格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识,例如: `[^1]`。 用户提供了几个引用: - [^1] 讨论了二分类交叉熵函数的推导,从极大似然估计到损失函数的转换。 - [^2] 涉及PyTorch中的二分类和多分类交叉熵损失函数的实现。 - [^3] 强调可视化解释二分类交叉熵。 - [^4] 举例说明损失函数如何惩罚错误预测。 - [^5] 提到PyTorch中的BCEWithLogitsLoss,更数值稳定。 用户的上一次问题或我的回答没有提供,所以我需要基于当前的问题和引用来构建回答。 回答结构: - 结构清晰,帮助用户逐步解决问题。 - 保证内容真实可靠。 大纲回答: 1. **介绍二分类交叉熵损失函数**:定义和用途。 2. **数学推导**:从极大似然估计推导出损失函数。 3. **公式表达式**:使用独立公式展示。 4. **解释含义**:如何工作,为什么有效。 5. **实际应用**:在机器学习中的角色,参考引用中的例子。 6. **实现方面**:在PyTorch中的使用,如引用[^2]和[^5]所述。 7. **生成相关问题**:在回答末尾添加相关问题。 数学部分: - 二分类交叉熵损失函数的公式:对于真实标签 y(0或1)和预测概率 p,损失是:$ -\frac{1}{N} \sum_{i=1}^{N} [y_i \log(p_i) + (1 - y_i) \log(1 - p_i)] $。 - 推导:基于极大似然估计,最大化似然等价于最小化负对数似然。 参考引用: - 在解释时,自然地添加引用标识。例如,当讨论极大似然推导时,引用[^1];当讨论PyTorch实现时,引用[^2]或[^5];当解释惩罚机制时,引用[^4]。 生成相关问题: - 结尾添加“相关问题”部分。 完整回答结构: 1. 开头段落介绍二分类交叉熵损失函数。 2. 数学公式推导部分,使用独立公式。 3. 解释函数的工作原理。 4. 实际应用和实现。 5. 结尾生成相关问题。 使用中文回答。 </think> ### 二分类交叉熵损失函数介绍 二分类交叉熵损失函数(Binary Cross-Entropy Loss)是机器学习中用于二分类任务的常见损失函数。它通过衡量模型预测概率真实标签之间的差异,来优化模型参数,适用于输出为二元结果(如“是/否”或“1/0”)的场景。下面,我将从数学推导、函数定义、工作原理到实际应用逐步解释,确保内容准确可靠。 #### 1. **数学推导定义** 二分类交叉熵损失函数源自极大似然估计(MLE)。在二分类问题中,假设真实标签 $y_i$ 取值为 0 或 1(例如,0 表示负类,1 表示正类),模型预测的概率为 $p_i$(即预测样本为正类的概率)。目标是最大化似然函数 $P$,即所有样本预测正确的联合概率。似然函数可表示为: $$ P = \prod_{i=1}^{N} p_i^{y_i} (1 - p_i)^{1 - y_i} $$ 其中,$N$ 是样本数量。为了方便优化,我们取对数似然 $\ln P$: $$ \ln P = \sum_{i=1}^{N} [y_i \ln p_i + (1 - y_i) \ln (1 - p_i)] $$ 由于优化算法通常最小化损失函数,我们对 $\ln P$ 取负值,将其转换为最小化问题。因此,损失函数 $L$ 定义为: $$ L = -\frac{1}{N} \sum_{i=1}^{N} [y_i \log p_i + (1 - y_i) \log (1 - p_i)] $$ 这里,$p_i$ 是模型输出的概率(通过 Sigmoid 函数映射到 [0,1] 区间),$y_i$ 是真实标签。损失值越小,表示模型预测越接近真实标签[^1]。 #### 2. **工作原理直观解释** 二分类交叉熵损失函数的工作原理是惩罚预测错误的情况: - **当预测接近真实标签时,损失值小**:例如,如果 $y_i = 1$ 且 $p_i \approx 1$(模型正确预测正类),则 $y_i \log p_i$ 接近 0(因为 $\log 1 = 0$),损失贡献小。 - **当预测远离真实标签时,损失值大**:例如,如果 $y_i = 0$ 但 $p_i \approx 1$(模型错误预测正类),则 $(1 - y_i) \log (1 - p_i)$ 变为 $\log(1 - p_i)$,当 $p_i \to 1$ 时,$\log(1 - p_i) \to -\infty$,损失值大幅增加。 这个过程可视化为对数损失的函数:当模型预测概率标签不符时,损失曲线迅速上升,从而“推动”模型在训练中更新权重以减少错误。例如,在垃圾邮件分类中,如果真实标签是非垃圾邮件($y_i = 0$),但模型预测概率高($p_i \approx 1$),交叉熵损失会显著增大,迫使模型调整参数[^3][^4]。 #### 3. **实际应用实现** 在机器学习实践中,二分类交叉熵损失函数广泛用于神经网络的输出层(配合 Sigmoid 激活函数)。PyTorch 等框架提供了高效实现: - **PyTorch 中的 `BCELoss`**:直接使用预测概率 $p_i$ 和真实标签 $y_i$。 - **PyTorch 中的 `BCEWithLogitsLoss`**:整合了 Sigmoid 层和 BCELoss,数值更稳定(避免 log 函数在边界值处的数值溢出问题),推荐使用以提升训练鲁棒性[^5]。 例如,在 PyTorch 中调用代码示例: ```python import torch.nn as nn # 使用 BCEWithLogitsLoss(更稳定) loss_fn = nn.BCEWithLogitsLoss() # 输入 logits(未激活的预测),真实标签 y loss = loss_fn(logits, y) ``` 损失函数在训练中的作用是:通过梯度下降优化权重 $w$,使损失最小化。其优点包括对错误预测的敏感惩罚(适合不平衡数据集)和良好的数值特性[^2][^5]。 总之,二分类交叉熵损失函数是二分类任务的核心工具,它从概率理论上推导而来,在实际中引导模型学习正确预测。如果您有具体场景(如数据不平衡或优化技巧),欢迎进一步提问!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值