吴恩达机器学习笔记整理——单变量线性回归

通过模型分析,拟合什么类型的曲线。

一、基本概念

1.训练集

由训练样例(training example)组成的集合就是训练集(training set), 如下图所示,其中(x,y)是一个训练样本,训练集中每一行表示一个训练样本;(x^i,y^i)表示第i个训练样本。

2.假设函数h

使用某种学习算法对训练集的数据进行训练, 我们可以得到假设函数(Hypothesis Function), 如下图所示. 在房价的例子中,假设函数就是一个房价关于房子面积的函数。有了这个假设函数之后, 给定一个房子的面积我们就可以预测它的价格了.

这里假设函数用以下格式表示:

hθ(x)=θ0+θ1x

这个模型就叫做单变量的线性回归(Linear Regression with One Variable).

二、代价函数

1.概念

对于不同的假设函数,  假设函数中有两个未知的量当选择不同的,所得到的模型的效果肯定是不一样的. 如下图所示, 列举了三种不同的下的假设函数

代价函数,是使所得直线与数据最大程度拟合,使h(x)在输入x后所得的y值,最接近样本对应的y值,此时的参数θ1和θ0即所求。

越是接近, 代表这个假设函数越是准确, 这里我们选择均方误差来作为衡量标准, 即我们想要每个样例的估计值与真实值之间差的平方的均值最小。用公式表达为:

(1/2是为了便于后续计算)记:

这样就得到了我们的代价函数(cost function), 也就是我们的优化目标, 我们想要代价函数最小:

2.代价函数与假设函数

现在为了更方便地探究hθ(x)与J(θ0,θ1)的关系, 先令θ0等于0, 得到了简化后的假设函数,有假设函数的定义可知此时的假设函数是经过原点的直线. 相应地也也得到简化的代价函数。如图所示:

简化之后,我们令θ1等于1, 就得到hθ(x)=x如下图左所示。图中三个红叉表示训练样例,通过代价函数的定义我们计算得出J(1)=0,对应下图右中的(1,0)坐标。

重复上面的步骤,再令θ1=0.5,得到hθ(x)如下图左所示。通过计算得出J(0.5)=0.58,对应下图右中的(0.5,0.58)坐标。

对于不同的θ1,对应着不同的假设函数hθ(x),于是就有了不同的J(θ1)的值。将这些点连接起来就可以得到J(θ1)关于θ1的函数图像,如下图所示:

我们的目标就是找到一个θ使得J(θ)最小, 通过上面的描点作图的方式, 我们可以从图中看出, 当θ1=1的时候, J(θ)取得最小值.

我们令θ0等于0, 并且通过设置不同的θ1来描点作图得到J(θ1)的曲线。这一节我们不再令θ0=0, 而是同时设置θ0和θ1的值, 然后再绘出J(θ0,θ1)的图形. 因为此时有两个变量,很容易想到J(θ1)应该是一个曲面, 如下图所示:

为了便于研究,我们采用等高线图来研究3D模型,在地理中常用等高线用来描述地形

下图右,越靠近中心表示J(θ0,θ1)的值越小(对应3D图中越靠近最低点的位置)。下图左表示当=800, θ1=0.15的时候对应的hθ(x),通过θ0, θ1的值可以找到下图右中Jθ0,θ1)的值。对于不同的拟合直线,对应不同的J(θ0,θ1)

对于斜率为负的情形:

当斜率为0,情形如下:

最优拟合情形:

我们在这个过程中不断由外向内趋近,直至找到一个最接近最佳hθ(x),这个过程就是梯度下降的过程。

三、梯度下降算法

1.梯度下降

梯度下降算法是一种优化算法, 它可以帮助我们找到一个函数的局部极小值点. 它不仅仅可以用在线性回归模型中, 在机器学习许多其他的模型中也可以使用它. 对于我们现在研究的单变量线性回归来说, 我们想要使用梯度下降来找到最优的θ0,θ1.它的思想是, 首先随机选择两个θ0,θ1(例如, θ0=0,θ1=0), 不断地改变它们的值使得J(θ)变小, 最终找到J(θ)的最小值点.

可以把梯度下降的过程想象成下山坡, 如果想要尽可能快的下坡, 应该每次都往坡度最大的方向下山.

梯度下降算法得到的结果会受到初始状态的影响, 即当从不同的点开始时, 可能到达不同的局部极小值, 如下图:

下面具体看一下算法的过程, 如下图所示, 其中:=表示赋值,α叫做学习率用来控制下降的幅度,导数部分叫做梯度。这里一定要注意的是,算法每次是同时(simultaneously)改变θ0和θ1的值,如图下图所示。

3.梯度和学习率

我们先来看看梯度下降算法的梯度是如何帮助我们找到最优解的. 为了研究问题的方便我们还是同样地令θ0等于0,假设一开始选取的θ1在最低点的右侧,此时的梯度(斜率)是一个正数。根据上面的算法更新θ1的时候,它的值会减小, 即靠近最低点。

类似地假设一开始选取的θ1在最低点的左侧,此时的梯度是一个负数,根据上面的算法更新θ1的时候,它的值会增大,也会靠近最低点.

如果一开始选取的θ1恰好在最适位置,那么更新θ1时,它的值不会发生变化。

学习率α会影响梯度下降的幅度。如果α太小, θ的值每次会变化的很小,那么梯度下降就会非常慢;相反地,如果α过大,θ的值每次会变化会很大,有可能直接越过最低点,可能导致永远没法到达最低点。

由于随着越来越接近最低点, 相应的梯度(绝对值)也会逐渐减小,所以每次下降程度就会越来越小, 我们并不需要减小α的值来减小下降程度。

3.计算梯度

根据定义, 梯度也就是代价函数对每个θ的偏导:

我们将hθ(x(i))=θ0+θ1x(i)带入到J(θ0,θ1)中,并且分别对θ0和θ1求导得:

由此得到了完整的梯度下降算法

还记得这个图吗, 前面说了梯度下降算法得到的结果会受初始状态的影响, 即初始状态不同, 结果可能是不同的局部最低点.

事实上,用于线性回归的代价函数总是一个凸函数(Convex Function)。这样的函数没有局部最优解,只有一个全局最优解。所以我们在使用梯度下降的时候,总会得到一个全局最优解。

迭代多次后,我们得到了最优解。现在我们可以用最优解对应的假设函数来对房价进行预测了。例如一个1,250平方英尺的房子大概能卖到250k$,如下图所示:

python装饰器带参数函数二阶导数公式_机器学习【二】单变量线性回归相关推荐

  1. python装饰器带参数函数二阶导数公式_一文搞定Python装饰器,看完面试不再慌

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题的第12篇文章,我们来看看Python装饰器. 一段囧事 差不多五年前面试的时候,我就领教过它的重要性.那时候我Pyt ...

  2. python装饰器带参数函数二阶导数公式_【计算机程序的构造和解释】使用函数构建抽象——5. 高阶函数...

    学Python,用RPA 艺赛旗RPA2020.1版本 正在免费下载使用中,欢迎下载使用艺赛旗-RPA机器人免费下载|提供流程自动化解决方案​www.i-search.com.cn 我们已经看到,函数 ...

  3. python装饰器带参数函数二阶导数公式_SICP Python 描述 1.6 高阶函数

    1.6 高阶函数 我们已经看到,函数实际上是描述复合操作的抽象,这些操作不依赖于它们的参数值.在square中, >>> def square(x): return x * x 我们 ...

  4. python装饰器带参数函数二阶导数公式_MVision/caffe_简介_使用.md at master · Ewenwan/MVision · GitHub...

    2. caffe 模型配置文件 prototxt 详解 每个模型由多个 层 构成 layer {{{{ name: "{}" #层名字,可随意取名 type: "{}&q ...

  5. python装饰器带参数函数_python带参数装饰器的两种写法

    python带参数装饰器的两种写法 前言 最近在实现一个装饰器的过程中发现了一个很有意思的地方,在博客里面分享出来 不同的写法 三层函数嵌套,实现了可传参数的一个装饰器. import logging ...

  6. python装饰器带参数函数_当我使用带参数的python装饰器时,如何将参数传递给最内部的函数?...

    当Func返回不是真时,我的装饰器用于召回Func.def deco_retry(retry_times): def _deco_retry(func): def wrapper(*args, **k ...

  7. python中函数不包括参数函数二阶导数公式_请问参数方程确定的函数的二阶导数公式的详细推导过程?...

    展开全部 y''=d(dy/dx)/dx=[d(dy/dx)/dt]*(dt/dx) 因变量由y换作dy/dx,自变量还是62616964757a686964616fe58685e5aeb931333 ...

  8. python中函数不包括参数函数二阶导数公式_参数方程的二阶导数怎么求????...

    展开全部 设参数方程 x(t), y(t),则二阶导数: 一阶32313133353236313431303231363533e4b893e5b19e31333431373836导数是自变量的变化率, ...

  9. python装饰器传递参数_Python装饰器高级版—Python类内定义装饰器并传递self参数...

    本文重点:解决了类里面定义的装饰器,在同一个类里面使用的问题,并实现了装饰器的类属性参数传递 目录: 一.基本装饰器 二.在类里定义装饰器,装饰本类内函数 三.类装饰器 正文: 一.基本装饰器 装饰不 ...

最新文章

  1. day18——sql优化——绑定变量
  2. 常量元素记忆口诀_化学口诀表:帮助学生加深记忆提高解题正确率
  3. Ubuntu11.04软件源--增强版
  4. QuartusII下verilog设计使用OC8051和VGA两个IP核组成片上系统
  5. YBTOJ洛谷P3209:平面图判定(2-SAT)
  6. java selenium教程_Selenium3 Java自动化测试完整教程
  7. solr mysql增量导入_急急急,在线等!solr4.10结合oracle增量导入数据问题!
  8. python行列式值计算程序_2、3阶行列式计算(python代码)
  9. 道可道,非常道——详解promise
  10. 分类性能度量指标:准确性(AC)、敏感性(SE)、特异性(SP)、F1评分、ROC曲线、PR(Precision-Recall)曲线、AUC曲线,混淆曲线
  11. 静态路由 动态路由 默认路由 默认网关
  12. 重装系统服务器2012r2,SCCM2012R2网络部署重装系统
  13. python多窗口显示内容_如何在一个窗口中显示多个页面?
  14. PS-怎么用ps查看精灵图(雪碧图)的位置?
  15. sequence_loss_by_example()函数在Tensorflow2.x找不到
  16. vue+ts项目中import图片时报错Cannot find module ‘xxx‘ or its corresponding type declarations
  17. (一)CDN技术分类概述
  18. TeamLab的介绍
  19. linux LVM逻辑卷的创建,扩容,缩减和删除
  20. 软件测试求助,求大佬救救孩子

热门文章

  1. 星际争霸十大挖掘性操作
  2. 百度地图API的两种加载方式
  3. 全面了解风险决策引擎【一】
  4. Vue 项目如何进行 SEO 优化
  5. Discuz x2.5 单页制作的教程
  6. 微信群聊图灵机器人 复制直接用
  7. 重启c语言-找出总分最高的学生
  8. 比普通空调好,比净化器静 海尔唯一获“空·净一体”A+认证
  9. Postek博思得打印机
  10. dwf怎么合成一个_油菜素内酯合成基因DWF1、DET2影响毛白杨木质部形成