吴恩达机器学习课程笔记:多元梯度下降法

news2024/11/18 2:49:11

1.吴恩达机器学习课程笔记:多元梯度下降法

笔记来源:吴恩达机器学习课程笔记:多元梯度下降法

仅作为个人学习笔记,若各位大佬发现错误请指正

1.1 多元特征(变量)


每一列代表一个特征,例如:房屋大小、卧室数量、楼层数、房屋年龄, n n n代表特征数量
每一行代表一个样本,例如:第二个样本 x ( 2 ) = [ 1416 , 3 , 2 , 40 ] T x^{(2)}=[1416,3,2,40]^T x(2)=[1416,3,2,40]T,第 i i i个训练样本 x ( i ) x^{(i)} x(i) m m m代表样本容量
x j ( i ) x^{(i)}_j xj(i)代表第 i i i个样本中的第 j j j个特征

1.2 多元特征的假设函数


为了方便形式简洁,我们把假设函数写为向量内积形式,这样也方便我们直接使用线性代数的函数库

1.3 多元梯度下降法


左侧当特征个数为1时的梯度下降法,右侧当特征个数大于等于1时的梯度下降法

1.4 特征缩放:归一化

笔记来源:多元梯度下降法演练.I.–.特征缩放

因特征的不同,特征的值的范围也不同,这会导致梯度下降会非常缓慢,我们对特征进行处理,将所有特征都归一化处理,将特征的值都处理到同一个较小范围内,这样在进行梯度下降就会比处理前会快速很多

左侧是未对特征进行处理的情况,这种情况等高线整体上会比较细长,梯度下降时较缓慢
右侧是对特征进行缩放的情况,这种情况等高线整体上会比较圆润,梯度下降时较快速

缩放的范围可以大致定为 [ − 1 , 1 ] [-1,1] [1,1]也可以根据具体情况自行决定

1.5 特征缩放:均值归一化

另一种特征缩放的方法:均值归一化(这种方法类似于将随机变量标准化的过程)

可以先行计算出每个特征的均值 μ i \mu_i μi,和特征的值的范围 S i S_i Si(最大值-最小值)
x i = x i − μ i S i x_i=\frac{x_i-\mu_i}{S_i} xi=Sixiμi
根据上式对每一个特征中的每一个值进行均值归一化处理

1.6 学习率大小对多元梯度下降的影响

笔记来源:多元梯度下降法II.–.学习率

通过迭代步数–代价函数值函数图像,我们可以判断梯度下降是否最终收敛了,理想情况是随着迭代步数的增大,代价函数值随之下降,在自动收敛检测中,我们大致认为当代价函数值小于等于 1 0 − 3 10^{-3} 103时,梯度下降就达到了收敛。一般选择一个合适的阈值还是很困难的,为了检查梯度下降算法是否收敛,通常情况下我们可以直接看下面这种图像,而不去进行自动收敛检测。

学习率太小,则收敛速度较慢
学习率太大,则可能不是每次迭代代价都会下降,也可能不会收敛

学习率我们可以选取
0.0001 , 0.001 , 0.01 , 0.1 0.0001,0.001,0.01,0.1 0.00010.0010.010.1 每次扩大10倍来观察效果
也可取 0.0003 , 0.003 , 0.03 , 0.3 0.0003,0.003,0.03,0.3 0.00030.0030.030.3

1.7 多项式回归

笔记来源:特征和多项式回归

有时可以通过原有特征来定义新特征的方法来获得较好或教简单的模型,也可以只选其中一些特征,所以说其实并不是所有特征都要采用,我们可以只采用其中一些特征,之后我们会学习到一些算法,它们会自动选择使用什么特征

我们最终目的是通过这些已有特征来预测房价,我们可以根据生活中关于房价的经验来选择较为合适的模型,比如:起初我们选择了二次函数作为模型,但我们知道二次函数是凹或凸的,房子越大,房价理应越高,不会呈现出类似二次函数的形状,这里我们就应该做出调整,选用三次函数作为模型,当然也可以选用其他合适模型,诸如此类。之后我们会学习到一些算法,它们会根据已有数据选择较为合适的模型。

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

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

相关文章

【Github CLI】Take GitHub to the command line

目录儿~一、Git、Github、GitLab二、Github CLI——gh2.1 gh简介2.2 gh的使用2.21 Github身份验证(必选)2.22 常用命令(1)在Github仓库中打开当前项目(2)gh配置 gh config(3)克隆仓库…

(16)go-micro微服务jaeger链路追踪

文章目录一 jaeger链路追踪介绍什么是链路追踪:链路追踪主要功能:二 jaeger链路追踪作用三 jaeger链路追踪主要特性四 jaeger链路追踪原理图1.链路调用原理2. 一次调用链分析3.链路追踪存储与调用五 jaeger链路追踪五个重要组件六 jaeger链路追踪安装1.d…

Junit框架

JUnit 是一个 Java 编程语言的单元测试框架。环境配置创建maven项目&#xff0c;导入Junit配置<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api --> <dependency><groupId>org.junit.jupiter</groupId><artifactId&g…

Linux常用命令——tail命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) tail 在屏幕上显示指定文件的末尾若干行 补充说明 tail命令用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个&#xff0c;则在显示的每个文件前面加一个文件名…

【docker概念和实践 4】 常见命令和案例(1)

一、说明 本篇讲述当Docker安装完成后&#xff0c;进行的由浅入深的操作过程。命令种类有&#xff1a;1 进程引擎进程命令 2帮助命令 3 镜像命令 4 容器命令 5 仓库命令。 二、关于操作引擎的指令 本节讲操作引擎的启动、关闭、维护等。以下两种形势都是等价的命令格式。 方法…

Java概览——Java运行机制

Java概览—Java运行机制Java的运行过程 Java程序运行时&#xff0c;必须经过编译和运行两个步骤。首先将后缀名为.java的源文件进行编译&#xff0c;最终生成后缀名为.class的字节码文件&#xff0c;然后Java虚拟机&#xff0c;将字节码文件进行解释执行&#xff0c;并将结果显…

Docker学习笔记【part1】概念与安装

一、Docker的概念 Docker 是实现系统平滑移植、容器虚拟化的技术&#xff0c;基于 Go语言&#xff0c;可以实现软件带环境安装&#xff0c;做到“一次镜像&#xff0c;处处运行”。Docker 是一个 C/S 模式的架构&#xff0c;后端是一个松耦合架构&#xff0c;众多模块各司其职…

九龙证券|次新股叠加智慧交通+信创+数字经济概念,开盘冲涨停!

核算机板块1月以来跑赢上证指数&#xff1b;才智交通、成绩高增及严重财物重组个股登上涨停榜。 证券时报•数据宝核算&#xff0c;1月19日&#xff0c;沪深两市收盘涨停股35只&#xff0c;其中ST股6只。群众交通、长久科技两股一字板强势涨停&#xff0c;潞安环能、跃岭股份收…

【MySQL】第五部分 多表查询

【MySQL】第五部分 多表查询 文章目录【MySQL】第五部分 多表查询5. 多表查询5.1 等值连接5.2 非等值连接5.3 自连接5.4 内连接5.5 外连接5.6 满外连接5.7 SQL99语法实现多表查询5.7.1 JOIN...ON语法5.7.2 使用SQL99语法实现内连接5.7.3 使用SQL99语法实现左外连接和右外连接5.…

postman入门

目录 新建界面 菜单区 百度翻译api实战 post 参数化 新建界面 1&#xff09;可以新建请求&#xff0c;&#xff08;rqueset&#xff09;模拟客户端的请求&#xff0c; 2&#xff09;可以创建测试集合&#xff08;collection&#xff09;&#xff0c;对接口请求进行统一管理…

删除排序链表中的重复元素

删除排序链表中的重复元素 题目描述 原始题目参考&#xff1a;删除有序链表的重复元素 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1…

java spring IOC Bean管理操作(xml P名称空间注入)

首先 我们来写一个基本的 通过xml的set属性注入 首先创建一个项目 然后引入 spring 最基本的几个依赖包 src下 下有一个 gettingStarted 包 下面有一个 user类 代码如下 package gettingStarted;public class user {public String name;public int age;public void setName(S…

leetcode 1817. 查找用户活跃分钟数【python3,哈希表的实现思路详解】

题目 给你用户在 LeetCode 的操作日志&#xff0c;和一个整数k。日志用一个二维整数数组logs表示&#xff0c;其中每个logs[i] [IDi, timei]表示ID为IDi的用户在timei分钟时执行了某个操作。 多个用户可以同时执行操作&#xff0c;单个用户可以在同一分钟内执行多个操作。指定…

Deno不只是个Javascript运行时

Deno 是一个安全的 JavaScript 和 TypeScript 运行时&#xff0c;作者是 Ryan Dahl&#xff08;也是 Node.js 的原作者&#xff09;。Deno 的诞生之初是为了解决 2009 年首次设计 Node.js 时的一些疏忽。我认为这种改造动机很有道理&#xff0c;因为我相信每个程序员都希望有机…

cmake跨平台构建工具

TOP目录 前言 CMake是一个跨平台的安装编译工具&#xff0c;可以用简单的语句来描述所有平台的安装(编译过程)。CMake可以说已经成为大部分C开源项目标配 因此&#xff0c;作为一名C C发开人员&#xff0c;看到cmake不应该一脸茫然… 作为初学者&#xff0c;通俗的认为cmake…

C语言入门(七)——结构体

复合类型与结构体 数据抽象 数据类型标志 嵌套结构体 复合类型与结构体 在编程语言中&#xff0c;最基本的&#xff0c;不可再分的数据类型称为基本类型&#xff0c;例如整型&#xff0c;浮点型;根据语法规则由基本类型组合而成的类型称为复合类型&#xff0c;例如字符串是…

系统性能优化、性能指标、性能测试

系统性能是互联网应用最核心的非功能性架构目标&#xff0c;系统因为高并发访问引起的首要问题就是性能问题&#xff1a;高并发访问的情况下&#xff0c;系统因为资源不足&#xff0c;处理每个请求的时间就会变慢&#xff0c;看起来就是性能变差。 因此&#xff0c;性能优化是…

1596_AURIX_TC275_LMU简介

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 这个章节其实没有多少页文档&#xff0c;而大部分的文档其实是寄存器的字段描述。因此&#xff0c;这次一次性把这个文档的内容大概看完。 LMU提供了32K的本地通用RAM。ED存储的访问也是通…

Mybatis 框架开发的准备

从百度中“mybatis download”可以下载最新的 Mybatis 开发包。进入选择语言的界面&#xff0c;进入中文版本的开发文档。下载相关的 jar 包或 maven 开发的坐标。下载的 zip 文件如下&#xff08;我们的资料文件夹&#xff09;&#xff1a;我们所使用的 Mybatis 版本是 3.2.7 …

我在CSDN的2022:突破零粉丝,4个月涨粉4000+,2023年目标5万+

文章目录前言我为什么又回来写博客&#xff1f;初写文章碰壁1024活动第一次上热榜关于上热榜博客之星2023年目标最后前言 今年最自豪的事&#xff0c;我用业余时间&#xff0c;在CSDN上坚持创作了4个月&#xff0c;产出了20多篇博客&#xff0c;其中7篇文章上了全站热榜&#…