单变量线性回归
以房屋交易问题为例:
给定的数据集是这样的
那么对于房屋的交易价格作为输出变量y,x代表输入变量
h函数有一种可能表达式:ℎ𝜃(𝑥) = 𝜃_0 + 𝜃_1𝑥,因为输入变量x只有一个,我们称之为单变量线性回归问题。
代价函数:
代价函数有助于我们把最可能的直线与我们的数据相拟合。
在参数选择中,即上述的𝜃_0 , 𝜃_1的选择决定了我们得到的直线相对于我们的训练集的准确程度,模型所预测的值与训练集中实际之间的差距(图中的蓝线)就是建模误差,我们在h函数的选择中,应该尽可能的让误差减小,以实现数据的最大拟合
所以我们的目标就是选择能够使代价函数𝐽(𝜃_0, 𝜃_1)最小的参数 𝜃_0, 𝜃_1
梯度下降算法
![](https://img-blog.csdnimg.cn/ce4324dfb1a643afa5ee5a100eff63e8.png)
在梯度下降过程中,我们要更新𝜃_0, 𝜃_1,注意这里应该要同时更新,后续我们会讲到,应该使用一个和参数𝜃维数相同的一个向量temp来临时存储更新过程中的新参数𝜃,当全部参数𝜃更新完之后,再将生成的temp向量赋值在𝜃向量中。
如图:
ps:( 这里用了高数下的偏导数的知识)
梯度下降的直观理解:
梯度下降算法的描述如下:对𝜃赋值,使得𝐽(𝜃)按梯度下降最快方向进行,一直迭代下去,最终得到局部最小值其中𝑎是学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大。
关于偏导数这一块光凭文字略显苍白无力,这里附上老师的课件
除此之外,对于α的取值也有一定讲究:
如果𝑎太小了,即我的学习速率太小,那么我们最终迭代的次数就会十分多,以此不断去接近我们的全局最低点
但如果α太大了,那么梯度下降法在迭代过程中可能会越过最低点,甚至无法收敛。