问题与学习信号

假设要给相册自动标记猫、狗和鸟。拿到照片后,模型输出三个类别的分数,再选分数最高的类别。若任务改成“给照片写一句描述”,输出就变成一串词;若任务改成“让摄像头跟随动物”,输出还要控制下一次观测的位置。同一张图像,可以对应不同的学习问题。

任务定义

用 x∈Xx\in\mathcal X 表示一次预测的输入,y∈Yy\in\mathcal Y 表示希望得到的结果。X\mathcal X 和 Y\mathcal Y 分别是输入、输出的取值空间。模型记作 fθf_\theta,其中 θ\theta 是所有可学习参数,预测结果为 y^=fθ(x)\hat y=f_\theta(x)。帽子表示模型估计,方便与真实结果 yy 区分。

相册分类的输入可以是一张 32×3232\times32 的 RGB 图像,输出类别编号 y∈{0,1,2}y\in\{0,1,2\}。实际网络通常先输出 z∈R3z\in\mathbb R^3,再将分数转成概率。这里“照片”“浮点图像张量”“类别”“类别分数”各有位置:前两项是原始输入和计算表示,后两项是任务答案和模型的输出表示。

预测时的信息边界也属于任务定义。例如预测明天用电量,可以使用截至今天的负荷、日历和已发布天气预报。把明天实际温度放进输入,会让离线结果混入部署时拿不到的信息。按时间切分和避免泄漏的做法见数据与训练。

可以先写一份足够具体的任务约定:

项目 相册分类的教学设定
一条样本 一张只标注一个主类别的照片
可用输入 照片像素,不使用文件夹名中的类别文字
目标 猫、狗、鸟中的一个类别
训练信号 人工标注的类别编号
输出 三个 logits,推理时取最大值的位置
评价 未参与训练的照片上,预测类别与标注一致的比例
部署变化 夜景、模糊、不同相机的照片是否仍能识别

最后一项对应原树中的“新环境”。它要求评价数据覆盖预计遇到的变化,不能从训练误差直接推出结论。

输出类型

分类、回归、生成和决策分别约束输出的含义,但“预测”可以作为它们的上位描述。原树把这些词并列列出,写任务时应继续具体化。

任务 一个批次的典型输出 输出之后的操作
KK 类单标签分类 B×KB\times K 个分数 softmax 得到互斥类别概率,argmax 选类别
KK 标签多标签分类 B×KB\times K 个分数 每列独立 sigmoid,再分别设阈值
mm 个数的回归 B×mB\times m 按目标单位解释,例如温度或位置
长度为 TT 的文本建模 B×T×VB\times T\times V 个分数 每个位置对 VV 个 token 建立分布
图像语义分割 B×K×H×WB\times K\times H\times W 个分数 每个像素选择一个类别
离散动作决策 B×AB\times A 个策略分数或动作价值 从 AA 个动作中采样或选择

BB 是 batch 中的样本数,H,WH,W 是图像高宽,VV 是词表大小,AA 是动作数。任务可以同时包含多种输出,例如检测器既预测类别,又回归边界框。输出头和目标函数的匹配见损失函数。

生成模型需要描述输出分布。自回归文本生成按顺序使用

pθ(w1,…,wT)=∏t=1Tpθ(wt∣w<t),p_\theta(w_1,\ldots,w_T)=\prod_{t=1}^{T}p_\theta(w_t\mid w_{<t}),

其中 wtw_t 是第 tt 个 token,w<tw_{<t} 是已经出现的前缀。训练时可从现成文本取前缀和下一个词,生成时从当前分布选出一个词再加入前缀。Bengio 等人的语言模型用有限长度上下文学习这样的条件概率;更多生成方法见生成模型。

监督学习

监督数据写成 D={(xi,yi)}i=1N\mathcal D=\{(x_i,y_i)\}_{i=1}^{N},NN 是训练样本数。训练选择参数,使平均损失较小:

θ^=arg⁡min⁡θ1N∑i=1Nℓ(fθ(xi),yi).\hat\theta=\arg\min_\theta\frac1N\sum_{i=1}^{N}\ell(f_\theta(x_i),y_i).

ℓ\ell 把预测和目标的差异变成一个标量;arg⁡min⁡\arg\min 表示寻找使目标最小的参数。实际优化通常通过许多小批次更新得到近似解。分类可用交叉熵,回归可用平方误差。这种输入、标签、损失的组织方式可参见作者维护的 Dive into Deep Learning 导论。

例如三分类模型对一张“狗”的照片输出概率 p=(0.1,0.7,0.2)p=(0.1,0.7,0.2),类别顺序是猫、狗、鸟。单样本交叉熵为

ℓ=−log⁡p狗=−log⁡0.7≈0.3567.\ell=-\log p_{\text{狗}}=-\log0.7\approx0.3567.

这里取自然对数。如果更新后“狗”的概率变成 0.90.9,该样本损失变为 0.10540.1054。这个变化说明模型更符合这条标注;在其他照片上的效果要另测。

标签也可以来自已有记录或程序。例如以恒定规则计算出来的几何量为目标,仍能形成监督训练。区分学习范式时,需要看训练目标怎样产生以及数据怎样收集。

自监督学习

一段“今天 天气 很好”的文本可以构造出“今天”预测“天气”、“今天 天气”预测“很好”的训练对。目标来自原始序列,因而可以使用大量没有人工逐条标注的文本。遮住一部分图像再预测被遮住的部分,也使用了数据内部的监督信号。

另一种方法把同一张图像变换成两个视图。SimCLR 对图像 xx 独立抽取两次随机变换,得到 x~i=t(x)\tilde x_i=t(x) 和 x~j=t′(x)\tilde x_j=t'(x)。共享编码器 fθf_\theta 得到表示 hi,hjh_i,h_j,投影网络 gϕg_\phi 再产生用于对比损失的 zi,zjz_i,z_j。θ,ϕ\theta,\phi 分别是两部分的参数。

SimCLR 图 2:同一输入经两种增强、共享编码器和投影头得到用于对比的表示

图 1:摘自 Chen 等,SimCLR,ICML 2020,图 2。保留原图,裁去周围正文。从底部输入沿两条分支向上看,两次增强生成的是同源视图,ff 和 gg 在分支间共享参数。

设一个 batch 有两张原图,每张各增强两次,便得到四个视图。固定其中一个视图作为查询,另一个同源视图是正样本,来自另一张原图的两个视图是负样本。对比损失让模型在这些候选中找出同源视图。只有“让两条表示相同”的目标时,输出恒定向量就能满足要求;这里的候选竞争使不同原图也参与约束。SimCLR 训练后使用编码器表示 hh 做下游任务,投影头 gg 不参与其线性评价流程。论文第 2 节给出了采样、相似度与完整目标。

增强还规定了模型应忽略哪些变化:若类别依赖颜色,过强的颜色扰动可能删掉答案所需信息。训练目标来自数据,也仍要按任务选择。

无监督学习

没有外部标签的数据集可记为 D={xi}i=1N\mathcal D=\{x_i\}_{i=1}^{N}。聚类希望找到样本分组,密度估计希望拟合 pθ(x)p_\theta(x),降维希望用较少坐标保留所需结构。每种目标都需要一个具体的准则。

以一维两簇聚类为例,样本为 0,1,9,100,1,9,10。设簇中心为 μ1,μ2\mu_1,\mu_2,分组变量 ci∈{1,2}c_i\in\{1,2\},k-means 最小化

∑i=1N(xi−μci)2.\sum_{i=1}^{N}(x_i-\mu_{c_i})^2.

分为 {0,1}\{0,1\} 和 {9,10}\{9,10\} 时,中心分别是 0.5,9.50.5,9.5,平方误差总和为 4×0.25=14\times0.25=1。分组编号的语义需另行解释;换一下两个簇的编号,目标值不变。这个例子说明无监督学习也有可计算的目标,并且可以使用非神经网络方法。

自监督通常归入广义无监督学习,因为它不需要外部逐条标签;单独使用“自监督”这个名称,是为了说明目标通过遮盖、移位、增强等操作由数据构造。D2L 导论的无监督学习部分采用了这一关系。预训练后再接少量有标签数据,会形成预训练与微调的多阶段流程。

强化学习

让摄像头转向并持续跟随动物时,当前动作会改变下一帧图像。把时刻 tt 的状态记为 sts_t,动作记为 ata_t,环境返回奖励 rt+1r_{t+1} 和下一状态 st+1s_{t+1}。策略 πθ(a∣s)\pi_\theta(a\mid s) 给出状态下选择动作的概率,训练常以最大化期望折扣回报为目标:

J(θ)=Eτ∼πθ[∑t=0T−1γtrt+1].J(\theta)=\mathbb E_{\tau\sim\pi_\theta}\left[\sum_{t=0}^{T-1}\gamma^t r_{t+1}\right].

τ\tau 表示一次交互轨迹,TT 是轨迹长度,γ∈[0,1]\gamma\in[0,1] 是有限时域例子的折扣因子,E\mathbb E 表示对策略与环境产生的轨迹取平均。若三步奖励为 0,0,10,0,1,且 γ=0.9\gamma=0.9,起点的回报是 0.92=0.810.9^2=0.81。训练需要把最后的收益与之前的动作联系起来。

在只看到摄像头图像的任务中,真实状态可能不可直接观察;策略会使用观测或观测历史。交互数据随策略变化、延迟奖励如何分配,是这里新增的问题。可结合 D2L 的马尔可夫决策过程章节阅读,完整计算见强化学习。若只是对专家提供的“图像、动作”配对做拟合,则训练阶段是监督式模仿学习。

图像分类的任务约定

相册分类以一批 BB 张图像为输入,输出 B×3B\times3 个分数。人工标签是长度为 BB 的整数数组,训练最小化平均交叉熵。像素顺序、数据类型、数值范围和分数到概率的转换属于数据表示的约定;泛化误差由未参与训练的新照片估计。