第二集 监督学习的应用—梯度下降

来源:互联网 发布:淘宝网店押金 编辑:程序博客网 时间:2024/06/03 20:27
三个问题:线性回归、梯度下降、正规方程组

监督学习的工作流程如下所示:








对于学习算法,我们这里应用线性回归,可以得到。在这里θ代表的是参数。x1、x2代表的是两种不同的特征。举例来讲,预测房价,我们可以根据房屋面积以及卧室数目两种特征进行预测,其中房屋面积为x1,卧室数目为x2。对于h(x),若定义x0=1,则(用矩阵的形式表示,后面会有用)。

符号(notation):

m——训练样本的数目
X——输入变量(又叫特征)
y——输出变量(目标变量)
n——特征的数目
(x,y)——样本
(x^(i),y^(i))表示第i个训练样本
PS:代表第i个训练样本,下角标代表第j种特征

为了使训练效果达到最好,用下面的函数进行判定:




下面将分别利用梯度下降和正规方程组对这个问题进行求解。


梯度下降

为了使成立,最有效的方法是每次移动的方向都是下降最快的方向,这符合梯度的定义,这个方向正是梯度的方向。梯度下降算法有着一定的局限性,即目标函数存在多个局部最优值,则选择不同的起点,终点很有可能不一样。换句话说,可能收敛不到最小值的那一点。但对于我们这个函数来讲,它是一个二次函数,最小值点有且只有一个,不存在别的局部最优解,所以不用理会梯度下降的局限性。

有了以上推论,就可以对输出函数中的参数进行训练,使其满足需求。公式如下:



其中α为学习速度,相当于步幅,为人工设定。
的值代入即可得批梯度下降算法:

通过上式可以发现,要想计算某一特征i对应的参数 ,必须要遍历所有的训练样本。这对于少量样本的情况影响不大,但m一旦到了百万级,这个遍历会导致运算速度变得及其慢。

为了解决这个问题,可以采用随机梯度下降算法(增量梯度下降算法)来代替普通的梯度下降算法。随机梯度下降算法的描述如下:


For j=1 to m {

(for all i)
}

利用随机梯度下降算法计算参数 时,对于每一个每次只需要利用一个训练样本进行调整,不需要像普通的梯度下降算法一样在调整之前遍历所有的训练样本(m个)。其优点是计算速度相当快,简单,便于实施;其缺点是不够精确,不一定能够收敛到全局最小值,可能会在最小值处绕圈子。随机梯度下降算法的每一步决策都是基于当前环境的判断,而不是全局。



正规方程组

一些线性代数的基本概念和结论:

设函数f(A)可将矩阵A映射为实数,则



若A为n*n的矩阵,则可定义A的迹为:

(对角元素相加)


一些结论:


用矩阵的符号可以节省很多计算量,更加便于理解。下面对min 进行推导。



倒数第二个式子即为正规方程组。可能有人会注意到最后那个解析解的 项是否一定可逆的问题,这个问题确实存在,但一般情况下,其一定是可逆的。(本人对此表示怀疑)
1 0
原创粉丝点击