机器学习方法整理 线性回归

机器学习方法整理-线性回归 #

Date: 2015/6/12

看机器学习的视频头都大了,回头还不太清楚怎么用。在师兄的启发下,说可以整理一下思路,给人多讲一讲,就能够基本理清了。于是有了这些文章,至少给自己讲懂吧,不是么?
根据不同的机器学习类型,拟一拟我对课堂中介绍的一些概念的看法,看看是否能够屏蔽掉复杂的公式推导,使思路变得简单?
ok, 本章是线性回归。more线性回归

线性回归的前提是:将样本空间量化为线性向量,第i个样本的参数为x(i),其结果为y(i)

线性回归的目标是:找到一个回归函数 hθ(x)=θTx,能够尽可能的逼近给定的样本点。
在上述公式中,由于函数取决于一个向量θ,因此被称作是线性回归,而通常使用下列公式作为逼近程度的判断标准:
J(θ)=12mi=1(hθ(x(i))y(i))2
当公式取得最小值时,该回归函数就可以被认为是吸收了样本信息。
该公式的定义,利用平方使距离成为了非负数,前面添加12不影响求最小值的结果,但可以使求导的过程和结果更加漂亮。梯度下降法

求解J(θ)的方法很多,最为经典的就是梯度下降法(gradient descent),现在有大量的研究人员使用该方法。方法思想非常简单:向着切面的负方向跨一小步,就离极值点更近了一步,不断的跨出这一小步,最终就能到达极值点附近。

该方法仅能用于求解局部最优问题,但通常情况下,回归问题都是凸函数,所以利用梯度下降能够获得最优解。

梯度下降法迭代过程中的每一小步,可看作向几个正交方向上分别跨出一小步,被定义为:

θj:=θjαθjJ(θ)

其中α为步幅大小。如果设置α较大,则会更快的收敛,但是最终精度不高,而如果α较小,收敛会比较慢。因此,师兄说:可在每跨一步时,令α=αθi(α)????,可令α取得更合适的值。???

对于上述公式,经过求偏导化简,可得出结果:
θj:=θjα(hθ(x(i))y(i))x(i)j

对多组样本数据来说,有两种迭代方案,其不同体现在计算θj的方法:

  1. 遍历所有的x(i)后,才能得到新的θ,进行下一次迭代;
  2. 每计算一个x(i),就计算出新的θ,进行下一次迭代,下一次迭代将选择一个新的样本。最小二乘法(least square)

最小二乘法利用了矩阵的一些运算和性质进行推导。把全部样本的参数定义为m行n+1列的矩阵X
[x(1)T x(2)T  x(m)T ]


把样本的参数集定义为m行1列的向量Y
[y(1) y(2)  y(m) ]

由于回归函数是:hθ(x)=θTx=xTθ,因此得到新的向量:
XθY=[x(1)Tθ x(2)Tθ  x(m)Tθ ][y(1) y(2)  y(m) ] =[hθ(x(1))y(1) hθ(x(2))y(2)  hθ(x(m))y(m) ]

因而问题变成了:如何使新向量的模|XθY|最小。
该问题等价于如何使12(XθY)T(XθY)=J(θ)最小,因此与梯充下降法解决了相同的问题。

但是,上述推导中给出的J(θ)公式给了我们一个求导的可能性,即当θJ(θ)=0时,所取的θ为最优解。利用高大上的矩阵的导数(Matrix Derivatives): Af(A),不明觉厉的矩阵对角线tr运算,以及它们结合的一堆牛B性质。得到了一个式子:
θ=(XTX)1XTY
利用这个式子可以直接解出θ。当然,求解式子其实并不一定简单,这也是为什么还有不少人继续用梯度下降法的原因。

把推导用到的式子摘录一下吧:
AtrAB=BT ATf(A)=(Af(A))T AtrABATC=CAB+CTABT A|A|=|A|(A1)T ATtrABATC=BTATCT+BATC

概率模型分析

概率模型分析其实就是为了给J(θ)找到一个更符合思考习惯的理论依据。

为每个分析加上一个误差项ϵ,可得到线性回归的表达式:y(i)=θTx(i)+ϵ(i)
而回归分析的目标是:使mi=1ϵ(i)最小。

而误差的概率分布在多变元情况下,通常服从高斯分布(Gaussian Distribution),所以假定ϵ(i) N(0,δ2,就得到了公式:
p(y(i)|x(i);θ)=12πδexp((ϵ(i))22δ2)

通常情况下,老师都会特别强调,这里的θ不是随机变量,而是求随机函数的一个可变参数,所以必须用分号不能用逗号。

由此引出最大似然估计(Maximun likelihood):
L(θ)=mi=1p(y(i)|x(i);θ)

由前面的公式可以看出,最大似然估计中,包含一个指数函数exp,并且是连乘积。而只要是使用递增函数处理L(θ)得到的函数最大值对应的θ值,都完全相同,所以一般对最大似然估计取对数,方便求到极值。
所以得到下面的式子
l(θ)=mlog12πδ1δ212mi=1(y(i)θTx(i))2
式子中可变元就x与y,所以等价于求12mi=1(hθ(x(i))y(i))2=J(θ)的最大值。且与高斯分布中的δ取值无关。 Categories: 机器学习