Press "Enter" to skip to content

从极大似然到对数损失函数和交叉熵损失函数,以及对数损失优化取值范围

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

极大似然估计

 

在统计学领域,有两种对立的思想学派:贝叶斯学派和经典学派(频率学派),他们之间最大的区别是如何看待被估计的参数。贝叶斯学派的观点是将其看成是已知分布的随机变量,而经典学派的观点是将其看成未知的待估计的常量。

 

极大似然估计属于经典学派的一种。通俗来说,极大似然估计就是利用已知的样本结果信息,反推最大概率出现这些结果的参数信息。

 

举一个通俗点的例子来说明一下什幺是极大似然估计。比如我们在网上发现了两篇重复率比较高的文章,但作者ID并不是一个人,我们推测这两个作者之间存在一定的“关系”,经过对比文章的发布时间和其他文章的写作风格,我们认为存在极大的可能是A抄袭了B的文章。这个推测的过程就称为 似然 ,得到可能结论就是 极大似然估计 。

 

极大似然估计中采样需满足一个重要的假设,就是所有的采样都是独立同分布的。在进行参数计算的过程中,首先假设样本服从某种概率分布,在利用已知的样例数据对参数进行估计。

 

假设具有确定的概率分布形式,且被参数唯一确定,则任务就是利用训练集来估计参数。

 

对于训练集中第类样本组成的集合的似然(likelihood)为:

 

如果使用连乘进行参数估计在计算时很不方便,所以这里取了一个对数,即对数似然估计:

 

于是的极大似然估计为:

 

参数估计结果的准确性严重依赖于所假设的概率分布形式是否符合潜在的真实分布。

 

对数损失函数和交叉熵损失函数

 

对数损失函数(Log loss function)和交叉熵损失函数(Cross-entroy loss funtion)在很多文献内是一致的,因为他们的表示式的本质是一样的。

 

log loss function表达式:

 

其中是第个样本的真实标签,是第个样本预测为正样本的概率。

 

cross-entropy loss function表达式:

 

其中表示样本数,表示样本所属的不同类别个数,表示样本所属类别,表示预测的样本属于类别的概率。

 

从上述的表达式中看,两者的损失函数本质是一样的,但是这里需要注意的是通常情况下,这两种损失函数所对应的上一层结构不同,log loss经常对应的是Sigmoid函数的输出,用于二分类问题;而cross-entropy loss经常对应的是Softmax函数的输出,用于多分类问题。

 

所以在神经网络中精彩使用cross-entropy作为评判参数优化的函数,而在二分类的场景下精彩使用log loss作为评判参数优化的函数。

 

但是其实log loss也可以应用在多分类,这时候就和cross-entropy loss应用在多分类没有什幺差别了。

 

log loss function 和 cross-entropy loss function本质上没有什幺区别,无论是在二分类还是多分类场景下都可以进行应用,只不过大多数人的应用习惯不同而已。

 

对数损失优化取值范围

 

上一小节中的log loss表达式可以转换为:

 

假如我们现在有个训练集,100万个数据点,其中10万个为阳性,那幺总体上每个样本为1的概率可近似认为是0.1。通常来说,测试集的分布是非常接近于训练集的,那幺测试集中大概有10%的样本为阳性。如果我们预测测试集中每个样本为1的概率都为0.1,那幺logloss会是多少呢?

 

假如总体分布是每个样本以的概率为阳性,我们预测每个样本为阳性的概率都为,也就是,那幺logloss是多少呢?

 

所以最差的情况就是,样本正好是一半阳性一半阴性,此时按照乱猜出的logloss是0.693。

 

换句话说,只要loglss是在0.693以上,就基本说明了模型是失败的。

 

更多关于损失函数的介绍可以点击阅读:

 

排序模型训练中过程中的损失函数,盘它!

 

参考

 

https://blog.csdn.net/Gamer_gyt/article/details/88431971

 

https://www.zhihu.com/question/24124998/answer/883582430

 

http://sofasofa.io/forum_main_post.php?postid=1000508

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注