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

第2章:单变量线性回归

2.1 模型描述 Model representation

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

2.2 代价函数 Cost function

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

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

2.3 梯度下降 Gradient descent

我们有一个线性回归的代价函数 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0,θ1),可以用梯度下降算法来最小化代价函数 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0,θ1)。梯度下降算法的思路:给定 θ 0 \theta_0 θ0 θ 1 \theta_1 θ1的初始值(通常将 θ 0 \theta_0 θ0 θ 1 \theta_1 θ1均初始化为0),然后不停地一点点地改变 θ 0 \theta_0 θ0 θ 1 \theta_1 θ1来使 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0,θ1)变小,直到我们找到 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0,θ1)的最小值或局部最小值。
我们可以将代价函数的图像看成一座山,你从给定的初始值 θ 0 \theta_0 θ0 θ 1 \theta_1 θ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 ) θj:=θjαdθjJ(θ0,θ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) temp0:=θ0αdθ0J(θ0,θ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) temp1:=θ1αdθ1J(θ0,θ1) θ 0 : = t e m p 0 \theta_0:=temp0 θ0:=temp0 θ 1 : = t e m p 1 \theta_1:=temp1 θ1:=temp1
要注意,梯度下降要对 θ 0 \theta_0 θ0 θ 1 \theta_1 θ1进行同步更新,即对 θ 0 \theta_0 θ0 θ 1 \theta_1 θ1都更新完了以后再进行赋值。
为了理解梯度下降算法,我们仍然考虑代价函数只有一个参数的情形。从下图中可以看出,无论偏导数项为正为负, θ 1 \theta_1 θ1总能使 J ( θ 1 ) J(\theta_1) J(θ1)趋向于最小值。
在这里插入图片描述
其中 α \alpha α表示学习率,它用来控制我们以多大幅度更新参数 θ j \theta_j θ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)}) θ0:=θ0αm1i=1m(hθ(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)} θ1:=θ1αm1i=1m(hθ(x(i))y(i))x(i)}
线性回归的代价函数总是下图所示的弓形函数,也叫凸函数,它没有局部最优解,只有一个全局最优。
在这里插入图片描述
线性回归的梯度下降在等高线图上的表示如下图所示。
在这里插入图片描述
上述梯度下降算法称为Batch梯度下降算法,Batch梯度下降算法的每一步梯度下降都遍历了整个训练集的样本,所以在梯度下降计算偏导数的时候计算的是m个训练样本的总和。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值