【吴恩达机器学习笔记】二、单变量线性回归

news2025/8/12 3:56:28

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

二、单变量线性回归

常用表达符号:

在这里插入图片描述

假设函数(Hypthesis)

在这里插入图片描述

假设函数通过找到最优的两个参数,从而去获得一个与数据最佳拟合曲线。

1. 代价函数

  • 定义:通过**代价函数(cost function)**得到的值,来获得最优解,值越小代表准确度越高。
  • 所以我们要通过找到代价函数的最小值,从而得到其对应的参数值,然后得到最佳拟合曲线。

平方误差代价函数(The squared error dost function)

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

其中在算式前面除以二是方便后续的求导计算,此函数可以解决大部分的回归问题。

这就是我们的线性回归模型。

而我们可以通过简化假设函数,从而去更好理解代价函数背后的含义。

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

其代价函数图像如下:

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

上面我们可以知道当参数等于1时,代价函数的值最小,所以将参数带回假设函数的方程中,我们就可以得到一条与数据能够最佳拟合的曲线。如果参数更多的话,就会更加复杂,下面是两个参数的三维图像:

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

小结

因此,对于回归问题,我们只用归结为求出代价函数的最小值即可,下面就是我线性回归的目标函数。

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

2. 梯度下降

  • 定义:我们会得到初始化的参数,然后通过改变参数不断地去寻找更小的J值。

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

  • 注意
    • 梯度下降的其中一个特点为,你可能会因为初始位置的偏差而得到两个不同的局部最优解,就如下图

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

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

梯度下降算法(Gradient Descent Algorithm)

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

赋值与等号

  • :=在计算机中代表赋值,即将b赋值给a
  • =在计算机中代表真假判定,即判断a是否等于b

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

算式中α用来控制下降的速率,值越大则梯度下降的越快,但是α的值不能太大或太小,原因如下:

  • 如果α太小,则需要很多很多步才能到达最低点。
  • 如果α太大,可能会导致无法收敛甚至发散,它可能会越过最低点。

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

在梯度下降算法中,参数要同时更新,即下图图左侧为正确操作,右侧为不正确操作。

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

在算式最右边的那一块导数部分是J函数对参数求偏导即为切线斜率,详解如下:

  • 如果所选参数在J函数曲线中切线斜率为正,那么导数块部分也为正,即参数会减去一个正值,从图像上来看,参数减小的方向往左即是往曲线最低点方向进行。
  • 如果所选参数在J函数曲线中切线斜率为负,那么导数块部分也为负,即参数会减去一个负值,也就是加上一个正值,从图像上来看,参数增大的方向往右即也是往曲线最低点方向进行。

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

所以通过图像可知,当运算已经达到了局部最低点,切线斜率为零,参数也不会再改变了,如下图:

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

小结

综上所述,当α处于正常范围内并且不变的话,函数任然可以找到局部最低点,因为越靠近最低点,切线斜率会越小直至等于零,所以它减小的幅度会越来越小,直至到达局部最低点。

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

3. 线性回归的梯度下降

  • 当学习完线性回归模型(下图右侧)与梯度下降算法(下图左侧)后,就是要解决两者结合的问题

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

现在我们将线性回归模型带入梯度下降算法中计算,首先来计算导数这一部分,求出我们参数的导数部分表达式。

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

最后,带回到参数的正式表达式,就如下所示:

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

在梯度下降函数中,我们可能会因为初始值不同得到不同的局部最优值,但是在线性回归的代价函数中,总会得到一个最小并且唯一的最小值,即会得到一个凸函数(convex function),如下图所示:

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

所以只要用线性回归函数的梯度下降,最终总会得到一个全局的最优解,他没有其他的局部最优解。

而这个梯度下降问题就如下图所示,不断地改变参数值,从而找到最好拟合数据的曲线。

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

小结

总的来说,我们上面所用到的算法如下:

Batch 梯度下降法

意思是在每一步梯度下降时,它都会遍历了整个训练集的样本。

这是目前来说,我们第一个所学习的机器算法。

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

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

相关文章

OpenGL原理与实践——核心模式(三):Texture-纹理系统理论与应用

目录 初识——纹理系统是什么?怎么用? Texture —— UV坐标系统 Texture Wrapping:UV超过了[0,1]怎么办? Texture Filter:UV经过计算得到的是浮点数怎么办? 在OpenGL中该怎么做呢? Texture Unit——…

列表和标签企业报告版的完整报告解决方案

列表和标签企业报告版的完整报告解决方案 无缝集成到所有主要开发环境和编程语言:Visual Studio、.NET/。NET核心(C#、VB.NET)、C/C、Delphi/VCL、Java、Progress、DataFlex、dBASE PLUS、Xbase等。 通过现代数据绑定灵活连接到任何数据源:List&Labe…

自适应点云配准(RANSAC、ICP)

点云配准 实验目标 任务一:将两个形状、大小相同的点云进行配准,进而估计两个点云之间的位姿。 任务二:将一些列深度图反向投影得到点云,经过配准后,得到每个深度图之间的位姿变换,并将相应的点云融合到一…

【云原生】Docker镜像的创建,Dockerfile

内容预知 1.Dokcer镜像的创建 1.1 基于现有镜像创建 1.2 基于本地模板创建 1.3 基于Dockerfile 创建 联合文件系统(UnionFS ) 镜像加载原理 容器中操作系统容量小的原因 Docker镜像结构的分层 Dockefile的引入 2. Dockerfile 操作命令的指令 2.1 FROM 镜像 2.2 MA…

股票接口实时交易数据怎么查询?

股票数据接口作为软件应用而言,很多资源和数据是由自身提供的,像其他一些功能还是需要调用第三方提供的服务,这其中就涉及到股票数据接口api的调用功能,通过api来获取实时交易数据查询更方便,因此,如果交易…

【学习笔记17】JavaScript作用域

笔记首发 一、作用域 😴我们学变量,不是在任何地方都可以使用😴变量有一个使用区间, 这个可以使用的区间就叫做作用域 1、全局作用域 😫 script标签内部声明的变量,就是全局作用域的变量😏在全局作用域声明…

计算机网络的定义和分类

计算机网络早期定义:自治互联的计算机集合 计算机网络系统的基本组成为:通信子网资源子网 计算机网络分类: 公用网通常是由电信公司出资建造的大型网络。 专用网通常是由某个部门为满足本单位特殊业务的需要建造的网络&#xff…

基于springboot+jpa+camunda实现简单的请假审批流程

整个camunda的绘图、具体使用,参照上一篇文章Camunda工作流引擎简记。 源码地址,相关技术储备如下 springboot–v2.5.4jpa–v2.5.4postgresql–v11camunda–v7.16.0 整个过程不需要建表,这就是JPA面向对象编程的好处,这也是我认…

33 - C++中的字符串类

---- 整理自狄泰软件唐佐林老师课程 1. 历史遗留问题 C语言 不支持真正意义上的字符串 C语言用 字符数组 和 一组函数 实现字符串操作 C语言 不支持自定义类型,因此无法获得字符串类型 解决方案 从C到C的进化过程 引入了 自定义类型在C中可以通过类完成字符串类型…

iOS上架app store详细教材

1、安装iOS上架辅助软件Appuploader 2、申请iOS发布证书(p12) 3、申请iOS发布描述文件(mobileprovision) 4、打包ipa 5、上传ipa到iTunes Conn 1、安装iOS上架辅助软件Appuploader2、申请iOS发布证书(p12)…

ImmunoChemistry艾美捷牛膜联蛋白V-荧光素凋亡检测试剂盒方案

ImmunoChemistry艾美捷牛膜联蛋白V-荧光素细胞凋亡检测试剂盒提供了一种经验证的方法,可使用重组荧光素结合的牛膜连蛋白V和碘化丙啶(PI)快速、轻松地区分两个死亡细胞群和活细胞群。这些细胞将被膜联蛋白V-荧光素(绿色荧光&#…

docker容器持久化

第六章容器持久化 容器数据卷 什么是容器数据卷? 容器之间可以有一个数据共享技术!docker容器中产生的数据,同步到本地! 这就是卷技术!目录的挂载,将我们容器内的目录,挂在到linux上面&#x…

线性时间选择(Top K)问题(Java)

线性时间选择(Top K)问题(Java) 文章目录线性时间选择(Top K)问题(Java)1、前置介绍2、分治法求解3、代码实现4、复杂度分析5、扩展6、参考资料1、前置介绍 定义 选择问题&#xff0…

docker可视化与制作和提交自己的镜像

第四章docker可视化 portainer docker的图形化管理工具!提供一个后台面板供我们操作! docker run -d -p 8080:9000 \--restartalways -v /var/run/docker.sock:/var/run/docker.sock --privilegedtrue portainer/portainer 访问测试:外网…

Python_数据容器_元组tuple

一、元组tuple定义 为什么需要元组 列表是可以修改的,如果想要传递的信息不被篡改,列表就不适合了 元组和列表一样,都是可以封装多个不同类型的元素在内 最大的不同点在于: 元祖一旦定义完成,就不可修改 所以&am…

SpringBoot中使用JDBC

JDBC基础使用&#xff1a; JDBC基础使用_做测试的喵酱的博客-CSDN博客 一、SpringBoot使用JDBC&#xff0c;依赖 依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId&…

linux zookeeper kafka_2.12-2.2.0 集群

文章目录一、zookeeper服务搭建1. 下载2. 解压3. 创建目录4. 调整配置5. 配置myid6. 开放防火墙7.启动验证zk二、kafka集群搭建2.1. 下载软件2.2. 解压2.3. 配置2.5. 启动kafka三、测试验证3.1. 创建一个主题3.2. 发送消息3.3. 消费消息预先准备&#xff1a;上传软件至服务器19…

使用Avalonia跨Linux平台

Avalonia&#xff0c;读&#xff1a;阿瓦隆尼亚 这里的跨平台指的是&#xff0c;使用c#语言开发跨Linux平台。c#在Windows桌面开发中很强&#xff0c;但是在Linux桌面中&#xff0c;不能跨平台&#xff0c;Qt可以在Linux中跨平台&#xff0c;但是那是另外一门语言了。Avalonia…

计算机组成原理4小时速成:计算机运算方法,无符号数和有符号数,定点数和浮点数,移位运算,加减运算,乘法运算,原码,反码,补码

计算机组成原理4小时速成&#xff1a;计算机运算方法&#xff0c;无符号数和有符号数&#xff0c;定点数和浮点数&#xff0c;移位运算&#xff0c;加减运算&#xff0c;乘法运算&#xff0c;原码&#xff0c;反码&#xff0c;补码 2022找工作是学历、能力和运气的超强结合体&…

[激光原理与应用-16]:《激光原理与技术》-2- 光的本质(粒子、波动说、电磁波、量子)

目录 前言&#xff1a;“光” 一、光的微粒说 - 牛顿 二、光的波动说 - 托马斯杨 惠更斯 三、光是电磁波 - 麦克斯韦 四、光的波动说受到的挑战&#xff0c;光的波动说重新唤醒 五、光量子假说 - 爱因斯坦 六、光的理论综合 七、光的重要特性 7.1 光的相干性 7.2 相…