当前位置: 首页 > news >正文

02.机器学习原理(复习)

目录

  • 机器学习的本质
  • 机器学习的类型
    • Regression/回归
    • Classification/分类
    • Structured Learning/结构化学习
  • ML的三板斧
    • 设定范围
    • 设定标准
      • 监督学习
      • 半监督学习
      • 其他
    • 达成目标
    • 小结
      • 达成目标
      • 设定标准
      • 设定范围

部分截图来自原课程视频《2023李宏毅最新生成式AI教程》,B站自行搜索

这节课主要是复习,但是里面有些结论可以加深对ML和DL的理解。

机器学习的本质

让机器自动寻找 计算出一个函数,这个函数能完成我们既定的目标。例如:
ChatGPT是找一个函数能够完成下一个字/词的预测。
在这里插入图片描述

Midjourney是找一个函数根据文字内容生成对应图片。(PS:中间有一节课是用ChatGPT+Midjourney玩虚拟冒险游戏,演示为主)
在这里插入图片描述
AlphaGo是找一个函数根据当前棋局预测下一步落子位置。
在这里插入图片描述

机器学习的类型

Regression/回归

函数输出为一个数值。典型的任务有NG的房价预测、这个前导课中的PM2.5预测等。
在这里插入图片描述

Classification/分类

函数输出为一个类别。典型任务有,垃圾邮件识别、银行贷款审批、手写数字识别等。
在这里插入图片描述

Structured Learning/结构化学习

函数的输出是有结构的物件(影像、图片、文字、声音等)
这个类别不属于上面两类传统机器学习的分类,这个类别更加复杂。Structured Learning发展到今天也有了更潮的称呼:Generative Learning生成式学习。Structured Learning在早期李宏毅的机器学习课程中是单独的一个部分。

对于ChatGPT而言,在微观上,每一次预测下一个字/词,相当于在做分类任务,只不过类别就是我们的词库中所有的字/词;在宏观上,当我们使用ChatGPT的时候,他一次会输出一段文字,又可以看成是生成式的学习。

结论:ChatGPT是把生成式学习拆解成多个分类问题来解决。

ML的三板斧

看到这里又梦回20年刷到机器学习课程的时候,可惜一直没有玩过宝可梦游戏,不然理解会更加深刻。
不过这次回顾讲解更加精简明的描述了机器学习找到梦中情function的过程。

前提
开始之前要决定找什么样的函数。这是一个与技术无关的问题,就是根据需要定下来函数是属于上面三种类型的哪一类,下面以回归为例,吃图片预测其战斗力数值。
在这里插入图片描述

设定范围

设定范围就是选定Model(候选函数的集合)。
DL中的各种模型结构(CNN,RNN,Transformer等)或者各种决策树、感知机等都是各种不同的候选函数的集合。例如我们选定某个结构后,使用四种不同的参数,对于相同的输入,就可以得到不同的结果:
在这里插入图片描述
当然参数有无数种可能,我们把某个DL模型的不同参数所形成的函数集合记为: H \mathcal{H} H
这里涉及到函数空间等原理,需要了解的可以看之前的课程。

设定标准

设定Loss(评价函数好坏的标准),以宝可梦战斗力预测任务来举例。现假设有一个函数 f 1 f_1 f1,对三只宝可梦进行预测结果如下:
在这里插入图片描述
然后根据数据标记方式不同,又分两种情况进行讨论:

监督学习

此时有专业人员对宝可梦实际战斗力进行标注:
在这里插入图片描述
此时我们可以对函数 f 1 f_1 f1计算结果的正确程度进行计算Loss:
L ( f 1 ) = ∣ 103 − 101 ∣ + ∣ 17 − 18 ∣ + ∣ 212 − 200 ∣ = 2 + 1 + 12 = 15 L(f_1)=|{\color{Blue}103}-101|+|{\color{Blue}17}-18|+|{\color{Blue}212}-200|=2+1+12=15 L(f1)=103101∣+1718∣+212200∣=2+1+12=15
PS: L L L称为损失函数,上面宝可梦的战斗力称为训练数据。这里为了简单就直接算,实操会更加复杂,要根据具体训练数据来拟定损失函数,例如是否要加正则项、是否对差值进行平方等。

半监督学习

此时只有部分宝可梦的战斗力得到标注,例如下面只有一只有标注,其他没有:
在这里插入图片描述
对于有标注的数据,可以按监督学习的方法进行计算Loss,对于其他可以自己制定相应规则,例如:规定外形相似的宝可梦战斗力应该一致。
但是 f 1 f_1 f1函数对于两个皮卡丘的输出如下:
在这里插入图片描述
二者差异为81,因此可以得到 f 1 f_1 f1函数的Loss为:
L ( f 1 ) = ∣ 103 − 101 ∣ + 98 − 17 = 83 L(f_1)=|{\color{Blue}103}-101|+98-17=83 L(f1)=103101∣+9817=83
当然规则是人定的,也可以定相同颜色的宝可梦战斗力一样。。。
如何定规则?当然也是要根据训练数据来。

其他

当然还有其他中训练方式,例如:强化学习,无监督学习

达成目标

找到最优的函数(Optimization),自觉上,当然是Loss最小的那个函数就是最优:
f ∗ = a r g min ⁡ f ∈ H L ( f ) f^*=arg\min_{f\in\mathcal{H}}L(f) f=argfHminL(f)
例如:
在这里插入图片描述
当然具体实作中找最优函数可以看做求Loss最小值的过程,由于Loss函数通常是多项式,那么找到多项式最小值常用的方法就是GD,而对于DL而言,BP就是正解。当然还有类似遗传算法等其他方法可以找到最优函数。

小结

步骤含义方法
设定范围选定候选函数的集合DL(CNN, RNN, Transformer), Decision Tree, Perceptron, etc.
设定标准选定评价函数好坏的标准Supervised Learning, Semi-supervised Learning, Unsupervised Learning, RL, etc.
达成目标找到最优的函数Gradient Descent(Adam, AdamW…), Back Propagation, Genetic Algorithm, etc.

好好看上面的表格可以更加深入理解很多概念,例如:RL会取代DL,这个说法是不正确的,两个方法属于不同的步骤,谈不上谁取代谁。
还可以在写论文的时候从不同的出发点来寻找创新idea。
这里有把三个步骤从后往前重新分析了一遍。

达成目标

在这里插入图片描述
可以把大大的长方形看做是一个函数,这个函数吃候选函数集合 H \mathcal{H} H和评定函数 L L L得到一个函数 f ∗ f^* f,该函数属于 H \mathcal{H} H,并且可以使得 L L L的值越小越好(这里不是最小,因为可能是局部最小值)
当然,这个长方形函数比较复杂,需要我们预先设定一些超参数(Hyperparameter):Learning Rate、Batch Size、How to Init。当然我们也希望长方形函数的鲁棒性很强,对这些超参数不这么敏感。

设定标准

在这里插入图片描述
从训练数据中根据评定函数 L L L找出 f ∗ f^* f,当然在训练数据上表现比较好的 f ∗ f^* f在测试数据上表现不一定好,这可能是因为训练数据与测试数据不是相同分布的。
我们可以在训练阶段在评定函数 L L L中加入额外考量:正则化。(就好比平时练习使用难度较高的卷子,考试题目虽然没有见过也大概率拿高分)

设定范围

为什么要设定候选函数的范围,而不把覆盖所有向量空间的函数作为我们的范围呢?因为有些函数训练结果好但测试效果差(过拟合)。
在这里插入图片描述
因此我们要划定范围将那些容易过拟合的函数排除在外。当我们设定范围太大就会将过拟合的函数包含进来(最大椭圆),如果设定范围太小,又会将正好拟合的函数排除在外(最小椭圆)。
主要还是根据数据量来看,数据量大,范围可以大一些,例如在图像上的研究趋势看,早期数据量小,因此采用CNN结构,后来数据量变大后,就开始引入Transformer结构,Transformer结构的范围正是要比CNN结构的范围大。

还有一些特殊的方法,例如下图中残差网络,虽然这个结构包含的范围可能不咋地,但是这个结构很容易找出 f ∗ f^* f
在这里插入图片描述
同理,在损失函数上,使用交叉熵比使用平方差的方式要更容易达成目标。

相关文章:

02.机器学习原理(复习)

目录 机器学习的本质机器学习的类型Regression/回归Classification/分类Structured Learning/结构化学习 ML的三板斧设定范围设定标准监督学习半监督学习其他 达成目标小结达成目标设定标准设定范围 部分截图来自原课程视频《2023李宏毅最新生成式AI教程》,B站自行搜…...

电源集成INN3270C-H215-TL、INN3278C-H114-TL、INN3278C-H215-TL简化了反激式电源转换器的设计和制造。

一、概述 InnoSwitch™3-CP系列IC极大地简化了反激式电源转换器的设计和制造,特别是那些需要高效率和/或紧凑尺寸的产品。InnoSwitch3-CP系列将初级和次级控制器以及安全额定反馈集成到单个IC中。 InnoSwitch3-CP系列器件集成了多种保护功能,包括线路过…...

UE4和C++ 开发--HUD类

HUD 平视显示器(Head Up Display),简称HUD。在蓝图中是指在屏幕上面绘制的二维物体。 1. 创建HUD 打开蓝图编辑器,创建一个蓝图类,搜索HUD,选择并命名BP_HUD。 2. 开始绘制 打开事件列表,右键搜索 EventReceive Draw HUD。有两…...

使用js怎么设置视频背景

要使用JavaScript设置网页的视频背景&#xff0c;你需要将视频元素添加到你的HTML文档中&#xff0c;然后使用JavaScript来控制它 首先&#xff0c;在你的HTML文件中添加一个 <video> 元素 <video id"video-background" autoplay muted loop><sourc…...

Gin,Gorm实现Web计算器

目录 仓库链接0.PSP表格1. 成品展示1.基础运算2. 清零回退3.错误提示4.历史记录拓展功能1.前端可修改的利率计算器2.科学计算器3. 按钮切换不同计算器模式4.用户在一次运算后不清零继续输入操作符&#xff0c;替换表达式为上次答案 2.设计实现过程3.代码说明4.心路历程和收获 仓…...

11-网络篇-DNS步骤

1.URL URL就是我们常说的网址 https://www.baidu.com/?from1086k https是协议 m.baidu.com是服务器域名 ?from1086k是路径 2.域名 比如https://www.baidu.com 顶级域名.com 二级域名baidu 三级域名www 3.域名解析DNS DNS就是将域名转换成IP的过程 根域名服务器&#xff1a…...

设计师都应该知道的事:极简主义家具该怎么去用

这座房子有黑暗而沉重的特征&#xff0c;包括棕色和白色的马赛克浴室瓷砖&#xff0c;弯曲的锻铁壁灯和土黄色的威尼斯石膏墙。但由于房屋与他们的风格相去甚远&#xff0c;白色&#xff0c;干净和简约&#xff0c;接下来我们就着这个方向去帮助房主进行改造。 她解释说&#x…...

设计模式02———建造者模式 c#

首先我们打开一个项目 在这个初始界面我们需要做一些准备工作 建基础通用包 创建一个Plane 重置后 缩放100倍 加一个颜色 更换天空盒&#xff08;个人喜好&#xff09; 任务&#xff1a;使用【UI】点击生成6种车零件组装不同类型车 【建造者模式】 首先资源商店下载车模型 将C…...

2023最新接口自动化测试面试题

1、get和post的区别&#xff1f; l http是上层请求协议&#xff0c;主要定义了服务端和客户端的交互规格&#xff0c;底层都是tcp/ip协议 l Get会把参数附在url之后&#xff0c;用&#xff1f;分割&#xff0c;&连接不同参数&#xff0c;Get获取资源&#xff0c;post会把…...

GaN器件的工作原理

目录 AlGaN/GaNHEMT 器件工作原理&#xff08;常开-耗尽型器件&#xff09;常关 AlGaN/GaN 功率晶体管&#xff08;增强型器件&#xff09;HD-GIT与SP-HEMT AlGaN/GaNHEMT 器件工作原理&#xff08;常开-耗尽型器件&#xff09; 来源&#xff1a;毫米波GaN基功率器件及MMIC电路…...

点云从入门到精通技术详解100篇-海量三维点云的空间索引及可视化应用(续)

目录 3.2.3 方向八叉树与八叉树的比较 3.3 多级索引结构 3.3.1 多级索引结构的构建...

androidx和v4包资源冲突解决方法

一、资源包会报如下错误&#xff1a; 错误类似 (androidx.core:core:1.10.0) 和 (com.android.support:support-compat:24.2.0) 表示资源重复&#xff0c;不知调用androidx包下面的&#xff0c;还是v4包下面的 Duplicate class android.support.v4.app.INotificationSideCha…...

【发烧期间随笔】第一次游戏开发经历的总结与反思

一、前言 这两天三阳了&#xff0c;头疼头晕恶心发烧打喷嚏流鼻涕咳嗽嗓子疼气管疼都找上门来了&#xff0c;这导致一周以来都没学什么东西&#xff0c;无意间又刷到各个游戏厂关于本人目标岗位HC骤减且要求造火箭的能力的消息&#xff0c;这两天一直是在病痛和焦虑中度过的&a…...

CCombBox组合框

1、 MFC_Combo_Box(组合框)的详细用法_mfc combo-CSDN博客 2、 常用属性设置&#xff1a; 属性 含义 data 设置内容&#xff0c;不同内容间用英文的分号“;”分隔 type 显示风格 Sort True 内容自动排序 常用接口&#xff1a; 接口 功能 CComboBox::AddString 组…...

机器学习-有监督学习-神经网络

目录 线性模型分类与回归感知机模型激活函数维度诅咒过拟合和欠拟合正则数据增强数值稳定性神经网络大家族CNNRNNGNN&#xff08;图神经网络&#xff09;GAN 线性模型 向量版本 y ⟨ w , x ⟩ b y \langle w, x \rangle b y⟨w,x⟩b 分类与回归 懂得两者区别激活函数&a…...

React之组件通信

#一、是什么 我们将组件间通信可以拆分为两个词&#xff1a; 组件通信 回顾Vue系列 (opens new window)的文章&#xff0c;组件是vue中最强大的功能之一&#xff0c;同样组件化是React的核心思想 相比vue&#xff0c;React的组件更加灵活和多样&#xff0c;按照不同的方式可…...

什么是微服务架构

阅读“微服务架构”一词可能会让您直观地了解该术语的含义&#xff1a;计算架构中的小型服务。这个定义并不完全错误&#xff0c;但也不完全正确。 微服务架构通常被称为“打破整体”的一种方式。遗憾的是&#xff0c;这与《2001&#xff1a;太空漫游》无关&#xff0c;而是将…...

<%=%>模板写法

<%%> 这种写法通常称为 "内嵌式模板" 或 "模板标记"&#xff0c;在前端开发中&#xff0c;这种标记语法用于将动态数据嵌入HTML模板中。这种写法通常与模板引擎一起使用&#xff0c;这些模板引擎会根据提供的数据动态生成HTML。 不同的模板引擎可能…...

python爬取boss直聘数据(selenium+xpath)

文章目录 一、主要目标二、开发环境三、selenium安装和驱动下载四、主要思路五、代码展示和说明1、导入相关库2、启动浏览器3、搜索框定位创建csv文件招聘页面数据解析(XPATH)总代码效果展示 六、总结 一、主要目标 以boss直聘为目标网站&#xff0c;主要目的是爬取下图中的所…...

GEO生信数据挖掘(六)实践案例——四分类结核病基因数据预处理分析

前面五节&#xff0c;我们使用阿尔兹海默症数据做了一个数据预处理案例&#xff0c;包括如下内容&#xff1a; GEO生信数据挖掘&#xff08;一&#xff09;数据集下载和初步观察 GEO生信数据挖掘&#xff08;二&#xff09;下载基因芯片平台文件及注释 GEO生信数据挖掘&…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...