【机器学习】机器学习三大范式_监督无监督强化学习概览

文章目录

摘要:机器学习不是一种单一方法,而是一组让模型从数据或反馈中改进的范式。监督学习使用"输入 + 标准答案"训练模型,无监督学习在没有标签的数据中发现结构,强化学习让智能体通过奖励学习行动策略。现代大模型还大量依赖自监督学习:从文本本身构造训练信号,比如预测下一个 token。本文面向有开发基础但刚入门 AI 的读者,用任务直觉、数据形式、目标函数和小代码解释监督、无监督、自监督、强化学习的区别,并把它们和预训练、SFT、RLHF/DPO 这条大模型训练流程连接起来。

前置知识 :第 1-5 篇数学与优化基础

阅读时间 :约 60 分钟

代码环境:Python 3.10+,numpy >= 1.24

前置文章导读:

大模型必备数学_线性代数核心概念速览

大模型必备数学_概率论与信息论基础

大模型必备数学_微积分与梯度下降直觉理解

大模型必备数学_矩阵运算与向量空间

大模型必备数学_最优化理论基础

入门导读:先抓住主线

机器学习范式的区别,核心不在模型名字,而在训练信号从哪里来。

可以先用一句话记住:

text 复制代码
监督学习:有标准答案
无监督学习:没有标准答案,找数据结构
自监督学习:从数据本身构造答案
强化学习:没有固定答案,通过奖励反馈学习行为

例如:

  • 给图片和标签"猫/狗"训练分类器,是监督学习;
  • 把用户按行为自动分群,是无监督学习;
  • 让语言模型根据前文预测下一个 token,是自监督学习;
  • 让机器人通过奖励学会走路,是强化学习。

现代大模型训练会同时用到多种范式:预训练主要是自监督,SFT 是监督微调,RLHF/DPO 则引入偏好或奖励信号来对齐人类期望。

读完先达到这个程度就够了

  • 能区分监督、无监督、自监督、强化学习的数据形式;
  • 能知道分类、回归、聚类、表示学习分别属于什么思路;
  • 能理解大模型预训练为什么属于自监督;
  • 能解释 SFT 和 RLHF/DPO 在训练流程中的位置;
  • 能根据一个业务问题初步判断该用哪类学习方式。

带着这 3 个问题读

  1. 如果没有人工标签,模型还能学到东西吗?
  2. 大模型预训练为什么不是传统监督学习?
  3. 强化学习和"给模型打分再训练"有什么关系?

一、为什么要区分学习范式

开发者做传统软件时,通常是人写规则:

text 复制代码
if score > 60:
    pass
else:
    fail

机器学习不同。我们不是手写所有规则,而是给模型数据和目标,让模型从中学出规律。

但不同问题给模型的训练信号不同。

有些问题有明确答案:

text 复制代码
输入:邮件内容
答案:垃圾邮件 / 正常邮件

有些问题没有答案,只想发现结构:

text 复制代码
输入:用户行为数据
目标:自动分出不同用户群体

有些问题答案可以从数据本身构造:

text 复制代码
输入:我喜欢机器
答案:学习

有些问题没有固定答案,只能通过行动结果评分:

text 复制代码
动作:下棋落子
奖励:赢棋 +1,输棋 -1

这就是范式区分的意义:训练信号不同,模型目标、数据准备、评估方式和工程风险都不同。


二、监督学习:给模型输入和标准答案

监督学习的数据形式是:

text 复制代码
(x, y)

其中 x 是输入,y 是标签或目标值。

常见任务:

任务 输入 x 标签 y
图片分类 图片 猫/狗/车
垃圾邮件识别 邮件文本 垃圾/正常
房价预测 面积、城市、楼层 房价
情感分析 评论文本 正面/负面
语音识别 音频 转写文本

监督学习又常分为分类和回归。

分类

输出是离散类别。

text 复制代码
这条评论是正面还是负面?

回归

输出是连续数值。

text 复制代码
这套房子大概多少钱?

监督学习的关键是标签质量。标签错了,模型会学错;标签偏了,模型会继承偏见;标签太少,模型容易过拟合。


三、一个最小监督学习例子

下面用 NumPy 写一个非常简化的二分类训练。

任务:输入一个数,大于 0 判为 1,小于 0 判为 0。

python 复制代码
import numpy as np

np.random.seed(0)

x = np.random.randn(100, 1)
y = (x[:, 0] > 0).astype(float).reshape(-1, 1)

w = np.random.randn(1, 1) * 0.1
b = np.zeros((1,))


def sigmoid(z):
    return 1 / (1 + np.exp(-z))

lr = 0.5

for step in range(200):
    logits = x @ w + b
    pred = sigmoid(logits)

    loss = -np.mean(y * np.log(pred + 1e-8) + (1 - y) * np.log(1 - pred + 1e-8))

    dlogits = (pred - y) / len(x)
    dw = x.T @ dlogits
    db = dlogits.sum(axis=0)

    w -= lr * dw
    b -= lr * db

    if step % 50 == 0:
        acc = ((pred > 0.5) == y).mean()
        print(step, loss, acc)

这段代码展示了监督学习的核心:

text 复制代码
输入 x
标签 y
预测 pred
loss 衡量 pred 和 y 的差距
梯度更新参数

大模型 SFT 也是监督学习的一种,只是输入输出变成了指令和理想回答。


四、无监督学习:没有标签,也能找结构

无监督学习没有人工标签。数据形式通常只有:

text 复制代码
x

目标不是预测标准答案,而是发现数据中的结构。

常见任务:

任务 目标
聚类 把相似样本分组
降维 用更低维表示保留主要信息
异常检测 找出和大多数样本不同的数据
主题发现 从文档集合中发现主题
表示学习 学到有用特征表示

例如电商用户行为数据中,没有人告诉你"这些人属于哪类用户"。但你可以根据购买频率、客单价、品类偏好,把用户自动分群。

无监督学习的难点是评估。没有标准答案时,怎么判断聚类好不好?这通常需要结合业务解释、人工检查、下游任务效果或稳定性分析。


五、一个简化 K-Means 例子

K-Means 是经典聚类算法。它做两件事:

  1. 把每个点分配给最近的中心;
  2. 用分到同一组的点更新中心。
python 复制代码
import numpy as np

np.random.seed(1)

points = np.vstack([
    np.random.randn(20, 2) + np.array([2, 2]),
    np.random.randn(20, 2) + np.array([-2, -2]),
])

centers = points[np.random.choice(len(points), size=2, replace=False)]

for step in range(10):
    distances = ((points[:, None, :] - centers[None, :, :]) ** 2).sum(axis=-1)
    labels = distances.argmin(axis=1)

    for k in range(2):
        centers[k] = points[labels == k].mean(axis=0)

print("centers:", centers)
print("labels:", labels[:10])

这里没有标签,模型只是根据点之间的距离发现两个簇。

这和监督分类不同:分类知道"正确类别",聚类只是发现"相似样本"。


六、自监督学习:从数据本身构造标签

自监督学习经常被单独拿出来讲,因为它是现代大模型预训练的关键。

它没有人工标签,但会从数据本身构造训练目标。

语言模型的 next-token prediction 就是典型例子:

text 复制代码
文本:我 喜欢 机器 学习
输入:我 喜欢 机器
标签:学习

标签"学习"不是人工标注的,而是原文本中本来就存在的下一个 token。

BERT 的 MLM 也是自监督:

text 复制代码
输入:我 喜欢 [MASK] 学习
标签:机器

自监督学习的优势是可以利用海量未标注数据。互联网文本、代码、网页、论文、问答记录都可以变成训练信号。

这就是大模型能扩大规模的关键:人工标注数据有限,但未标注文本几乎无穷。


七、自监督和监督学习有什么区别

两者都有"输入"和"目标",但目标来源不同。

范式 目标从哪里来 示例
监督学习 人工标签或业务标签 图片 -> 猫/狗
自监督学习 数据自身构造 前文 -> 下一个 token

大模型预训练通常不是让人给每句话标标签,而是让模型在海量文本上预测缺失部分或下一个 token。

这也是为什么预训练可以扩展到万亿 token 级别。

不过,自监督模型学到的是"文本分布中的模式",不等于自动学会"听人指令"。所以还需要 SFT、偏好对齐和安全训练。


八、强化学习:通过奖励学习行为

强化学习的数据形式不同。它关心智能体和环境交互。

核心元素:

概念 含义
Agent 做决策的智能体
Environment 环境
State 当前状态
Action 可选动作
Reward 动作后得到的奖励
Policy 从状态到动作的策略

强化学习目标是最大化长期累计奖励。

例如下棋:

text 复制代码
状态:当前棋盘
动作:下一步走哪里
奖励:赢棋 +1,输棋 -1
策略:看到棋盘后选择动作

强化学习和监督学习的区别是:没有每一步的标准答案。很多时候,只有最终奖励。模型要探索哪些行动会带来更好结果。


九、一个最小多臂老虎机例子

多臂老虎机是强化学习最简单的例子之一。你有几台机器,每台中奖概率不同,但一开始不知道。目标是边尝试边找到收益最高的机器。

python 复制代码
import numpy as np

np.random.seed(0)
true_probs = [0.1, 0.5, 0.8]
counts = np.zeros(3)
values = np.zeros(3)

epsilon = 0.1

for step in range(1000):
    if np.random.rand() < epsilon:
        action = np.random.randint(3)
    else:
        action = np.argmax(values)

    reward = 1.0 if np.random.rand() < true_probs[action] else 0.0

    counts[action] += 1
    values[action] += (reward - values[action]) / counts[action]

print("estimated values:", values)
print("counts:", counts)

这里没有标准答案标签,只有试错得到的 reward。epsilon 控制探索:有时随机试试其他动作,避免过早锁死在错误选择上。

大模型 RLHF 比这个复杂得多,但"根据奖励优化策略"的核心思想相通。


十、预训练、SFT、RLHF 如何连起来

现代大模型训练流程可以粗略理解成三段。

1. 预训练:自监督学习

模型在海量文本上做 next-token prediction。

text 复制代码
输入:大量文本前缀
目标:预测下一个 token

模型学到语言、知识、代码、格式和一些推理模式。

2. SFT:监督微调

人工或高质量数据提供指令和理想回答。

text 复制代码
输入:用户指令
标签:理想回答

模型学会更像助手一样回答问题。

3. RLHF/DPO:偏好对齐

人类或模型对多个回答进行偏好比较。

text 复制代码
回答 A 比回答 B 更好

RLHF 会训练奖励模型并用强化学习优化策略。DPO 则用偏好数据直接优化模型,让被偏好的回答概率更高。

所以大模型不是只靠一种学习范式,而是多种范式组合。


十一、开发者该怎么判断用哪种范式

可以从数据和目标开始问。

你有输入和明确标签吗?

有,优先考虑监督学习。

text 复制代码
工单文本 -> 工单类型
用户特征 -> 是否流失
图片 -> 缺陷类别

你没有标签,只想发现结构吗?

考虑无监督学习。

text 复制代码
用户分群
异常检测
文档主题聚类

你有大量原始文本、代码或日志,可以构造预测任务吗?

考虑自监督学习或预训练/继续预训练。

text 复制代码
领域语料 -> 继续预训练语言模型
代码仓库 -> 代码模型训练

你的目标是行为策略,结果由奖励反馈决定吗?

考虑强化学习或偏好优化。

text 复制代码
游戏策略
机器人控制
对话偏好对齐
推荐策略优化

真实项目里,经常组合使用。例如 RAG 系统可能用自监督预训练的大模型、监督训练的 reranker、无监督聚类做数据分析,再用用户反馈优化排序策略。


十二、常见误区

误区 1:无监督学习就是没有目标。

不是。它没有人工标签,但仍然有优化目标,比如聚类距离、重构误差、对比学习损失。

误区 2:自监督学习和监督学习完全无关。

自监督也有"输入和目标",只是目标来自数据本身,而不是人工标注。

误区 3:强化学习就是让模型随机试错。

探索只是其中一部分。强化学习还要估计长期回报、优化策略,并平衡探索和利用。

误区 4:大模型预训练就是给模型喂知识库。

预训练的目标通常是预测 token,不是显式背知识库问答。知识是通过预测任务间接学到的。

误区 5:SFT 后模型就完全对齐人类。

SFT 让模型学习理想回答格式,但偏好、安全、拒答、事实性还需要额外对齐和评估。

误区 6:RLHF 等于传统强化学习的简单套用。

大模型 RLHF 有奖励模型、偏好数据、KL 约束等特殊设计,不能和游戏 RL 完全等同。


十三、你应该记住的最小心智模型

四种学习方式可以这样记:

text 复制代码
监督学习:人给答案,模型学映射
无监督学习:没人给答案,模型找结构
自监督学习:数据自己提供答案,模型学表示
强化学习:环境给奖励,模型学策略

大模型训练流程可以这样记:

text 复制代码
预训练:自监督,学通用模式
SFT:监督学习,学指令回答
RLHF/DPO:偏好/奖励优化,学人类偏好

这条线会贯穿后面的所有大模型内容。


总结

机器学习范式的核心差异在训练信号。监督学习依赖输入和标准答案,适合分类、回归、标注等任务;无监督学习没有标签,适合聚类、降维、异常检测和结构发现;自监督学习从数据本身构造目标,是大模型预训练的关键;强化学习通过奖励优化行为策略,适合需要交互和长期回报的任务,也影响了大模型对齐方法。

第一遍记住一句话:看一个学习问题,先问训练信号从哪里来,再决定用哪种范式。

大模型视角

后续专栏里,预训练、SFT、RLHF、DPO、RAG、Agent 都会反复出现这些范式。理解它们的区别后,你会更容易判断某个"大模型训练方法"到底是在做自监督、监督微调,还是偏好对齐。

下一篇

损失函数全解:从 MSE 到交叉熵 ------ 学习范式决定训练信号,损失函数把训练信号变成可优化的数字。下一篇看模型到底在最小化什么。

相关推荐
DO_Community1 小时前
多模型路由怎么选?2026 年 4 款主流方案对比
人工智能
CypressTel1 小时前
Google发布Gemini 3.7 Flash:企业为何要计算AI智能体的任务总成本——赛柏特AI快讯
人工智能
wujian83111 小时前
怎么用千问生成word文档:从「格式崩」到「一键过」,AI导出鸭打通最后半厘米
人工智能·ai·c#·word·豆包·deepseek·ai导出鸭
一拳不是超人1 小时前
DeepSeek Harness 为什么敢说"一切皆插件"?拆透 Cordis 引擎的五大核心机制
前端·人工智能·agent
安全指北针1 小时前
AI编程工具供应链安全实战:当你的AI编码助手成为跳板
人工智能·安全·ai编程
fo安方1 小时前
视频——工具——视频——ppt——AI生成ppt
人工智能·powerpoint
watersink1 小时前
机器学习最大熵模型max_entropy_model
人工智能·机器学习
IT_陈寒1 小时前
Python的GIL让我多写了500行代码
前端·人工智能·后端
迪康Defender1 小时前
AI 重构终端安全运营:智能分析中枢 AI Insight 模块架构与落地场景深度解析
运维·网络·人工智能·其他·安全·重构·架构