注意:由于本章讨论单变量线性回归,因此输入只有x一个数,输出只有y,线性函数为y=kx+b的形式
1、训练集与测试集:
我们前面说了学习算法就是用来处理一大堆数据的,那数据集就可以分成训练集和测试集,我们将训练集样本数据传给学习算法,学习算法会得出一个假设函数h,输入x,通过h,我们会得到一个输出h(x),当然由于线性回归是监督学习的一种,意味着每个数据样本都是(x,y)的这种二元组形式,我们将所有经过h后得到的(x,h(x))与(x,y)进行对比测试,观察训练的效率,所有用来对比的样本数据就是测试集
2、代价函数J(k,b):
线性回归其实就是想找到一个最为适当的线性函数,对大量数据集能够进行拟合,也就是想要得到一个最合适的假设函数h(x)=kx+b(k与b叫模型参数),使h(x)与y尽量接近,那我们就需要一个衡量标准,这就是代价函数,然而不同模型代价函数也不同,在线性回归里的代价函数一般是平方误差函数。
3、优化目标:
上章已经说过机器学习就是通过反复做同一件事,积累经验并提高性能。线性回归中,我们用训练集的目的就是为了反复优化,使得假设函数能够更好的拟合数据,再仔细的要求就是调试k和b使代价函数尽可能小,这就是优化目标
4、梯度下降算法:
通过同步更新k和b的值,使得代价函数达到局部最优的算法。通俗的讲,假如你此刻在山顶上,但是你想下山,而且想尽量到离地面最近的山的那个部分去,你有可能向360度的任何一个方向迈开你的步子,这个算法就会帮助你在选择迈步的方向后得到该方向的局部最优解,自然如果你选择的方向不同(初始化的值不同),可能得到的最优解也不同,梯度下降算法有具体数学公式:,(梯度下降公式有两个,b,k互换即是另一个公式)其中
为学习率,学习率越大,意味着迈开的步子越大,学习率越小,意味着是步子越小,但注意k和b要同时更新!!简单来说,学习率就是k和b的更新率,如果学习率过大,可能会直接越过最低点,而且当接近局部最优点时,由于偏导越来越小,可知k与b的更新幅度也会自动减小,使得不错过最优点;当达到最优点时,偏导为0,显然k与b不会再更新。
BY ZJQ