Processing math: 100%

统计推断:最大似然估计、贝叶斯估计与方差偏差分解

1 参数估计、频率学派和贝叶斯学派

1.1 最大似然估计

X=(X1,Xn)(这里X是随机向量,代指样本,注意机器学习里的样本是单个数据点,统计学里样本是指所有数据的集合)是来自以f(x|θ)(θ=(θ1,,θk))为其密度函数或概率质量函数的总体的独立同分布(iid)样本。如果观测到X=x,则我们定义一个关于θ的似然函数L(θ|X)=f(X|θ)来表示当观测X=x时,参数θ取不同值时的似真程度。注意这里我们没说可能性,因为θ是一个定值(虽然其值未知)。此外,尽管f(x|θ)做为x的函数是一个概率密度函数,但并不能保证L(θ|X)作为θ的函数也是概率密度函数。

由于样本是独立同分布的,我们又有:

L(θ|X)=f(X|θ)=Πni=1f(xi|θ)

故对于固定的随机向量x,令ˆθ(x)是参数θ的一个取值,它使得L(θ|X)做为θ的函数在该处达到最大值,那么基于样本X的最大似然估计量(maximum likelihood esitimator 缩写为 MLE)就是ˆθ(X)

而要使似然函数L(θ|X)最大,显然是一个最优化问题,如果似然函数是可微的(对于θi),那么 MLE 的可能值就是满足

θL(θ|X)=0

的解(θ1,...,θk)。注意该方程的解仅仅是 MLE 的可能的选择,则是因为一阶导数为0只是成为极值点的必要而非充分条件(还要加上我们前面所说的二阶条件)。另外,一阶导数的零点值处于函数定义域Ω内部的极值点上(即内点)。如果极值点出现在定义域Ω的边界上,一阶导数未必是0,因此我们必须对边界进行核查以发现极值点。

一般情况下,使用微分法时,处理L(θ|X) 的自然对数 log(θ|X)(称为对数似 然函数,log likelihood)比直接处理L(θ|X)容易。这是因为 log是凹函数(加个负号就是凸函数),且是(0,)上的严格增函数,这蕴含着L(θ|X)的极值点和log(θ|X)的极值点是一致的。

下面我们举个例子来演示。下面这个例子非常重要,后面我们统计学习专栏中的Logistic回归就基于这个例子的加强版。设X=(X1,...Xn)是 iid 的,且服从参数为p的 Bernoulli(读作伯努利)分布(搞忘了伯努利分布的同学可以参见《Python中的随机采样和概率分布(二)》)),于是似然函数定义为:

L(p|X)=Πni=1pxi(1p)1xi

尽管这个函数的微分并不是特别困难,但是对数似然函数

logL(p|X)=ni=1log[pxi(1p)1xi]=ni=1[log pxi+log (1p)1xi]

的微分却很简单,我们令L(p|X)微分并令其结果为0,就得到解:

ˆp=xin

这样我们就证明了Xi/np的MLE。

当然,一旦L(p|X)复杂起来,我们难以解析求出其最优解,那么我们就要用到《数值最优化:一阶和二阶优化算法(Pytorch实现)》所学到的梯度下降法、牛顿法等数值优化方法求其数值解(因为我们这 里是使似然函数最大,最优化算法是使函数最小,故使用时要给目标函数加个负号)。

1.2 贝叶斯估计

最大似然估计方法非常经典,但是还有一种参数估计方法与它有着显著的区别,称之为Bayes 方法。(注意Bayes方法是一种参数估计方法,和我们在《统计学习:朴素贝叶斯模型(Numpy实现)》所讲的贝叶斯模型是两码事,大家不要搞混了)贝叶斯方法的某些方面对于统计学的其他方法还是相当有帮助的。

在经典的最大似然估计方法中,参数θ被认为是一个未知、但固定的量,从以θ为指标的总体中抽取一组随机样本X1,...Xn,基于样本的观测值来获得关于θ的知识,持这种观点的人称为频率学派。在Bayes方法中,θ是一个变化可被一 个概率分布描述的量,该分布叫做先验分布(prior distribution),这是一个主观的分布,建立在试验者的信念(belief) 上,而且见到抽样数据之前就已经用公式制定好了(故而名为先验)。然后从以θ为指标的总体中抽取一组样本,先验分布通过样本信息得到校正,持这种观点的人称为贝叶斯学派。这个被较正的先验分布叫做后验分布(posterior distribution),这个校正工作称为Bayes统计。

我们把先验分布记为π(θ)而把样本分布记为f(x|θ),那么后验分布是给定样本x的条件下θ的条件分布,由贝叶斯公式得:

π(θ|x)=f(x|θ)π(θ)/m(x)

这里分母m(x)=f(x|θ)π(θ)dθX的边缘分布。

注意这个后验分布是一个条件分布,其条件建立在观测样本上。现在用这个后验分布来做出关于θ的推断,而θ仍被考虑为一个随机的量,我们得到的是其概率分布,如果要给出一个模型,通常取后验概率最大的模型。此外,后验分布的均值可以被用作θ的点估计。

不同于最大似然估计采用数值优化求解,Bayes 估计因为涉及到积分,我们 常采用蒙特卡洛等数值积分方法求解。

频率学派虽然和贝叶斯学派对统计有着不同的认识,但可以简单地把两者联 系起来。我们令D表示数据,对于P(θ|D)=P(θ)P(D|θ)/P(D)假设先验分布是均匀分布,取后验概率最大,就能从贝叶斯估计得到最大似然估计。下面对贝叶斯估计和最大似然估计进行比较:

给定数据集D,最大似然估计:ˆθ=argmaxθP(D|θ)

电影爱好者的评分情况示意图

给定数据集D,贝叶斯估计:ˆP(θ|D)=P(θ)P(D|θ)/P(D)

电影爱好者的评分情况示意图

可以看出,前者是一个点估计,后者得到的是一个概率分布。

注:哲学上的先验和后验


人类对客观世界的认识分为“先验”和“后验”。后验是指人类通过经验所产生的认识,而先验是指人类在经验之外通过自身的理性对客观世界的认识。

过去哲学家在人类对客观世界的认识是来自经验还是来自理性产生了巨大的分歧,也分成了两个学派。一个是理性主义,主要是以法国的笛卡尔、德国的莱布尼兹为代表,他们人类可以通过自身的绝对理性来认识世界。因为这个学派的哲学家主要来自欧洲大陆,故他们的学说被称为“欧陆哲学”。另一个学派是经验主义,主要是以英国的休谟为代表,他们认为人类只能通过经验来认识世界。 其中休谟还是个不可知论持有者,他认为人的经验是不可靠的,这使得世界对人是不可知的。

现在看来,频率学派和贝叶斯学派的争执和当年经验主义和理性主义的争执何其相似!

绝大多数机器学习模型都需要通过学习数据集中“后验”的知识来得到。而学术界有部分人认为人类的知识不全是通过后天经验来得到的,比如音乐、文学、 戏剧这些普遍需要先天的天赋或者灵感,被有些学者认为是“先验”或者是“超验”的。有趣的是,按照柏拉图的洞穴人理论,人居于世如同洞穴人居于洞穴之中,就好比洞穴人只能通过洞穴壁上的投影近似认识洞穴外的事物,人类也只能通过物理世界的事物来近似认识抽象的理念世界,而不能完全认识它。柏拉图认为,音乐、文学这类东西就是存 在于抽象世界的理念世界的一部分,人类先天已经在抽象世界认识过,而在物理世界中音乐家、文学家只是在尽他们的努力去近似重现这些东西,而永远不能完全重现。

显然,按照柏拉图观点的推论,AI主要通过经验进行学习,自然也无法认识抽象世界的“理式”。这也就为AI能在棋类、游戏中战胜人类,而在音乐、文学等领域难以超越人类提供了一种解释。


2 估计参数方差和偏差

我们对概率分布的参数进行估计可以应用不仅一种方法,这就需要我们评估参数估计量质量的度量。

参数θ的估计量W的均方误差(mean squared error,MSE,注意:这里和我 们前面最小二乘的均方误差应用场景是不同的,但思想是相似的) 是由Eθ(Wθ)2定义的关于θ的函数。参数θ的点估计量W的偏差(bias)是指的W的期望值与θ之差,即BiasθW=EθWθ。一个估计量如果它的偏差(关于θ)的恒等于 0,则称为 无偏的(unbiased),它满足EθW=θ对所有θ成立。同时,我们也定义估计量θ的方差为Var(W),方差的平方根称为标准差(standard error),记做SE(W)

3 方差-偏差分解和过拟合

这样 MSE 乃至所有的参数估计由两部分组成,其一度量该估计量的方差,其二度量它的偏差,即

MSE=Eθ(Wθ)2=VarθW+(EθWθ)2=VarθW+(BiasθW)2

一个好的估计量应该在方差和偏差两项上综合小。为求得一个良好 MSE 性质 的估计量我们需要寻找方差和偏差两者都得到控制的估计量。显然无偏估计量对 控制偏差再好不过。

对于一个无偏估计量,我们有:

Eθ(Wθ)2=VarθW

如果一个估计量是无偏的,它的 MSE 就是它的方差。

偏差和方差的关系与机器学习模型容量、欠拟合和过拟合的概念紧密相联, 用 MSE 度量泛化误差(偏差和方差对于泛化误差都是有意义的)时,增加容量会增加方差,降低偏差。如下图所示,这被称为泛化误差的 U 型曲线。

电影爱好者的评分情况示意图

引用

  • [1] Calder K. Statistical inference[J]. New York: Holt, 1953.
  • [2] 李航. 统计学习方法(第2版)[M]. 清华大学出版社, 2019.
  • [3] Ian Goodfellow,Yoshua Bengio等.深度学习[M].人民邮电出版社, 2017.
  • [4] 周志华. 机器学习[M]. 清华大学出版社, 2016.
posted @   orion-orion  阅读(1815)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 易语言 —— 开山篇
· 实操Deepseek接入个人知识库
· Trae初体验
点击右上角即可分享
微信分享提示