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

动手学深度学习第一章笔记:机器学习问题到底怎么分类

动手学深度学习第一章笔记:机器学习问题到底怎么分类

好家伙,

这次我把《动手学深度学习》第一章读完了。

先说一下,我为什么会突然翻这本书。

更直接的原因是,前面我在做一个从零学习 AI 的小项目。

写一个小项目去用,去学习ai(所谓干中学)

写到训练循环时,代码里开始出现这些东西:

_, loss = model(x, y)
loss.backward()
optimizer.step()
loss 到底是什么?
为什么 loss 低就代表模型预测得更好?
loss.backward() 到底在根据什么更新参数?

再具体一点,是为了看懂这行代码:

loss = F.cross_entropy(logits_for_loss, targets_for_loss)

这行代码背后其实是在回答:

模型预测下一个 token 错了多少?
这个“错了多少”的数字是怎么算出来的?

当时我一路追下去,就追到了:

logits
softmax
真实 token 的概率
-log(probability)
cross entropy loss

让我的codex老师给我解释,越解释越晕

所以我才去翻《动手学深度学习》。

为了理解

模型如何知道自己错了?
模型如何根据错误修改参数?

第一章它先把机器学习问题的大框架铺开了

机器学习到底在解决什么问题?
一个问题为什么叫监督学习?
回归和分类到底差在哪?
搜索、推荐、标注这些又算什么?
无监督学习和强化学习又和监督学习有什么区别?

我之前看这些词的时候,很容易把它们当成一堆名词背。

但读完第一章以后,我现在更愿意先问一个更朴素的问题:

模型训练的时候,到底拿到了什么反馈?
模型最后要输出什么东西?

这篇文章就按这个思路,把第一章里关于机器学习问题类型的部分整理一下。

机器学习任务类型

0.先说我的理解:机器学习不是先背模型名

以前我一听机器学习,脑子里会先冒出这些词:

线性回归
决策树
神经网络
Transformer
强化学习
聚类

这些当然都重要。

但如果一开始就背模型名,很容易乱。

因为真正写项目时,我们首先遇到的不是:

我要用什么模型?

而是:

我手里有什么数据?
我有没有标签?
我要预测的是一个数,一个类别,多个标签,还是一个排序?
模型预测错了以后,我怎么知道它错了?

这些问题回答清楚以后,模型选择才有意义。

所以我现在会先把机器学习问题拆成两层:

第一层:训练反馈是什么?
第二层:输出结果长什么样?

第一层决定它大概属于监督学习、无监督学习还是强化学习。

第二层决定它在监督学习里更像回归、分类、标注、搜索还是推荐。

1.监督学习:训练数据里有标准答案

《动手学深度学习》第一章里说,监督学习擅长在“给定输入特征”的情况下预测标签。

这句话看起来简单,但其实很关键。

监督学习最核心的结构是:

输入特征 -> 标签

比如:

房子的面积、卧室数量、位置 -> 房价
图片像素 -> 猫/狗
病人的检查指标 -> 是否有风险
文章内容 -> 文章标签

这里的“标签”,就是训练时给模型看的标准答案。

模型不是凭空学。

它是看了很多这样的样本:

输入 A -> 正确答案 A
输入 B -> 正确答案 B
输入 C -> 正确答案 C

然后慢慢学出一个规律。

以后来了一个新输入,模型就根据学到的规律给出预测。

所以监督学习的关键不是“模型多高级”,而是:

你有没有足够好的 输入-标签 数据。

这里也能解释为什么标注很贵。

因为很多时候数据本身没有天然标签。

比如图像分类:

一张图片是不是猫?
一张 CT 图像是不是癌症?
一段语音对应哪一句文字?

这些标签往往要人工标。

如果标签错了,模型就会被错误答案带偏。

所以监督学习里,数据质量经常比模型名字更重要。

2.回归:输出是一个数值

第一章讲回归时,用了房价预测的例子。

比如一个房子的特征是:

面积
卧室数量
浴室数量
到市中心距离

模型要预测的是:

这个房子大概多少钱?

这里的输出是一个数字。

这就是回归。

我现在对回归的记法很简单:

只要问题在问“多少”,大概率就是回归。

比如:

房价是多少?
电影评分是多少?
明天下雨量是多少?
病人住院时间是多少天?
接口平均响应时间是多少毫秒?

这些问题的答案不是“属于哪一类”,而是一个连续数值。

所以回归模型关心的是:

预测值和真实值差多少?

比如真实房价是 300 万,模型预测 310 万。

这不是完全错。

它是有误差。

回归问题通常就是希望这个误差越小越好。

3.分类:输出是一个类别

分类解决的是另一种问题:

这个东西属于哪一类?

比如:

图片是猫还是狗?
邮件是垃圾邮件还是正常邮件?
手写数字是 0 到 9 中的哪一个?
这个用户会不会流失?

这里模型输出的不是一个连续数值,而是一个类别。

如果只有两个类别,就是二分类。

比如:

是 / 否
猫 / 狗
有风险 / 无风险

如果有多个类别,就是多分类。

比如:

数字 0-9
新闻类别
商品类目
游戏装备类型

这里容易踩一个坑:

分类模型输出的往往不是直接“答案”,而是每个类别的概率。

比如猫狗分类:

猫: 0.9
狗: 0.1

我们通常取概率最大的类别作为答案。

但这不代表所有场景都应该这么干。

第一章里举了毒蘑菇的例子。

如果模型说:

这张图是毒蘑菇的概率只有 20%

按普通分类思路,好像可以判断“不是毒蘑菇”。

但现实里我们不会吃。

因为错一次的代价可能非常大。

所以分类问题不只是看准确率。

有时候还要看:

错判的代价是什么?
宁愿错杀还是宁愿放过?

这点在医疗、风控、安全场景里尤其重要。

4.标注问题:不一定只有一个标签

分类还有一个变体,叫标注问题,也可以理解成多标签分类。

普通分类常常默认:

一个输入只能属于一个类别。

比如一张手写数字图,它要么是 0,要么是 1,要么是 2。

但很多真实问题不是这样。

比如一篇技术博客,可以同时有多个标签:

机器学习
Python
深度学习
数据处理
工程实践

这些标签不是互斥的。

一篇文章可以既是机器学习,也是 Python,也是工程实践。

这就不是普通的“选一个类别”。

它更像:

从一堆候选标签里,选出所有适合的标签。

这也是我对标注问题的理解:

分类是选一个。
标注是可以选多个。

如果放到我自己的博客场景里,一篇文章可能同时被打上:

LLM
RAG
Agent
Docker
学习笔记

这就是一个很自然的多标签问题。

5.搜索和推荐:输出不是一个答案,而是一组排序结果

搜索和推荐这部分,我觉得是第一章里很容易被低估的内容。

因为它不像回归和分类那么“教科书式”。

但真实产品里,搜索和推荐非常常见。

搜索问题不是简单地问:

这个网页是否相关?

而是要问:

给定一个查询,哪些结果最应该排在前面?

比如用户搜:

Transformer 注意力机制

搜索系统可能找到 10000 篇文章。

真正重要的是:

哪 10 篇应该排在第一页?
它们的顺序应该怎么排?

所以搜索的输出不是单个类别,也不是单个数值。

它输出的是一个排序列表。

推荐系统也类似。

只不过搜索通常从用户主动输入 query 开始。

推荐通常是系统根据用户历史行为主动给出内容。

比如:

给这个用户推荐哪几本书?
给这个用户推荐哪些视频?
给这个玩家推荐哪些装备搭配?

推荐系统本质上也要给“用户-物品”打分,再取分数最高的一批。

这里最容易踩的坑是反馈循环。

比如系统越推荐某个商品,用户越可能看到它。

用户越可能看到它,它的数据越多。

数据越多,模型越觉得它值得推荐。

最后就可能出现:

被推荐的东西越来越容易继续被推荐。

所以推荐系统不是单纯预测问题。

它还会改变用户能看到什么,进而改变后续数据。

监督学习输出类型

6.无监督学习:没有标准答案,模型自己找结构

无监督学习和监督学习最大的区别是:

训练数据没有标签。

也就是说,我们只有输入,没有标准答案。

比如:

一堆用户行为数据
一堆文章
一堆图片
一堆商品

但没人告诉模型:

这个用户属于哪类人
这篇文章属于什么主题
这张图应该叫什么

这时候模型要自己找结构。

常见问题包括:

聚类: 把相似的数据分到一起
降维: 把高维数据压缩成更容易看的表示
异常检测: 找出和大多数样本不一样的点
表示学习: 学出更好用的数据表示

我现在会这样理解无监督学习:

监督学习是在学“答案”。
无监督学习是在学“结构”。

比如我们有一堆用户行为数据。

监督学习可能问:

这个用户会不会购买?

无监督学习可能问:

这些用户能不能自然分成几类?
哪些用户行为模式相似?

这两者不是谁更高级。

它们只是问题不同。

7.强化学习:不是给答案,而是给奖励

强化学习的反馈方式又不一样。

它通常不是一次性给模型一堆标准答案。

而是让智能体和环境互动。

可以先记这个结构:

智能体做动作
环境给反馈
智能体根据奖励调整策略

比如下棋。

模型每一步都要选动作。

但它不会在每一步都直接得到“这一步标准答案是什么”。

很多时候,它要等到一局结束以后,才知道赢了还是输了。

强化学习关心的是:

怎样选择一系列动作,让长期奖励最大?

这和监督学习差别很大。

监督学习像是在做题:

题目 -> 标准答案

强化学习更像是在玩游戏:

状态 -> 动作 -> 奖励 -> 新状态 -> 再动作

所以强化学习更适合这些场景:

游戏 AI
机器人控制
自动驾驶决策
资源调度
对话策略

这里的难点是:

当前动作的好坏,可能要很久以后才看得出来。

这就比普通分类复杂很多。

8.练习部分:我会怎么回答

第一章最后的练习,核心不是考公式。

它更像是在让我们确认:

能不能把现实问题翻译成机器学习问题。

我会按下面几个问题来做练习。

练习1:哪些问题可以用监督学习?

我的答案是:

只要训练数据里有输入和对应标签,就可以优先考虑监督学习。

比如:

输入: 房屋面积、位置、卧室数量
标签: 房价
任务: 回归输入: 图片
标签: 猫/狗/鸟
任务: 分类输入: 文章内容
标签: 技术、机器学习、Python
任务: 多标签分类

关键不是“这件事听起来像不像 AI”。

关键是:

有没有历史样本?
有没有正确答案?
答案是什么形式?

练习2:怎么区分回归和分类?

判断方法是:

问“多少” -> 回归
问“哪一个” -> 分类

比如:

预测明天温度是多少 -> 回归
预测明天是否下雨 -> 分类
预测电影评分是多少 -> 回归
预测电影属于哪个类型 -> 分类

但这里有个细节:

有些数值看起来像回归,实际可以被做成分类。

比如用户评分是 1 到 5 星。

你可以把它当成回归:

预测一个 1-5 之间的数。

也可以把它当成分类:

预测 1 星、2 星、3 星、4 星、5 星。

怎么选,取决于业务目标和损失设计。

练习3:搜索和推荐为什么不只是分类?

因为搜索和推荐真正关心的是排序。

搜索不是只判断:

这个网页是否相关?

而是要回答:

在所有相关网页里,哪个应该排第一?
哪个排第二?
哪个排第三?

推荐也是一样。

系统不只是判断:

用户喜不喜欢这个商品?

它还要从大量候选商品里选出一批,并按顺序展示。

所以搜索和推荐更像:

打分 + 排序 + 展示

这就是它们和普通分类的区别。

练习4:无监督学习能解决什么?

我的理解是:

当没有标签,但想从数据里发现结构时,就会用到无监督学习。

比如:

把用户分群
发现异常交易
把文章按主题聚类
把高维向量降到二维可视化

无监督学习不直接给标准答案。

它更像是在帮我们整理数据:

哪些东西相似?
哪些东西特殊?
数据背后有没有隐藏结构?

练习5:强化学习和监督学习最大的区别是什么?

监督学习是:

每个样本都有标准答案。

强化学习是:

智能体在环境里做动作,根据奖励学习策略。

所以两者最大的区别在反馈方式。

监督学习更像老师批改作业:

这题对,这题错。

强化学习更像玩游戏:

你做了一连串操作,最后赢了或输了。

奖励可能延迟出现。

这也是强化学习难的地方。

9.这一章我真正记住的东西

第一章看完以后,我觉得最重要的不是记住所有名词。

而是先建立这个判断顺序:

1. 数据里有没有标签?
2. 输出是数值、类别、多个标签,还是排序?
3. 模型的错误怎么衡量?
4. 这个系统会不会和用户或环境互动?
5. 反馈会不会反过来影响未来数据?

如果这些问题没想清楚,直接上模型很容易乱。

比如:

房价预测不是因为用了线性回归才叫回归。
而是因为它要预测一个连续数值,所以它适合用回归思路。

再比如:

推荐系统不是普通分类,因为它最终要输出排序,而且推荐结果还会影响用户后续行为。

这才是这一章真正想让我建立的感觉。

10.总结

所以这篇先记住一句话:

机器学习问题不是先按模型名分类,而是先按训练反馈和输出形式分类。

监督学习:

有标签,学输入到标签的映射。

回归:

输出数值,回答“多少”。

分类:

输出类别,回答“哪一个”。

标注:

输出多个不互斥的标签。

搜索和推荐:

输出排序结果,顺序很重要。

无监督学习:

没有标签,从数据里找结构。

强化学习:

没有直接标准答案,通过和环境互动拿奖励。

下一篇我准备继续往下看:

数据、模型、目标函数、优化算法这几个关键组件到底怎么串起来。

因为这些东西一旦串起来,后面再看线性回归、softmax 回归、神经网络,就不会只是在背公式了。

参考资料

这篇文章主要参考第一章中“各种机器学习问题”的内容,包括监督学习、回归、分类、标记问题、搜索、推荐系统、无监督学习和强化学习。这里引用它,是为了说明这些任务分类不是我自己造的,而是机器学习入门时很基础的一套问题划分方式。

  • 《动手学深度学习》第二版:1. 引言
http://www.zskr.cn/news/1531392.html

相关文章:

  • 2026重庆市江北区家里卫生间漏水、阳台漏水、楼顶漏水、阳台漏水、地下室渗水、阳光房漏水各种房屋漏水情况不用愁!全屋各类渗水问题正规服务商盘点 - 防水百科
  • FlexRay控制器寄存器深度解析:网络管理、定时器与FIFO配置实战
  • WPF DataGrid中的ToggleButton绑定详解
  • 老漏洞新思路:手把手复现CVE-2014-8959,看phpMyAdmin文件包含如何绕过二次编码检查
  • 重新定义播放控制:VLC点击暂停插件的革命性交互体验
  • 2026重庆市沙坪坝区家里卫生间漏水、阳台漏水、楼顶漏水、阳台漏水、地下室渗水、阳光房漏水各种房屋漏水情况不用愁!全屋各类渗水问题正规服务商盘点 - 防水百科
  • 组件库文档自动生成:从源码注解到交互式文档,设计系统的知识传递闭环
  • 深入解析MPC8555E SEC 2.0硬件安全引擎:加密通道与控制器工作机制
  • i.MX平台核心外设驱动实战:FEC、FlexCAN、I2C与PCIe深度解析
  • 2026天津市蓟州区家里卫生间漏水、阳台漏水、楼顶漏水、阳台漏水、地下室渗水、阳光房漏水各种房屋漏水情况不用愁!全屋各类渗水问题正规服务商盘点 - 防水百科
  • i.MX嵌入式图形与视频子系统深度解析:Weston、X11加速与V4L2实战指南
  • 立创梁山派GD32F450开发板开箱第一步:保姆级KEIL5.37+AC5编译器环境搭建全流程
  • 2026年十大大模型API中转平台深度测评:谁在定义企业级调度的新基准?
  • 终极Boot Camp驱动自动化:一键解决Mac Windows驱动安装难题
  • 终极OBS多平台直播指南:如何一键同步推流到YouTube、Twitch、B站
  • Claude Code 从零安装完整教程:CLI、登录、卸载和第一次启动
  • 华为S5720LI升级后Web登录失败?手把手教你配置AAA用户和HTTPS服务(附报错解决方案)
  • Bilibili-Evolved终极性能优化:从60fps卡顿到流畅播放的完整指南
  • 2026天津市宝坻区家里卫生间漏水、阳台漏水、楼顶漏水、阳台漏水、地下室渗水、阳光房漏水各种房屋漏水情况不用愁!全屋各类渗水问题正规服务商盘点 - 防水百科
  • 从一次失败的项目立项复盘说起:我是怎么用投资回收期分析“避坑”的
  • 注销公告登报怎么线上办理?指南分享来了 - 信息热点
  • 2026汕头海鲜推荐长平肥姐,外地游客打卡攻略 - 信息热点
  • STL-Volume-Model-Calculator终极指南:3D打印材料成本估算的完整解决方案
  • 2026锦州卫生间免砸砖防水、楼顶漏水、外墙渗水、地下室阳光房渗漏;专业防水公司为您排忧解难,线上质保,售后无忧。房屋漏水不再愁,24小时一站式快速维修。 - 企业资讯
  • 2026年深圳购买雷克萨斯RX300骏享版哪家店不强制装潢?售后保养、维修质保、二手车置换一站式对比 - 信息热点
  • FOG Project终极指南:如何免费实现企业级计算机批量部署
  • 嵌入式系统内存映射:多主控访问隔离与交叉开关并行架构解析
  • 深圳犬舍横向测评|铭诚优宠凭双证合规,完胜行业乱象 - 信息热点
  • 矩阵树定理
  • 工业电加热器领域发展分析与核心厂商观察 - 信息热点