机器学习随笔——Entropy Loss的本质

1. 疑问

今天突然想到了logloss,也就是 cross-entropyloss。

我们知道:entropy的计算公式如下:

为什么二分类的时候会写成如下公式:

 

 首先,我们从交叉熵的由来分析:

2. 交叉熵由来

相对熵(KL散度):
如果对于两个分布P(x)和Q ( x ),则我们可以使用KL散度来衡量这两个概率分布之间的差异,如果两个分布越近似,其值越小。公式如下:

进行变形:

前面一项是信息熵,后面的公式就是我们的交叉熵。所以这个KL散度就等于 (交叉熵)- (信息熵)。

信息熵是固定的,我们要减小KL散度,就只需要关注前面的交叉熵,减小交叉熵。

3. 交叉熵和机器学习联系起来

 这里,我们把ground truth看成不变的分布(标签是不变的)Q(x)。我们要做的是将我们预测出来的分布P(x)去逼近ground truth的标签的分布Q(x)。

所以我们如果用KL散度,就可以测出两个分布的接近程度。上一节也说了,只需要管交叉熵就好。所以我们要做的就是: min(-Q(x)*log(P(x)) = min(sum(qi(x)*log(p(x)))/n)

如此便推导出来了我们的cross-entropy loss。

4. 二分类情况

 

之所以这样写,是因为这个公式把Q(x)和P(x)具象化了。我们可以分析一下对于一个样本的标签分布是怎么样的:假设yi=True. 我的分布是不是{'True': 1.0, 'False':0.0},表示的是分布对应的概率。如果把True标签写成1,yi=1,我的分布可以这样写:{'1': yi, '0':1-yi}。

这样下来,模型预测的分布就是:{'1': yi_pred, '0':1-yi_pred}。对应位置带入公式:

min(sum(qi(x)*log(pi(x)))/n)

就得到了如下的形式。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
交叉熵损失函数(cross entropy loss)对模型参数 $\theta$ 的偏导数可以通过链式法则求出。具体来说,对于一个二分类问题,交叉熵损失函数定义为: $$ L(\theta) = -\frac{1}{N}\sum_{i=1}^{N} [y_i \log h_\theta(x_i) + (1-y_i) \log(1-h_\theta(x_i))] $$ 其中,$N$ 是样本数,$x_i$ 是第 $i$ 个样本的输入,$y_i$ 是第 $i$ 个样本的真实标签,$h_\theta(x_i)$ 是模型预测输出,$\theta$ 是模型参数。 对于一个样本 $i$,其损失函数的偏导数可以表示为: $$ \begin{aligned} \frac{\partial L(\theta)}{\partial \theta} &= \frac{\partial L(\theta)}{\partial h_\theta(x_i)} \cdot \frac{\partial h_\theta(x_i)}{\partial \theta}\\ &= -\frac{1}{N}[ \frac{y_i}{h_\theta(x_i)} - \frac{1-y_i}{1-h_\theta(x_i)} ] \cdot \frac{\partial h_\theta(x_i)}{\partial \theta} \end{aligned} $$ 其中,第一步是链式法则的应用,第二步是对交叉熵损失函数的求导结果。对于第二个式子,我们需要知道模型输出 $h_\theta(x_i)$ 对参数 $\theta$ 的偏导数,这可以通过反向传播算法求解。如果模型是一个神经网络,我们可以通过自动微分框架(如PyTorch)实现快速求解。 综上所述,对于整个样本集合,交叉熵损失函数对参数 $\theta$ 的偏导数可以表示为: $$ \frac{\partial L(\theta)}{\partial \theta} = -\frac{1}{N}\sum_{i=1}^{N}[ \frac{y_i}{h_\theta(x_i)} - \frac{1-y_i}{1-h_\theta(x_i)} ] \cdot \frac{\partial h_\theta(x_i)}{\partial \theta} $$ 其中,$h_\theta(x_i)$ 表示模型对第 $i$ 个样本的预测输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值