最大似然估计
怎么判断机器学习它学得如何?
如上图,人工智能就是要让机器像人脑一样思考问题? 机器学习的过程就是在建模、在学习一个统计模型.
通过一些事物/数据,给出一个判断的结果.
人脑也可以抽象出来一个模型,用于对某些事物的判断辨别.
衡量模型的好坏可以利用人判断出来的结果和机器判断的结果进行比较,差别越小,就说明人脑中的模型与机器学到的模型越近似!
定量衡量结果的差别,常见的有最小二乘法,最大似然估计法和交叉熵
什么是最大似然估计?
再举个例子:
假如有一个盒子,里面有黑白两种颜色的球,数目多少不知,两种颜色的比例也不知。我们想知道罐中白球和黑球的比例,但我们不能把罐中的球全部拿出来数。现在我们可以每次任意从已经摇匀的罐中拿一个球出来,记录球的颜色,然后把拿出来的球再放回罐中。这个过程可以重复,我们可以用记录的球的颜色来估计罐中黑白球的比例。假如在前面的一百次重复记录中,有七十次是白球,请问罐中白球所占的比例最有可能是多少?
凭感觉,就能给出答案:70%!
为什么?
设白球概率是p,黑球是1-p(罐子中非黑即白)
取100个球,70次是白球,30次是黑球,概率可以表示:
P
(
x
∣
θ
)
=
C
100
30
p
70
(
1
−
p
)
30
P(x|\theta) = C_{100}^{30}p^{70}(1-p)^{30}
P(x∣θ)=C10030p70(1−p)30
求p的的最大值,即求盒子中对应的概率模型的似然值.
求最大值可以求个导
,
因为
C
100
30
是常量,可以去掉
,
不影响求
p
的最大值
求最大值可以求个导,因为C_{100}^{30}是常量,可以去掉,不影响求p的最大值
求最大值可以求个导,因为C10030是常量,可以去掉,不影响求p的最大值
求导:
P
′
=
70
∗
p
69
∗
(
1
−
p
)
30
+
p
70
∗
30
∗
(
1
−
p
)
29
∗
(
−
1
)
P' = 70*p^{69}*(1-p)^{30} + p^{70}*30*(1-p)^{29}*(-1)
P′=70∗p69∗(1−p)30+p70∗30∗(1−p)29∗(−1)
令导数为0:
0
=
70
∗
p
69
∗
(
1
−
p
)
30
+
p
70
∗
30
∗
(
1
−
p
)
29
∗
(
−
1
)
0 = 70*p^{69}*(1-p)^{30} +p^{70}*30*(1-p)^{29}*(-1)
0=70∗p69∗(1−p)30+p70∗30∗(1−p)29∗(−1)
最后化简得:
p = 70%
神不奇神奇!
总结:
最大似然估计: 一个事件A发生,求它最有可能对应的概率分布!
理解到这终于可以往下推为什么最小二乘法求最优解可以用最大似然估计法了
引入:
在许多情况下,我们的样本数据都会存在系统误差、测量误差, 测量误差受到多个独立因素的影响,这些因素可能是微小的不确定性、观测误差、环境噪声等等。根据中心极限定理,这些独立因素的累积效应会使得误差分布趋向于高斯分布。
高斯分布的概率密度函数提供了在给定均值和标准差的情况下,某个具体取值的相对概率密度。
将样本误差带入到高斯分布的概率密度函数中,意味着我们将误差值视为自变量,通过相对概率密度计算该误差值对应的概率密度。------最大似然估计
相对概率密度的理解:
相对概率密度是将某个取值范围内的概率密度函数与整个样本空间的概率密度函数相比较得到的。它告诉我们
在某个取值范围内事件的概率相对于整体样本空间的概率有多大。
就好比上面提到的抛硬币这件事
就是利用已知的样本结果信息,反推最具有可能(最大概率)导致这些样本结果出现的模型参数值!**
这些还是挺抽象的,专业名称什么的,好烦。
似然函数:
看到这个表达式,wtm又蒙圈了.看来还是觉得理解的不够透彻,有种云里雾里的感觉.可能平时对数学的学习所花的时间有点少.
经过了反反复复的百度+b站的探索…
发现,网上也是有好多同学,存在着和我相同的疑惑.他们表示,会把数据带入到公式计算,但根本不理解,为什么能怎么做?我也是这么想的
在这感想互联网让我找到了些许的共鸣,太感动了…
不扯了…
公式总是抽象的,现在的教科书也是一上来,就啪的一下搞一堆公式丢你脸上.然后就是例题.这也太应试了.
我想说,我的想法是:学习是探索的过程,而不是死磕的过程.是活的,不是死的!
学习是在探索中学会,怎么以自己最好理解的角度去分析一个问题
在b站评论区发现的一段评论:
前人开辟的路可以直接走,也可以先探寻再跟随。前者的好处在于快速,且能在几乎不理解缘由的情况下做出点东西;后者的虽然缓慢,却能加深对问题本质的理解,虽说难以立即出成果,但其中潜在益处却远高于前者。或者可以理解为,知识是现成的招式,可以照猫画虎的做;学习是内功,不断修炼积累后可以很快的吸收知识,甚至自己创造知识。
Ou god dam!讲的太好了,激起了我的共鸣
真不扯了。。。
公式是抽象的,理解抽象的东西我们就要找到一个角度去具象化它
例子切入:
假设要统计全国人民在吃饭上的花费情况,首先我们假设它服从高斯分布,但我们不知道这个高斯分布的均值和标准差.(大多数人的消费水平是差不多的,只有少数人吃不饱,少数人吃得高档!). 我国有14亿人口,我们哪有人力和物力去调查统计每一个人. 那岂不是g了?
此时,如果你懂极大似然估计,那我们就有办法了.
首先选取一个城市甚至是小镇,统计它们的在吃饭上的消费水平,作为我们的观察样本结果.然后通过最大似然估计来求出总体上的那个高斯分布(一开始假设的)最有可能的均值和标准差
所以,最大似然估计的思想就是:采集小样本,来估计(映射)出那个最有可能的 总的概率密度函数
也就是概率的概率
太棒了,理解到这开始有点感觉了,继续…
参数估计
我的目标是: 理解最大似然估计为什么能用来求模型的最优参数?(这个问题困扰了我挺久的)
首先对我们假设要做一个机器学习的任务:如预测全国的房价(房价大部分的价格差不多,只有小部分的乡村较为便宜,小部分的地区价格昂贵!),这是可能举的不太恰当,还请理解.
所以,我们可以假设全国的房价服从一个均值和标准差未知的高斯分布
以小见大----> 我们从总样本(全国)的数据来进行采样,每一条采样的数据我们假设都是独立的互不影响 (北京的房价影响不到我汕头的房价),但这些采样数据都是服从同一个分布的(我们一开始假设的高斯分布).
这就是独立同分布,这是绝大部分算法模型的重要假设!
OK,现在我们有一组采样数据来自于同一个高斯分布,那么如何确定这些数据来自与哪一个高斯分布呢?
从理论上来说,高斯分布的定义域是负无穷到正无穷。所以,任何参数(均值,标准差)的高斯分布,
都有可能采样出这组数据!区别就是采样于每一个高斯分布的可能性不同 即概率不同。
(举个例子:假设你捡到一根口红,现在有两个人来认领,一男一女,那么,这根口红是属于女生的概率和是属于男生的概率不同。正常情况下,它属于女生的概率会大很多)
所以,我们想知道的是:哪个高斯分布能让这组数据出现的概率最大?(哪个人丢口红的概率最大😁)
现在,我们采样的每一条数据,都可以用条件概率来表示,从目标高斯分布中被采样的概率
表示例如:
这就是为什么似然函数长这个样:
然后就是求最大值,求最有可能的高斯分布对应的参数:
即求一个
θ
使得上面这个最大
即求一个\theta使得上面这个最大
即求一个θ使得上面这个最大
讲到这里,我想我对最大似然估计的理解更加通透了。
总结:
篇幅写得有点长了,下面我在写一篇最大似然估计在机器学习中的理解。