【机器学习笔记】第2章:单变量线性回归

第2章:单变量线性回归

2.1 模型描述 Model representation

机器学习可以分为监督学习无监督学习,监督学习的每个样本都有标签,而无监督学习没有标签。其中监督学习又包括回归问题和分类问题,回归问题就是预测一个具体数值的输出,如房价预测;分类问题就是预测离散值的输出,如肿瘤判断。
在这里插入图片描述
我们向学习算法提供训练集,比如房价训练集,学习算法的任务是输出一个函数,通常用小写字母h表示假设函数,假设函数的作用是把房子的大小作为输入变量x,它会试着输出相应房子的预测y值。
那么,我们怎么表示假设函数h呢?我们设假设函数为 h θ ( x ) h_{\theta}(x) h θ ( x ) = θ 0 + θ 1 x h_{\theta}(x) = \theta_0 + \theta_1 x 这种模型被称为线性回归,更准确来说,是单变量线性回归
在这里插入图片描述

2.2 代价函数 Cost function

假设函数 h θ ( x ) = θ 0 + θ 1 x h_{\theta}(x) = \theta_0 + \theta_1 x 中的 θ 0 \theta_0 θ 1 \theta_1 为模型参数,选择不同的参数值会得到不同的假设函数,那么,我们如何选择这两个参数值呢?
在线性回归中,我们有一个训练集,我们要做的是得出 θ 0 \theta_0 θ 1 \theta_1 这两个参数的值,使得假设函数表示的直线尽量地与这些数据点很好的拟合,即输入x得到的预测值 h θ ( x ) h_{\theta}(x) 最接近该样本对应的真实值y值,也就是解决最小化问题。
代价函数 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) 的数学定义为预测值与实际值之差的平方误差和的 1 2 m \frac {1}{2m} J ( θ 0 , θ 1 ) = 1 2 m i = 1 m ( h θ ( x ( i ) ) y ( i ) ) 2 J(\theta_0,\theta_1)= \frac {1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2
在这里插入图片描述
单变量线性回归公式总结如下:
假设函数 Hypothesis: h θ ( x ) = θ 0 + θ 1 x h_{\theta}(x) = \theta_0 + \theta_1 x
参数 Parameters: θ 0 \theta_0 , θ 1 \theta_1
代价函数 Cost function: J ( θ 0 , θ 1 ) = 1 2 m i = 1 m ( h θ ( x ( i ) ) y ( i ) ) 2 J(\theta_0,\theta_1)= \frac {1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2
目标函数 Goal: m i n i m i z e   J ( θ 0 , θ 1 ) minimize \ J(\theta_0,\theta_1)

为了更好地使代价函数 J J 可视化,我们令参数 θ 0 = 0 \theta_0=0 ,只有一个参数 θ 1 \theta_1 ,于是将假设函数简化为 h θ ( x ) = θ 1 x h_{\theta}(x) = \theta_1 x ,将代价函数简化为 J ( θ 1 ) = 1 2 m i = 1 m ( h θ ( x ( i ) ) y ( i ) ) 2 J(\theta_1)= \frac {1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2 ,我们会得到如下图所示的代价函数图 J ( θ 1 ) J(\theta_1)
在这里插入图片描述
那么,如果保留两个参数 θ 0 \theta_0 , θ 1 \theta_1 ,会得到如下图所示的碗状曲面函数,曲面的高度即为代价函数 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) 的值。
在这里插入图片描述
代价函数 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) 用等高线图表示如下。
在这里插入图片描述

2.3 梯度下降 Gradient descent

我们有一个线性回归的代价函数 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) ,可以用梯度下降算法来最小化代价函数 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) 。梯度下降算法的思路:给定 θ 0 \theta_0 θ 1 \theta_1 的初始值(通常将 θ 0 \theta_0 θ 1 \theta_1 均初始化为0),然后不停地一点点地改变 θ 0 \theta_0 θ 1 \theta_1 来使 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) 变小,直到我们找到 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) 的最小值或局部最小值。
我们可以将代价函数的图像看成一座山,你从给定的初始值 θ 0 \theta_0 θ 1 \theta_1 出发,环顾四周寻找从什么方向最快下山,然后迈出一步,并从新的起点寻找下一步最快下山的方向,重复上面的步骤,一步一步往下走,直到到达局部最低点。值得注意的是,不同的初始值可能会得到不同的代价函数局部最小值。
在这里插入图片描述
梯度下降算法的定义:
repeat until convergence { θ j : = θ j α d θ j J ( θ 0 , θ 1 )   ( f o r   j = 0   a n d   j = 1 ) \theta_j := \theta_j - \alpha \frac{\partial}{\mathrm{d}\theta_j}J(\theta_0,\theta_1)\ (for \ j=0\ and\ j=1 ) }
同步更新
t e m p 0 : = θ 0 α d θ 0 J ( θ 0 , θ 1 ) temp0:=\theta_0-\alpha \frac{\partial}{\mathrm{d}\theta_0}J(\theta_0,\theta_1) t e m p 1 : = θ 1 α d θ 1 J ( θ 0 , θ 1 ) temp1:=\theta_1-\alpha \frac{\partial}{\mathrm{d}\theta_1}J(\theta_0,\theta_1) θ 0 : = t e m p 0 \theta_0:=temp0 θ 1 : = t e m p 1 \theta_1:=temp1
要注意,梯度下降要对 θ 0 \theta_0 θ 1 \theta_1 进行同步更新,即对 θ 0 \theta_0 θ 1 \theta_1 都更新完了以后再进行赋值。
为了理解梯度下降算法,我们仍然考虑代价函数只有一个参数的情形。从下图中可以看出,无论偏导数项为正为负, θ 1 \theta_1 总能使 J ( θ 1 ) J(\theta_1) 趋向于最小值。
在这里插入图片描述
其中 α \alpha 表示学习率,它用来控制我们以多大幅度更新参数 θ j \theta_j ,既下山的步长。如果 α \alpha 太小,即下山的步子很小,梯度下降得很慢;但如果 α \alpha 太大,很可能会直接跨过最低点,导致无法收敛或发散。
在这里插入图片描述
如果已经处于一个局部最优点,下一步梯度下降将不会改变,因为局部最优点的导数为0。
当我们接近局部最低点时,导数值会变得越来越小,所以,即使学习率 α \alpha 不变,梯度下降的幅度也会越来越小,最后收敛到局部最优点。

2.4 线性回归的梯度下降 Gradient descent for linear regression

我们将梯度下降算法应用到最小化平方差代价函数,就得到线性回归的梯度下降。
在这里插入图片描述
梯度下降算法变成如下形式:
repeat until convergence { θ 0 : = θ 0 α 1 m i = 1 m ( h θ ( x ( i ) ) y ( i ) ) \theta_0 := \theta_0 - \alpha \frac {1}{m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)}) θ 1 : = θ 1 α 1 m i = 1 m ( h θ ( x ( i ) ) y ( i ) ) x ( i ) \theta_1 := \theta_1 - \alpha \frac {1}{m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})\cdot x^{(i)} }
线性回归的代价函数总是下图所示的弓形函数,也叫凸函数,它没有局部最优解,只有一个全局最优。
在这里插入图片描述
线性回归的梯度下降在等高线图上的表示如下图所示。
在这里插入图片描述
上述梯度下降算法称为Batch梯度下降算法,Batch梯度下降算法的每一步梯度下降都遍历了整个训练集的样本,所以在梯度下降计算偏导数的时候计算的是m个训练样本的总和。

发布了9 篇原创文章 · 获赞 0 · 访问量 166

猜你喜欢

转载自blog.csdn.net/qq_45474860/article/details/104356894