吴恩达机器学习第一讲:以房价为例进行建模
Housing price prediction
已知条件:给出了一组离散的(Size,Price)点
目标:通过这些已知的点去预测在未知Size时的Price
问题分析与归纳:由于预测的Price变化量较大,可以建立连续函数去最大化的拟合已知的离散点,所以这是一个监督学习下的回归问题。
输入x :size
输出y:Price
M: 样本点总数
模型表示:
根据离散点的分布情况我们建立线性函数h去拟合这些离散点
所以问题变成了怎么找到拟合情况下线性函数h,我们可以通过下面的图来形象的表示我们的问题
进一步的我们对我们假设的h线性函数进行分析
所以问题变成了怎么去选择
为了加深对这两个参数的理解,我们选取一些特殊点刻苦不同的参数线假设函数的曲线情况
通过观察我们发现决定了函数与纵轴的交点位置,
决定了函数斜率走向
要找出合适的 则需要对其附加额外的约束条件,我们发现我们的目标是 与 尽可能地接近,于是我们建立平方差函数来表示这种接近程度。
也就是我们常说的代价函数
所以问题就进一步演化为:
还是和之前一样的思路,拿到一个函数,我们可以取一些特殊点来加深我们对这个代价函数的理解。
这里我们假设 时,观察代价函数
变化情况
如图所示,当代价函数只有一个参数时,是一个凸函数,当同时包含两个参数时代价函数如图所示:
为了更好的描述 与 之间的关系,我们采用等高线来描述这一变化情况
如图所示,假设起点设为1(800,-0.1) 终点如图2(100,0.15)
我们要做的就是让起点1不断地向2靠近即可,我们发现1在向2不断靠近的时候 在不断的减小,
不断地增大。
即:1怎么向2靠近,应该迈多大的步伐。这里就要涉及到著名的梯度下降算法
为了体现算法的普适性,这里选用较为复杂的代价函数,如图所示
如图所示,当我们的起点不同,最后到达的终点不同,即不同的起点梯度下降算法会找到最优的局部最优解。
还是一样根据之前的
与
之间的关系,我们设置不同的起点,观察梯度下降算法的变化情况。
如图所示,当起点在右边时, >0,但不断向凸点靠近时,偏导数(即如图斜率)不断减小,从而
不断的减小得到更新。反之,同理。
这里 a是学习率
主要是控制朝着正确方向走的步伐。a越大,步伐越大,反之,越小。太大容易越过凸点,太小走的太慢。