目录

1. 多重线性回归

1.1 多元线性回归

1.2 向量化(矢量化)

1.3 多元线性回归的梯度下降算法

1.4 正规方程

2. 特征缩放

2.1 特征缩放

2.2 检查梯度下降是否收敛

2.3 学习率的选择

2.4 特征工程

2.5 多项式回归

3. 逻辑回归

3.1 Motivations

3.2 逻辑回归

3.3 决策边界

3.4 逻辑回归的代价函数

4. 梯度下降的实现

5. 过拟合

5.1 过拟合问题

5.2 解决过拟合问题

5.3 正则化代价函数

5.4 正则化线性回归

5.5 正则化逻辑回归


本次学习笔记基于吴恩达机器学习视频。

1. 多重线性回归

1.1 多元线性回归

矢量:

多元线性回归:具有多个特征的线性回归。

矢量化可以实现多元线性回归。

1.2 向量化(矢量化)

(1)向量化:

向量化优点:使得代码更加简洁;代码运行速度更快,如下图:

(2)向量化运行更快的原因

For循环与向量化的对比,如下图:

For循环是一步一步进行加法计算的。

向量化可以获取全部数据进行计算后,再用固定的硬件将全部相加起来。

例子:向量化如何帮助实现多元线性回归

向量化可以看成有16个数组,同时进行计算。

1.3 多元线性回归的梯度下降算法

可以用向量化来实现多元线性回归的梯度下降,如下图:

当多个特征时,梯度下降与只有一个特征时会稍有不同,如下图所示:

右边就是多元梯度下降算法。

1.4 正规方程

正规方程:寻找线性回归的w和b的替代方法的简短旁注。(仅适合线性回归,不需要迭代的梯度下降算法)

缺点:不能推广到其他学习算法;特征数量n很大时,正规方程也相当慢。

2. 特征缩放

2.1 特征缩放

(1)特征缩放:使梯度下降更快。

当一个特征的取值范围很大时,一个好的模型更可能会选择一个相对较小的参数值。

当一个特征的取值范围比较小时,一个好的模型更可能会选择一个相对较大的参数值。

当你有不同特征取值范围差异很大时,可能导致梯度下降运行缓慢。可以重新缩放不同的特征,使他们都在相似的范围内取值,可以加快梯度下降的速度。

(2)如何实现特征缩放以处理取值范围非常不同的特征,并且将他们缩放到具有可比的取值范围?

①都除以最大值

②均值归一化(将所有数据都集中在0附近)。

找到训练集上x1的均值,所有数减去均值,再除以差值。

找到训练集上x2的均值,所有数减去均值,再除以差值。

③z-score归一化(计算每个特征的均值和标准差)

每个x1减去均值再除以标准差。

每个x2减去均值再除以标准差。

(3)特征的取值:

2.2 检查梯度下降是否收敛

(1)学习曲线

如果梯度下降正常工作,那么代价j应该在每次迭代后都减少。

如果j在一次迭代增加,那么意味着要么是a选择不当(a太大)或者代码中有错误。

当迭代到达300次时,代价j开始趋于平稳,不再有太大下降。到达400次时,梯度下降差不多已经收敛。

(2)检查梯度下降是否收敛的方法

①观察学习曲线,可以检查梯度下降是否收敛。

梯度下降收敛所需的迭代次数在不同的情况下可能会有很大的差异。

②使用自动收敛测试

设置一个变量epsilon,表示一个小数。如果在一次迭代中,代价j的减少量小于这个epsilon,则很可能看到学习曲线的平坦部分,可以宣布收敛。

但是找到epsilon很困难,所以推荐查看学习曲率来检查梯度下降是否收敛。

2.3 学习率的选择

出现上图的原因是可能代码出现错误或者学习率太大。

上图是因为学习率太大导致的,可以减少学习率。(或者代码的错误)

当学习率太大时,可能会出现上面左图无法收敛的情况,可以减少学习率。

如果把学习率设置成一个很小很小的数值,但是学习曲线还是会出现上升的情况,表示代码出现了错误。

但是学习率太小时,需要很多次迭代才可以达到收敛。

选择学习率的技巧:

先选择一个很小很小的数值,然后每一次扩大3倍,继续尝试,直到找到最合适的学习率可以使得学习曲线下降的比较快且平稳。

2.4 特征工程

使得多元线性回归更加强大-->选择自定义的特征

如何选择或设计最合适的特征用于学习:可以利用对问题的知识或者直觉来设计新特征,通常通过转化或组合问题的原始特征,以便让学习算法更容易做出预测。

2.5 多项式回归

多项式回归可以拟合曲线,是将特征x提升到任何平方或者开根号。这样的话更需要注意特征缩放。

3. 逻辑回归

3.1 Motivations

二元分类:结果只有两个可能的分类/类别

如何构建分类算法:可以看决策边界(如下图的垂直线)

3.2 逻辑回归

逻辑回归:用于分类(用于解决输出标签y为0或1的二元分类问题)

Sigmoid函数:

f的结果表示等于1的概率。

3.3 决策边界

f>=0.5时(z>=0时/wx+b>=0时),y=1;

f<0.5时(z<0时/wx+b<0时),y=0;

决策边界:z=wx+b=0

例子:决策边界为直线时

例子:决策边界为曲线时

3.4 逻辑回归的代价函数

为什么平方误差成本函数不是逻辑回归的理想成本函数?

因为梯度下降时会遇到很多局部最小值,如下图:

损失函数:

①Y=1时,预测值接近1时,损失最小,如下图:

②Y=0时,预测值接近0时,损失最小,如下图:

损失函数的简化版公式如下:

训练逻辑回归的代价函数如下:

4. 梯度下降的实现

如何找到一个合适的w和b?

把右侧带入左侧,得到下面:

上面与线性回归的区别:函数f(x)的定义已经改变了,如下图:

5. 过拟合

5.1 过拟合问题

泛化:对于全新的例子也能做出良好的预测。

下面是没有过拟合也没有欠拟合的情况:

过拟合/算法有高方差:模型太复杂,导致在训练集上表现很好,但在测试集上泛化能力差。如下图情况:

欠拟合:模型太过简单,无法很好拟合训练数据。如下图情况:

5.2 解决过拟合问题

(1)收集足够多的训练数据,可以保证尽管是过拟合的模型,也可以表现很好。

(2)减少多项式的特征:进行特征选择(选择最重要的几个特征集)

(3)正则化:更温和的减少某些特征影响的方法,而不需要去除他们。(将特征的参数大小减小)

一般只正则化w1~wn,而不正则化b。

5.3 正则化代价函数

当特征的参数较小时,模型比较简单,不容易产生过拟合的情况。

当不知道哪些参数是重要的时候,就惩罚所有特征参数;

如果正则率()=0,则表示没有正则化

如果正则率特别大,f(x)约等于b;学习算法会拟合出一条水平直线,并出现欠拟合。

5.4 正则化线性回归

带入后如下:

注意:只正则化w,不正则化b。

5.5 正则化逻辑回归

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编程思想:程序自身的模型/函数模型硬件标准如何实现

前言前面提到过写程序的过程:根据各种需求,构建程序模型(逻辑模型),再用代码实现.本贴关于程序自身的模型以及函数模型,以及推导硬件标准从逻辑到代码的思路.程序自身的模型如图应用APP接受输入---鼠标动作,键盘输入的字符等,得到结果---画面,显示数据等.工具包括框架和编程语言…

基于JAVA Spring Boot物理实验考核系统设计与实现 (文档+源码)

目录 一.研究目的 二.需求分析 三.数据库设计 四.系统页面展示 五.源码获取方式 一.研究目的 信息数据的处理完全依赖人工进行操作&#xff0c;会耗费大量的人工成本&#xff0c;特别是面对大量的数据信息时&#xff0c;传统人工操作不仅不能对数据的出错率进行保证&…

【国内电子数据取证厂商龙信科技】安卓镜像提取与解析

前言随着智能手机更新迭代越来越快&#xff0c;手机厂家对手机系统安全性要求也越来越严格。系统安全性提高对公民的隐私是一件好事&#xff0c;但是对于取证行业确实一个大难题&#xff0c;手机系统安全性的提高意味着我们能对犯罪嫌疑人手机的提取数据和恢复数据越来越少&…

Java+Ollama 本地部署 DeepSeek-R1 对话机器人:从 0 到 1 实战指南

作为 Java 开发者&#xff0c;想在本地搭建一个能理解代码、支持多轮对话的 AI 机器人&#xff1f;DeepSeek-R1 这款开源大模型绝对值得一试。今天就带大家用 OllamaJava 实现本地化部署&#xff0c;全程实操&#xff0c;新手也能跟着做&#xff01; 一、先搞懂&#xff1a;为…

Java Web项目Dump文件分析指南

目录 1. Dump文件的类型与作用 2. 生成Dump文件的方法 3. 分析Dump文件的工具 4. 分析步骤与常见问题解决 5. 最佳实践与预防 在Java Web项目中&#xff0c;dump文件是JVM&#xff08;Java虚拟机&#xff09;在发生崩溃、内存溢出或特定事件时生成的内存快照文件&#xff0…

Ubuntu网卡驱动无效,不能连接wifi上网

一、现象及临时网络准备 我的另一篇博客详细介绍了前期准备工作&#xff1a; 知乎&#xff1a;Ubuntu网卡驱动无效&#xff0c;不能连接wifi上网知乎&#xff1a;Ubuntu网卡驱动无效&#xff0c;不能连接wifi上网 在此基础上&#xff0c;还得给Ubuntu配好镜像源&#xff0c;…

LeetCode Hot 100 二叉搜索树中第 K 小的元素

给定一个二叉搜索树的根节点 root &#xff0c;和一个整数 k &#xff0c;请你设计一个算法查找其中第 k 小的元素&#xff08;从 1 开始计数&#xff09;。示例 1&#xff1a;输入&#xff1a;root [3,1,4,null,2], k 1 输出&#xff1a;1示例 2&#xff1a;输入&#xff1a…

5-大语言模型—理论基础:注意力机制优化

目录 1、稀疏注意力机制&#xff08;Sparse Attention&#xff09; 1.1、核心问题&#xff1a;传统注意力的 “效率瓶颈” 1.2、具体稀疏策略&#xff08;详细计算逻辑&#xff09; 1.2.1、局部窗口稀疏&#xff08;Local Window Sparse&#xff09; 1.2.2、基于内容的稀疏…

轻松学习C++:基本语法解析

基本语法解析引言基本语法变量和数据类型运算符控制结构函数示例代码&#xff1a;计算圆的面积引言 C是一种功能强大的通用编程语言&#xff0c;由Bjarne Stroustrup于1979年创建。它在C语言的基础上进行了扩展&#xff0c;支持面向对象编程、泛型编程和过程式编程。C以其高性…

Python Pandas读取Excel表格中数据并根据时间字段筛选数据

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录Python Pandas读取Excel表格中数据并根据时间…

CS231n-2017 Lecture3线性分类器、最优化笔记

图片向量与标签得分向量&#xff1a;上节讲到&#xff0c;图片可以被展开成一个向量&#xff0c;对于这个向量&#xff0c;假设它有D维&#xff0c;那么它就是D维空间的一个点&#xff0c;又假设我们的标签集合总共有K种&#xff0c;我们可以定义一个K维标签得分向量&#xff0…

windows wsl ubuntu 如何安装 open-jdk8

安装步骤 jdk dhd:~$ java -version Command java not found, but can be installed with: sudo apt install openjdk-11-jre-headless # version 11.0.20.11-0ubuntu1~22.04, or sudo apt install default-jre # version 2:1.11-72build2 sudo apt install op…

Javascript进程和线程通信

JavaScript 中的进程通信&#xff08;IPC&#xff09;和线程通信是实现高性能、高并发应用的核心技术&#xff0c;尤其在处理 CPU 密集型任务或跨环境数据交互时至关重要。以下从底层机制到应用场景的详解&#xff1a;&#x1f9e9; ​​一、进程通信&#xff08;Inter-Process…

堆堆堆,咕咕咕

1.找TopK问题要找到最前面的k个元素void swap(int *a,int *b) {int temp*a;*a*b;*btemp; } //向下调整最小堆 void minheapify(int arr[],int n,int index) {int left2*index1;int right2*index2;int smallestindex;if(left<n&&arr[left]<arr[smallest]) smalles…

n8n教程分享,从Github读取.md文档内容

从上一篇我们了解到了如何安装 n8n 那么这节课我们尝试从github的个人仓库获取某个文件的内容 目标如下 content/business/1.how-to-use-money.mdx 总流程图 流程详解 第1步&#xff1a;申请 GitHub Personal Access Token (Classic) 在gitrhub 个人 设置选项 申请 GitHub P…

分布式ID与幂等性面试题整理

分布式ID与幂等性面试题整理 文章目录分布式ID与幂等性面试题整理一、分布式ID1. 为什么需要分布式ID&#xff1f;2. 分布式ID的核心要求3. 常见分布式ID方案(1) UUID(2) 数据库自增(3) Redis自增(4) 雪花算法(Snowflake)(5) 美团Leaf/百度UidGenerator4. 雪花算法详解二、幂等…

node.js学习笔记1

目录 Node.js是什么 Node.js下载与安装 Buffer缓冲区 一些计算机硬件基础 程序运行的基本流程 Node.js是什么 node.js是一个JavaScript运行环境&#xff0c;或者说&#xff0c;node.js是一个可以运行JavaScript的软件。 可以用于开发服务端、桌面端、工具类应用。 服务器…

游戏开发日志

我来为您逐行详细讲解这个 ViewMgr.cs 文件。这是一个Unity游戏中的视野管理系统&#xff0c;用于优化游戏性能。## 文件结构概览这个文件主要包含以下几个部分&#xff1a; 1. 数据结构和接口定义 2. 视野管理器 ViewMgr 类 3. 工具类 ViewTools让我逐行为您讲解&#xff1a;#…

使用 PlanetScope 卫星图像绘制水质参数:以莫干湖为例

1.数据采集 我使用ArcGIS Pro 中的Planet Imagery插件下载了 2023 年 6 月 25 日的安卡拉莫干湖卫星图像。 图 1&#xff1a;使用 Planet 插件下载卫星图像 图 2&#xff1a;下载图像的日期和传感器选择 我查阅的研究中指出&#xff0c;使用无降水时期的卫星图像对于水质测定…

Docker部署前后端分离项目——多项目共享环境部署

目录 一、简介 二、文件目录结构 三、前端部署流程&#xff08;多nginx&#xff09; 3.1 前端打包 3.2 编写部署文件——项目1&#xff08;consult-system&#xff09; 3.3 编写部署文件——项目2&#xff08;person-system&#xff09; 3.4 前端部署至linux服务器 3.5…