线性回归的直观理解是输入自变量和输出因变量存在近似的线性关系,若只有一个自变量和因变量,且二者的关系可用一条直线近似表示,则这种回归可以称为单变量线性回归
模型展示(Model Representation)
例子: 预测住房价格,使用一个数据集,数据集包含某市的住房价格。要根据不同房屋尺寸所售出的价格,画出数据集。如果一个房子是1250平方尺大小,告诉他们这房子能卖多少钱。可以做的一件事就是构建一个模型,也许是条直线,从这个数据模型上来看,能以大约220000(美元)左右的价格卖掉这个房子。这就是监督学习算法的一个例子。
训练集(Training Set)如下表所示:
假设函数(Hypothesis)
我们输出一个函数. h代表hypothesis(假设),表示一个函数,输入是房屋尺寸大小, 根据输入的值来得到输出的值对应房子的价格 ,其中θ1,θ0称为模型参数。
代价(损失)函数(Cost Function )
代价函数也被称作平方误差函数,之所以要求出误差的平方和,是因为误差平方代价函数,对于大多数问题,特别是回归问题,都是一个合理的选择
预测的值与训练集中实际值之间的差距(上图中蓝线所指)就是建模误差(modeling error)
建模误差的平方和能够最小的模型参数,即使得代价函数:
我们来看看函数随着θ1和θ2的变化
这里我们让θ0=0的时候,可以求出 h(x) 得到 J(θ1) 是一个抛物线,在某个时刻有最小值。
梯度下降(Gradient Descent)
梯度下降算法是一个用来求函数最小值常用的算法, 下面我们将使用梯度下降算法来求出代价函数 J(θ0,θ1) 的最小值。
随机选择一个参数的组合(θ0,θ1,…,θn),计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到到到 一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定 我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组合, 可能会找到不同的局部最小值。
就如上图,当我们的起始点不同,最后得到的最小值也是不同的。
算法过程
α 学习率(learning rate): 简单来说就是我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大
注意点
在表达式中,如果你要更新这个等式,我们需要同时更新θ0和θ1。
错误过程
对于α 学习率(learning rate)
- 如果α太小了,即学习速率太小,这样就需要很多步才能到达最低点,所以如果α太小的话,可能会很慢,因为它会一点点挪动,它会需要很多步才能到达全局最低点。
- 如果α太大,那么梯度下降法可能会越过最低点,甚至可能无法收敛,下一次迭代又移动了一大步,越过一次,又越过一次,一次次越过最低点,直到你发现实际上离最低点越来越远,所以,如果α太大,它会导致无法收敛,甚至发散。
如下图所示
进行一步梯度下降时,导数项是更小的,θ1更新的幅度就会更小。所以随着梯度下降法的运行,你移动的幅度会自动变得越来越小,直到最终移动幅度非常小,你会发现,已经收敛到局部极小值。
当我们接近局部最低点时,梯度下降法会自动采取更小的幅度,这是因为当我们接近局部最低点时,很显然在局部最低时导数等于零。
公式推导