机器学习-3降低损失(Reducing Loss)
机器学习-3降低损失(Reducing Loss)
学习内容来自:谷歌ai学习
https://developers.google.cn/machine-learning/crash-course/framing/check-your-understanding?hl=zh-cn
本文作为学习记录
1.降低损失:迭代方法
迭代学习
下图展示了机器学习算法用于训练模型的迭代试错过程:
迭代策略在机器学习中很常见,主要是因为它们可以很好地扩展到大型数据集。
“模型”将一个或多个特征作为输入,并返回一项预测作为输出。为简单起见,假设一个模型接受一个特征 ( X1) 并返回一个预测 (y’):
y’ = b + w 1 w_{1} w1 x 1 x_{1} x1**
最后,我们已经到达图中的“计算参数更新”部分。机器学习系统会在这里检查损失函数的值,并为b 和 w1生成新值。现在,我们先假设这个神秘的框会产生新值,然后机器学习系统会根据所有标签重新评估所有特征,为损失函数生成一个新值,而该值又产生新的参数值。学习过程会持续迭代,直到该算法发现损失可能最低的模型参数。通常,您可以反复迭代,直到整体损失不再发生变化或变化速度至少变化得非常缓慢。这时候,我们可以说该模型已收敛。
训练机器学习模型时,首先对权重和偏差进行初始猜测,然后以迭代方式调整这些猜测,直到学习出损失可能最低的权重和偏差。 |
2. 降低损失:梯度下降法 Gradient Descent
迭代方法图包含一个标题为“计算参数更新”的华而不实的绿色方框。我们现在要用更实质的方法代替这种精明的算法。
理解梯度下降就好比在山顶以最快速度下山:好比道士下山,如何在一座山顶上,找到最短的路径下山,并且确定最短路径的方向
假设我们有时间和计算资源来计算w1的所有可能值的损失。对于我们一直在研究的那类回归问题,产生的损失与w1的图表始终是凸形。换句话说,图表将始终是碗状图,如下所示: 图 2. 回归问题产生的损失与权重图呈凸形。
凸形问题只有一个最小值;即只有一个位置的斜率正好为 0。这个最小值就是损失函数收敛的位置。
通过计算整个数据集内每个w1可能的值的损失函数来寻找收敛点的效率非常低下。我们来研究一种更好的机制,这种机制在机器学习领域非常热门,称为梯度下降法。
通过计算整个数据集中 每个可能值的损失函数来找到收敛点这种方法效率太低。我们来研究一种更好的机制,这种机制在机器学习领域非常热门,称为梯度下降法。
梯度下降法的第一阶段是为w1选择一个起始值(起点)。起点并不重要;因此,许多算法直接将w1设置为 0 或选择随机值。在下图中,我们选择了一个略大于 0 的起点:
然后,梯度下降法算法会计算损失曲线在起点的梯度。在图 3 中,损失的梯度等于曲线的导数(斜率),可以告诉您哪个方向是“更暖”还是“冷”。当有多个权重时,梯度是偏导数相对于权重的矢量。
执行梯度下降法时,我们会泛化上述过程,以同时调整所有模型参数。例如,为了找到w1和b偏差的最优值,我们会同时计算w1和b的梯度。接下来,我们根据w1和b各自的梯度修改它们的值。然后重复上述步骤,直到达到最小损失。 |
原理上就是凸形问题求最优解,因为只有一个最低点;即只存在一个斜率正好为 0 的位置。这个最小值就是损失函数收敛之处。
梯度下降法的目标:寻找梯度下降最快的那个方向
梯度是一个矢量,因此具有以下两个特征:方向、大小
梯度始终指向损失函数中增长最为迅猛的方向。梯度下降法算法会沿着负梯度的方向走一步,以便尽快降低损失
为了确定损失函数曲线上的下一个点,梯度下降法算法会将梯度大小的一部分与起点相加
然后,梯度下降法会重复此过程,逐渐接近最低点。(找到了方向)
3.降低损失 (Reducing Loss):学习速率
超参数是编程人员在机器学习算法中用于调整的旋钮。大多数机器学习程序员都会花费大量时间来调整学习速率。如果您选择的学习速率过小,则学习将会花费太长时间:
相反,如果您指定的学习速率过大,则下一个点将永远在井底随意弹跳,就像量子力学实验大错一样:
每个回归问题都存在一个金发姑娘学习速率。“金发姑娘”值与损失函数的平坦程度有关。如果您知道损失函数的梯度较小,则可以放心地尝试较大的学习速率,以抵消小的梯度,从而产生较大的步长。
3.1黑塞矩阵(Hessian Matrix)
黑塞矩阵又译作海森矩阵、海瑟矩阵、海塞矩阵等,是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率。
4.降低损失:优化学习速率
谷歌学习平台提供了: 尝试不同的学习速率,看看它们如何影响达到损失曲线最小值所需的步数。
https://developers.google.cn/machine-learning/crash-course/fitter/graph?hl=zh-c
5.降低损失 (Reducing Loss):随机梯度下降法
在梯度下降法中,批次是用于在单次训练迭代中计算梯度的一组样本。 Google 数据集通常包含大量特征。因此,一个批次可能非常庞大。超大的批量也可能会导致单次迭代就可能需要很长时间才能完成计算。
具有随机抽样样本的大型数据集可能包含冗余数据。事实上,随着批次大小的增加,冗余的可能性会越来越高。一些冗余可能有助于消除嘈杂的梯度,但与大批量相比,大量的批量往往具有更高的预测价值。
如果我们可以通过更少的计算量得出正确的平均梯度,会怎么样?通过从数据集内随机选择样本,我们可以从小得多的样本中估算出大的平均值(尽管会有噪声)。 随机梯度下降法 (SGD) 将这种想法运用到极致,它每次迭代只使用一个样本(批次大小为 1)。如果有足够的迭代,SGD 可以正常工作,但噪声非常嘈杂。术语“随机”表示构成每个批次的一个样本是随机选择的。
小批量随机梯度下降法(小批量 SGD)是介于全批量迭代与 SGD 之间的折衷方案。小批次通常包含 10 到 1,000 个随机选择的样本。小批量 SGD 可以减少 SGD 中的噪声数,但仍然比全批量更高效。 |
5.1 补充:Goldilocks Principle 金发女孩原则
Goldilocks
(usually initial capital) Not being extreme or not varying drastically between extremes, especially between hot and cold.
Goldilocks Principle = Just the right amount = 刚刚好
西方有这么一个儿童故事叫 “ The Three Bears(金发女孩与三只小熊)”,迷路了的金发姑娘未经允许就进入了熊的房子,她尝了三只碗里的粥,试了三把椅子,又在三张床上躺了躺。最后发现不烫不冷的粥最可口,不大不小的椅子坐着最舒服,不高不矮的床上躺着最惬意。道理很简单,刚刚好就是最适合的,just the right amount,这样做选择的原则被称为 Goldilocks principle(金发女孩原则)。
金发姑娘原则不仅适用于日常生活中的决策,也被广泛应用于多个领域,如发展心理学、经济学、通讯科学、医学和天体生物学等。在个人发展和人际关系方面,这个原则鼓励人们寻找平衡点,避免走向极端,从而更有效地解决问题和建立和谐的关系。
在天体宇宙学中,Goldilocks Zone是最适合居住的环境,温度上不过热不过冷,正正好适宜生命的成长,地球就是最典型的Goldilocks Planet。
在经济学中,Goldilocks economy 描述的经济状态不会太热导致通货膨胀,也不太冷导致经济萧条。这种正正好的状态下经济稳定,货币政策有利于市场,就业率也往往较高。
相关文章:

机器学习-3降低损失(Reducing Loss)
机器学习-3降低损失(Reducing Loss) 学习内容来自:谷歌ai学习 https://developers.google.cn/machine-learning/crash-course/framing/check-your-understanding?hlzh-cn 本文作为学习记录1.降低损失:迭代方法 迭代学习 下图展示了机器学习算法用于训…...
蓝桥杯备战(AcWing算法基础课)-高精度-减-高精度
目录 前言 1 题目描述 2 分析 2.1 第一步 2.2 第二步 3 代码 前言 详细的代码里面有自己的理解注释 1 题目描述 给定两个正整数(不含前导 00),计算它们的差,计算结果可能为负数。 输入格式 共两行,每行包含一…...

AspNet web api 和mvc 过滤器差异
最近在维护老项目。定义个拦截器记录接口日志。但是发现不生效 最后发现因为继承的 ApiController不是Controller 只能用 System.Web.Http下的拦截器生效。所以现在总结归纳一下 Web Api: System.Web.Http.Filters.ActionFilterAttribute 继承该类 Mvc: System.Web.Mvc.Ac…...

HarmonyOS应用/服务发布:打造多设备生态的关键一步
目前 前言HarmonyOS 应用/服务发布的重要性使用HarmonyOS 构建跨设备的应用生态前期准备工作简述发布流程生成签名文件配置签名信息编译构建.app文件上架.app文件到AGC结束语 前言 随着智能设备的快速普及和多样化,以及编程语言的迅猛发展,构建一个无缝…...

【数据结构】双向带头循环链表实现及总结
简单不先于复杂,而是在复杂之后。 文章目录 1. 双向带头循环链表的实现2. 顺序表和链表的区别 1. 双向带头循环链表的实现 List.h #pragma once #include <stdio.h> #include <assert.h> #include <stdlib.h> #include <stdbool.h>typede…...

创建自己的Hexo博客
目录 一、Github新建仓库二、支持环境安装Git安装Node.js安装Hexo安装 三、博客本地运行本地hexo文件初始化本地启动Hexo服务 四、博客与Github绑定建立SSH密钥,并将公钥配置到github配置Hexo与Github的联系检查github链接访问hexo生成的博客 一、Github新建仓库 登…...

音箱、功放播放HDMI音频解决方案之HDMI音频分离器HHA
HDMI音频分离器HHA简介 HDMI音频分离器HHA具有一路HDMI信号输入,转换成一路HDMI信号、一路5.1光纤音频信号、一路5.1 SPDIF/同轴音频信号和一路模拟左右声道立体声信号输出,同时还支持EDID存储及兼容HDCP功能;分辨率最高支持1920*1080p&#…...

天猫数据分析:2023年坚果炒货市场年销额超71亿,混合坚果成多数消费者首选
近年来,随着人们生活水平和健康意识的提升,在休闲零食市场中,消费者们也越来越关注食品的营养价值,消费者这一消费偏好的转变也为坚果炒货食品行业带来了发展契机。 整体来看,坚果炒货市场的体量较大。根据鲸参谋电商…...

YouTrack 用户登录提示 JIRA 错误
就算输入正确的用户名和密码,我们也得到了下面的错误信息: youtrack Cannot retrieve JIRA user profile details. 解决办法 出现这个问题是因为 YouTrack 在当前的系统重有 JIRA 的导入关联。 需要把这个导入关联取消掉。 找到后台配置的导入关联&a…...
题目 1163: 排队买票
题目描述: 有M个小孩到公园玩,门票是1元。其中N个小孩带的钱为1元,K个小孩带的钱为2元。售票员没有零钱,问这些小孩共有多少种排队方法,使得售票员总能找得开零钱。注意:两个拿一元零钱的小孩,他们的位置互…...

【lesson9】高并发内存池Page Cache层释放内存的实现
文章目录 Page Cache层释放内存的流程Page Cache层释放内存的实现 Page Cache层释放内存的流程 如果central cache释放回一个span,则依次寻找span的前后page id的没有在使用的空闲span,看是否可以合并,如果合并继续向前寻找。这样就可以将切…...
Java基础面试题-6day
I/O流基础知识总结 (1) io即输入输出流, 如何区分输入还是输入流 以内存为中介,当我们是将数据存储到内存即为输入,反之存储到外部存储器,即为输出 在Java中分输入输出流,根据数据处理又可以分…...
【Oracle 集群】RAC知识图文详细教程(三)--RAC工作原理和相关组件
RAC 工作原理和相关组件 OracleRAC 是多个单实例在配置意义上的扩展,实现由两个或者多个节点(实例)使用一个共同的共享数据库(例如,一个数据库同时安装多个实例并打开)。在这种情况下,每一个单独…...
二级C语言笔试2
(总分100,考试时间90分钟) 一、选择题 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。 1. 下列叙述中正确的是( )。 A) 算法的效率只与问题的规模有关,而与数据的存储结构无关 B) 算法的时间复杂度是指执行算法所需要的计算工作量 …...

如何计算两个指定日期相差几年几月几日
一、题目要求 假定给出两个日期,让你计算两个日期之间相差多少年,多少月,多少天,应该如何操作呢? 本文提供网页、ChatGPT法、VBA法和Python法等四种不同的解法。 二、解决办法 1. 网页计算法 这种方法是利用网站给…...

再识C语言 DAY13 【递归函数(超详细)】
文章目录 前言一、函数递归什么是递归递归的两个重要条件练习一练习二 递归与迭代练习三练习四在练习三、四中出现的问题 如果您发现文章有错误请与我留言,感谢 前言 本文总结于此文章 一、函数递归 什么是递归 函数调用自身的编程技巧称为递归 (函数自…...

【Linux】权限管理
🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一 、Linux中的用户1.1 Linux用户分类1.2 用户转换1.3 指令提权 二、Linux权限管…...

地理坐标系、空间坐标系、epsg查询网站
坐标系可用范围和详细信息的查询网站 简介 epsg.ruiduobao.com是一个可以查询gdal中所有坐标系信息的网站,可查询到坐标系的基准面、椭球体、中央子午线等相关信息,并对每个坐标系的可用范围在地图中进行了显示。详细信息可以看操作视频: e…...

docker 容器指定主机网段
docker 容器指定主机网段。 使用macvlan网络模式可以让Docker容器直接连接到物理网络,而不需要通过NAT或端口映射的方式来访问它们。可以提高网络性能和稳定性,同时也可以使容器更易于管理。 1、查询网卡的名称:使用ifconfig命令查看网卡名…...

零基础Vue框架上手;git,node,yarn安装
项目搭建环境: git安装:Git - 安装 Git (git-scm.com)(官网) 下载路径:Git - Downloading Package (git-scm.com);根据自己电脑下载相对应的安装包 点next 点next,点到最后安装就行。…...
鸿蒙OS基于UniApp的WebRTC视频会议系统实践:从0到1的HarmonyOS适配之路#三方框架 #Uniapp
基于UniApp的WebRTC视频会议系统实践:从0到1的HarmonyOS适配之路 引言 在移动互联网时代,实时音视频通讯已成为各类应用的标配功能。本文将结合我在某大型企业协同办公项目中的实战经验,详细讲解如何使用UniApp框架开发一个支持鸿蒙系统的W…...
Qt概述:基础组件的使用
1. Qt框架简介 Qt是一个跨平台的C图形用户界面应用程序开发框架,它包含了丰富的GUI组件和强大的功能库。本次示例代码展示了Qt的几个核心概念: QMainWindow:主窗口类,提供标准的应用程序框架**信号与槽**机制:Qt的核…...
IoTGateway项目生成Api并通过swagger和Postman调用
IoTGateway项目生成Api并通过swagger和Postman调用-CSDN博客...
架构分享|三层存储架构加速云端大模型推理
作者简介 Nilesh Agarwal,Inferless 联合创始人&CTO 关于Inferless Inferless :无服务器 GPU 推理无需管理服务器即可扩展机器学习推理,轻松部署复杂的自定义模型。获得Sequoia、Antler 和 Blume Ventures 的支持。 大语言模型(LLM&a…...
C# 密封类和密封方法
密封(sealed)是C#中用于限制继承和多态行为的关键字,它可以应用于类和方法,提供了一种控制继承层次的方式。 密封类 特点 使用 sealed 关键字修饰的类密封类不能被其他类继承,但可以继承其他类或接口主要用于防止派生所有结构(struct)都是…...

使用微软最近开源的WSL在Windows上优雅的运行Linux
install wsl https://github.com/microsoft/WSL/releases/download/2.4.13/wsl.2.4.13.0.x64.msi install any distribution from microsoft store, such as kali-linux from Kali office website list of distribution PS C:\Users\50240> wsl -l -o 以下是可安装的有…...

手机打电话时将对方DTMF数字转为RFC2833发给局域网SIP坐席
手机打电话时将对方DTMF数字转为RFC2833发给局域网SIP坐席 --局域网SIP坐席呼叫 上一篇:手机打电话时由对方DTMF响应切换多级IVR语音菜单(完结) 下一篇:安卓App识别手机系统弹授权框包含某段文字-并自动点击确定按钮 一、前言 …...
雪花算法:分布式ID生成的优雅解决方案
一、雪花算法的核心机制与设计思想 雪花算法(Snowflake)是由Twitter开源的分布式ID生成算法,它通过巧妙的位运算设计,能够在分布式系统中快速生成全局唯一且趋势递增的ID。 1. 基本结构 雪花算法生成的是一个64位(lo…...
JavaScript 性能优化实战指南
JavaScript 性能优化实战指南 一、引言 JavaScript 是一种广泛使用的编程语言,尤其在前端开发中占据重要地位。随着 Web 应用的复杂度不断增加,性能优化成为开发过程中不可或缺的一部分。性能优化不仅可以提升用户体验,还能减少服务器负载,提高应用的响应速度。本文将从多…...
【android bluetooth 协议分析 03】【蓝牙扫描详解 1】【扫描关键函数 btif_dm_search_devices_evt 分析】
1. 背景 本篇我们来对 btif_dm_search_devices_evt 函数进行分析. 这是系统性分析 Bluetooth 协议栈中的设备扫描流程时必须厘清的一环。 1. 为什么要单独分析 btif_dm_search_devices_evt 函数: btif_dm_search_devices_evt 是 BTIF 层中处理设备扫描࿰…...