李宏毅机器学习课程学习笔记04 | 浅谈机器学习-宝可梦、数码宝贝分类器
文章目录
- 案例:宝可梦、数码宝贝分类器
- 第一步:需要定义一个含有未知数的function
- 第二步:loss of a function
- 如何Sample Training Examples => 如何抽样可以得到一个较好的结果
- 如何权衡模型的复杂程度 Tradeoff of Model Complexity
todo
这里主要讲了如果挑选训练数据集,后续的内容在
,等之后看到这里再补充笔记
案例:宝可梦、数码宝贝分类器
案例:需要找一个函数,输入一个动物,输出类别宝可梦还是数码宝贝
第一步:需要定义一个含有未知数的function
先对资料做一些观察,想象一下function应该长什么样。
观察发现①数码宝贝的线条比较复杂②宝可梦的线条比较简单 => 根据线条风格区分

使用一些工具包做Edge detection边缘检测后,将图片隐射成黑白,白色的为边缘,输出白色像素点的个数。白色像素点的个数超过某个阈值,说明线条复杂。

这个阈值h是一个未知参数,我们先假设函数只有这一个未知参数。

第二步:loss of a function
首先需要数据集D,loss根据数据集D算出
1.有数据集 D = { ( x 1 , y ^ 1 ) , . . . . , ( x n , y ^ n ) } D=\{(x^1,\hat{y}^1),....,(x^n,\hat{y}^n)\} D={(x1,y^1),....,(xn,y^n)},n表示第几个资料
x x x:输入宝可梦或者数码宝贝的图片
y ^ \hat y y^: 该图是宝可梦还是数码宝贝
2.先随机给个阈值h,然后根据资料D计算参数h的loss
数据集的损失L(h,D):输入阈值h和数据集D,输出错误率
每一笔资料的loss l ( h , x n , y ^ n ) ) l(h,x^n,\hat{y}^n)) l(h,xn,y^n)):h是f的参数,输入xn,输出yn,比较model值与真实值是否相等,不相等就输出0,相等就输出1

Error rate 很直观。也可以选择使用cross-entropy
如何Sample Training Examples => 如何抽样可以得到一个较好的结果
理想情况:假设我们可以收集所有的宝可梦和数码宝贝,其集合为 D a l l D_{all} Dall。我们找到了最好的阈值 h a l l h^{all} hall, h a l l = a r g min h L ( h , D a l l ) h^{all} = arg\min_hL(h,D_{all}) hall=argminhL(h,Dall)
这里的损失函数不可以微分,所以没办法用梯度下降方法。但是h的个数其实是有限的,可以通过穷举的方法找出使损失函数值最小的阈值h。
事实情况:我们只能收集到 D a l l D_{all} Dall中的部分案例 D t r a i n D_{train} Dtrain(从all中随机抽样出来的案例,案例符合独立同分布), D t r a i n = { ( x 1 , y ^ 1 ) , . . . . , ( x n , y ^ n ) } D_{train}=\{(x^1,\hat{y}^1),....,(x^n,\hat{y}^n)\} Dtrain={(x1,y^1),....,(xn,y^n)}。可以找到 h t r a i n = a r g min h L ( h , D t r a i n ) h^{train} = arg\min_hL(h,D_{train}) htrain=argminhL(h,Dtrain)

希望现实情况的 h t r a i n h^{train} htrain在所有数据集中的表现和 h a l l h^{all} hall在所有数据集中的表现越接近越好。

不同的 D t r a i n D_{train} Dtrain训练出来出来的 h t r a i n h^{train} htrain不同,这里 h t r a i n h^{train} htrain在所有数据集中的表现很依赖训练h时Sample到的数据集。


问题:我们希望 L ( h t r a i n , D a l l ) − L ( h a l l , D a l l ) ≤ δ L(h^{train},D_{all}) - L(h^{all},D_{all}) \leq \delta L(htrain,Dall)−L(hall,Dall)≤δ,什么样的 D t r a i n D_{train} Dtrain训练出来的 h t r a i n h^{train} htrain可以满足这个期望?
h a l l h^{all} hall是从 D a l l D_{all} Dall中找出来让 L ( h a l l , D a l l ) L(h^{all},D_{all}) L(hall,Dall)最小的值,所以 L ( h t r a i n , D a l l ) L(h^{train},D_{all}) L(htrain,Dall)是大于等于 L ( h a l l , D a l l ) L(h^{all},D_{all}) L(hall,Dall)。
不过 L ( h t r a i n , D t r a i n ) L(h^{train},D_{train}) L(htrain,Dtrain)是有可能小于 L ( h a l l , D a l l ) L(h^{all},D_{all}) L(hall,Dall)。
解:Smaple出来的资料 D t r a i n D_{train} Dtrain,穷举所有可能的h(从1到10000),任意h满足 ∣ L ( h , D t r a i n ) − L ( h , D a l l ) ∣ ≤ δ 2 |L(h,D_{train}) - L(h,D_{all})| \leq \frac{\delta}{2} ∣L(h,Dtrain)−L(h,Dall)∣≤2δ,理想和显示就会很接近。 => D t r a i n D_{train} Dtrain与 D a l l D_{all} Dall分布很像。


问题:有多大的可能性Sample出来一个bad D t r a i n D_{train} Dtrain
- 以下的讨论与模型无关
- 以下的讨论对资料本来的分布无假设
- 以下的讨论可以使用任何loss function

每一个坏的资料,背后都存在一个h使得 ∣ L ( h , D t r a i n ) − L ( h , D a l l ) ∣ > ϵ |L(h,D_{train}) - L(h,D_{all})| \gt \epsilon ∣L(h,Dtrain)−L(h,Dall)∣>ϵ => P ( D t r a i n i s b a d ) = ∪ h ∈ H P ( D t r a i n i s b a d d u e t o h ≤ ∑ h ∈ H P ( D t r a i n i s b a d d u e t o h ) P(D_{train} \ is \ bad) = \cup_{h \in \Eta} P(D_{train} \ is \ bad \ due \ to \ h\leq \sum_{h\in \Eta} P(D_{train} \ is \ bad \ due \ to \ h) P(Dtrain is bad)=∪h∈HP(Dtrain is bad due to h≤∑h∈HP(Dtrain is bad due to h)重叠的地方会多次被计算



由最后的式子可知, ∣ H ∣ |H| ∣H∣是候选项h的数量,N是所选数据集 D t r a i n D_{train} Dtrain里资料的个数
- 增加训练样本数量,N越大 D t r a i n D_{train} Dtrain越接近 D a l l D_{all} Dall, P ( D t r a i n i s b a d ) P(D_{train} \ is \ bad) P(Dtrain is bad)的概率越小。
- 较少模型复杂性,|H|候选项的数目越小,较少模型的复杂程度, P ( D t r a i n i s b a d ) P(D_{train} \ is \ bad) P(Dtrain is bad)的概率越小。
其实这些理论只是用来试图解释原理,但并没有人用在实际数据集中真正计算,因为计算的结果往往会大于1
最小样本量应该满足以下式子

问题:本案例中h的取值是离散的,所以 ∣ H ∣ |H| ∣H∣是个确定值。当h取值是连续的, ∣ H ∣ |H| ∣H∣是一个无穷 ,那 P ( D t r a i n i s b a d ) P(D_{train} \ is \ bad) P(Dtrain is bad)永远小于无穷大,那式子还有什么意思?
回答
- 在计算机中没有真正连续的东西,用计算机中的bit描述数值时,精度终究是有限的(所以就不是无穷的)。
VC-dimension另外一种计算参数是连续时模型的复杂程度
如何权衡模型的复杂程度 Tradeoff of Model Complexity
理论上,理想与现实接近的方法
- 增加训练样本数量,N越大 D t r a i n D_{train} Dtrain越接近 D a l l D_{all} Dall, P ( D t r a i n i s b a d ) P(D_{train} \ is \ bad) P(Dtrain is bad)的概率越小。
- 较少模型复杂性,|H|候选项的数目越小,较少模型的复杂程度, P ( D t r a i n i s b a d ) P(D_{train} \ is \ bad) P(Dtrain is bad)的概率越小。
问题:|H|太小会导致什么问题?模型复杂程度太小会导致什么问题?
|H|太小,能选择的h数量太少,可能找不到使 L ( h , D a l l ) L(h,D_{all}) L(h,Dall)最小的h。(大海捞针,针不在大海)

收集数据集中案例的个数N通常不是我们能控制的,可能想采用小的|H|来让理想和现实更接近。
=> 小的|H|会导致可选择的参数h数量变少,导致最优的 h a l l h^{all} hall在可选范围之外,也就是说得到一个较大的 L ( h a l l , D a l l ) L(h^{all},D_{all}) L(hall,Dall)

相关文章:
李宏毅机器学习课程学习笔记04 | 浅谈机器学习-宝可梦、数码宝贝分类器
文章目录 案例:宝可梦、数码宝贝分类器第一步:需要定义一个含有未知数的function第二步:loss of a function如何Sample Training Examples > 如何抽样可以得到一个较好的结果如何权衡模型的复杂程度 Tradeoff of Model Complexity todo 这…...
C++11中的右值引用和完美转发
C11中的右值引用和完美转发 右值引用 右值引用是 C11 引入的一种新的引用类型,用 && 表示。它主要用于区分左值和右值,并且可以实现移动语义,避免不必要的深拷贝,提高程序的性能。左值通常是可以取地址的表达式…...
Redis详解(实战 + 面试)
目录 Redis 是单线程的!为什么 Redis-Key(操作redis的key命令) String 扩展字符串操作命令 数字增长命令 字符串范围range命令 设置过期时间命令 批量设置值 string设置对象,但最好使用hash来存储对象 组合命令getset,先get然后在set Hash hash命令: h…...
ISP CIE-XYZ色彩空间
1. 颜色匹配实验 1931年,CIE综合了前人实验数据,统一采用700nm(红)、546.1nm(绿)、435.8nm(蓝)作为标准三原色波长,绘制了色彩匹配函数,如下图。选定这些波…...
【强化学习笔记1】从强化学习的基本概念到近端策略优化(PPO)
好久没有更新了。最近想学习一下强化学习,本系列是李宏毅老师强化学习的课程笔记。 1. Policy-based Model 1.1 Actor 在policy-based model中,主要的目的就是训练一个actor。 对于一个episode(例如,玩一局游戏)&…...
Deepseek对ChatGPT的冲击?
从测试工程师的视角来看,DeepSeek对ChatGPT的冲击主要体现在**测试场景的垂直化需求与通用模型局限性之间的博弈**。以下从技术适配性、效率优化、风险控制及未来趋势四个维度展开分析: --- ### **一、技术适配性:垂直领域能力决定工具选择…...
STM32中的ADC
目录 一:什么是ADC 二:ADC的用途 三:STM32F103ZET6的ADC 3.1ADC对应的引脚 3.2ADC时钟 3.3ADC的工作模式 编辑3.4ADC校准 3.5ADC转换结构和实际电压的换算 四:ADC配置步骤 五:两个重要的函数 一:…...
开启AI短剧新纪元!SkyReels-V1/A1双剑合璧!昆仑万维开源首个面向AI短剧的视频生成模型
论文链接:https://arxiv.org/abs/2502.10841 项目链接:https://skyworkai.github.io/skyreels-a1.github.io/ Demo链接:https://www.skyreels.ai/ 开源地址:https://github.com/SkyworkAI/SkyReels-A1 https://github.com/Skywork…...
【uniapp】在UniApp中实现持久化存储:安卓--生成写入数据为jsontxt
在移动应用开发中,数据存储是一个至关重要的环节。对于使用UniApp开发的Android应用来说,缓存(Cache)是一种常见的数据存储方式,它能够提高应用的性能和用户体验。然而,缓存数据在用户清除缓存或清除应用数…...
大白话React第十一章React 相关的高级特性以及在实际项目中的应用优化
假设我们已经对 React 前端框架的性能和可扩展性评估有了一定了解,接下来的阶段可以深入学习 React 相关的高级特性以及在实际项目中的应用优化,以下是详细介绍及代码示例: 1. React 高级特性的深入学习 1.1 React 并发模式(Con…...
java容器 LIst、set、Map
Java容器中的List、Set、Map是核心数据结构,各自适用于不同的场景 一、List(有序、可重复) List接口代表有序集合,允许元素重复和通过索引访问,主要实现类包括: ArrayList 底层结构:动态数组…...
使用IDEA如何隐藏文件或文件夹
选择file -> settings 选择Editor -> File Types ->Ignored Files and Folders (忽略文件和目录) 点击号就可以指定想要隐藏的文件或文件夹...
DOM HTML:深入理解与高效运用
DOM HTML:深入理解与高效运用 引言 随着互联网的飞速发展,前端技术逐渐成为软件开发中的关键部分。DOM(文档对象模型)和HTML(超文本标记语言)是前端开发中的基石。本文将深入探讨DOM和HTML的概念、特性以及在实际开发中的应用,帮助读者更好地理解和使用这两项技术。 …...
形象生动讲解Linux 虚拟化 I/O
用现实生活的比喻和简单例子来解释 Linux 虚拟化 I/O,就像给朋友讲故事一样。 虚拟化 I/O 要解决什么问题? 想象你有一栋大房子(物理服务器),想把它分割成多个小公寓(虚拟机)出租。每个租客&…...
git从零学起
从事了多年java开发,一直在用svn进行版本控制,如今更换了公司,使用的是git进行版本控制,所以打算记录一下git学习的点滴,和大家一起分享。 百度百科: Git(读音为/gɪt/)是一个开源…...
汽车低频发射天线介绍
汽车低频PKE天线是基于RFID技术的深度研究及产品开发应用的一种天线,在汽车的智能系统中发挥着重要作用,以下是关于它的详细介绍: 移动管家PKE低频天线结构与原理 结构:产品一般由一个高Q值磁棒天线和一个高压电容组成ÿ…...
【Java分布式】Nacos注册中心
Nacos注册中心 SpringCloudAlibaba 也推出了一个名为 Nacos 的注册中心,相比 Eureka 功能更加丰富,在国内受欢迎程度较高。 官网:https://nacos.io/zh-cn/ 集群 Nacos就将同一机房内的实例划分为一个集群,一个服务可以包含多个集…...
【C++】ImGui:极简化的立即模式GUI开发
如果你是GUI开发的新手,或想试试轻量级、易集成的GUI库,ImGui(即时模式图形用户界面)是个不错的选择。它以简洁的API、跨平台的兼容性和卓越的性能,受到许多开发者的喜爱。无论是为C项目添加调试界面,还是构…...
5G学习笔记之BWP
我们只会经历一种人生,我们选择的人生。 参考:《5G NR标准》、《5G无线系统指南:如微见著,赋能数字化时代》 目录 1. 概述2. BWP频域位置3. 初始与专用BWP4. 默认BWP5. 切换BWP 1. 概述 在LTE的设计中,默认所有终端均能处理最大2…...
1. 搭建前端+后端开发框架
1. 说明 本篇博客主要介绍网页开发中,搭建前端和后端开发框架的具体步骤,框架中所使用的技术栈如下: 前端:VUE Javascript 后端:Python Flask Mysql 其中MySQL主要用来存储需要的数据,在本文中搭建基本…...
深入浅出:插入排序算法完全解析
1. 什么是插入排序? 插入排序(Insertion Sort)是一种简单的排序算法,其基本思想与我们整理扑克牌的方式非常相似。我们将扑克牌从第二张开始依次与前面已排序的牌进行比较,将其插入到合适的位置,直到所有牌…...
(十一)基于vue3+mapbox-GL实现模拟高德实时导航轨迹播放
要在 Vue 3 项目中结合 Mapbox GL 实现类似高德地图的实时导航轨迹功能,您可以按照以下步骤进行: 安装依赖: 首先,安装 mapbox-gl 和 @turf/turf 这两个必要的库: npm install mapbox-gl @turf/turf引入 Mapbox GL: 在组件中引入 mapbox-gl 并初始化地图实例: <templ…...
DeepSeek到TinyLSTM的知识蒸馏
一、架构设计与适配 模型结构对比: DeepSeek(教师模型):基于Transformer,多头自注意力机制,层数≥12,隐藏层维度≥768TinyLSTM(学生模型):单层双向LSTM&#…...
【Transformer模型学习】第三篇:位置编码
文章目录 0. 前言1. 为什么需要位置编码?2. 如何进行位置编码?3. 正弦和余弦位置编码4. 举个例子4.1 参数设置4.2 计算分母项4.3 计算位置编码4.4 位置编码矩阵 5. 相对位置信息6. 改进的位置编码方式——RoPE6.1 RoPE的核心思想6.2 RoPE的优势 7. 总结 …...
微信小程序自定义导航栏实现指南
文章目录 微信小程序自定义导航栏实现指南一、自定义导航栏的需求分析二、代码实现1. WXML 结构2. WXSS 样式样式解析:3. JavaScript 逻辑三、完整代码示例四、注意事项与优化建议五、总结微信小程序自定义导航栏实现指南 在微信小程序开发中,默认的导航栏样式可能无法满足所…...
(十 六)趣学设计模式 之 责任链模式!
目录 一、 啥是责任链模式?二、 为什么要用责任链模式?三、 责任链模式的实现方式四、 责任链模式的优缺点五、 责任链模式的应用场景六、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,…...
20250225-代码笔记03-class CVRPModel AND other class
文章目录 前言一、class CVRPModel(nn.Module):__init__(self, **model_params)函数功能函数代码 二、class CVRPModel(nn.Module):pre_forward(self, reset_state)函数功能函数代码 三、class CVRPModel(nn.Module):forward(self, state)函数功能函数代码 四、def _get_encodi…...
面试常问的压力测试问题
性能测试作为软件开发中的关键环节,确保系统在高负载下仍能高效运行。压力测试作为性能测试的重要类型,旨在通过施加超出正常负载的压力,观察系统在极端条件下的表现。面试中,相关问题常被问及,包括定义、重要性、与负…...
Python——365天学习规划
文章目录 1. 第一阶段:Python基础(Day 1-60) 1.1 Week 1-2:基础语法 1.1.1 Day 1-3:变量、数据类型、运算符、输入输出 1.1.2 Day 4-7:条件语句(if-elif-else) 1.1.3 Day 8-14&…...
河南理工XCPC萌新选拔赛
A 树之荣荣 青梅熙熙 树之荣荣 青梅熙熙 这个题是一个经典的博弈问题。我们可以考虑一种情况,就是你每一次都会取一个。那么最后一个你肯定不能取。所以我们可以考虑减去一个后的值。判断它的和是奇数还是偶数即可。 int n; cin >> n;int s 0;for (int i 1;…...

这里主要讲了如果挑选训练数据集,后续的内容在
,等之后看到这里再补充笔记