监督学习应用——线性回归、批梯度下降、随机梯度下降、标准方程推导
Andrew 首先从第一课提到的房子的大小和房价的数据入手介绍监督学习的应用,可以以一条直线去拟合这些数据,然后对于未知价格的房子,就可以带入这条直线的方程得到价格的预估。这里介绍了在机器学习算法中常用的几种表示符号,X代表输入,Y代表输出,m代表样本的个数,
就代表了第i个样本的输入和输出。拟合的函数一般写作 y=h(x),特征的维数用n来表示。
一个典型的机器学习的过程如下图所示:
1.线性回归
线性回归假设特征和结果之间满足线性关系。其实线性关系的表达能力非常强大,每个特征对结果的影响强弱可以由前面的参数体现,而且每个特征变量可以首先映射到一个函数,然后再参与线性计算。我们用X1,X2......Xn去描述输入里面的分量,比如X1=房间的面积,X2=房间的朝向等等,可以做出一个预测函数:
theta在这里称为参数,意思是每个分量的影响力,就是到底是房屋的面积更重要还是房屋的地段更重要。令X0=1,就可以用向量的方式来表示上述式子了
接下来就需要一个机制去评估我们的theta是否选择的合适,所以说需要对我们做出的h函数进行评估,一般这个函数称为损失函数,描述h函数不好的程度,在下面,我们称这个函数为J函数
下面给出平方损失函数的公式:
这个错误估计函数是去对X(i)的估计值与真实值y(i)差的平方和作为错误估计函数,前面乘上的1/2是为了在求导的时候方便,并无实际意义。
2.梯度下降
我们想要选择合适的参数去最小化J。这里使用的方法称为梯度下降法,首先对theta赋予初值,然后使得每一步都是向下降速度最快的那个方向,而最终也一定会收敛。
(获得的是局部最优值)
如上图所示,沿着梯度下降的方向不断寻找J的最小值,最后到达梯度为0的那个点,但这个点不一定是全局最优的。
算法推导如下:
theta的更新公式如下
注:这里的i是第i个样本,j是第j个特征。
每次需要将所有的样本全来一遍,这种梯度下降,叫做批梯度下降,计算量在数据大的时候会变的很大,针对上述问题,在实际当
中应用比较多的是随机梯度下降法,每次只用一个样本,这样大大减少了计算量,如下面的伪代码:
总结一下两种梯度下降法:
(1)批量梯度下降---最小化所有训练样本的损失函数,使得最终求解的是局部的最优解,即求解的参数是使得风险函数最小。
(2)随机梯度下降---最小化每条样本的损失函数,虽然不是每次迭代得到的损失函数都向着最优方向, 但是大的整体的方向是向最优解的,最终的结果往往是在最优解附近。
注:关于步长α,随着接近最优解,步长应当是逐渐减小的。所谓的收敛就是J基本不变化为止。
3.标准方程的推导
关于梯度下降的代码近期会上传到我的github上。