为什么交叉熵可以做损失函数?

交叉熵:

一句介绍:相对熵(KL散度)是衡量两个概率分布之间的距离,等于交叉熵加上个熵,在一定条件下熵值是固定的数值,所以交叉熵可以看做等于相对熵.

说交叉熵之前先介绍相对熵,相对熵又称为KL散度(Kullback-Leibler Divergence),用来衡量两个分布之间的距离,记为在这里插入图片描述
在这里插入图片描述
这里H§是p的熵。

假设有两个分布p和q,它们在给定样本集上的交叉熵定义为:
在这里插入图片描述
从这里可以看出,交叉熵和相对熵相差了H§,而当p已知的时候,H§是个常数,所以交叉熵和相对熵在这里是等价的,反映了分布p和q之间的相似程度.

回到我们多分类的问题上,真实的类标签可以看作是分布,对某个样本属于哪个类别可以用One-hot的编码方式,(one-hot的本质就是把label变换为概率的形式.)是一个维度为C的向量,比如在5个类别的分类中,[0, 1, 0, 0, 0]表示该样本属于第二个类,其概率值为1。我们把真实的类标签分布记为p,该分布中,ti= 1当i属于它的真实类别c。同时,分类模型经过softmax函数之后,也是一个概率分布,因为\sum_{i = 1}^{C}{y_i} = ,所以我们把模型的输出的分布记为q,它也是一个维度为C的向量,如[0.1, 0.8, 0.05, 0.05, 0]。
对一个样本来说,真实类标签分布与模型预测的类标签分布可以用交叉熵来表示:
在这里插入图片描述
在这里插入图片描述

从似然函数的角度理解:

比如,我们将似然函数作为机器学习模型的损失函数,并且用在分类问题中。

这时,似然函数是直接作用于模型的输出的(损失函数就是为了衡量当前参数下model的预测值predict距离真实值label的大小,所以似然函数用作损失函数时当然也是为了完成该任务),所以对于似然函数来说,这里的样本集就成了label集(而不是机器学习意义上的样本集X了),这里的参数也不是机器学习model 的参数,而是predict值!
其实作为损失函数的似然函数并不关心你当前的机器学习model的参数是怎样的,毕竟它此时所接收的输入只有两部分:1、predict。2、label。当然还有一个隐含的输入——3、分布模型。
显然这里的label就是似然函数手里的观测值,也就是它眼里的样本集。而它眼里的模型,当然就是predict这个随机变量所服从的概率分布模型。它的目的,就是衡量predict背后的模型对于当前观测值的解释程度。而每个样本的predict值,恰恰就是它所服从的分布模型的参数.
比如此时我们的机器学习任务是一个4个类别的分类任务,机器学习model的输出就是当前样本X下的每个类别的概率,如predict=[0.1, 0.1, 0.7, 0.1],而该样本的标签是类别3,表示成向量就是label=[0, 0, 1, 0]。那么label=[0, 0, 1, 0]就是似然函数眼里的样本,然后我们可以假设predict这个随机变量背后的模型是单次观测下的多项式分布.

在谈多项式分布前,先讲一下二项(式)分布。

在讲二项分布前,先讲一下贝努利分布。

贝努利分布也叫两点分布。贝努利分布可以看成是将一枚硬币(只有正反两个面,代表两个类别)向上扔出,出现某个面(类别)的概率情况,因此其概率密度函数为:
在这里插入图片描述
所以,单次观测下的多项式分布就是贝努利分布的多类推广!即:

在这里插入图片描述
其中,C代表类别数。p代表向量形式的模型参数,即各个类别的发生概率,如p=[0.1, 0.1, 0.7, 0.1],则p1=0.1, p3=0.7等。即,多项式分布的模型参数就是各个类别的发生概率!x代表one-hot形式的观测值,如x=类别3,则x=[0, 0, 1, 0]。xi代表x的第i个元素,比如x=类别3时,x1=0,x2=0,x3=1,x4=0。

对于多类分类问题,似然函数就是衡量当前这个以predict为参数的单次观测下的多项式分布模型与样本值label之间的似然度。

在这里插入图片描述
在累乘号前面加上log函数后,就成了所谓的对数似然函数:
在这里插入图片描述
似然函数的值越大表示越准确,所以要求的是L的最大值,加上负号就是求最小值.

可以发现负对数似然最后的结果与上面的交叉熵的结果是一样的!!!

可以说交叉熵是直接衡量两个分布,或者说两个model之间的差异。而似然函数则是解释以model的输出为参数的某分布模型对样本集的解释程度。因此,可以说这两者是“同貌不同源”,但是“殊途同归”啦

在将负对数似然/交叉熵拿来做损失函数的时候,不要忘记对batch取average,这样算出来的才是期望(直接套公式出来的是sum版).

参考知乎:
Softmax函数与交叉熵
哈?你还认为似然函数跟交叉熵是一个意思呀?
极大似然函数、最小二乘、交叉熵之间的联系
Jackon.me

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值