【笔记】机器学习入门(二)

第一周有三大节,第一节是introduction,简单介绍了机器学习的分类,监督学习和非监督学习各自的特点和区别,残念的是做了三次课后作业,都没能全部做对,多选题对于英语差的我来说真的是太不友好了。第二节主要讲述了单变量的线性回归问题。
【模型表述】
依旧是通过预估房价的例子来构建了模型,对于数据集的描述,使用了m来表示数据集中训练的数据样本数量,使用x表示输入变量(特征),使用y表示输出变量(目标变量)。
那么数据是如何进行训练的呢?

【笔记】机器学习入门(二)

数据集通过学习算法得到假设函数,因此得到输入变量与输出变量的关系。
那么如何判断这个假设函数的好与坏呢?因此引入成本函数(cost function)

【成本函数】
还是那个房价例子。。
首先给出了数据集

Size in feet²(x) Price($) in 1000’s(y)
2104 460
1416 232
1534 315
852 178

然后预估了假设函数(线性的回归问题)
【笔记】机器学习入门(二)
对于θ0和θ1这两个参数取不同值,会有不同的模型
将特征曲线与数据集在同一个坐标系下进行比较【笔记】机器学习入门(二)
如上图分别用黄线、绿线、蓝线来表示θ0=0,θ1=1、θ0=0,θ1=0、θ0=220,θ1=0.4情况下的模型
可以发现数据集的点不完全与这些模型重合,也就是说有误差存在。由于是线性回归问题,我们通过计算所有预估点与实际点的均方误差,来评估这些模型,即成本函数。对于模型而言,成本函数的值越小,该模型就越接近真实,越准确。
【笔记】机器学习入门(二)
这里前面的1/2m中“1/2”是为了后面函数在求导时消除2。
那么如何找到最小的成本函数呢?课程中给出了一般常用的方法,梯度下降法(gradient descent)。

【梯度下降算法】
梯度下降法大概思路
·从任意一组θ0和θ1开始(从任意参数开始)
·通过更新θ0和θ1的值来减小J(θ0,θ1),直到达到我们希望的最小
【笔记】机器学习入门(二)

但是,有些时候,选择了不同的参数作为开始,会有不同的结果出现(即并不能找到全局最优解,而只是找到了局部最优解)
【笔记】机器学习入门(二)

用下图公式来表示更新θ参数的值,重复直到收敛(迭代过程)
【笔记】机器学习入门(二)
·梯度
图中梯度(gradient)即对多元函数的参数求∂偏导数,再把求得的各个参数的偏导数以向量的形式写出来。由于梯度在几何意义上表示了函数变化增加最快的地方,沿着梯度方向更容易找到函数的最大值,而沿着梯度相反方向更容易找到函数的最小值。

·步长
图中步长(learning rate)决定了在梯度下降迭代的过程中,每一步沿梯度负方向前进的长度。    
步长过小,会导致迭代速度慢;而步长过大,会导致迭代速度过快,从而错过最优解致使收敛失败,甚至发散。

下面第一幅图由于步长太小,导致迭代次数增多,迭代速度变慢;第二幅图由于步长太大,导致错过最优解,且发散。
【笔记】机器学习入门(二)

就算步长是个固定值不变,梯度下降依旧可以收敛至局部最小,因为当我们接近局部最小时,梯度下降会自动将步子调小,因此我们不需要额外的减少步长。

对梯度下降算法最主要的调优在于参数初值的选择,步长的选择,还有一点是对样本特征取值的归一化(由于这次课讲的是单一特征值,因此暂未涉及归一化问题)

【梯度下降算法分类】
梯度下降算法又分为多种:
批量梯度下降法(BGD,Batch Gradient Descent)是梯度下降法最常用的形式,具体做法也就是在更新参数时使用所有的样本来进行更新。缺点:计算量大
随机梯度下降法(RGD,Radom Gradient Descent)与批量不同的是在更新参数时,没有使用所有的m个样本数据,而是仅仅选取了一个样本j。缺点:遇到噪声容易陷入局部最优
小批量梯度下降法(Mini-batch Gradient Descent)这是介于BGD和RGD之间的一种算法,它在更新数据时,选择一定量样本进行更新。