损失函数理解(一)——极大似然估计

本博客内容来自B站up主【王木头学科学】的视频内容

习惯看视频的小伙伴可移至视频链接[待补充]:~~~


首先通俗地解释一下极大似然估计(Maximum Likelihood Estimation,MLE)的思想:通过结果寻找使该结果发生的最可能的原因。

对于训练模型来说,模型结构已经预先定义好,我们具体训练的是模型的参数。例如我们构建了一个ResNet-50,想基于手写数字数据集训练一个能识别手写数字的模型。在ResNet-50这个架构下,对应的模型参数有很多种可能,现在我们有手写数字图像以及对应的真实分类标签(这是我们人类的判断结果),训练的目标就是找到能使得手写数字分类结果正确的那一套模型参数(原因)。

似然值:真实情况已经发生,在某个模型下这种情况发生的可能性。所谓极大似然估计就是最大化似然值。


那极大似然估计是如何跟损失函数联系起来的呢?

以二分类任务——以给定图像判断是不是猫为例,对于每一张图像x_{i},我们人类会有一个判断(即标签)y_{i},其中i表示第i张图片,y_{i}=1表示该图像是猫,0表示不是猫。

如果我们想用极大似然估计的话,似然值可通过如下公式计算:

P(y_{1},y_{2},...y_{n}|\theta)=\prod _{i=1}^{n}P(y_{i}|\theta)

其中\theta表示模型的参数。公式具体的含义是\theta参数下模型能正确判断是不是猫的可能性,我们要找到使这个可能性最大的模型参数。

为什么可以写成相乘的形式,是因为我们假设每个样本是独立同分布的。

给定一张图像,模型会有一个预测结果\widehat{y_{i}},这个预测结果是基于模型参数做出的,因此一定程度上隐含了模型参数,上式可进一步写为:

\prod _{i=1}^{n}P(y_{i}|\theta)=\prod _{i=1}^{n}P(y_{i}|\widehat{y_{i}})

由于是二分类,y_{i}只有0和1两种情况,所以符合伯努利分布。


伯努利分布知识补充

x\in\{0,1\},\,\,f(x)=p^{x}(1-p)^{1-x}= \begin{cases} p,\,\,x=1\\ 1-p,\,\,x=0\\ \end{cases}

其中p表示x=1的概率。


根据伯努利分布重写上述公式得到

\prod _{i=1}^{n}P(y_{i}|\widehat{y_{i}})=\prod _{i=1}^{n}\widehat{y_{i}}^{y_{i}}(1-\widehat{y_{i}})^{1-y_{i}},\,\,y_{i}\in\{0,1\}

其中\widehat{y_{i}}表示模型预测当前图像是猫的概率。

使用log将连乘操作转变为连加操作:

log(\prod _{i=1}^{n}\widehat{y_{i}}^{y_{i}}(1-\widehat{y_{i}})^{1-y_{i}})\\=\sum _{i=1}^{n}log(\widehat{y_{i}}^{y_{i}}(1-\widehat{y_{i}})^{1-y_{i}})\\= \sum _{i=1}^{n}[y_{i}\cdot log\widehat{y_{i}}+(1-y_{i})log(1-\widehat{y_{i}})]

回顾一下我们的目的,我们是要求极大似然值,也就是上式的最大值(log不改变单调性):

max(\sum _{i=1}^{n}[y_{i}\cdot log\widehat{y_{i}}+(1-y_{i})log(1-\widehat{y_{i}})])

但是为了方便优化,我们更倾向于求最小值,所以加一个符号变成如下公式:

min-(\sum _{i=1}^{n}[y_{i}\cdot log\widehat{y_{i}}+(1-y_{i})log(1-\widehat{y_{i}})])

看到这里,有的小伙伴可能就发现了:这不就是交叉熵损失么!!!

确实,形式上看这就是交叉熵损失,但我们是通过最大化似然一步一步推导出来了。事实上,交叉熵是极大似然估计在二分类场景中的特例。

后续我们会从熵和信息的角度推导交叉熵损失~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值