第 1 课|极大似然、交叉熵与泛化

阅读提示:这是从聊天授课内容重构的课程讲义,不是原消息的逐字拷贝。建议先阅读概念动画,再跟随推导、数值算例和练习巩固知识。

学习问题

经验风险是在有限训练数据上近似总体风险;降低训练损失不自动保证泛化改善。

[[diagram:softmax]]

核心公式

\[H(p,q)=H(p)+KL(p||q); ∇_logits CE = softmax(logits)-onehot\]

数值例题

四个二分类标签 (1,1,1,0),常数概率模型预测正类概率 p,其 NLL=-(3/4)log p-(1/4)log(1-p)。令导数为零得到 p*=0.75。

推导、假设与边界

i.i.d. 条件样本的最大似然等价于最小化平均负对数似然;在 one-hot 分类中 NLL 等于交叉熵。Softmax CE 对 logits 为凸,对深层网络参数不一定凸。Hoeffding 型泛化界要求有界损失,不能不加条件直接用于无界 CE。

更细一步:Softmax 梯度为何如此简洁?

对真实类别 $y$,Logit 损失为:

\[\mathcal L(z)=-z_y+\log\sum_j e^{z_j}.\]

对任意 $z_k$ 求偏导:第一项贡献 $-\mathbf1[k=y]$,第二项由链式法则贡献 $e^{z_k}/\sum_j e^{z_j}=p_k$,所以:

\[\boxed{\frac{\partial\mathcal L}{\partial z_k}=p_k-\mathbf1[k=y].}\]

继续求导,Hessian 是 $\operatorname{diag}(p)-pp^\top$。对任意向量 $v$,有:

\[v^\top Hv=\sum_kp_kv_k^2-(\sum_kp_kv_k)^2=\mathrm{Var}_{Y\sim p}(v_Y)\geq0.\]

所以损失对 Logit 是凸的,但经深度网络 $z=f_\theta(x)$ 组合后,对全部网络参数通常不是凸函数。

泛化界的证明依赖什么假设?

设 $0\leq\ell\leq1$,数据独立同分布,假设空间包含有限个 $M$ 模型。固定模型上 Hoeffding 给出:

\[P(|R(h)-\hat R_N(h)|\geq\epsilon)\leq2e^{-2N\epsilon^2}.\]

对 $M$ 个模型用并集界:

\[P(\exists h:|R(h)-\hat R_N(h)|\geq\epsilon)\leq2Me^{-2N\epsilon^2}.\]

因此以至少 $1-\delta$ 的概率,所有模型同时有误差界 $\sqrt{\log(2M/\delta)/(2N)}$。注意标准 CE 为 $-\log p_y$,当 $p_y\to0$ 时无上界,因此不能不加额外假设将上述有界损失界直接应用于 CE。

从分类模型延伸到语言模型

对于序列 $x_1,\ldots,x_T$,概率链式法则:

\[q_\theta(x_{1:T})=\prod_{t=1}^Tq_\theta(x_t\mid x_{<t}).\]

因此序列 NLL 等于逐 Token 的负对数条件概率之和。这解释了为什么 LLM 预训练采用 token-level CE。它衡量概率建模能力,却与多步推理成功率、工具使用正确率等下游目标并不等价。

课后练习(暂不提供答案)

练习:三分类 logits=(log 2,0,log 3),标签是第二类,求 softmax、交叉熵及对三个 logits 的梯度。

后续学习

沿各门课 12 周知识树继续递进,必要时回顾本课基本概念。