【吴恩达机器学习笔记】

news2025/1/24 8:25:22

✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343
📣专栏定位:为学习吴恩达机器学习视频的同学提供的随堂笔记。
📚专栏简介:在这个专栏,我将整理吴恩达机器学习视频的所有内容的笔记,方便大家参考学习。
📝视频地址:吴恩达机器学习系列课程
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

四、多变量线性回归

1. 多功能

在之前的课程中,我们利用房屋的大小这一个特征来那个来预测房屋的价格,但是当特征量变多之后,就得改变应付此类问题的策略了,下图所介绍的是一些常用的表达。

  • n:表示有n个特征值。

  • x(i):表示第i个训练样本的输入特征值。

  • xj(i):表示第i个训练样本中第j个特征量的值。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z6yR1ilo-1669517140975)(吴恩达机器学习.assets/image-20211030195448926.png)]

接下来,我们将定义多特征量的表达式,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qwyb1wLf-1669517140978)(吴恩达机器学习.assets/image-20211030200806178.png)]

表达式中的x1到xn为n个特征量的值,但是在开头的θ0并没有相应的特征量在旁边,所以我们为了方便记录,额外定义了一个特征量x0并让它的值恒等于1。这样,当将x于θ的值分别对应到矩阵中之后,就可以一目了然,就像上图中的x与θ的两个向量。而想要得到h(x),只需将θ进行一次转置再与x向量相乘即可得到最终表达式。

小结

这以上的内容也就是所谓的多线性回归,有多个特征量来决定最终值。

2. 多元梯度下降法

因为现在设计到了多个特征量,所以我们的多元梯度下降算法也与之前的梯度下降算法有些许不同,如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4pHTTtgD-1669517140980)(吴恩达机器学习.assets/image-20211030202145230.png)]

跟之前的算法相比,其实本质上并没有什么区别,所用的算式也大同小异,只不过在多元当中,需要算的θ值就比之前要多很多,只是在θ0和θ1之后有添加了θ2等特征量的计算。

特征缩放(Feature Scaling)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a2CS0anT-1669517140983)(吴恩达机器学习.assets/image-20211030202820823.png)]

因为J(θ)的函数图像会受到特征量的影响,所以如果当特征量之间数值相差很大时,就会得到一个非常窄的椭圆形,这会让梯度下降的步伐变得十分缓慢,它可能回来会横跳最终找到最优值。

相反,如果让特征量之间数值相差很小时,就如上图右侧所示,我们会得到一个更加圆的一个曲线图,这样的话会使梯度下降的路径变得更加直接快速,这其中所用到的方法就是特征缩放

所以我们对于特征值的处理就要更加注意,下图就是给出相关的规范原则。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SFdRvJyf-1669517140984)(吴恩达机器学习.assets/image-20211030203716302.png)]

我们通常会将特征值通过各种方式限制在大约-1≤xi≤1这个范围内,但是如果稍微有所偏差是可以在接收范围内的,一般可以将这种“红线”扩大到-3到3或-1/3到1/3之间,如果偏差超过这些范围,那还需要多加考虑了。

除上述之外,我们在进行特征缩放时,有时也会进行 均值归一化(Mean normalization) 的工作,就是将xi替换成xi减μ,让特征量具有0的平均值。通俗点来讲,就是一种缩小特征值的方法,通过这种方法,我们可以将特征量的范围大致缩小在-0.5≤x≤0.5范围附近。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4WFS2kND-1669517140990)(吴恩达机器学习.assets/image-20211030205033126.png)]

上图式中的μ1代表训练集中特征x1的平均值,而S1代表特征值的范围,也就是用x1的最大值减去最小值。

接下来,我将介绍两种测试自己梯度下降的算法正在正确的工作。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RjZzomHp-1669517140991)(吴恩达机器学习.assets/image-20211030210231105.png)]

一般我们会更倾向于用第一种方法,也就是上图的左侧,通过得到minJ(θ)与迭代次数的函数图像,可以很清楚地观察梯度下降时候往对的方向进行。

而第二种方法就是上图的右侧,我们可以通过自动收敛测试观察是否已经收敛,也就是说通过判断J(θ)的值是否小于一个阈值来进行判断,但是这种阈值一般很难去取,所以通常会用上面的一个方法去判断。

通过上述的第一种方法,我们就可以对梯度下降正误进行判断,通常情况下造成图像不正常的情况是因为选取的α即学习率过大,使梯度下降的步伐过大,导致每次下降时都会越过最低点,这时就要减小α的值,例如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YHwhWgg3-1669517140995)(吴恩达机器学习.assets/image-20211030211053569.png)]

  • 实验发现,只要α足够小,J(θ)就总能找到最优值。
  • 如果α过大的话,J(θ)可能不会在每一次迭代都下降,甚至可能不收敛(有些情况下也可能会出现收敛速度慢);如果α过小的话,梯度下降的步伐就会很小,要经过漫长岁月才能找到最优值。

故通常情况下,我们会尝试不同的α值,通过观察J(θ)的变化情况,找到下降最快的所对应的α值。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5BS5Mp2D-1669517140996)(吴恩达机器学习.assets/image-20211030212015799.png)]

3. 特征与多项式回归

现在我们考虑的特征量变多了,特征可以任意的进行选取,所以不能单单用一条直线就可以很好的拟合我们的数据,所以这时候要引入其他的函数,例如二次函数、三次函数等,这就是所谓的多项式回归(Polynomial regression)。

如果要用到梯度下降的话,我们还要考虑特征量之间的差值,如果相差太大就需要用到上节课所讲的特征缩放。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c1jZB8H2-1669517141001)(吴恩达机器学习.assets/image-20211031204708949.png)]

下面就是一个例子:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WjDJGQAX-1669517141003)(吴恩达机器学习.assets/image-20211031205318561.png)]

用二次函数可能不能拟合我们的数据,因为随着x的增大,二次函数反而会减小,所以这时候就可以用其他的函数例如带根号的函数,线性回归后能够更好地拟合数据。

4. 正规方程

前面我们是通过梯度下降来得到θ的最优解,但其实还有其它求θ最优解的办法,只用一个式子便可以求出,就是接下来要讲的。

正规方程(Gradient Descent)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iTfd1z0Z-1669517141005)(吴恩达机器学习.assets/image-20211101082506281.png)]

下面就是一个例子:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fbgCeeGE-1669517141007)(吴恩达机器学习.assets/image-20211101084308240.png)]

我们可以假设一个x0恒等于1的特征量,然后将所有特征量放入一个矩阵,将目标值放入另一个矩阵,就能计算上面式子。

接下来,我将详细为你介绍求解的具体步骤,首先来看矩阵X与向量y是怎么得到的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J1i63okT-1669517141009)(吴恩达机器学习.assets/image-20211101085133404.png)]

我们将数据集的每一个例子中的特征量分别转置放入矩阵X,也就是将每一个例子的特征量作为X的每一行,而目标值就直接竖着放入向量y。

用正规方程还有一个优点,就是它不用像梯度下降一样要进行特征缩放,它允许你的特征量之间的差值很大。

下面我将为你总结梯度下降与正规方程的优缺点。

  • 梯度下降
    • 优点:当n的值非常大的时候,它计算的效果任然会很好。
    • 缺点:它需要通过很多测试去画J(θ)的图像得到α的最优值,并且想要得到最终的结果需要很多次的迭代。
  • 正规方程
    • 优点:它不用去选取α值,也不用进行迭代计算,只用一个式子便能得到最终结果。
    • 缺点:因为式子中要计算(XTX)-1,所以如果n值特别大的话,计算这个式子会非常的慢。

小结

如果n值小于一万,则优先选择正规方程计算;如果n值大于一万,就建议去用梯度下降进行计算。

当然,你在计算(XTX)-1时可能会遇到有些矩阵没有逆矩阵的情况,那你可以有两个方法去解决:

  • 检查是否有多余的特征
    • 例如有些特征之间是有线性关系的,这时你可以删除其中一个特征。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aoxqDTWd-1669517141010)(吴恩达机器学习.assets/image-20211101093033226.png)]

  • 检查特征是否过多了(e.g. m<n)
    • 这时候你就要删除一些特征,或者采用正则化(regularization)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/40186.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PostgreSQL 同步复制原理解析

背景 Postgresql 在主备架构的场景下&#xff0c;支持同步流复制功能。本文将以一主一备架构为例&#xff0c;介绍同步流复制&#xff08;同步备机&#xff09;的工作方式以及内核代码的相关原理。 配置同步备机 工欲善其事&#xff0c;必先利其器。我们现简单的配置一个同步…

微信小程序图书管理系统

目 录 摘 要 I Abstract II 目 录 V 1 绪论 1 1.1研究背景 1 1.2研究课题和意义 2 1.3研究内容和论文结构 3 2 移动网络环境下图书管理系统的现状分析 4 2.1移动网络环境下图书管理系统的特点 4 2.2当前国内外移动网络环境下图书管理系统的现状 7 2.3微信给移动网络环境下图书管…

遥感技术及高分遥感影像在地震中的应用及高分二号获取

长期以来&#xff0c;地震预报监测、灾害调查、灾情信息获取主要依靠实地勘测手段&#xff0c;其获取的数据精度和置信度虽然较高&#xff0c;但存在工作量大、效率低、费用高和信息不直观等缺点。遥感技术手段可在一定程度上克服传统实地勘测手段的缺点&#xff0c;并具有其他…

我参加第七届NVIDIA Sky Hackathon——训练ASR模型

如何从0开始训练自己的ASR模型 第一步 获取NGC密钥 第二步 配置Ubuntu22.04的运行环境 第三步 开始训练ASR模型 文章目录如何从0开始训练自己的ASR模型前言一、获取NGC密钥二、配置Ubuntu22.04的运行环境1.安装 NVIDIA 驱动 460 以上版本2.安装 docker 与 nvidia-docker23.安装…

iClient for Leaflet实现动态绘圆的几何查询

作者&#xff1a;ls 【目录】 背景前期准备呈现效果实现过程完整代码 【背景】 几何查询是WebGIS项目中一项比较常用的功能&#xff0c;SuperMap iClient 产品支持的几何对象类型众多&#xff0c;能够满足用户的许多需求。 近期遇到许多小伙伴反应&#xff0c;绘制圆形进行…

spring复习03,注解配置管理bean

spring复习03,注解配置管理bean注解的配置1.标识组件的常用注解&#xff1a;2.扫描组件&#xff1a;3.基于注解的自动装配&#xff1a;4.使用注解以后:基于注解自动装配的小例子1.dao层&#xff1a;2.service层&#xff1a;3.controller层&#xff1a;4.spring配置文件5.测试输…

Python控制程控电源

文章目录前言一、环境搭建二、使用步骤三、执行结果总结前言 本文章主要是记录汽车电子或嵌入式设备自动化测试中&#xff0c;部分场景需要控制被测设备的供电电源&#xff0c;以下就以常见的艾德克斯程控电源为例&#xff0c;分享如何通过Python来控制程控电源。 一、环境搭建…

Java字符串(String类)

目录 &#x1f6f4;一.认识String类 &#x1f6f4;二.String类的使用 &#x1f384;2.1构造字符串 &#x1f384;2.2字符串长度 &#x1f384;2.3String对象的比较 &#x1f384;2.4字符串查找 &#x1f45c;charAt方法 &#x1f45c;indexOf方法 &#x1f45c;lastI…

浅谈 Class.forName() 的用法

目录 什么是class对象 获得class对象的三种方法 class的作用和方法 Class.forName()用法 什么时候用Class.forName()&#xff1f; newInstance和new关键字的区别 应用问题解析 情景一&#xff1a;载入数据库驱动的时候 情景二&#xff1a;使用AIDL与电话管理Servic进行通…

[Spring Boot 5]安全管理

本文介绍了Spring Security 以及Shiro 在Spring Boot中的使用&#xff0c;对于Spring Security 有基于传统认证方式的Session认证&#xff0c;也有使用OAuth 协议的认证。一般来说&#xff0c;传统的Web架构中&#xff0c;使用Session 认证更加快速&#xff0c;但是&#xff0c…

2. 如何给在 SAP Business Application Studio 里开发的 OData 服务准备测试数据

在开始本步骤的学习之前,请大家务必完成前一步骤1. SAP Business Application Studio 里创建一个基于 CAP 模型的最简单的 OData 服务的学习。换言之,大家已经在 SAP Business Technology Platform 上的 Business Application Studio 里,创建好了 Dev Space,并且拥有一个能…

JVM 别和我说你还不知道这几种垃圾回收器?Serial |Parallel|ParNew|CMS|G1|ZGC

Serial / Serial Old 从单词翻译过来看 serial 串行&#xff0c;每次它就是一款单线程收集器。 Serial 工作在新生代垃圾回收&#xff0c;Serial Old在老年代进行垃圾回收&#xff0c;Serial Old一般作为CMS 并发收集失败后的备选回收方案。 在垃圾收集器面前&#xff0c;它…

《Flowable流程引擎从零到壹》引入日志框架和部署流程定义

14天学习训练营导师课程&#xff1a; 邓澎波《Flowable流程引擎-基础篇【2022版】》 邓澎波《Flowable流程引擎-高级篇【2022版】》 学习笔记《Flowable流程引擎从零到壹》回城传送 ❤️作者主页&#xff1a;小虚竹 ❤️作者简介&#xff1a;大家好,我是小虚竹。Java领域优质创…

目标检测算法——YOLOv5/YOLOv7改进之结合​PP-LCNet(轻量级CPU网络)

>>>深度学习Tricks&#xff0c;第一时间送达<<< 目录 ​PP-LCNet——轻量级且超强悍的CPU级骨干网络&#xff01;&#xff01; &#xff08;一&#xff09;前沿介绍 1.PP-LCNet主要模块 2.相关实验结果 &#xff08;二&#xff09;YOLOv5/YOLOv7改进之结…

GreenPlum6.x之ETL工具

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、ETL是什么&#xff1f;二、数据加载工具GPLoad1.GPLoad安装部署2.编写控制文件test.yml总结前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#…

[Flask]Flask零基础项目---登录demo

借助Flask框架实现模拟用户登录操作&#xff1b; 一步一步的来实现这个登录接口 login.py from flask import Flask, render_template,requestapp Flask(__name__, template_folderlogin)app.route(/) def hello_flask():data request.get_data()print(data)return render_…

黑白图片和黑白图片上色系统毕业设计,AI黑背图像上色系统设计与实现,AI黑白照片上色系统论文毕设作品参考

功能清单 【后台管理员功能】 系统设置&#xff1a;设置网站简介、关于我们、联系我们、加入我们、法律声明 广告管理&#xff1a;设置小程序首页轮播图广告和链接 留言列表&#xff1a;所有用户留言信息列表&#xff0c;支持删除 会员列表&#xff1a;查看所有注册会员信息&a…

电子商务交易系统的设计与实现(javaee+mysql)

目录 1 概论 1 1.1电子商务交易发展 1 1.1.1电子商务交易 1 1.1.2发展前景&#xff1a; 1 2 系统可行性及需求分析 3 2.1 系统调研 3 2.2 系统可行性分析 3 2.2.1技术可行性分析 3 2.2.2 操作可行性分析 3 2.2.3 社会可行性分析 4 2.2.4可行性分析小结 4 2.3 系统需求分析 4 2.…

Windows10添加群晖磁盘映射,总是提示用户名密码不正确解决办法

在使用群晖NAS时&#xff0c;我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过winr键&#xff0c;输入\\NAS的IP地址&#xff0c;登录设备时总是提示”用户名或密码不正确”。但是实际密码是正确的。 原因描述&#xff1a;Windows 10&#xff08;或更早版本&a…

Android如何自定义服务器DynamicMockServer的使用

在平时开发时经常需要与服务器进行联调&#xff0c;但是服务器开发往往比前端的要滞后。这时候需要我们自己去mock数据来调通流程。 今天给大家介绍一款Android上的MockServer----DynamicMockServer&#xff0c;支持接口调用&#xff0c;静态文件。 DynamicMockServer&#x…