Stanford机器学习(Andrew Ng)Lecture2(一)

Lecture2 梯度下降,最小二乘

Part I   梯度下降方法(gradient descent)

我们首先介绍一种求解多元函数极值的方法。梯度下降法是求解函数极小值的数值解法之一,它的优点是原理易懂,计算简单,但是易于陷入函数的局部极小值点(local optimum),受初始值影响较大。

梯度下降法的原理很简单。想象自己站在山顶,如何下山才能尽快地达到山脚呢?我们可以环视四周,看看沿着各个方向的下降陡峭程度。我们始终沿着下降最陡峭的方向走,这样在不出意外的情况下,我们就能到达山脚,而且速度也比较快。但是显而易见的一个问题便是:我们这样走的话,很容易跑偏。很有可能我们最后来到的不是山脚,而是被困在了一个局部的盆地里,始终不能出去。

这个日常生活中的常识便是梯度下降法的雏形,用数学公式表示的梯度下降法如下:

这样,通过一步一步迭代,我们就能使目标函数值收敛到极小值。在这里,符号表示的含义为第i个参数。上式即为对第i个参数的更新。表示前进的步长,在机器学习中可以被理解为学习速率。要注意,学习速率过大,可能使得结果不收敛;学习速率过慢,可能使得结果更易陷入局部极小值点,并且收敛速度不够快。在实际应用时,该参数需要结合问题来具体分析。

我们常常要求残差平方的极小值,也就是使得下面的式子取得极小值:

我们首先考虑的线性函数,举个例子:。或者我们把它写成向量形式:

对于m(m>=1)个训练样本,我们所考察的函数变为残差的平方和。也就是定义如下的代价函数(Cost Function):

这个函数便是一种最小二乘的思想。这个时候,有:

所以对于参数的更新可以按照如下的式子进行:

这样,就能够取得代价函数的最小值,这时候的参数便是模型的参数。要注意的一点是,梯度下降法是一种求解函数极值的方法,这种方法的关键点就是计算当前点的梯度方向,朝这个方向走向下一个点,不停迭代,直到收敛。

Part I   最小二乘(gradient descent)

在前面的梯度下降法中,已经介绍了最小二乘法的思想,总之就是使得残差的平方和最小,认为是损失最小,所以形象地把这个函数叫做代价函数。在上一节中,我们给出了最小二乘的一种数值解法,即梯度下降法。在这一节中,我们将使用矩阵微分的几个定理,推导出最小二乘的公式解。首先我们有必要引进一些符号:

上面的符号便表示对一个向量的每个分量求导,那么我们在上一节对参数的迭代更新公式可以写成下面的形式:

接下来我们引进一个叫做“迹”(trace)的概念:

矩阵迹的几个性质:

posted on 2014-01-31 20:09  奥特曼  阅读(317)  评论(0编辑  收藏  举报

导航