今天讲解的内容是梯度下降算法。 梯度下降算法在机器学习中的应用十分广泛,该算法的最主要目的是通过迭代的方法找到目标函数的最小值,经常用来解决线性回归和逻辑回归等相关问题。本节课主要讲解梯度下降算法解决一元线性回归问题,包括四个部分,问题引入、数学理论、算法实现、上机实验。
问题引入
来看一个生活中的例子。在买房的时候,房屋价格是人们最关心的问题,都希望买到性价比高的房子。有很多特征影响房屋的价格,例如面积、地理位置、交通、楼层、绿化程度等等。其中面积与房价最为相关。
数学理论 来看一组数据,数据包括8套房屋的面积和成交价格的对应关系。
例如,0号房子面积为50平米,成交价为280万。那么是否可以根据这组数据,找到房子面积和成交价格的对应关系,从而未来利用这个关系,根据面积,计算出价格呢?为了更明显的观察出面积和价格之间的关系,将这组数据标记在坐标系中,其中横坐标表示面积,纵坐标表示价格。
可以发现,这些离散的点之间存在着线性关系,我们可以使用一条直线来描述这种线性关系,使得这些点尽量均匀的分布在直线两侧。因为通过一条直线近似表示自变量与因变量的关系,所以被称为线性回归。而只有一个自变量,面积影响因变量价格,所以是一元线性回归。
我们使用平面上的直线来描绘一元线性回归的线性关系。直线方程hθ(x)=θ0 + θ1x,其中x代表面积,hθ(x)代表预测的房价,方程有两个参数,截距θ0和斜率θ1,当θ0和θ1 取不同的值时,可以得到不同的直线方程hθ(x)。后面就要找出最合适的θ0和θ1,使得直线hθ(x)最好的描绘出面积和价格的关系。
算法实现 尝试画出几组直线表示房屋面积和房价。例如,当θ0 = 0 ,θ1 = 4 时,得到图像1,很明显,斜率偏小,截距偏小。修改θ0 = 10,θ1 = 5,得到图像2,这条直线就基本符合面积和价格的关系了。
在此基础上,我们可以继续调整,挑选出一条最合适的直线。但是这时又出现一个问题,在调整过程中,直线变化不大,很难通过直观感受判断哪条直线最符合面积和房价之间的关系。
这时就需要使用均方误差来精确的选出最合适的直线,即最合适的θ0和θ1。
均方误差,MSE,mean square error,是反映真实值与预测值之间差异程度的一种度量。在样例数据中,真实房价与预测房价之间的差异程度,就可以使用均方误差来衡量。均方误差越小,说明用来预测的直线就越合适。
假如有m个样本,每个样本为平面中的一个点,第i个样本表示为xi,yi。例如,表中有8个样本,m=8,x代表面积,y代表价格,x0=50,y0=290,x1=60,y1=305。预测直线为hθ(x)=θ0+θ1x,那么hθ(x0),hθ(x1),hθ(xi)分别为第0个,第1个,第i个样本的预测值。这里如果我们选定了某个预测直线,那么θ0,θ1也就确定了,从而根据直线公式和房屋面积,也可以将样本的预测值计算出来。
均方误差的公式为,m分之sigema i= 1累加至m h θ xi 减 yi 差的平方,其中m为样本的个数, h θ xi 为第i个样本的直线预测值,yi为第i个样本的真实值。那么均方误差公式即求m个样本的直线预测值与真实值差的平方和,再取平均。
上机实验
例如,假如预测直线的θ0 =10,θ1 = 5,即h(x) = 5x +10。那么8个样本,根据面积,可以计算预测价格为260,310,360,410,460,510,560,610。通过均方误差公式,得到均方差为268.75。不同的θ0和θ1会计算得到不同的均方差,均方差越小,θ0和θ1就越合适。
在此基础上,定义代价函数J(θ)为1/2倍的均方误差,由于样本的个数m,每个样本的横坐标x和纵坐标y都是已知的,所以代价函数J(θ)中的未知数为直线方程的截距θ0与斜率θ1。那么问题就转化为,求出一组θ0和θ1,使得代价函数J(θ)取得最小值。
例如,表格中有3个样本,x0,y0,x1,y1,x2,y2。预测直线为hθ(x)=θ0+θ1x,那么将J(θ)展开得到关于θ0与θ1的二元表达式。即求J(θ0,θ1)中使取得最小值θ0,θ1。
那么如何求出θ0和θ1呢?就可以使用本节课要讲的梯度下降算法了。至此,梯度下降算法的引入就讲完了,我们下节课再见。