机器学习----交叉熵(Cross Entropy)如何做损失函数

目录

一.概念引入

1.损失函数

2.均值平方差损失函数

3.交叉熵损失函数

3.1信息量

3.2信息熵

3.3相对熵

二.交叉熵损失函数的原理及推导过程

表达式

二分类

联立

取对数

补充

三.交叉熵函数的代码实现


一.概念引入

1.损失函数

损失函数是指一种将一个事件(在一个样本空间中的一个元素)映射到一个表达与其事件相关的经济成本或机会成本的实数上的一种函数。在机器学习中,损失函数通常作为学习准则与优化问题相联系,即通过最小化损失函数求解和评估模型。
 
不同的任务类型需要不同的损失函数,例如在回归问题中常用均方误差作为损失函数,分类问题中常用交叉熵作为损失函数。

2.均值平方差损失函数

定义如下: L(y,f(x;\Theta )) = \frac{1}{N}\sum_{i = 1}^{N}(yi - f(xi;\Theta ))^{2}

意义:N为样本数量。公式表示为每一个真实值与预测值相减的平方去平均值。均值平方差的值越小,表明模型越好。

对于回归问题,均方差的损失函数的导数是局部单调的,可以找到最优解。但是对于分类问题,损失函数可能是坑坑洼洼的,很难找到最优解。故均方差损失函数适用于回归问题

3.交叉熵损失函数

交叉熵是信息论中的一个重要概念,主要用于度量两个概率分布间的差异性。在机器学习中,交叉熵表示真实概率分布与预测概率分布之间的差异。其值越小,模型预测效果就越好。
 
交叉熵损失函数的公式为:
L = -(y log \hat{y} +(1-y)log(1- \hat{y}))
 
其中,y表示样本的真实标签,\hat{y}表示模型预测的标签。当y=1时,表示样本属于正类;当y=0时,表示样本属于负类。

3.1信息量

信息量是指信息多少的量度。

比如说

  • 1:太阳从东边升起,这个信息量就是0,因为这个是一句废话。没有不确定性的东西。
  • 2:今天会下雨。从直觉上来看,这个信息量就比较大了,因为今天天气具有不确定性,但是这句话消除了不确定性。

根据上述总结如下:信息量的大小与信息发生的概率成反比。概率越大,信息量就越小,概率越小,信息量就越大。设某件事发生的概率为p(xi),则信息量为:

I(xj) = -ln(p(xi))

3.2信息熵

信息熵是信息论中的一个重要概念,用于衡量一个系统或信号中信息量的不确定性或随机性。
 
信息熵的定义可以用数学公式表示。假设有一个离散的随机变量X,它可以取n个不同的可能值x_1,x_2,\ldots,x_n,每个可能值的概率为p_1,p_2,\ldots,p_n,则信息熵H(X)的计算公式为:
 
H(X)=-\sum_{i=1}^{n}p_i\log_2p_i
 
其中,\log_2表示以2为底的对数。
 
信息熵的物理意义是:它表示了在给定概率分布的情况下,系统的平均不确定性或信息量。信息熵的值越大,表示系统的不确定性越高;信息熵的值越小,表示系统的不确定性越低。

3.3相对熵

相对熵,也称为KL 散度(Kullback-Leibler Divergence),是一种用于比较两个概率分布差异的度量。它衡量了一个概率分布P与另一个参考概率分布Q之间的差异程度。
 
相对熵的定义为:
 
D_{KL}(P||Q)=\sum_{x}P(x)\log\frac{P(x)}{Q(x)}
 
其中,P(x)和Q(x)分别是概率分布P和Q在事件x上的概率。
 
相对熵的物理意义是:它表示了将概率分布P表示为参考概率分布Q的编码时所需的额外信息量。如果P和Q非常接近,相对熵的值会比较小;如果P和Q差异较大,相对熵的值会比较大。

### 关于交叉熵损失函数 #### 交叉熵损失函数定义 交叉熵损失函数是一种衡量实际输出与期望输出之间差异的方法,在机器学习领域特别是分类问题中广泛应用。该方法通过比较预测概率分布和真实标签的概率分布之间的距离来进行评估。 #### 公式表达 对于二分类问题中的单个样本而言,其交叉熵损失可以由下述公式给出: \[ L(y, \hat{y}) = -[ y \log(\hat{y}) + (1-y)\log(1-\hat{y}) ] \] 其中 \(y\) 表示真实的类别标签(0 或者 1),而 \(\hat{y}\) 则代表模型对该类别的预测概率[^2]。 当处理多分类情况时,则会采用更一般的软最大似然估计(Softmax)配合交叉熵的形式: \[ C=-\sum_{i=1}^{N}{t_i log(p_i)} \] 这里\(p_i\) 是经过 Softmax 转换后的第 i 类的预测概率;\(t_i\) 是对应的真实标签向量中的元素值,通常是一个 one-hot 编码形式的数据集的一部分[^3]。 #### 应用场景 - **逻辑回归** 和其他线性判别分析算法经常使用二元交叉熵作为目标函数。 - 在深度学习框架内,无论是卷积神经网络还是循环神经网络都可能涉及到 softmax 层加上交叉熵损失组合来完成最终决策任务。 - 对于自然语言处理(NLP),图像识别等领域来说,这种类型的损失函数有助于提高模型性能并加速收敛过程。 ```python import torch.nn as nn # 创建一个简单的二分类交叉熵损失实例 criterion = nn.BCELoss() output = torch.tensor([0.7], requires_grad=True) target = torch.tensor([1.]) loss = criterion(output, target) print(f'Binary Cross Entropy Loss: {loss.item()}') ```
评论 168
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一枕眠秋雨>o<

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

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

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

打赏作者

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

抵扣说明:

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

余额充值