原文地址:http://banzhiyan.net/index.php/2015/07/29/mle_lms/
概率和似然值
概率和似然值在形式上非常像,也非常容易混淆,它们是有关联但是完全不一样的概念。似然这个文言就非常难以理解,所以从一个例子中理解这是个啥。
有一个箱子里面有3个红球,2个黑球,如果有放回地取5个球,那么取到”红红红黑黑”的概率是多少。这个概率的计算还是很简单的:
p=0.6∗0.6∗0.6∗0.4∗0.4
如果现在我们只知道盒子里面有五个球,但是并不知道盒子里面有几个红球几个黑球,我们依旧取了5次球,结果分别是”红红红黑黑”。根据实验的结果我们来猜测盒子里面有几个红球几个黑球。
我们知道盒子里面总共有5个球,那么盒子里面红黑球个数的分布就这么几种情况,”1红/4黑,2红/3黑,3红/2黑,4红/1黑”,0红或者0黑是不可能的,因为我们都已经取出红球和黑球了。那么根据这四种可能的情况分别计算出现”红红红黑黑”的概率。
p(1红/4黑)=0.2∗0.2∗0.2∗0.8∗0.8=0.00512 p(2红/3黑)=0.4∗0.4∗0.4∗0.6∗0.6=0.02304 p(3红/2黑)=0.6∗0.6∗0.6∗0.4∗0.4=0.03456 p(4红/1黑)=0.8∗0.8∗0.8∗0.2∗0.2=0.02048
比较上面这每一种情况的概率分布,我们更有理由相信盒子里面有3红/2黑的概率更高。
这里每一种情况的概率就是似然值。似然值是根据概率计算得来,但是它并没有概率的意义,它只有比较的意义。我们将似然值乘以、除以一个数或者取个对数,这种只要保持单调性的操作之后似然值依旧是似然值。只要p(3红/2黑)比其他的都大就可以了。
最小二乘法和极大似然估计
在机器学习中,当我们建立好学习的模型之后,需要对模型的参数进行学习。一个非常有用的方法是最小二乘法,其原理就是不断调整参数来让估计值和实际值的方差和最小。
设估计值为
h(θ)
,实际值为
y
,则损失函数如下:
我们只要通过训练样本来不断修正
θ
让
J(θ)
最小,而训练的方法有很多,梯度下降、随即梯度下降、牛顿法等等,而线性回归则可以直接求出
θ
,这里不再展开。
我们从另外一个角度来看待这个问题,假设每一个训练样本都是独立同分布,同时假设其分布为正态分布。那么,在给定样本属性值和某个参数
θ
的情况下,实际值
y
的分布如下:
其中
σ
是训练样本的标准差,根据这样的分布,我们出现
(x1,y1),(x2,y2),(x3,y3)⋯
的概率是:
L(θ)=P(Y|X,θ)=∏ip(yi|xi,θ)
在给定
(X,Y)
的情况下,这就是一个关于
θ
的函数,这就是关于
θ
的似然函数,根据上面关于似然值的介绍可以得知,如果能找到一个参数
θ
使得
L(θ)
最大,我们就可以认为在这个参数下,训练样本出现的概率最大,那么就可以认为这个
θ
是最接近正确的参数。
同样根据似然函数的性质可以知道,
L(θ)
并不好计算,我们可以对
L(θ)
取一个对数:
l(θ)=ln(L(θ)) =ln(∏ip(yi|xi,θ))=ln(∏i12π√σexp(−(yi−hi(θ))22σ2)) =∑iln(12π√σexp(−(yi−hi(θ))22σ2)) =∑i[ln(12π√σ)−(yi−hi(θ))22σ2] =mln(12π√σ)−∑i(yi−hi(θ))22σ2 =mln(12π√σ)−12σ2∑i(yi−hi(θ))2
这个式子里面除了最后
∑
的内容,其他都是常数项,所以要最大化
l(θ)
只需要最小化
∑i(yi−hi(θ))2
。这最后的结果和上面通过最小二乘法得到的损失函数是一样的。
这里还有一点小小的疑问,那就是这个结论正确性的基础是假设值的分布满足正态分布,但是这个假设的正确性却没有办法证明。按照Andrew Ng在机器学习公开课里面的解释是这就是对的,可以通过严格的数学证明,但是他没有说怎么证明。。。