监督学习之线性回归

一、监督学习
让我们首先谈一些监督学习问题的例子。假定我们有一个数据集,数据集中给出了来自俄勒冈波特兰的47所房子的居住面积(living areas)和价格(price):


我们可以将这些数据标识于图表上:


给定这样的数据,我们如何学习基于居住面积的大小的函数,来预测波兰特其它房子的价格。
为了建立以后使用的符号,我们使用 表示“输入”变量(这个例子中的居住面积),也被称作输入 特征表示我们尽力预测的“输出”或者目标变量(价格)。一组 被称作一个训练例子,我们将要用来学习的数据集——m个训练例子 ——被称作一个训练集。注意符号中的上标 仅仅是一个指向训练集的索引,和指数没有关系。我们使用表示输入值的空间,表示输出值的空间。在这个例子中,
为了稍微更加正式的描述监督学习问题,我们的目标是在给定一组训练集的情况下,学习一个函数 是一个对相对应值的好的预测器。由于历史原因,这个函数 被叫做一个假设。可以形象地看出,过程就像这样:
   



当我们正努力预测的目标变量是连续时,正如在我们房子的例子中,我们成这种学习问题为一个回归问题。当 只能取少量的离散值时(比如,如果给定居住面积,我们想预测一个住处时一个house还是一个apartment),我们把它称作一个分类问题。


第一部分  线性回归
为了使我们的房子案例更有趣,让我们考虑一个更加丰富的数据集,在这个数据集里我们还知道每个房子里的卧室的数量:




这里,里的二维向量。比如说,是训练集中第个房子的居住面积,是卧室的数量。(一般来说,当设计一个学习问题时,决定选择什么特征取决于你,所以如果你在波兰特收集房子数据,你也可能决定包含其他的特征,比如是否每个房子有一个壁炉,浴室的数量等等。我们之后将会关于特征选择谈到更多,但是现在让我们假定特征已经给定。)
为了进行监督学习,我们必须决定我们将如何在电脑里表示函数/假设。作为一个初始的选择,我们决定来使用的线性函数来近似




这里,是参数(也成为权重),用来参数化映射的线性函数空间。当不存在混淆的风险时,我们也会去掉中的下标,把它更简单的写作。为了简化我们的符号,我们也引入的惯例(这个是截距项),以致

在上式的右端项我们把都当作向量,是输入变量的个数(不算)。
现在,给定一个训练集,我们如何选择或者学习参数?一个合理的方法看起来是使得接近,至少对于我们训练的例子是成立的。为了使其形式化,我们将会定义一个函数,用来测量对于每组值,和相对应的值有多接近。我们定义代价函数:


如果你之前看过线性回归,你可以认出这是熟悉的最小二乘代价函数,它引出了普通最小二乘回归模型。无论你之前是否看过线性回归,让我们继续,我们最终会说明这是一个更宽广算法家族的一种特殊情况。


1  LMS( Least mean square,最小均方)算法


我们想选择以便最小化。为此,我们使用一个以对进行某些初始猜测作为开始的搜索算法,然后反复改变来使越来越小,直到希望上收敛到一个使最小的值。明确地,让我们考虑梯度下降算法,它以某些初始的值作为开始,反复地执行更新:


(这个更新是对所有的值同时执行的。)这里,被称作学习率。反复地以下降最快的方向走一步是一个非常自然的算法。
为了执行这个算法,我们必须算出右边的偏导数项是什么。让我们首先计算我们只有一个训练样本的情况,以致我们可以忽略定义中的和。我们有:


对于一个训练样本(的情况),给出更新规则:


这条规则被称作LMS更新规则(LMS代表“最小均方”),也被叫做widrow-hoff学习规则。这条规则有一些看起来很自然和直观的特征。比如,更新的量级和误差项成比例;从而,比如说,如果我们正好遇到一个预测值几乎匹配实际值的训练样本,然后我们发现几乎不需要改变参数;相反,如果我们的预测值有很大的误差(也就是说和相差较大),参数需要做较大的改变。
我们已经得到了当只有一个训练样本的LMS规则。对于多于一个训练样本的训练集,有两种方式可以修改这个方法。第一种方法是用以下的算法替换它:
重复直到收敛{
   
}
读者可以很简单证明上面更新规则中的求和量就是(对于的初始定义)。所以,这仅仅是对原始的代价函数用了梯度下降。这个方法在每一步都会看整个训练集中的每个样本,被称作批梯度下降。注意到,尽管梯度下降一般对局部最小值很敏感,但我们在这里关于线性回归提出的最优化问题只有一个全局的最优,没有其他局部最优;因此梯度下降总是收敛(假定学习率不是太大)至全局最小值。实际上,是一个凸二次函数。这里有一个最小化某二次函数的梯度下降的例子。


上面显示的椭圆形是一个二次函数的轮廓。梯度下降的轨迹也被显示了,初始值(48,30)。图形中x(叉号,被直线连接的)标记着梯度下降经过的连续的值。
为了学习预测房子价格的关于居住面积的函数,当我们对原来的数据集运行批梯度下降来寻求恰当的值时,我们得到。当我们画出(面积)的函数,同时画出训练数据,我们得到下面的图形:


如果卧室的数量也被包含成为一个输入特征,我们得到
上面的结果是通过块梯度下降得到的。还有一种可以替代块梯度下降也工作不错的的算法。考虑以下的算法:
Loop{
For i=1 to m,{
     ,  (for every j)
}
}
在这个算法中,我们反复地遍历训练集,每次我们针对一个训练样本。我们根据只基于单个训练例子的误差的梯度来更新参数。这个算法被称作随机梯度下降(也称作增量梯度下降)。批梯度下降在走一步之前必须扫描整个的训练集——如果m值太大的话,就是代价很高的操作——然而随机梯度下降可以立即前进,然后通过看每一个例子继续前进。经常,随机梯度下降得到接近最小值的远比批梯度下降更快。(注意到尽管它可能永远收敛不到最小值,参数持续在的最小值附近震荡,但是在实际中,大多数接近最小值的值是对真实最小值的相当好的近似)。由于这个原因,特别是当训练集较大时,随机梯度下降胜过批梯度下降。

2 正规方程

梯度下降给了一种最小化的方式。让我们讨论另外一种最小化的方式,这次明确地进行行最小化,而且不用求助于迭代算法。在这个方法中,我们通过明确地的求关于的偏导数并令其为0来使最小化。为了让我们能够做这些而不写大量的代数和满页的矩阵导数(此处不懂),让我们引进一些矩阵微积分学的符号。

2.1  矩阵的导数

对于一个函数,从m x n的矩阵映射至实数,我们定义关于的导数:


因此,梯度是一个m x n的矩阵,它的元素。例如,假定是一个2 x 2的矩阵,函数


这里,表示矩阵元素。我们然后得到


我们也引入运算符迹,写作。对于一个n x n的(方)矩阵,的迹被定义为它的对角线元素的和:


如果是一个实数(也就是说,是一个1 x 1的矩阵),然后。(如果你之前没有看到过这个“运算符符号”,你应该把的迹看作,或者是“迹”函数作用于矩阵。然而,不写括号的迹更常见。)

迹运算符有这样的特征,对于两个矩阵,满足是方阵,我们有。(自己证明)
作为这个的推论,我们还可得到,比如,


迹运算符的一下特征也同样容易证明。这里,都是方阵,是一个实数:


我们现在不加证明的陈述一下矩阵导数的一些事实(我们直到本节的晚些时候才需要它们中的一些)。等式(4)只应用于非奇异方阵,其中表示的行列式。我们有:

为了使我们的矩阵符号更具体化,让我们现在详细的解释一下这些等式中的第一个式子的意义。假定我们有某个固定的矩阵。然后我们可以定义一个函数。注意到这个定义是有意义的,因为如果,那么就是一个方阵,我们就可以把迹运算符应用到它;因此,的确从映射到。然后我们可以运用我们矩阵导数的定义来求得,它也是一个m x n的矩阵。上面等式(1)说明了这个矩阵的元素将会是元素,或者相等地,由给出。

等式(1-3)的证明相当简单,给读者留作习题。等式(4)可以通过矩阵逆的伴随矩阵表示得到。

2.2  最小二乘再回顾

有了矩阵导数的工具,让我们继续求解使最小的的解析解。我们先以矩阵-向量符号重新写出

给定一个训练集,定义一个m x n设计矩阵(如果我们包括截距项,实际上是m x n+1),每行是训练例子的输入值:


m维的向量,包括训练集中所有目标值:


现在,因为,我们可以很容易地证明


因此,使用关于向量的事实,我们有


最后,为了最小化,让我们求得它关于的偏导数。结合等式(2)和(3)得,我们发现


因此,


在第三步中,我们使用了一个实数的迹就是这个实数的事实;第四步使用了的事实,第五步使用了等式(5),令,和等式(1.为了最小化,我们令它的导数为0,得到正规方程


因此,使最小的的解析解由该等式给出




接下来讲到线性回归的概率解释和局部加权线性回归,详见下一讲。




想写一写机器学习的翻译来巩固一下自己的知识,同时给需要的朋友们提供参考,鉴于作者水平有限,翻译不对或不恰当的地方,欢迎指正和建议。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值