魅力程序猿

  • 首页
  • Java
  • Android
  • APP
    • 扑克计分器
    • Video Wallpaper
  • 联系我
  • 关于我
  • 资助
道子
向阳而生
  1. 首页
  2. AI技术
  3. 正文

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

2026年6月16日 11点热度 0人点赞 0条评论

📰 来源: 博客园


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

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

更直接的原因是,前面我在做一个从零学习 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。

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

比如一篇技术博客,可以同


🔗 原文链接: 点击阅读原文

标签: AI 人工智能 技术博客
最后更新:2026年6月16日

daozi

这个人很懒,什么都没留下

点赞
< 上一篇

文章评论

您需要 登录 之后才可以评论
搜索
联系方式

QQ群:179730949
QQ群:114559024
欢迎您加入Android大家庭
本人QQ:136049925

赐我一丝安慰
给我一点鼓励

COPYRIGHT © 2023 魅力程序猿. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备15000477号