您的位置:首页 > 其它

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

2015-08-18 20:21 260 查看
三个问题:线性回归、梯度下降、正规方程组

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



对于学习算法,我们这里应用线性回归,可以得到

。在这里θ代表的是参数。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 进行推导。



倒数第二个式子

即为正规方程组。可能有人会注意到最后那个解析解的 项是否一定可逆的问题,这个问题确实存在,但一般情况下,其一定是可逆的。(本人对此表示怀疑)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: