【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch)

这篇具有很好参考价值的文章主要介绍了【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习

  • 博主简介:努力学习的22级计算机科学与技术本科生一枚🌸
  • 博主主页: @Yaoyao2024
  • 每日一言🌼: 勇敢的人,不是不落泪的人,而是愿意含着泪继续奔跑的人。
    ——《朗读者》
    【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习

0、声明

本系列博客文章是博主本人根据吴恩达老师2022年的机器学习课程所学而写,主要包括老师的核心讲义和自己的理解。在上完课后对课程内容进行回顾和整合,从而加深自己对知识的理解,也方便自己以及后续的同学们复习和回顾。

  • 课程地址👉🏻2022吴恩达机器学习Deeplearning.ai课程
  • 课程资料和代码(jupyter notebook)👉🏻2022-Machine-Learning-Specialization

由于课程使用英文授课,所以博客中的表达也会用到英文,会用到中文辅助理解。

🌸Machine learning specialization课程共分为三部分

  • 第一部分:Supervised Machine Learning: Regression and Classification
  • 第二部分:Advanced Learning Algorithms(Neural networks、Decision Trees)
  • 第三部分:Unsupervised Learning: Recommenders, Reinforcement Learning

💐最后,感谢吴恩达老师Andrew Ng的无私奉献,和视频搬运同学以及课程资料整合同学的无私付出。Cheers!🍻

前言

【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习

 🪧第一章我们了解了监督学习和非监督学习,接下来我们将依次进行学习。监督学习任务主要有两个:回归和分类。回归问题的基础算法是:线性回归模型(linear regression)。这一章将对 单变量线性回归(linear regression with one varible)进行全面的学习,进而在下一章的多变量线性回归(multiple linear regression)模型中能更好的类比和掌握。

🙎🏻‍♀️在这一章你将掌握

  • 单变量线性模型(build with an model which establish the relationship between features and target)
  • 代价函数(provide a measure how well your models work on your training data/your predictions match your training data)
  • 梯度下降:一种利用代价函数用来训练模型的算法
  • 学习率:通过改变学习率从而影响梯度下降

接下来让我们开始吧!💐

1、单变量线性回归模型

首先我们要弄清楚单变量线性回归是什么,是做什么的。

  • "回归”:对应的是监督学习中的“回归问题”对应的“回归模型(regression model)”,即预测连续的值。
    【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习
  • “单变量”:是值输入数据x是单个数据。即:输入一个变量x,对应一个预测值y.比如在下图示例中,输入房间大小size,即可得到连续的房价预测值price
    【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习

1.1:术语(notation/terminology)

关于单变量模型中的符号约定及其解释见下图

【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习

1.2:原理(流程)

  • 1、模型的训练:

    • Step1:首先,通过现有收集的数据,我们将其构建模型训练集(training set).
    • Step2:然后通过机器学习算法(learning algorithm),利用现有的数据,训练回归模型:regression model
  • 2、预测:

    • Step1:输入变量,通过模型进行计算
    • Step2:输出连续的预测结果
      【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习

1.3:模型的表示

如果只是知道上述原理后,我们一定还不清楚,这个模型model到底是什么东西,它是如何表示的,又是如何根据输入变量进行预测的呢?我们下面一起来看看它的真实面目!

【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习
可以看到,线性模型的表示本身是一个线性函数。单变量线性回归模型对应的就是单变量的线性函数。输入数据x,经过函数计算(其实就像模型预测),得到函数输出值(也就是预测值)y

1.4:模型的预测

通过上面的学习,我们知道,一旦模型的参数wb确定了,那么模型确定,给定输入数据x即可预测得到y

w = 200                         
b = 100    
x_i = 1.2
cost_1200sqft = w * x_i + b    

print(f"${cost_1200sqft:.0f} thousand dollars")

但是,问题在于:如何选择参数wb,使得模型能更好的进行预测,准确率高!

再直白些:我们当然不能人工的去手动确定w,b,这就违背了机器学习让机器自己学习的本质了。我们要让模型自己去学习,也就是:模型的训练

二、模型的训练

模型训练的本质就是:如何确定参数wb,使得模型能更好的进行预测

机器学习对于训练单变量模型(也就是确定w,b)有自己的训练方法,或者称为:learning algorithm——梯度下降(Gradient_Descent).

具体如何进行的呢?还要从代价函数讲起。

2.1:代价函数

The cost equation provides a measure of how well your predictions match your training data.
也就是说,代价函数是衡量当前模型与训练数据拟合程度的一个函数。

从下图可以看出,不同的wb拟合的函数(也就是模型)不同,对训练数据的拟合程度也不同。代价函数就是这么一个衡量模型是否和训练数据拟合的好的一个函数。

我们的目的是找到与训练数据拟合的好(当然不能过拟合)的这样一个模型。怎么找先不说,首先我们就需要学会代价函数——判断模型和数据的拟合程度。
【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习

2.1.1:公式(平方误差)

【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习
🙎🏻‍♀️公式解析

  • 1/m:保证平均,否则代价函数会随着数据量的增大而增大,没有可比性
  • 1/2:主要是为了之后算梯度的时候求导好算(把2消掉)

Tips:平方误差函数是常用的代价函数,实际上还有很多种代价函数,以适用于不同的问题)

2.1.2:理解代价函数

由下图可以看到,我们的目标(goal)是 最小化代价函数,从而使模型和训练数据最贴近。

【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习

而学习了代价函数的公式我们知道,代价函数是关于参数wb的一个二元函数(这里我们为了简化问题,不去考虑b,也就是我们认为这里的代价函数是一个一元函数)

通过下图可以看到,代价函数越小,模型与数据越贴近;代价函数越大,模型与训练数据越不贴近
【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习

2.1.3:代价函数的可视化

可以看到当考虑到参数b后,代价函数的3-D可视化图像如下所示。我们的目标就是找到代价函数中的最低点
【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习

此外,除了用3-D图的表示方法,我们还可以使用下面等高线这种2-D形式来表示:【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习

2.2:梯度下降算法

通过上面的学习,我们知道,想要得到效果最好的、与训练数据拟合最好的模型,关键是找到代价函数图像中最低的那点。

如何找到最低点呢?——梯度下降算法(gradient descent)

梯度下降算法不仅仅是用在线性回归任务中,在更多复杂的模型(如神经网络)中也有应用

下面我们具体看看这个算法的思想和步骤以及特性。

2.2.1:算法思想

把代价函数想象成下面这样一个3D立体图,像一个山坡一样。 任意选一个wb就代表任意站在一点。

  • Step1: 站在一点,环顾四周360°,选择最陡下降方向
  • Step2:沿着这个方向,迈出一小步
  • Step3:重复上述两个步骤
  • Step4:直到局部最低点(达到收敛,converge)

【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习
🍊特性:最终到达哪个局部最低点与起点有关。

2.2.2:数学公式

梯度下降是上述形象的下坡过程,实际上就是wb的不断重新赋值更新,直到达到代价函数最低点的过程。

【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习
1. 偏导数项:决定了你要选择的那个最陡峭的下降方向
2. α:学习率;决定了每次你确定好方向后要走多大一步

2.2.3:计算梯度

【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习

对于后面的多变量线性回归,只需要把对应的标量换成向量即可,公式是相同的。

2.2.4:理解

下面是对公式的直观理解。

导数项总是决定下降方向,学习率α决定了沿这个方向走多远。

【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习

2.2.5:学习率

上面可知,梯度下降算法的关键在于两点:方向、步长

方向由导数项确定,代价函数确定了即可求。而步长——学习率,需要认为设定(属于模型训练过程中的超参数.

下图可以看到,当学习率较小时,梯度下降算法会进行的比较慢,耗时;当学习率过大时,梯度下降时来回震荡,又很难得到收敛。

【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习

如何选择学习率(也就是传说中的调参)会在下一篇文章中讲到。此处只是一个介绍。
而且这里的学习率就是全局学习率,只有一个值。后面讲卷积神经网络中还会讲到其他能自动调节学习率的方法。

下面可以看到,选择合适的学习率可以达到局部最低点(local minimum)。

对于其他复杂的模型,可能有多个local minimum,这时不一定能确定此时的最小值就是全局的最小值global minimum

【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习

当接近极值点时,会发现有两个特性

  • 导数项的值变小
  • 每走一步的总步长变小

【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习

2.2.6:批量(batch)、时期(Epoch)

如下图,所谓batch,顾名思义,就是一批," 一批完成一次梯度下降的所有训练样本"
【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch),机器学习,线性回归,学习

  • Batch(批,一批样本):将整个样本分成若干个batch
  • Batch_Size(批量大):每批样本的样本个数
  • Iteration(迭代):一batch的样本完成一次梯度下降(反向传播),即为一次迭代
  • Epoch(时期):所有的样本完成一次训练(梯度下降/反向传播)。当一个Epoch中的样本数量过多时,就要分成多个batch。

ps:上面的"反向传播”是神经网络模型中的概念。


🦄下期预告:多变量的线性回归模型、向量化、特征缩放、判断梯度是否收敛、如何设置合适的学习率、特征工程文章来源地址https://www.toymoban.com/news/detail-827406.html

到了这里,关于【吴恩达·机器学习】第二章:单变量线性回归模型(代价函数、梯度下降、学习率、batch)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【一起啃书】《机器学习》第一章 绪论 + 第二章 模型评估与选择

    【一起啃书】《机器学习》第一章 绪论 + 第二章 模型评估与选择

    第一章 绪论 1. 机器学习 :研究如何通过计算的手段,利用经验来改善系统自身的性能。在计算机系统中,”经验“通常以“数据”的形式存在,所以机器学习研究的主要内容也是如何通过这些数据产生一个模型,进而通过这个模型为我们提供相应的判断。 2. 基本术语 :数

    2023年04月18日
    浏览(13)
  • 吴恩达机器学习-可选实验:使用ScikitLearn进行线性回归(Linear Regression using Scikit-Learn)

    吴恩达机器学习-可选实验:使用ScikitLearn进行线性回归(Linear Regression using Scikit-Learn)

    有一个开源的、商业上可用的机器学习工具包,叫做scikit-learn。这个工具包包含了你将在本课程中使用的许多算法的实现。 在本实验中,你将:利用scikit-learn实现使用梯度下降的线性回归 您将使用scikit-learn中的函数以及matplotlib和NumPy。 np.set_printoptions(precision=2) 的作用是告诉

    2024年03月14日
    浏览(15)
  • 线性代数 第二章 矩阵

    一、概念 个数排成的m行n列的表格 二、运算法则 三、初等变换 (1)用非零常数k乘矩阵的某一行(列); (2)互换矩阵某两行(列)的位置; (3)把某行(列)的k倍加至另一行(列)。 称为矩阵的 初等行(列)变换 ,统称 初等变换 。矩阵经初等行变换后秩不变。 初等

    2024年02月08日
    浏览(12)
  • 第二章 变量和引用

    第二章 变量和引用

    目录 2.1. 深入认识变量 2.1.1. 什么是变量 2.1.2. 变量的名称 2.1.3. 变量的类型 2.1.4. 变量的定义 2.1.5. 自定义变量 2.1.6. 环境变量 2.1.7. 位置变量 2.2. 变量赋值和作用域 2.2.1. 显示赋值:变量名=变量值 2.2.2. read 从键盘读入变量值 2.2.3. 变量和引号 2.2.4. 变量的作用域 变量是在程序

    2024年02月20日
    浏览(8)
  • 高等数学:线性代数-第二章

    n bm{n} n 元线性方程组 设有 n 个未知数 m 个方程的线性方程组 { a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n = b 1 a 21 x 1 + a 22 x 2 + ⋯ + a 2 n x n = b 2 ⋯ ⋯ ⋯ ⋯ a m 1 x 1 + a m 2 x 2 + ⋯ + a m n x n = b m begin{cases} a_{11}x_{1} + a_{12}x_{2} + cdots + a_{1n}x_{n} = b_{1} \\\\ a_{21}x_{1} + a_{22}x_{2} + cdots + a_{2n}x_{n} = b

    2024年02月11日
    浏览(17)
  • 【数据结构】第二章——线性表(2)

    【数据结构】第二章——线性表(2)

    大家好,很高兴又和各位见面啦!!!在上一个篇章中,我们简单了解了一下线性表的基础知识以及一下重要的术语。在今天的篇章中我们将来开始正式介绍线性表的顺序存储——又称顺序表。我们将会在本章介绍什么是顺序表,对于顺序表的操作我们又应该如何实现。接下

    2024年02月03日
    浏览(15)
  • 【数据结构】第二章——线性表(3)

    【数据结构】第二章——线性表(3)

    大家好,很高兴又和大家见面了!!! 在上一篇中,咱们介绍了顺序表的基本概念,以及通过C语言实现顺序表的创建和对表长的修改。今天咱们将详细介绍一下使用C语言实现顺序表的增删改查。接下来,跟我一起来看看今天的内容吧!!! 我们先来回顾一下上一篇的内容,

    2024年02月04日
    浏览(18)
  • 【数据结构】第二章——线性表(4)

    【数据结构】第二章——线性表(4)

    大家好,很高兴又和大家见面啦!!! 在前面的内容中我们介绍了线性表的第一种存储方式——顺序存储,相信大家经过前面的学习应该已经掌握了对顺序表的一些基本操作了。今天,我们将开始介绍线性表的第二种存储方式——链式存储。 线性表中的数据元素在存储时,

    2024年02月04日
    浏览(13)
  • 【数据结构】第二章——线性表(1)

    【数据结构】第二章——线性表(1)

    大家好,很高兴又和大家见面啦!!!从今天开始,我们将进入线性表的学习。 线性表是算法题命题的重点。这类算法题实现起来比较容易且代码量较少,但是要求具有最优的性能(时间复杂度、空间复杂度),因此,我们应该牢固掌握线性表的各种基本操作(基于两种存储

    2024年02月03日
    浏览(14)
  • 线性代数第二章矩阵及其运算详解

    线性代数第二章矩阵及其运算详解

    一.线性方程组和矩阵 1.概念 如图所示,该矩阵称为 m行n列矩阵 若行数和列数都等于n,则该矩阵称为 n阶方阵 两个矩阵的行数相等,列数也相等,就称它们为 同型矩阵 若A=(aij)和B=(bij)是同型矩阵,且aij=bij(i=1,2,...,m;j=1,2,...,n),则称 矩阵A与矩阵B相等 ,记作 A=B 2.特殊

    2024年01月25日
    浏览(17)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包