源地址:http://ask.julyedu.com/question/150
===============================================================================================
又到了大家喜闻乐见的淘宝推荐环节(咦?拿错剧本了)趁这个坑我们八一下贝叶斯吧。声明:我贝叶斯也没学好,如果你想更深入的了解这一流派请回去看书,我瞎扯的东西不要轻易相信
===============================================================================================
说起贝叶斯啊,我们先将祖师爷的照片拿出来拜一拜,晨昏三叩首,早晚一炷香贝叶斯为我们留下的伟大遗产是贝叶斯公式,也就是
P(wj|x)=p(x|wj)P(wj)p(x)
很熟悉对不对?是的,你在任何一本概率论的书上都能找到这个公式,遗憾的是国内的很多教材对贝叶斯的内容提及很少(基本就是几页的篇幅),反倒是频率学派的内容要比贝叶斯的多。
频率学派跟贝叶斯学派打架的历史很悠久,这场战争就像VIM与Emacs,代码大括号写后面与另起一行类似,双方互掐了很多年(不过最近好像打得不那么激烈了?)
那么贝叶斯与频率的区别是什么?下面给出一个不正确的说法:
贝叶斯学派重视先验
频率学派重视似然
既然都不正确为什么还要提出来呢?因为这两句话有助于你后面的理解,但贝叶斯学派和频率学派的本质差别是对待参数的观念不一样,这两者就是两个不同世界的人,关于这点我们留后面聊。
怎么理解“贝叶斯重先验,频率重似然”这个说法?下面我们先来举几个通俗易懂的例子
假如你今天很不幸点进这个帖子,假设你又很不幸的看到我的答案有很多赞,排除朋友圈那些点赞狂人的存在,我们就假设这些赞都是正常人点的好了。
那么现在的问题是“这个瞎扯的答案是否是可靠的?”
很多人就会觉得,卧槽好NB,这么多赞,这个答案肯定可靠啦,这就是频率学派的观点。频率学派重视数据,而不会对数据带有任何有色眼镜来看待,某种程度上来说,频率学派的人有种“Talk is cheap, show me the code(英语八级翻译:没数据你跟我扯什么犊子)”的性格。
但假如Ng也很不幸地点进这个帖子,然后看到我的答案,你知道的啦,Ng要是一辆波音747的话,那答主充其量只能算台拖拉机的嘛。Ng看完我的废话,说“kie lie fie(粤语八级翻译:我都点进来了你就让我看这个?!)”然后Ng拍拍答主的肩膀“今天我作为一位长者告诉你一些人生经验,我觉得你啊,还需要学习,搞深度学习的LeCun,Hinton等人,不知道比你高到哪里去了,我和他们是谈笑风生,不信你看
↓ ↓ ↓ ↓”
Ng叔叔你都四十多了吐舌头卖萌真的好?么么哒
(没有征得刘老师的同意就盗图,如果刘老师觉得我冒犯了我就删)
为什么会这样呢?用贝叶斯的看法就是,因为Ng的知识比我丰富,所以他的先验告诉他,这将会是一堆瞎扯的文字,所以他对点赞的数量就不再完全相信了(人家压根就不会看好吗......),然后一看文章,果然是篇垃圾。所以,贝叶斯流派对待数据,是带有感情色彩的。
“我交朋友从来不看他有没有钱,反正都没有我有钱”-------低调网红小王
呐你看,这就是一种先验
换句话说,贝叶斯看重的是人的知识,也就是人的推测可以添加到估计中去,而频率流派的只谈数据。所以,大家现在能看懂下面这幅漫画的梗了吗?
轻松愉快喜闻乐见的扯淡环节到此就结束啦,下面我们从数学的角度上来看看频率学派以及贝叶斯学派的差异
贝叶斯观点与频率观点其本质区别在于:
贝叶斯学派认为参数是变量,而频率学派认为参数是定常的,只是我们不知道其取值而已
为了更好的理解这个说法,我们将举一个简单例子,用两种观点去分别处理
假设我们有一个多维的高斯分布
p(x)=1(2π)d/2|Σ|1/2exp[−12(x−μ)TΣ−1(x−μ)]
对于这个分布,我们假定只有参数 μ ,也就是高斯分布的均值是未知的,而参数 Σ ,也就是协方差矩阵是已知的。现在我们有一系列的训练集,也就是样本 D=x1,x2,⋯,xn ,我们需要根据这些样本去估计模型的均值。(为什么我们假定协方差是已知的呢?确实,在实际中我们也不会知道协方差矩阵,但是如果这里我们也将 Σ 未知,那么大家就不想往下看了=。=所以这只是一个简单的例子)
频率学派的做法是:
既然样本已知,而样本往往是独立同分布的(I.I.D),那么我们就有如下的似然函数:
L=p(D|μ)=∏k=1np(xk|μ)
在这里,频率学派就把 p(D|μ) 看成是参数 μ 的函数,但不意味他们将 μ 当成变量,因为他们认为参数都是客观存在的,我们要做的是去寻找到它。
怎么找?频率派的做法是让这个参数使得这个似然最大,但是我们需要先将上面的似然函数改写成对数似然:
ℓ=∑k=1nlnp(xk|μ)
对于某个样本,我们有
lnp(xk|μ)=−12ln[(2π)d|Σ|]−12(xk−μ)TΣ−1(xk−μ)
我们对其求导数,有:
∇μlnp(xk|μ)=Σ−1(x−μ)
这只是针对某一个样本而言,但是我们需要对整个训练集进行估计,所以我们令所有样本导数之和为0,此外,我们对于估计的均值用 μ^ 表示,即:
∑k=1nΣ−1(xk−μ^)=0
于是我们得到对于均值的估计为:
μ^=1n∑k=1nxk
这个结果是不是很符合常识呢?均值就是所有样本的平均
下面我们来看看贝叶斯学派的做法:
在贝叶斯的世界里,参数也是变量,参数也有自己的分布,所以,对于上面的高斯分布
p(x|μ)∼N(μ,σ2)
(注:这里的 σ 就相当于上面的 Σ ,往下的内容我们只讨论一维的高斯分布,高维的同理。)
模型有自己的分布,参数也有自己的分布,假设我们定义参数 μ 的分布也是高斯分布好了
p(μ)∼N(μ0,σ20)
其中 μ0 和 σ20 是已知的,这是你的先验知识,取决于你的决策。(有人可能就会问了,凭什么用高斯分布?这时候我们或许就要谈谈中心极限定理了,你知道的啦,高斯分布外号上帝分布,但其实换成别的分布也没问题的,这些都取决于你的先验知识。但是万一你的先验知识失败了呢?也就是参数根本就不是那么回事你瞎弄一个参数分布给他,这其实也是频率派看不起贝叶斯的一个方面,关于这方面的讨论我们留后面)
好了,现在我们知道模型有自己的分布,参数有自己的分布,那么怎么去估计这个参数呢?这就要用到贝叶斯公式了
p(μ|D)=p(D|μ)p(μ)∫p(D|μ)p(μ)dμ
由于分母只是起到归一化的配分常数,所以我们可以扔掉它,用 α 来代替,于是上式可以写成:
p(μ|D)=α∏k=1np(xk|μ)p(μ)
于是,对于上面的公式,我们代入各自的概率密度,我们将得到:
p(μ|D)=α∏k=1n12π−−√σexp[−12(xk−μσ)2]12π−−√σ0exp[−12(μ−μ0σ0)2]
然后经过一系列的化简以及展开,我们将得到(由于是在不想敲公式了=。=我就不推了,大家可以私下去推一下)
p(μ|D)=α′exp[−12[(nσ2+1σ20)μ2−2(1σ2∑k=1nxk+μ0σ0)μ]]
注:上面的 α′ 是相对于 α 的另一个参数,意思就是说,常数项我们都不管他,都扔到一起去,这样 α 就变成了 α′
上面的式子,如果我们要将其合并成一个高斯分布的标准形式,也就是
p(μ|D)=12π−−√σnexp[−12(μ−μnσn)2]
那么,我们对应着之前的式子,我们不难得出:
1σ2n=nσ2+1σ20
以及
μnσ2n=nσ2μ^n+μ0σ20
其中, μ^n 是样本的均值,也就是
μ^n=1n∑k=1nxk
接着,我们联立方程,解上面两个式子,我们就会得到
μn=(nσ20nσ20+σ2)μ^n+σ2nσ20+σ2μ0
以及
σ2n=σ20σ2nσ20+σ2
至此,我们完成了贝叶斯估计的所有过程,呼,大工程
分析一下贝叶斯估计的结果,这里我们只分析均值好了,也就是下面这个
μn=(nσ20nσ20+σ2)μ^n+σ2nσ20+σ2μ0
大家对比一下频率学派的结果:
μn=μ^n
对比一下你就会发现,贝叶斯估计比频率估计多了一个系数,以及一个和项,也就是
nσ20nσ20+σ2 和 σ2nσ20+σ2μ0
什么意思呢?你可以这样理解,贝叶斯估计可以看做在极大似然估计的基础上加入人为的干预,你看,你对参数模型的分布 p(μ)∼N(μ0,σ20) 的先验,是不是在估计上影响了估计结果?
但是如果你的你对参数模型设置错了呢?也就是说,参数应该是一个均匀分布而不是高斯分布,但是你给他弄了个高斯分布,这样就严重影响了估计结果了。
确实,先验一定程度上影响了估计结果,但情况并没有这么糟糕,你再观察一下均值的估计:
μn=(nσ20nσ20+σ2)μ^n+σ2nσ20+σ2μ0
当n趋于无穷的时候等于什么?
惊喜
当n趋于无穷的时候,贝叶斯估计的结果居然跟极大似然的结果是一致的。
来,跟着我一起唱:
我眺望远方的山峰
却错过转弯的路口
蓦然回首
才发现你在等我
没离开过
我寻找大海的尽头
却忽略蜿蜒的河流
当我逆水行舟
你在我左右
推着我走
没错,当训练样本无穷多的时候,样本会推着贝叶斯估计向极大似然走,这时候两者是等价的。但是当样本非常少的时候,先验就会严重影响估计了。但是你这么想:少量样本,极大似然照样也不能工作哈哈哈哈哈哈哈,贝叶斯估计起码让人自己去蒙一蒙,万一蒙对了呢是吧?
下面这张图比较清晰地描述了贝叶斯估计与样本数量之间的关系
其中曲线上面的数字代表着样本数,从样本数上面,我们可以出,随着样本数越来越多,曲线也越来越陡,你的先验所能发挥的作用也会越来越小。来我们再来看一张三维的
就是这样,样本推着贝叶斯估计往正确的方向走,明白了吗
贝叶斯估计方法我们就讲到这里,下面我们来聊一聊楼主的问题
我去查了下楼主的问题中的那句话,发现出自《Coursera公开课笔记: 斯坦福大学机器学习第七课“正则化》
其原文摘录如下:
==============================
模型选择的典型方法是正则化。正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项(regularizer)或罚项(penalty term)。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。比如,正则化项可以是模型参数向量的范数。正则化符合奥卡姆剃刀(Occam's razor)原理。奥卡姆剃刀原理应用于模型选择时变为以下想法:在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。 从贝叶斯估计的角度来看,正则化项对应于模型的先验概率。 可以假设复杂的模型有较大的先验概率,简单的模型有较小的先验概率。