机器学习小组知识点3:最小二乘法(LSM)

上篇博客介绍了最小均方算法(LMS),其实里面的东西包含的很多,其中有最小二乘法,梯度下降以及随机梯度下降法。这篇博客着重介绍最小二乘法的推导,来源以及做一点儿推广。下面进入正题:

最小二乘法的闭形式推导
在上篇博客我们引入了J(\theta)成本函数的具体形式,这里我们要推导出关于\theta的“闭形式”,数学上也称为解析解的形式。下面我们要重新将J写成矩阵乘向量的形式。

给定一个训练集,定义“设计矩阵”X是一个m*n的矩阵(实际上就是样本输入变量写成的矩阵,下面就看到了),这里要注意实际上是m*(n+1)维矩阵,至于为什么n+1维矩阵呢?这里要回头看看上篇博客里面的截矩项,他多占了其中的一个维度。不过为了叙述方便,我们还是统一为n维。
我们先给出X的矩阵形式,

    \[\left[ \begin{matrix} x^{(1)^T} \\ x^{(2)^T}\\ \vdots \\ x^{(m)^T} \end{matrix} \right]\]

这里我们还是保留了老传统,样本数量是m个,特征的维度总数为n维。另外,里面的x都是列向量。
接下来,相对应的就是数据项,也就是我们样本已经有的观测数据项,再清楚点儿就是我们监督学习里面起到“监督”二字的关键,那么他本身应该是对应x的维度的,那么这样的话,我们就能够得到m维的向量y了,见下面形式Y为:

    \[\left[ \begin{matrix} y^{(1)} \\ y^{(2)}\\ \vdots \\ y^{(m)} \end{matrix} \right]\]

现在因为h_\theta(x^{(i)})=(x^{(i)})^T\theta,那么我们简单的写出数据拟合的形式即

    \[X\theta-Y= {\left[ \begin{matrix} x^{(1)^T}\theta \\ x^{(2)^T}\theta\\ \vdots \\ x^{(m)^T}\theta \end{matrix} \right]}- \left[ \begin{matrix} y^{(1)} \\ y^{(2)}\\ \vdots \\ y^{(m)} \end{matrix} \right]\]

    \[=\left[   \begin{matrix}    h_\theta(x^{(1)})-y^{(1)}\\    h_\theta(x^{(2)})-y^{(2)}\\    \vdots \\    h_\theta(x^{(m)})-y^{(m)}   \end{matrix}    \right]\]

因此,利用一个事实,“对于一个向量z,我们有z^Tz=\sum_iz^2_i”,那么我们就利用这个事实可以得到:

    \[\frac{1}{2}(X\theta-Y)^T(X\theta-Y)=\frac{1}{2}\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2\]

    \[=J(\theta)\]

因此我们对\theta进行求导可以得到**正规方程**,与上篇博客相互照应:

    \[X^TX\theta=X^TY\]

所以我们就能得到关于\theta的闭形式(解析形式)为

    \[\theta=(X^TX)^{-1}X^TY\]

这里注意,需要矩阵求导的相关知识,如果大家不熟悉,强烈要求讲的话,我再敲一个专题,不过同学们看文献[1]就应该知道了。

最小二乘法概率解释(来源)
这一部分解释的就是为啥是最小二乘法,而不是最小一乘法呢?要知道最小二乘法这些东西都是当年统计的人们天天搞的呀,那跟统计有何关系呢?这里默认为高斯老人家也可以称之为统计学家了。
首先让我们假设目标变量y和输入变量x是满足线性的关系(照应我们上篇博客),满足以下的方程:

    \[y^{(i)}=\theta^{T}x^{(i)}+\epsilon^{(i)}\]

其中这个\epsilon^{(i)}来表示误差项,或者是随机的噪音。图像处理的人看这个“一般”就是默认高斯噪音了。那么为什么是高斯噪音呢?其实高斯噪音适用的范围是有很多独立的因素对模型造成的误差导致的,生活中很多场所一般用的是高斯噪音。与之区分的是椒盐噪音,拉普拉斯噪音以及莱斯噪音(肖凯博士告诉我的)。有点儿扯远了,下面我们继续假设\epsilon^{(i)}来源于高斯分布(正态分布),也就是均值为0,方差为\sigma^2,且噪音对应没个样本是相互独立的。
这里多说两点:

1. 用高斯噪音,大家只是默认了很多情况。方差其实不一定都是同一个,现在很多研究人员就在搞混合噪音,方差也是混合的阶段,但是就目前来看,也只是停留在社会初级阶段,还不是一个热门。
2. 为啥均值是0啊,吕大忽悠?我没骗你,因为可以把均值放到前面数据拟合项的截矩呢,你说是不是?
回归正题,这里我们就假设\epsilon^{(i)}服从N(0,\sigma^2)的正态分布。那么对应的概率密度函数是:

    \[p(\epsilon{(i)})=\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(\epsilon^{(i)^2})}{2\sigma^2})\]

那也就说明

    \[p(y^{(i)}|x^{(i)};\theta)=\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})\]

这里p(y^{(i)}|x^{(i)};\theta)表示y^{(i)}的分布是由x^{(i)}和参数\theta共同决定的。
上面是一个样本y^{(i)}的分布,那么问题来了,那一堆样本,m个到底怎么办啊?好在他们都是相互独立的,又是同分布的(IID),就是来源于同一个样本空间(娘胎),这里我们就要用到极大似然估计方法(这里抛个砖,下篇文章介绍),

(1)   \[L(\theta)=\Pi^{m}_{i=1}p(y^{(i)}|x^{(i)};\theta)=\Pi^{m}_{i=1}\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})\]

现在我们给了这个方程,接下来就是最大化(1)式了,这里还是极大似然估计的用法。
由于(1)式是联乘,那么自然反应就是用log函数了,为啥?log是凸的又是单调递增的不影响原来函数的凸性质和递增的性质呀!
接下来就是推导过程:

    \[l(\theta)=logL(\theta)\]

    \[=log\Pi_{i=1}^m\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})\]

    \[=\sum_{i=1}^mlog\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})\]

    \[=mlog\frac{1}{\sqrt(2\pi)\sigma}-\frac{1}{2\sigma^2}\sum_{i=1}^m(y^{(i)}-\theta^Tx^{(i)})^2\]

因此,我们最大化l(\theta)得到同样的结果就是最小化下面的式子

    \[\frac{1}{2}\sum_{i=1}^m(y^{(i)}-\theta^Tx^{(i)})^2\]

这是什么啊?对!没错,就是J(\theta)呀!这里我们终于解释清楚了,为啥要用最小二乘了吧?
总结:
1. 最小二乘不能瞎用,他针对的是高斯噪音影响的数据,大多数出现的情况还是高斯噪音,就是很多因素同时是独立的影响的时候,我们就用它。不能细说,细说就得去看统计上的高斯分布了。
2. 最小二乘法是来源于极大似然估计方法,其实两者是可以互推的。所以,是等价的。
3. \theta你这里是固定的值啊,为哈不能看成依赖于\sigma变量?吕大忽悠解释下,这个还真不能细细地去挖,因为现在他们统计部门还在争执呢!有两个学派,一个是看成常数,另外一派把他们看成以来\sigma随机变量。但是备注下,Andrew Ng提到对于我们这个问题,这两派得到的结果是一样的。我曾经深挖过,现在还是忘了!感兴趣的可以看看知乎的大神们的详细解释。

———-
参考文献:
[1] http://cs229.stanford.edu/notes/cs229-notes1.pdf

发表评论

电子邮件地址不会被公开。 必填项已用*标注