前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第二章 单变量线性回归

第二章 单变量线性回归

作者头像
tomas家的小拨浪鼓
发布2019-03-08 09:57:42
9750
发布2019-03-08 09:57:42
举报
文章被收录于专栏:木木玲木木玲

2.1 模型表示

机器学习算法是怎样工作的:

a)我们向学习算法提供训练集 b)学习算法的任务是输出一个函数(通常用小写h表示),h代表假设函数 c)假设函数的作用是,把房子的大小作为输入变量(x),而它试着输出相应房子的预测y值 h:是一个引导从x得到y的函数

当我们设计一个机器学习算法时,第一个需要做的是:决定怎么表达这个假设函数h

一种可能的表达方式为:

,因为只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题。 这个模型叫做“线性回归”,这个例子是一元线性回归。这个模型的另一个名字“单变量线性回归”

2.2 代价函数

那么我们要如何选择θ_1和θ_2这两个参数。

我们要选择能使h(x),也就是输入x时我们预测的值最接近该样本对应的y值的参数θ_1和θ_2。 所以,在我们的训练集中我们会得到一定数量的样本。我们知道x表示卖出哪所房子,并且知道这所房子的实际价格。 所以,我们要尽量选择参数值,使得在训练集中,给出训练集中的x值,我们能合理准确的预测y值。

标准的定义:在线性回归中,我们要解决的是一个最小化问题,所以我们要写出关于θ_1和θ_2的最小化。而且,我们希望这个式子极小,我想要h(x)和y之间的差异要小。我要做的是:尽量减少假设的输出与房子真实价格之间的差的平方。

线性回归的代价函数:

m :训练样本数量 (?(?),?(?)) 代表第?个训练样本

我们要关于θ_1和θ_2对代价函数求最小值。 “代价函数”也被称作“平方误差函数”,有时也被称作“平方误差代价函数”。 事实上,我们之所以要求出“误差的平方和”,是因为“误差平方代价函数”对于大多数的问题,特别是回归问题,都是一个合理的选择。还有其他的代价函数也能很好地发挥作用。但是“平方误差代价函数”可能是解决回归问题最常用的手段了。

2.3 代价函数(一)

  • 当 θ_1 = 1 时:

代价函数是关于Θ_1的函数。因此,我们在绘制‘代价函数’时,横轴是θ_1,纵轴是J(θ_1). J(θ_1) 可能是负数、0、正数。

  • 当 θ_1 = 0.5 时:
  • 当 θ_1 = 0 时:
  • 代价函数J(θ_1) :

2.4 代价函数(二)

本节,我们用h(x) = θ_0 +θ_1*x 来表示‘假设函数’,那么‘代价函数’J(θ_0, θ_1)就是关于 θ_0、θ_1 的函数。因此,坐标图已经不是简单的二维坐标了,而是三维坐标。如,x轴表示’θ_0’、y轴表示’θ_1’、z轴表示‘J(θ_0, θ_1)’。如下:

?’代价函数’图,依旧像个碗状。

等高线图(右图)

等高线图的最小值为这些同心椭圆的中心。(即,‘代价函数’的最小值)

  • 举例: ① θ_0 = 800 ;θ_1 = -0.15

② Θ_0 = 360 ;Θ_1 = 0

2.5 梯度下降

梯度下降法可以将代价函数最小化。梯度下降是很常用的算法,它不仅被用在线性回归上,还被广泛应用于机器学习的众多领域。 用梯度下降法最小化其他函数,而不仅仅是最小化线性回归的代价函数J. 用梯度下降法是可以最小化任意函数的

问题概述:

初始状态:通常选择是将θ_0设为0,θ_1也设置为0.

梯度下降有一个有趣的特点:不一样的起始点(即便只偏差一点),你可能就会得到完全不同的局部最优解。

背后的数学原理:

注意:?关于梯度下降算法,是同时更新θ_0和θ_1的。

错误的更新方式中,会使用已经更新的Θ_0去计算新的Θ_1。。。

『:=』赋值 『=』真假判定 (truth assertion)。如,a = b,就是断言a的值等于b的值 『α』学习率的数字(永远是一个正数,即,> 0)。α 用来控制,梯度下降时,我们迈出多大的步子。如果,α 的值很大,梯度下降就很迅速 『

』导数项。

2.6 梯度下降的直观理解

α为学习速率,它控制我们以多大的幅度更新这个参数Θ_J.

  • 以一个参数的代价函数J(Θ_1),来讲解’α’和’导数项’,以及为什么将它们放在一起时,整个更新过程是有意义的。

这是我们的函数J(θ_1),θ_1 ∈ R。

梯度函数要做的就是不断更新

一个点的导数,基本上可以说是,取这一点的切线斜率。

斜率 = 高度 / 水平长度 ?这个红色直线有一个正斜率,或者说正导数。 所以,new_θ1 < old_θ1。相当于我们将θ1向左移,使θ1变小了。

另一个例子:

new_θ1 > old_θ1

  • 学习速率 α 的作用 梯度下降法的更新原则:

α 太大可能会导致无法收敛,甚至发散。

  • 问题:如果 θ1 已经处于一个局部最优点了,你认为下一步梯度下降会怎么样?

局部最优点的导数等于0,因为导数是切线的斜率。那么,θ1 := θ1 - α * 0 ,即,new_θ1 == old_θ1. 因此,如果你已经在局部最优点,θ1将不再改变。

?这就是梯度下降法的运行方式。(实际上没有必要在额外减小α)

这就是梯度下降函数,你可以用它来尝试最小化任意的代价函数J,而不只是线性回归中的代价函数J。

线性回归算法 = 平方代价函数 结合 梯度下降法

线性回归的梯度下降

我们要做的就是,将’梯度下降法’应用于’平方差代价函数’,以最小化’平方差代价函数’

?其中θ0的求导,只是一个对应θ0的偏导数。

因为‘平方差代价函数’总是一个弓状函数(如,下图),术语叫做‘凸函数’(不太正规的理解,‘凸函数’就是一个弓形函数)。因此,这个函数没有局部最优解,它只有一个全局最优解(这样它就不存在,当前起始点不一样时,导致可能产生不同的局部最优解的情况)。

  • “Batch 梯度下降法” ‘Batch梯度下降法’意味着每一步梯度下降,我们都遍历了整个训练集的样本。所以在梯度下降中,当计算偏导数时,我们计算总和。因此,在每个单独的梯度下降,我们计算m个训练样本的总和。因此,‘Batch梯度下降法’指的是,看整个训练集时。

其他的算法(即,其他的梯度算法),没有览概整个训练集,它每次只关注了小子集

  • “正规方程组方法”: 求解函数J的最小值,不需要使用像梯度下降的迭代算法。

但‘梯度下降’适用于更大的数据集。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.02.24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.1 模型表示
    • 机器学习算法是怎样工作的:
      • 问题概述:
      • 背后的数学原理:
  • 2.2 代价函数
  • 2.3 代价函数(一)
  • 2.4 代价函数(二)
  • 2.5 梯度下降
  • 2.6 梯度下降的直观理解
  • 线性回归的梯度下降
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档