吴恩达ML课程 笔记总结(二)—— 单变量线性回归
1、模型及概念的建立
对于单变量的线性回归问题,首先会给定一个数据集,这个数据集中只包含了一个输入变量和对应的输出变量。我们所要做的工作是建立一个预测函数h,然后用预测函数去拟合数据集,使得该函数能够较好的反应给定数据集的走向(换句话说,能够很好的拟合数据集)。终极目标是使得该函数能够对于给定的新的输入,产生较好的输出(较好的预测结果)。
例如预测房价模型,预测函数h能够使得给定的房子大小而给出尽可能准确的房价预测。
2、代价函数
那么怎么才能使得我们给定的预测函数h尽可能的拟合数据集呢?这里我们引入线性回归问题中另一个重要的概念——代价函数。
首先什么是代价函数呢?代价函数简单来说就是预测函数值与对应数据集输出值的差值的计算。代价函数值越小,表明差值越小,则预测函数与数据集越接近,拟合程度越好。而代价函数的自变量是什么呢(换句话说,什么影响着代价函数的取值呢?)答案是预测函数的参数值,原因是我们已知的是(x,y)数据集,而为了使预测函数能够很好的拟合(x,y),本质就是让我们建立的模型中的参数更接近最优解。
举个例子更好理解~~
对于一元线性回归问题,我们建立的模型——预测函数是一次函数
我们的目标就是选定合适的θ1和θ0,使得h更接近(x,y)。因此将这个问题转化到代价函数中去,即求
代价函数的最小值
求出最小值时对应的参数θ1和θ2的值就是能够使得h很好的拟合数据集的参数值。
3、梯度下降算法
还记得我们上面讨论的结论吗?回顾一下~~
首先我们建立预测模型h,然后我们通过代价函数求得最小值,从而求得参数的最优解,这样就能够使预测函数h很好的拟合数据集,从而做出准确的预测。皆大欢喜了吗?还没有呢,其实这中间还有一个非常重要的环节没有实现,就是如何求得代价函数的最小值呢?这就是我们即将要介绍的梯度下降算法。(我们这里只以单变量线性回归为例)
梯度下降算法的基本思路也应运而生:
- 初始化θ0=0,θ1=0;
- 不断的改变这两个参数的值使得F(θ0,θ1)不断减小达到局部最小值。
这里是梯度下降算法的一个示意图,可以把它理解为下山。不同的初始点可能得到的局部最小值不一样。
按照上面的思想,我们是不断的优化参数θ,因此这里不加证明的给出梯度下降算法的公式:
当然除了用梯度下降的迭代算法,还有其他方法可以算出代价函数的最小值,比如线性代数里面的 正规方程组法。但是两者相比较而言,梯度下降适合更大的数据集。
这样我们就能得到很好的拟合效果的h函数了!