😀 这里写文章的前言:
机器学习三大范式(监督/无监督/强化)与深度网络的关系;回归 vs 分类;输入类型(表格、序列、图像、图结构);模型作为函数族 + 训练数据选择具体函数;生成模型与潜变量

📝 机器学习的三大范式与深度网络关系

核心关系

深度神经网络是目前最强大、最实用的一类机器学习模型。将深度网络应用到数据上的过程称为深度学习。深度网络并非三大范式本身,而是实现这三大范式的核心工具/模型家族。三大范式定义了“学什么、如何学”的问题类型和目标,而深度网络提供了强大的函数逼近能力,使这些范式在复杂、高维、结构化数据上取得当前最佳性能。

  • 监督学习:深度网络学习从输入 x 到输出 y 的映射 y=f[x,ϕ]。
  • 无监督学习:深度网络学习数据的内在结构或概率分布(生成模型)。
  • 强化学习:深度网络常被用来表示策略(从状态到动作的映射)或价值函数。

三大范式是否可以通过深度网络实现?

是的,完全可以,而且目前最前沿的实现几乎都依赖深度网络。

具体说明如下:

(1)监督学习

  • 定义:从带标签的输入-输出对中学习映射关系。
  • 深度网络实现方式
    • 网络作为函数 f[x,ϕ],参数 ϕ 通过最小化损失函数(如平方损失、交叉熵)来训练。
    • 可处理回归(连续输出)、分类(概率输出)、结构化输出(语义分割、深度估计、翻译、图像生成描述等)。
    • 优势:能处理高维、变长、具有内部结构的输入(图像、文本、音频、分子图等),并输出同样复杂的结构。
  • 书中例子:房价预测、情感分类、音乐类型识别、图像物体分类、语义分割、单目深度估计、语音转文字、机器翻译、文本生成图像等。

(2)无监督学习

  • 定义:只有输入数据,没有对应输出标签。目标是描述或理解数据的结构(而非学习映射)。
  • 深度网络实现方式(重点是生成式模型):
    • 学习合成与训练数据在统计上难以区分的新样本。
    • 一些模型直接建模数据的概率分布并从中采样;另一些只学习生成机制。
    • 常引入潜变量(latent variables)来捕捉数据的低维本质结构(例如人脸表情可用约42个肌肉参数近似描述)。
    • 条件生成:在部分约束下生成(图像修复、文本补全等)。
  • 书中例子:逼真的猫/建筑图像生成、短篇故事合成、图像修复、文本续写(如GPT系列)。

(3)强化学习

  • 定义:智能体(agent)在环境中执行动作,改变状态并获得奖励。目标是学习能最大化长期累积奖励的策略。存在时间信用分配问题(奖励延迟)以及探索-利用权衡。
  • 深度网络实现方式
    • 最常见的是策略网络:深度网络直接将观察到的状态映射到动作(或动作分布)。
    • 也可用于近似价值函数(状态价值或动作价值)。
  • 书中例子:
    • 类人机器人行走:从传感器状态到关节动作的映射。
    • 下棋:从棋盘状态到走法选择的映射。

回归和分类

回归

定义:

回归问题的目标是预测连续数值(或一组连续数值)。模型输出的是实数,而不是离散的类别标签。

  • 单变量回归:输出一个连续数值。
  • 多变量回归:输出多个连续数值。

直观理解:
把模型想象成一条(或一组)曲线/函数,它根据输入计算出一个“多少”的量。

案例 输入 输出 类型 说明
房价预测 房屋特征(面积、卧室数量等)组成的固定长度向量 房价(一个连续数字) 单变量回归 最经典的例子。模型返回的是一个实数,而不是“便宜/贵”这类类别。
分子性质预测 分子的化学结构(原子及连接方式) 熔点 + 沸点(两个连续数字) 多变量回归 同时预测多个连续数值。
单目深度估计(结构化输出) RGB 图像 每个像素的深度值(连续数值矩阵) 多变量/结构化回归 输出是一张“深度图”,每个像素都是一个连续的深度数字。

分类

定义:

分类问题的目标是把输入分配到离散的类别中。模型通常输出每个类别的概率,然后取概率最高的类别作为最终预测。

  • 二元分类(Binary Classification):只有两个类别(是/否、正面/负面、猫/狗等)。
  • 多类别分类(Multi-class Classification):有三个或以上的互斥类别。

直观理解:

把模型想象成一个“投票器”或“概率分配器”,它告诉你输入更像哪一类。

案例 输入 输出 类型 说明
餐厅评论情感分析 评论文本字符串 正面 or 负面(两个概率) 二元分类 输出是一个长度为 2 的概率向量,例如 [0.12, 0.88] 表示 88% 概率是负面。
音乐类型识别 音频片段 N 种音乐类型中的一种(N 个概率) 多类别分类 模型返回大小为 N 的概率向量,表示属于每种类型的可能性。
图像物体分类 图片(像素 RGB 值) N 种物体中的一种(N 个概率) 多类别分类 经典 ImageNet 风格任务。
语义分割(结构化输出) RGB 图像 每个像素属于“牛”还是“背景”(每个像素做一次二元分类) 多变量二元分类 / 结构化分类 输出是一张与输入同样大小的标签图。

回归 vs 分类 的核心对比

对比维度 回归(Regression) 分类(Classification)
输出类型 连续数值 离散类别(或类别概率)
典型问题问法 “是多少?” “是哪一类?”
模型输出示例 房价 = 325.6 万元 正面概率 0.15,负面概率 0.85
常用损失 平方损失、MAE 交叉熵损失
决策方式 直接使用预测的数值 通常取概率最大的类别
代表例子 房价预测、分子熔点沸点 评论情感、音乐类型、图像物体分类

数据处理

现实世界的输入(文本、音频、图像、分子等)必须先被转换成数字向量,模型才能接受并处理。不同输入类型的结构差异很大,处理方式也因此不同。

表格数据

特点

  • 固定长度的特征向量
  • 没有内在结构(改变特征顺序,模型预期结果不变)
  • 典型例子:房屋特征(面积、卧室数、楼层、位置编码等)

处理方式

  • 直接把每个特征变成一个数字
  • 类别特征需要编码(One-hot 或 Embedding)
  • 数值特征通常做标准化/归一化(让数值在相似范围)

处理后的效果示例
假设预测房价,原始数据:

text

面积: 120㎡, 卧室: 3, 楼层: 8, 是否学区: 是

处理后变成固定长度向量:

text

[120.0, 3.0, 8.0, 1.0]          # 或标准化后 [0.85, 0.6, 0.4, 1.0]

模型直接接收这个向量。

文本数据(Text)

特点

  • 长度不固定
  • 顺序非常重要(“我的妻子吃了鸡肉” ≠ “鸡肉吃了我的妻子”)
  • 必须先编码成数字

处理方式(书中举例 + 现代常用方法)

  1. 分词(Tokenization):把句子拆成词或子词
  2. 建立词汇表:固定大小(书中例子用 10,000 个词)
  3. 转换成索引序列:每个词对应一个整数 ID
  4. 现代方法会进一步用 Embedding 层把索引变成稠密向量,或直接用 Transformer 的 tokenizer(如 BPE)

处理后的效果示例
原始文本:

text

"这家餐厅的服务很好"

处理后(简单索引方式,书中例子):

text

[4521, 89, 3302, 17, 908]     # 每个数字是词汇表中的索引

或经过 Embedding 后变成矩阵(每个词变成一个向量):

text

[[0.12, -0.45, 0.78, ...],    # “这家”的向量
[0.33, 0.21, -0.09, ...], # “餐厅”的向量
... ]

长度会不同,实际训练时常做 padding(补零)或截断,变成固定长度

🤗 总结归纳

总结文章的内容

📎 参考文章

  • 一些引用
  • 引用文章

💡 有关文章的问题,欢迎您在底部评论区留言,一起交流~