Vince Jiang

CSCI3230 / 课程伴读 · 本站更新

CSCI3230 L03 · Part 5/5 ESTR3108:凸性与解析解

课程:CSCI3230 (ESTR3108) Fundamentals of Artificial Intelligence · 2026T1 本讲:L03,第 5 部分 / 共 5 部分 · 原件 L03-Logistic-Regression-2026T1.pdf(本地课件) p.56–68 定位:逐步算出交叉熵梯度和 Hessian,用二次型证明凸性,并说明凸性不等于有简单解析解。 前后:上一份 Summary

范围先说明:p.56 明确写 ESTR3108,p.57 列出凸性与解析解两个问题。本篇是该拓展段的慢讲,不把 Hessian 证明冒充 CSCI3230 首次学习逻辑回归的必要门槛。若尚不能用概率残差手算更新,请先回主线。

本篇前置是链式法则、向量点积与矩阵乘法。第一次读只需理解证明路线:先对损失求一次导数,再求第二次,最后说明沿任何方向都不会向下弯。 不必一开始记住最终矩阵。

凸性必须针对参数(p.58–60)【延伸 L02 p.26–28】

p.58 为一条样本的正类概率取简写 gi(θ)g_i(\theta)。本篇去掉样本下标先看一条:输入 x∈Rdx\in\mathbb R^d 固定,标签 yy 为0或1,参数 θ∈Rd\theta\in\mathbb R^d 是我们移动的变量,z=xTθz=x^T\theta 是标量分数,g=σ(z)g=\sigma(z) 是标量概率。损失是

E(θ)=−yln⁡g−(1−y)ln⁡(1−g). E(\theta)=-y\ln g-(1-y)\ln(1-g).

这不是五个互相独立的变量:参数变→分数变→概率变→损失变。只看损失对概率的曲线,还没有检查参数到概率这一层,因此 p.59–60 需要对参数谈凸性。

p.59 的定义可以先用数值理解。补充:取一维函数 f(a)=a2f(a)=a^2,两个位置0和2,中点为1。两端高度的平均是 (0+4)/2=2(0+4)/2=2,真实中点高度是1,不超过连线高度。凸性要求任意两点和任意中间比例都如此,不只是这个例子。

f(tθ1+(1−t)θ2)≤tf(θ1)+(1−t)f(θ2),0≤t≤1. f(t\theta_1+(1-t)\theta_2)\le tf(\theta_1)+(1-t)f(\theta_2),\quad0\le t\le1.

tt 是混合比例;左边先混合位置再算高度,右边先算两端高度再混合。初学时先辨这两个计算次序,比“背不等号方向”更可靠。

p.60 给二阶判断:一维看二阶导是否非负,多维看 Hessian 是否半正定。Hessian 记 HH,第 j,kj,k 项是先对参数 θj\theta_j 再对 θk\theta_k 求导的结果,是 d×dd\times d 矩阵。半正定不是矩阵每个元素都非负,而是对每个方向向量 vv 都有 vTHv≥0v^THv\ge0。它检查沿任意方向的二阶弯曲,不是检查表格里的符号。

**图(p.59):凸性不等式的两个高度。**元素:紫色曲线经过左右端点;黑虚线连接两端函数值;同一中间横坐标有上、下两个空心标记,上点在线段上、下点在曲线上。看什么:上点是 tf(θ1)+(1−t)f(θ2)tf(\theta_1)+(1-t)f(\theta_2),下点是 f(tθ1+(1−t)θ2)f(t\theta_1+(1-t)\theta_2);不等号要求曲线不高于弦,而不是把左右两端的横坐标大小进行比较。p.60 二阶判据要求在整个所论区间/凸定义域内成立,不能只检查一个点的 Hessian。

链式法则中的两项恰好约掉(p.61–63)

先做两段求导,再相乘,避免在一个长式子里丢负号。p.61 先暂时把概率 gg 看作直接变量。yy 是已知标签,求导时当常数:

∂E∂g=−yg+1−y1−g=−y(1−g)+(1−y)gg(1−g)=−y+yg+g−ygg(1−g)=g−yg(1−g). \begin{aligned} \frac{\partial E}{\partial g}&=-\frac{y}{g}+\frac{1-y}{1-g}\\ &=\frac{-y(1-g)+(1-y)g}{g(1-g)}\\ &=\frac{-y+yg+g-yg}{g(1-g)}\\ &=\frac{g-y}{g(1-g)}. \end{aligned}

第二项为何是加号?损失前面一个负号,ln⁡(1−g)\ln(1-g) 求导又带一个−1,负负得正。通分后的 ygyg 与 −yg-yg 才能相消,不能尚未通分就随意约。

p.62 再求概率对参数的导数。先求 sigmoid 对分数的导数:

dgdz=ddz(1+e−z)−1=−(1+e−z)−2(−e−z)=e−z(1+e−z)2=g(1−g). \begin{aligned} \frac{dg}{dz}&=\frac{d}{dz}(1+e^{-z})^{-1}\\ &=-(1+e^{-z})^{-2}(-e^{-z})\\ &=\frac{e^{-z}}{(1+e^{-z})^2}=g(1-g). \end{aligned}

这里一次负号来自负一次幂求导,另一次来自 e−ze^{-z} 的内部−z。又因为 z=∑jxjθjz=\sum_jx_j\theta_j,对第 jj 个参数求导就是 xjx_j,所以 ∂g/∂θj=g(1−g)xj\partial g/\partial\theta_j=g(1-g)x_j。

p.63 合并两段:损失随概率的变化率,乘概率随参数的变化率:

∂E∂θj=g−yg(1−g) g(1−g)xj=(g−y)xj. \frac{\partial E}{\partial\theta_j}=\frac{g-y}{g(1-g)}\,g(1-g)x_j=(g-y)x_j.

因此整个梯度是 (g−y)x(g-y)x,维数与参数相同。有限参数下 0<g<10<g<1,约去的 g(1−g)g(1-g) 非零,这个条件别漏掉。

补充·数字检验:取 x=(1,2)Tx=(1,2)^T、θ=(0,0)T\theta=(0,0)^T、y=1y=1,则 g=0.5g=0.5。先看损失对概率的导数是−2,再看概率对两个参数的导数是 (0.25,0.5)T(0.25,0.5)^T,相乘得 (−0.5,−1)T(-0.5,-1)^T。直接用残差−0.5乘 xx,得到同一个结果。链式法则不是形式游戏,而是把两段影响连起来。

三层关系的集中复述见见附录 A1。到这里先停一下:只要能说明为何只剩概率残差乘特征,第一阶部分就已理解。

Hessian 是加权外积(p.64–66)【新】

p.64 再对第 jj 个梯度分量 (g−y)xj(g-y)x_j 求第 kk 个参数的导数。特征 xjx_j 和标签 yy 都固定,只有 gg 随参数变,因此

Hjk=xj∂g∂θk=g(1−g)xjxk. H_{jk}=x_j\frac{\partial g}{\partial\theta_k}=g(1-g)x_jx_k.

把各项排进矩阵,p.65 得到

H=g(1−g)xxT. H=g(1-g)xx^T.

xx 是列,xTx^T 是行,故 xxTxx^T 是 d×dd\times d 的外积。别写成 xTxx^Tx,后者只是一个标量。用上一节数字,g(1−g)=1/4g(1-g)=1/4,所以

H=14(1224)=(0.250.50.51). H=\frac14\begin{pmatrix}1&2\\2&4\end{pmatrix} =\begin{pmatrix}0.25&0.5\\0.5&1\end{pmatrix}.

p.66 证明半正定。不用逐个找特征值,只需给任意方向 vv,计算二次型:

vTHv=g(1−g)vTxxTv=g(1−g)(xTv)2≥0. v^THv=g(1-g)v^Txx^Tv=g(1-g)(x^Tv)^2\ge0.

最后一步的理由分两件事:g(1−g)>0g(1-g)>0,实数的平方非负;两者乘积非负。xTvx^Tv 是一个标量,因此其平方没有“矩阵怎么平方”的歧义。

补充·为什么只说半正定:在上例取 v=(2,−1)Tv=(2,-1)^T,点积 xTv=2−2=0x^Tv=2-2=0,所以非零方向上二次型仍可为0。沿此方向移动参数不改变该样本分数,单个样本不能约束所有参数方向。若用一个特征正、另一个负,外积还会出现负的非对角元素,但依然半正定;元素符号不是判据。

小检查:已知 g(1−g)>0g(1-g)>0,能否立即说 HH 正定、最优参数唯一?

参考答案

不能。还需外积在任何非零方向都给正值,而单样本外积一般有零方向。总数据的列秩、是否存在有限解等条件还要另查。凸性本身也不保证唯一性。

求和保持凸,但零梯度方程仍非线性(p.67–68)

p.67 将各样本凸性不等式逐项相加。每条不等式方向相同,相加后左边就是总损失在中间参数处的值,右边就是端点总损失的加权平均,所以总损失凸。也可以相加 Hessian:

Htotal=∑i=1mgi(1−gi)xixiT. H_{\mathrm{total}}=\sum_{i=1}^{m}g_i(1-g_i)x_ix_i^T.

任意 vv 下的二次型是很多个非负数相加,因此仍非负。这并不要求每条数据有一样的概率。

**p.67 原来的不等式证明:**对每个样本 ii,先用已证凸性写

Ei(tθ1+(1−t)θ2)≤tEi(θ1)+(1−t)Ei(θ2). E_i(t\theta_1+(1-t)\theta_2) \le tE_i(\theta_1)+(1-t)E_i(\theta_2).

对所有 ii 相加,常数 tt 与 1−t1-t 可提出求和号:

∑iEi(tθ1+(1−t)θ2)≤t∑iEi(θ1)+(1−t)∑iEi(θ2),E(tθ1+(1−t)θ2)≤tE(θ1)+(1−t)E(θ2). \begin{aligned} \sum_i E_i(t\theta_1+(1-t)\theta_2) &\le t\sum_iE_i(\theta_1)+(1-t)\sum_iE_i(\theta_2),\\ E(t\theta_1+(1-t)\theta_2) &\le tE(\theta_1)+(1-t)E(\theta_2). \end{aligned}

最后一行恰好是总损失的凸性定义,完成从一条样本到整份训练集的论证。下面 Hessian 求和是同结论的核验表达,不代替原页方法。

若已熟悉矩阵,令 XX 每行是一个样本的特征转置,形状 m×dm\times d;令 WW 是 m×mm\times m 对角矩阵,第 ii 个对角元素为 gi(1−gi)g_i(1-g_i)。那么同一个总Hessian可压缩成 Htotal=XTWXH_{\mathrm{total}}=X^TWX,形状 (d×m)(m×m)(m×d)=d×d(d\times m)(m\times m)(m\times d)=d\times d。展开矩阵乘法就是前面的逐样本加权外积,没有新增一个假设。

p.68 问能否像最小二乘一样由零梯度直接求参数。零梯度条件为

∑i=1m(σ(xiTθ)−yi)xi=0. \sum_{i=1}^{m}(\sigma(x_i^T\theta)-y_i)x_i=0.

参数在 sigmoid 的指数内部,不能当常数移到求和号外,再套正规方程。凸性让我们了解优化形状,并没有把这个方程变成线性方程;因此一般依靠数值迭代。

补充·有限最优值的边界:只有一条 x=1,y=1x=1,y=1 的数据时,损失为 ln⁡(1+e−θ)\ln(1+e^{-\theta})。θ\theta 越大损失越接近0,但任何有限 θ\theta 损失仍大于0。它是凸函数,却没有有限参数达到最小值。这个小例子解释为何“凸”不能推出“梯度下降必然停在一个有限最优参数”;可分数据的无正则逻辑回归也要注意这类现象。

把这条补充数据再配上一条 (x,y)=(−1,0)(x,y)=(-1,0),仍不设截距,两条都由正参数正确分开。总损失变成 2ln⁡(1+e−θ)2\ln(1+e^{-\theta}):参数从1变成10,两条都早已分对,但损失仍持续降低,仍只有趋向0的下界而无有限参数取到它。这个两点版本更清楚地说明“所有标签分对”和“交叉熵有有限最小点”不同。

补充 · 严格凸也不保证有限位置上取得最小值(通识讲解;演示数据不属于原题)。

先区分“如果有最小点,是否唯一”和“最小点是否存在”。取一维演示数据 (x,y)=(1,1),(−1,0)(x,y)=(1,1),(-1,0),无截距、无正则化,参数为 ww。两点都被越来越大的正 ww 越来越自信地判对,总交叉熵为

J(w)=2ln⁡(1+e−w),J′(w)=−21+ew<0. J(w)=2\ln(1+e^{-w}),\qquad J'(w)=-\frac{2}{1+e^w}<0.

任何有限 ww 下,损失都正且还能继续下降;w→+∞w\to+\infty 时损失趋近 0,却没有一个有限参数使它等于 0。二阶导为 2ew/(1+ew)2>02e^w/(1+e^w)^2>0,所以这是严格凸函数,仍然没有有限最小点。这里零是下确界,即可以无限接近的下界,不是实际达到的最小值。

这解释了可分数据上无正则逻辑回归可能出现“分类早已全对,参数却还在长大”。看到该现象不能立刻断言梯度程序写错。实际有限步训练、正则化和停止条件会改变结果;它们不是原无约束问题自动附送的保证。本段属于 ESTR 条件辨析,不增加主课的证明要求。

补充:把“任意方向”真的写成两个坐标

自编两样本扩展,取 x1=(1,0)T,x2=(1,1)Tx_1=(1,0)^T,x_2=(1,1)^T,在 θ=(0,0)T\theta=(0,0)^T 时,两条概率均为1/2。不论两条标签如何,总Hessian在这个位置都是

H=14((1000)+(1111))=14(2111). H=\frac14\left(\begin{pmatrix}1&0\\0&0\end{pmatrix}+\begin{pmatrix}1&1\\1&1\end{pmatrix}\right) =\frac14\begin{pmatrix}2&1\\1&1\end{pmatrix}.

任取 v=(a,b)Tv=(a,b)^T,二次型为 (a2+(a+b)2)/4(a^2+(a+b)^2)/4。要等于0,两个平方都须零,先有 a=0a=0,再有 a+b=0a+b=0,所以 b=0b=0。因此任何非零方向都严格为正。这次与单样本外积不同:两个独立样本方向共同消除了看不见的参数方向。

一般有限参数下,各 qi(1−qi)>0q_i(1-q_i)>0;若 XX列满秩,v≠0v\ne0 时至少有一个 xiTv≠0x_i^Tv\ne0,加权平方和严格为正。这证明严格凸,但不能省掉上一节的“最小点存在吗”。取本例标签 (0,1)(0,1),沿参数 (−t,2t)(-t,2t),两个分数分别为 −t,t-t,t,损失为 2ln⁡(1+e−t)2\ln(1+e^{-t}),仍向0逼近而不在有限处达到。两个参数、满秩、每个有限位置Hessian正定,仍不能由此推出有限最优参数存在。

本讲核心考点

  • ESTR拓展:凸性针对待优化参数,Hessian半正定是所有方向上的二阶条件(p.58–60)。
  • 链式法则两段相乘,得到残差乘特征的梯度(p.61–63)。
  • 加权外积用二次型证明半正定,求和保留凸性(p.64–67)。
  • 凸性、唯一性、有限最优解、闭式可解是不同命题(p.68及补充)。

以上为讲义拓展知识整理,不声明CSCI3230基础考试必须掌握全部证明。

附录

A1 梯度的完整链式推导

从最内层开始复述更易定位漏项:参数 θj\theta_j 改一点,分数改约 xjx_j 倍;分数改一点,概率改约 g(1−g)g(1-g) 倍;概率改一点,损失改约 (g−y)/(g(1−g))(g-y)/(g(1-g)) 倍。把三段局部变化率相乘:

∂E∂θj=∂E∂gdgdz∂z∂θj=g−yg(1−g)g(1−g)xj=(g−y)xj. \frac{\partial E}{\partial\theta_j} =\frac{\partial E}{\partial g}\frac{dg}{dz}\frac{\partial z}{\partial\theta_j} =\frac{g-y}{g(1-g)}g(1-g)x_j =(g-y)x_j.

这条链适用于本篇未裁剪的 sigmoid 与交叉熵配对。若代码在中间插入裁剪等操作,必须重新检查链式法则,不能只背最终结果。回到正文。

来源与证据

逐页核对当前 L03-Logistic-Regression-2026T1.pdf(本地课件) p.56–68(本地68页阅读版);p.56 明示ESTR3108。本篇自取数字、半正定误区和有限解例子标为补充。考试证据:未据试卷扩大本课要求,未声称本轮阅读其他教材。