三个问题:线性回归、梯度下降、正规方程组
监督学习的工作流程如下所示:
对于学习算法,我们这里应用 线性回归,可以得到
。在这里θ代表的是参数。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一旦到了百万级,这个遍历会导致运算速度变得及其慢。
![](https://img-blog.csdn.net/20150818202958294?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(for all i)
}
利用随机梯度下降算法计算参数
时,对于每一个
每次只需要利用一个训练样本进行调整,不需要像普通的梯度下降算法一样在调整之前遍历所有的训练样本(m个)。其优点是计算速度相当快,简单,便于实施;其缺点是不够精确,不一定能够收敛到全局最小值,可能会在最小值处绕圈子。随机梯度下降算法的每一步决策都是基于当前环境的判断,而不是全局。
正规方程组
一些线性代数的基本概念和结论:
(对角元素相加)
倒数第二个式子
即为正规方程组。可能有人会注意到最后那个解析解的 项是否一定可逆的问题,这个问题确实存在,但一般情况下,其一定是可逆的。(本人对此表示怀疑)
监督学习的工作流程如下所示:
对于学习算法,我们这里应用 线性回归,可以得到
符号(notation):
m——训练样本的数目
X——输入变量(又叫特征)
y——输出变量(目标变量)
n——特征的数目
(x,y)——样本
(x^(i),y^(i))表示第i个训练样本
PS:代表第i个训练样本,下角标代表第j种特征
为了使训练效果达到最好,用下面的函数进行判定:
梯度下降
为了使
有了以上推论,就可以对输出函数中的参数进行训练,使其满足需求。公式如下:
其中α为学习速度,相当于步幅,为人工设定。
将
通过上式可以发现,要想计算某一特征i对应的参数
为了解决这个问题,可以采用随机梯度下降算法(增量梯度下降算法)来代替普通的梯度下降算法。随机梯度下降算法的描述如下:
(for all i)
}
利用随机梯度下降算法计算参数
正规方程组
一些线性代数的基本概念和结论:
设函数f(A)可将矩阵A映射为实数,则
若A为n*n的矩阵,则可定义A的迹为:
一些结论:
用矩阵的符号可以节省很多计算量,更加便于理解。下面对min 进行推导。
倒数第二个式子