最大似然估计 (Maximum Likelihood Estimation), 交叉熵 (Cross Entropy) 与深度神经网络
最近在看深度学习的"花书" (也就是Ian Goodfellow那本了),第五章机器学习基础部分的解释很精华,对比PRML少了很多复杂的推理,比较适合闲暇的时候翻开看看。今天准备写一写很多童鞋们w未必完全理解的最大似然估计的部分。
单纯从原理上来说,最大似然估计并不是一个非常难以理解的东西。最大似然估计不过就是评估模型好坏的方式,它是很多种不同评估方式中的一种。未来准备写一写最大似然估计与它的好朋友们,比如说贝叶斯估计 (Beyasian Estimation), 最大后验估计(Maximum Posterior Estimation)的关系。
(版权所有,转载请注明出处)
最大似然估计
如果写出最大似然估计的公式的话是这样的:
假设一个模型是一个图片分类任务,从一个的图片来识别出模型到底是一个猫,一个狗,还是其他什么东西。那么输入就是的矩阵(图片),输出就是一个3维的向量,比如说代表从图片到对应三个分类的概率。
对于这个任务而言,我们需要学习的是一个给定分类函数的参数, 这个函数可以是任何函数,只要这个函数最终能输出三分类对应的概率向量就可以了。对于而言,我们的目标是,对于给定的输入,输出值越接近真实值越理想,这个就是所谓的最大似然。
如果用模型训练的角度上来说,我们可以把公式展开成如下的形式:
在这里,和分别代表一张训练数据的图片和训练数据图片代表的分类结果,在公式里面求和是希望考虑所有的样本情况。由于用于训练的图片是事先标注好的属于某一个类别,所以最终的概率向量的每一个分量不是就是,比如说, 之类的。
那么问题来了,我们如何来判断目前的输出概率更接近于真实的概率呢?在这里我们能用到一个现成的工具: KL Divergence (KL散度), KL 散度是用来判断两个概率分布的距离,其公式为(假设我们要判断从概率分布P到概率分布Q的距离):
所以说在我们这里就成为:
在这里指的是标注好的输出,而指的是算法的输出。
那么我们的优化目标就变成了使得最小。
交叉熵
这里不想叙述太多关于熵和交叉熵的基本知识,简单来说交叉熵是用来计算两个函数或者概率之间的距离,计算的方式也是使用的KL Divergence,在机器学习的世界里面大概可以认为交叉熵和最大似然估计是一回事,如果看到这两个术语应该把他们联系在一起。
具体可以参考下面的几篇文章:
1) Andrew Moore关于信息论的Tutorial。
2) A Friendly Introduction to Cross-Entropy Loss
与深度学习的关系
那么最大似然估计(交叉熵)与深度神经网络有什么关系呢?如果你写过TensorFlow的程序的话,你会注意到程序的最后往往会加上一个Softmax函数。Softmax函数一个重要的性质就是把输出归一化转换到每一个对应分类的概率。一旦转换为概率之后,我们就可以用到最大似然估计(交叉熵)的方式来求得最大似然或者最小交叉熵。
在这里推荐Tobe同学的一篇总结Cross Entropy在Tensorflow中应用的文章:
其他参考资料
1) https://www.autonlab.org/_media/tutorials/mle13.pdf
2) http://www.mi.fu-berlin.de/wiki/pub/ABI/Genomics12/MLvsMAP.pdf
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
2016-11-27 人人都要学一点深度学习(1)- 为什么我们需要它
2010-11-27 分布式计算概述
2009-11-27 下一个阶段(用C++重写Lucene的计划)
2009-11-27 学习搜索引擎心得(10.25-11.25)