Vince Jiang

CSCI3230 / 课程伴读 · 本站更新

CSCI3230 L02 · Part 2/5 Optimizing linear regression

课程:CSCI3230 (ESTR3108) Fundamentals of Artificial Intelligence · 2026T1 本讲:L02,第 2 部分 / 共 5 部分 · 原件 L02-Linear-Regression-2026T1.pdf(本地课件) p.17–28 定位:从比较两条候选直线开始,理解为什么要平方误差,再用讲义三点一步步选出参数;最后才把同一过程缩写为正规方程。 前后:上一份 Linear regression problem · 下一份 Shrinkage methods

p.17 分节页。读本篇只需先会把输入代入直线、求平均和平方。第一次读到矩阵求导时,可以先走逐个参数的路线;不要为了背逆矩阵公式跳过误差从哪里来的。

“最好”必须先有一个数字准则(p.18–20)【新】

Part 1 已能用一套参数算预测,但我们随手选的系数未必合适。现在的问题是:同一份训练数据面前,怎样比较两套参数?“看起来差不多”不够,程序需要一个可以比较的数。

补充·先比较两个候选规则(此处两条标签和预测为演示取值)。两条真实标签是 2 和 5。候选 A 预测 3 和 3,候选 B 预测 2 和 4。先分别算预测减真实:

样本 真实值 A 预测 A 残差 B 预测 B 残差
1 2 3 1 2 0
2 5 3 -2 4 -1

残差 residual就是一条预测与相应标签的差。本篇统一用预测减真实:正数表示高估,负数表示低估。若直接相加,一次高估可能抵消一次低估,结果小不代表两次都准。因此课件 p.20 先平方,再相加:A 的分数为 12+(−2)2=51^2+(-2)^2=5,B 为 02+(−1)2=10^2+(-1)^2=1。按这个准则,B 更好。

这就是残差平方和 RSS。记 mm 为样本条数,ii 是当前样本,y^i\hat y_i 与 yiy_i 分别是该行预测、真实值:

J(θ)=∑i=1m(y^i−yi)2. J(\theta)=\sum_{i=1}^{m}(\hat y_i-y_i)^2.

JJ 叫目标函数或损失函数,输出一个数;括号中的 θ\theta 提醒我们,预测取决于参数,换参数会改变分数。训练数据在这一轮比较中保持不动。训练不是替每条样本另选一套系数,而是让同一套系数共同服务所有样本。

若模型写成 Y^=Xθ\hat Y=X\theta,同一损失可缩写为 ∥Xθ−Y∥22\lVert X\theta-Y\rVert_2^2。双竖线加下标 2 表示欧氏长度,外面的平方让它变成“各分量平方相加”;读作残差平方和即可,不必把它当成另一种目标。

预测函数与损失函数不要混淆。 预测函数输入一条新数据,输出一个预测;损失函数输入一套待比较的参数,借助整份固定训练数据输出总误差。学习时我们在改变参数,使用时我们通常在改变输入。

如果改成均方误差 MSE,就将 RSS 除以固定样本数。上例 B 的 MSE 为 1/21/2;它与 RSS 对候选排序相同。但以后做梯度下降时,梯度的尺度也会跟着变,不能在同样学习率下混用二者而期待每一步相同。

先停一下: 目前只需懂“给参数打分,分越小越好”。课件 p.18 的训练拟合动机不是“训练分数最小便保证测试最好”;这个缺口正是 Part 3 要处理的问题。

**p.18–19 的建模条件与比较图:**p.18 希望训练与待预测数据来自同一分布,才有从训练拟合推广到真实关系的动机;这是希望泛化的条件,不是“训练完美就测试完美”的定理。p.19 的蓝色散点上画了几条候选线:绿色实线顺着总体上升趋势,红色虚线过陡,橙色虚线下降,紫色虚线接近水平。输入点不动,只改变斜率与截距;因此用于比较的距离必须写成参数的函数。

残差测的是输出方向(p.21)

图(p.21):红色散点到回归平面的残差线。 元素:两个输入坐标轴、输出轴、拟合平面、红色样本点,以及平行输出轴的细线。 看什么:固定房子的输入信息,只比较模型给出的高度与真实高度。

例如房子的面积已测为 3,真实租金为 10,模型预测 9;残差为 -1。我们没有把面积也偷偷改成别的值,去寻找图上最近的一点。因此 RSS 中比较的是输出方向的差,不是几何上“点到直线的最短距离”。

这两种距离都可能定义一个数学问题,但它们不是同一个问题。最小二乘这里将输入当作给定量,只有预测输出与标签之差进入损失。

一元解为何能通过两项归零取得(p.22–23)

一元模型只有截距 θ0\theta_0、斜率 θ1\theta_1。若只试很多候选直线,也能找到不错的结果;课件要更进一步,用代数直接定位最小值。先把均值理解为数据的中心:xˉ\bar x 是所有输入的平均,yˉ\bar y 是所有标签的平均。

令输入离差 ui=xi−xˉu_i=x_i-\bar x,输出离差 vi=yi−yˉv_i=y_i-\bar y。离差告诉我们该行比整体中心高多少或低多少。因为均值已经把中心减掉,所有输入离差之和为 0,输出离差之和也为 0。这个性质使接下来的式子变短。

为了别每次写长求和,定义三个暂用的缩写:

Sxx=∑iui2,Sxy=∑iuivi,Syy=∑ivi2. S_{xx}=\sum_i u_i^2,\qquad S_{xy}=\sum_i u_iv_i,\qquad S_{yy}=\sum_i v_i^2.

SxxS_{xx} 衡量输入离中心的分散程度;SxyS_{xy} 看输入和输出是否常一起高于中心、或一起低于中心;SyyS_{yy} 是输出的离差平方和。它们都只由数据决定,不随当前直线参数变化。

**由 p.22 展开的中间步骤,留在本节直接读完:**把 c=θ0+θ1xˉ−yˉc=\theta_0+\theta_1\bar x-\bar y 看成直线在平均输入处的偏移。代入 xi=ui+xˉx_i=u_i+\bar x、yi=vi+yˉy_i=v_i+\bar y,每条残差就是 θ1ui−vi+c\theta_1u_i-v_i+c。因此

J=∑i(θ1ui−vi+c)2=∑i(θ1ui−vi)2+2c∑i(θ1ui−vi)+mc2=Sxxθ12−2Sxyθ1+Syy+mc2. \begin{aligned} J&=\sum_i(\theta_1u_i-v_i+c)^2\\ &=\sum_i(\theta_1u_i-v_i)^2+2c\sum_i(\theta_1u_i-v_i)+mc^2\\ &=S_{xx}\theta_1^2-2S_{xy}\theta_1+S_{yy}+mc^2. \end{aligned}

第二行是逐项展开平方;中间交叉和因两组离差各自和为零而消失;第三行再展开第一个平方。对斜率两项配方时,要加上又减去 Sxy2/SxxS_{xy}^2/S_{xx},得到

Sxxθ12−2Sxyθ1=Sxx(θ1−SxySxx)2−Sxy2Sxx. S_{xx}\theta_1^2-2S_{xy}\theta_1 =S_{xx}\left(\theta_1-\frac{S_{xy}}{S_{xx}}\right)^2-\frac{S_{xy}^2}{S_{xx}}.

把 cc 换回定义,就是接下来的原页完整公式。没有换成求导捷径;这正是课件从中心化与配方到最小值的路线。

p.22 用配方把目标写成下面的形式。先只辨认“可调的平方项”和“与参数无关的常数”,不用一次吞下推导:

J=Sxx(θ1−SxySxx)2+m(θ0−yˉ+θ1xˉ)2+Syy−Sxy2Sxx. J=S_{xx}\left(\theta_1-\frac{S_{xy}}{S_{xx}}\right)^2 +m\left(\theta_0-\bar y+\theta_1\bar x\right)^2 +S_{yy}-\frac{S_{xy}^2}{S_{xx}}.

公式按讲义重排,要求 Sxx>0S_{xx}>0。第一项是斜率偏离某个值的平方;第二项是截距偏离相应值的平方;最后两项不含待调参数。平方不能小于零,前面系数又为正,因此前两项能一起变成零时,就确实达到最低分。

p.23 To minimize J(θ0 , θ1 ), let the first two terms equal to 0 (why?).

“为什么”现在可以分两步回答:先取 θ1=Sxy/Sxx\theta_1=S_{xy}/S_{xx} 让第一个括号为零;斜率确定后,再取 θ0=yˉ−θ1xˉ\theta_0=\bar y-\theta_1\bar x 让第二个括号为零。这两个选择并不冲突,所以不是任意删掉两项,而是找到了可以达到的下界。完整配方逐行解释在见附录 A1。

截距关系还说了一件直观的事:把平均输入代进拟合直线,得到平均标签。它不要求穿过任何一个具体训练点,只要求整体不系统性地高估或低估。

边界情况:如果所有输入都一样,那么所有 ui=0u_i=0,Sxx=0S_{xx}=0,上面的除法不能用。你只观察了某一个输入位置,无法仅凭这一堆标签分辨斜率与截距怎样搭配;不要让程序除以零后再解释输出。

用讲义三点算到底(p.24)

题面(当前 L02 PDF · Quiz · p.24)

p.24 Please use least squares to find the line regression solution for y=θ1x+θ0y=\theta_1x+\theta_0 with the training data points represented in (x, y) pairs as below.

(9, 21), (3, 6), (12, 27)

A θ1=2,θ0=1\theta_1=2,\theta_0=1

B θ1=2.3571,θ0=−0.8571\theta_1=2.3571,\theta_0=-0.8571

C θ1=2.1456,θ0=−1.7384\theta_1=2.1456,\theta_0=-1.7384

D θ1=−2.5078,θ0=1.0878\theta_1=-2.5078,\theta_0=1.0878

公式按原题重排。第一步不是找选项,而是求中心:输入均值 (9+3+12)/3=8(9+3+12)/3=8,标签均值 (21+6+27)/3=18(21+6+27)/3=18。再逐行算离差:

原点 输入离差 输出离差 输入离差平方 离差乘积
(9,21) 1 3 1 3
(3,6) -5 -12 25 60
(12,27) 4 9 16 36
合计 0 0 42 99

两个负离差相乘为正,这是第二行 60 的来源。不要把“负数”自动当成削弱正相关的贡献:它表示输入低时输出也低,两者仍同向。

第二步求斜率:θ1=99/42=33/14\theta_1=99/42=33/14。第三步求截距:

θ0=18−8×3314=25214−26414=−1214=−67. \theta_0=18-8\times\frac{33}{14} =\frac{252}{14}-\frac{264}{14} =-\frac{12}{14}=-\frac67.

因此选 B。保留分数有助于检查,而不是过早把每一步都截成两位小数。

最后必须把结果放回数据,看它究竟做了什么:

输入 预测 真实 预测减真实
9 285/14285/14 21 −9/14-9/14
3 87/1487/14 6 3/143/14
12 384/14384/14 27 6/146/14

例如第一行:9×33/14−12/14=285/149\times33/14-12/14=285/14,真实 21 写成 294/14294/14,所以残差为 −9/14-9/14。三残差和为零;RSS 为

81+9+36196=126196=914. \frac{81+9+36}{196}=\frac{126}{196}=\frac9{14}.

它没有穿过所有点。最小二乘要求总平方误差最小,不是要求每条误差为零。

小检查:若把这三个标签都加 5,拟合斜率和截距分别会怎样变化?先从均值和离差想,不重新计算整套公式。

参考答案 · 平移标签

标签均值增加 5,但每个标签减去新均值后的离差不变,所以 SxyS_{xy} 不变,斜率不变。截距随标签均值增加 5。整条预测线向上平移。

优化、凸性与驻点(p.25–27)【新】

“优化”就是在允许的候选中,按某个准则选最好的。p.25 的 arg⁡min⁡θJ(θ)\arg\min_\theta J(\theta) 问的是“哪组参数”,而 min⁡θJ(θ)\min_\theta J(\theta) 问的是“最低分是多少”。在三点例子里,前者是两个参数,后者是 9/149/14,不能交换。

为了少试参数,我们希望知道怎样识别最低点。单变量函数的导数,可以理解为向右移动一点时函数值的即时变化率;多个参数时,把每个参数的变化率排成向量,叫梯度 gradient。每个分量为零称为驻点,但一般函数的驻点不一定是最低点,也可能是最高点或其他平坦位置。

课件 p.26 说明 RSS 对参数是凸函数。碗形是一个直觉:若在碗里找到一个不能向任何方向继续下降的位置,就没有另一个更低的小谷底藏在远处。这个类比只帮助理解结论,不是证明;矩阵证明放在附录 A2 和 ESTR Part 5。

原页条件需谨慎使用。 p.27 写零一阶导和严格正二阶导为等价条件,p.28 又写 2XTX>02X^TX>0。已视觉核对原页。对于一般无约束、可微凸目标,梯度为零足以刻画最小;严格正二阶导不是必要条件。补充反例:g(t)=t4g(t)=t^4 在零点最小,但二阶导为 12t212t^2,零点等于 0。对本讲 RSS,列满秩保证严格正定和参数唯一;秩不足时仍凸,却可能有多套最优参数。不要将“凸”直接翻译成“必有唯一逆矩阵”。

补充 · 不靠碗形比喻,直接证明最低点(通识讲解;演示数据不属于原题)。

假设已经找到一套参数 θ^\hat\theta,使每个方向的一阶变化为零。要证明它全局最好,不能只说“附近看起来平”;必须比较任意另一套参数。把另一套写成 θ^+v\hat\theta+v,其中 vv 表示各参数的改变量,不要求很小。记原残差为 r=Xθ^−Yr=X\hat\theta-Y,则新残差是 r+Xvr+Xv:参数改变 vv,整批预测就改变 XvXv。

将新残差平方展开,再减去原损失:

J(θ^+v)−J(θ^)=2rTXv+∥Xv∥22. J(\hat\theta+v)-J(\hat\theta) =2r^TXv+\lVert Xv\rVert_2^2.

第一项是旧残差与预测改变量的交叉项。驻点条件 XTr=0X^Tr=0 使它等于 2(XTr)Tv=02(X^Tr)^Tv=0;剩下的平方长度不可能为负。因此任何大小、任何方向的参数改动都不能降低损失。这就把“局部斜率为零”与“全局最小”真正接上了,而且没有假定逆矩阵存在。

若 Xv=0Xv=0,损失差恰好为零。取演示矩阵 X=(1,1)X=(1,1)、标签 Y=(2)Y=(2):参数 (2,0)T(2,0)^T 与 (1,1)T(1,1)^T 都预测 2,改变量 v=(−1,1)Tv=(-1,1)^T 被两列相抵消。这不是两个不同的预测效果,而是同一个预测被两套参数表示。只有列满秩,Xv=0Xv=0 才迫使 v=0v=0,才能进一步断言参数唯一。

自查 · 最优残差必须全是零吗?

不必。要求的是 XTr=0X^Tr=0,即残差与每一列特征正交;rr 本身可以非零。正文三点的 RSS 为 9/149/14,已经是一个最优但未完美拟合的例子。不要把“不能通过调整参数继续改善”误读成“没有误差”。

**图(p.26):局部最低与全局最低。**元素:左图曲线有两个谷底,较高谷底标 local minimum,较低谷底标 global minimum;右图是两个输入坐标上的碗状曲面。看什么:一般目标可能有多个高度不同的局部谷底,而凸目标不存在比全局最小更差的局部最小。凸性不等于最小点只有一个,平底仍可能有多个最小点。

补充:梯度为零之后,还能怎样检查手算答案

先不使用逆矩阵。对带截距的一元最小二乘,令残差 ri=y^i−yir_i=\hat y_i-y_i,两条驻点条件是 ∑iri=0\sum_i r_i=0 与 ∑ixiri=0\sum_i x_i r_i=0。前者来自截距导数,后者来自斜率导数;它们是两个不同方向的检查,不是“误差平均为零就足够”。

自编数据取 x=(0,1,2)x=(0,1,2)、y=(1,2,2)y=(1,2,2)。样本均值为 xˉ=1,yˉ=5/3\bar x=1,\bar y=5/3;中心化分子为 (−1)(−2/3)+0(1/3)+1(1/3)=1(-1)(-2/3)+0(1/3)+1(1/3)=1,分母为 1+0+1=21+0+1=2,故斜率 1/21/2、截距 7/67/6。预测为 (7/6,5/3,13/6)(7/6,5/3,13/6),残差为 (1/6,−1/3,1/6)(1/6,-1/3,1/6)。残差和是0,加权残差和为 0−1/3+2/6=00-1/3+2/6=0,RSS为 1/36+1/9+1/36=1/61/36+1/9+1/36=1/6。

只预测常数 5/35/3 时,残差和同样为零,但 ∑xiri=−1\sum x_i r_i=-1,因此还可沿斜率方向改善。它的RSS为 2/32/3,确实比 1/61/6 大。这个反例说明验算应检查所有参数方向;若没有截距,则残差和为零本来也不是必然条件。

正规方程与解析解(p.28)【新】

现在将一元直线扩到多个特征。仍先明确尺寸:XX 已含全 1 截距列,若有 mm 样本、pp 个含截距参数,则 XX 是 m×pm\times p,θ\theta 为 p×1p\times1,YY 为 m×1m\times1。

**先沿 p.28 原来的矩阵展开:**残差列 r=Xθ−Yr=X\theta-Y 的平方和等于 rTrr^Tr,用 (Xθ)T=θTXT(X\theta)^T=\theta^TX^T 展开得

J=θTXTXθ−YTXθ−θTXTY+YTY. J=\theta^TX^TX\theta-Y^TX\theta-\theta^TX^TY+Y^TY.

两个交叉项都是标量且互为转置,数值相等;XTXX^TX 对称。二次项对参数的导数是 2XTXθ2X^TX\theta,两个交叉项各贡献 −XTY-X^TY,最后常数项贡献零,合为 2XT(Xθ−Y)2X^T(X\theta-Y)。其二阶导矩阵为 2XTX2X^TX。对任意向量 vv,vT(2XTX)v=2∥Xv∥22≥0v^T(2X^TX)v=2\lVert Xv\rVert_2^2\ge0,所以 RSS 凸;严格大于零要求 v≠0v\ne0 时 Xv≠0Xv\ne0,也就是列满秩。下面逐参数的解释用来展开这一步求导,不替换课件的推导起点。

不记矩阵求导也能推。第 ii 条残差为

ri=∑k=1pXikθk−yi. r_i=\sum_{k=1}^{p}X_{ik}\theta_k-y_i.

固定数据时,对第 jj 个参数求导,只有含它的项会变化,所以残差的导数是 XijX_{ij}。再对残差平方用链式法则:外层平方给 2ri2r_i,内层给 XijX_{ij}。将所有样本相加:

∂J∂θj=2∑i=1mXijri. \frac{\partial J}{\partial\theta_j}=2\sum_{i=1}^{m}X_{ij}r_i.

这行的意义是:第 jj 个参数会影响所有样本,影响大小由那列特征决定,所以不能只看某一个样本的误差。把每个 jj 的结果排成列,就得到 ∇J=2XT(Xθ−Y)\nabla J=2X^T(X\theta-Y)。长度为参数数 pp,不是样本数 mm。

令所有变化率为零,依次整理:

2XT(Xθ^−Y)=0,XTXθ^−XTY=0,XTXθ^=XTY. \begin{aligned} 2X^T(X\hat\theta-Y)&=0,\\ X^TX\hat\theta-X^TY&=0,\\ X^TX\hat\theta&=X^TY. \end{aligned}

第一行除以 2,第二行分配乘法,第三行移项。最后这组线性方程叫正规方程。当 XTXX^TX 可逆时,才可以左乘它的逆得到参数;不能反过来默认逆总存在。

用三点例子检查矩阵式与手算一致:

X=(1913112),XTX=(32424234),XTY=(54531). X=\begin{pmatrix}1&9\\1&3\\1&12\end{pmatrix},\quad X^TX=\begin{pmatrix}3&24\\24&234\end{pmatrix},\quad X^TY=\begin{pmatrix}54\\531\end{pmatrix}.

左上 3 是三行常数 1 的平方和;右上 24 是输入和;右下 234 是 92+32+1229^2+3^2+12^2。右端的 54 是标签和,531 是 9×21+3×6+12×279\times21+3\times6+12\times27。因此不是“神奇矩阵”,只是这些容易复算的求和。

第一条方程为 3θ0+24θ1=543\theta_0+24\theta_1=54,给出 θ0=18−8θ1\theta_0=18-8\theta_1。放进第二条 24θ0+234θ1=53124\theta_0+234\theta_1=531,得到 42θ1=9942\theta_1=99,恰是前面的斜率。一般逆矩阵形式与完整二次型解释在见附录 A2。

实际计算可使用稳定的最小二乘求解器,不必真的先算逆矩阵。模型结构、损失和正规方程是数学关系;具体数值求解方法可以不同。旧版多项式演练保留在见附录 A3,当前 2026 作业请使用独立的当前题目与提示页,不套旧数据。

本讲核心考点

  • RSS 先算每条残差、平方,再相加;不让正负误差相互抵消。
  • 拟合用共享参数,目标函数将整份训练数据合成一个分数。
  • 一元解先算均值、离差和,再求斜率与截距;输入必须有变化。
  • 正规方程来自每个参数的变化率为零,逆矩阵只是可逆时的后续写法。
  • 训练最优不等于泛化最优;唯一参数需要额外的列满秩条件。

附录

A1 一元最小二乘的完整配方

配方不是凭记忆猜一个平方。先令 ui=xi−xˉu_i=x_i-\bar x、vi=yi−yˉv_i=y_i-\bar y,并令 c=θ0+θ1xˉ−yˉc=\theta_0+\theta_1\bar x-\bar y。最后这个数表示当前直线在平均输入处与平均标签相差多少。

把 xi=ui+xˉx_i=u_i+\bar x、yi=vi+yˉy_i=v_i+\bar y 代回残差,得到 θ1ui−vi+c\theta_1u_i-v_i+c。按 (a+c)2=a2+2ac+c2(a+c)^2=a^2+2ac+c^2 展开每一行再求和:

J=∑i(θ1ui−vi)2+2c∑i(θ1ui−vi)+mc2. J=\sum_i(\theta_1u_i-v_i)^2 +2c\sum_i(\theta_1u_i-v_i)+mc^2.

中间和为 θ1∑iui−∑ivi=0\theta_1\sum_i u_i-\sum_i v_i=0,这是中心化发挥作用的地方。第一项再展开为 Sxxθ12−2Sxyθ1+SyyS_{xx}\theta_1^2-2S_{xy}\theta_1+S_{yy}。现在只对含斜率的二次多项式配方:

Sxxθ12−2Sxyθ1=Sxx(θ1−SxySxx)2−Sxy2Sxx. S_{xx}\theta_1^2-2S_{xy}\theta_1 =S_{xx}\left(\theta_1-\frac{S_{xy}}{S_{xx}}\right)^2 -\frac{S_{xy}^2}{S_{xx}}.

验证这一步的最好方法是把右边平方再展开:额外出现的常数恰好被最后一项减去,所以没有改变原值。加回 Syy+mc2S_{yy}+mc^2 就得到正文长式。

回到正文:一元解为何能通过两项归零取得

A2 从二次型到梯度

残差向量自身的内积等于各残差平方和,所以 J=(Xθ−Y)T(Xθ−Y)J=(X\theta-Y)^T(X\theta-Y)。使用乘积转置规则 (AB)T=BTAT(AB)^T=B^TA^T,再把两个括号相乘:

J=θTXTXθ−θTXTY−YTXθ+YTY. J=\theta^TX^TX\theta-\theta^TX^TY-Y^TX\theta+Y^TY.

两个中间项都是一个数,而一个数转置不变,因此它们相等。XTXX^TX 又是对称矩阵,所以二次项的导数为 2XTXθ2X^TX\theta;也可以不用这条记忆公式,改走正文逐坐标求导。两个交叉项各给 −XTY-X^TY,末项完全不含参数,导数为零。合起来就是 2XT(Xθ−Y)2X^T(X\theta-Y)。

若系数矩阵可逆,正规方程左乘逆矩阵才得到

θ^=(XTX)−1XTY. \hat\theta=(X^TX)^{-1}X^TY.

这里逆矩阵相当于解一组方程的记号,不是把矩阵元素逐个取倒数。为什么需要列满秩、残差为什么与特征列正交,继续见 ESTR 矩阵与投影。

回到正文:正规方程与解析解

A3 作业/往年题演练(非讲义内容):HW01 多项式拟合

历史材料练习区:2025T1,不是当前 HW01。 下方题面与数据保留旧版记录,重点是把相同计算方法迁移到更多特征列;首次学习可先完成正文三点手算再来。

题面(HW01-2025T1-题目.pdf · Q1(a)–(c) · p.1–2;表格为图片,视觉读取)

p.1 1. Assume we have a training set and a test set as follows:

Let’s try to find some linear models to fit the training data. We use the RSS objective function J(Θ)=∥f^Θ(X)−Y∥22J(\Theta)=\lVert\hat f_{\Theta}(X)-Y\rVert_2^2.

(a) Calculate the analytic solution of the linear model f^Θ(x)=θ0+θ1x\hat f_{\Theta}(x)=\theta_0+\theta_1x. Then, plot the line of your obtained linear model together with the data points in training and test set. (5%)

(b) Suppose we want to increase the model complexity, by considering yy as a linear function of both xx and x2x^2: f^Θ(x)=θ0+θ1x+θ2x2\hat f_{\Theta}(x)=\theta_0+\theta_1x+\theta_2x^2. In this case, calculate the analytic solution of the model and plot the curve of the model, together with the data points in training and test set. (5%)

p.2 (c) Let’s further increase the model complexity, by assuming yy is related to higher-order forms of xx, i.e., f^Θ(x)=θ0+θ1x+θ2x2+θ3x3+θ4x4\hat f_{\Theta}(x)=\theta_0+\theta_1x+\theta_2x^2+\theta_3x^3+\theta_4x^4. Again, calculate the analytic solution of the model, plot the curve of the function, together with the data points in training and test set. (5%)

公式按原题重排。原件 hints 的矩阵对应各样本的常数、幂次列;本题另有 (d) 泛化比较,放在下一 Part 演练。

表(题面,p.1):训练与测试完整数据

Index train x train y test x test y
1 0.96 3.45 2.13 2.68
2 2.00 2.05 3.48 1.61
3 3.30 1.95 3.82 1.83
4 4.36 1.71 5.38 1.32
5 6.01 1.13 5.68 1.44
6 6.30 1.46 6.06 1.68
7 6.82 1.07 6.91 1.75
8 8.05 1.50 7.55 1.50
9 9.51 1.23 8.96 1.93
10 10.00 3.09 9.00 2.20

先做一件事:对次数 d,数清参数共有 d+1 个,训练矩阵必须是10行、d+1列。测试表只在得到模型后代入,不能拿它求参数。这里的平方/三次/四次都是已知输入的变换,不是把未知参数升幂。

(a) 每行写成 (1,xi)(1,x_i)。累加得到 ∑xi=57.31\sum x_i=57.31、∑xi2=412.3863\sum x_i^2=412.3863、∑yi=18.64\sum y_i=18.64、∑xiyi=99.2616\sum x_iy_i=99.2616。因此解 10θ0+57.31θ1=18.6410\theta_0+57.31\theta_1=18.64 与 57.31θ0+412.3863θ1=99.261657.31\theta_0+412.3863\theta_1=99.2616,得到 θ0=2.38043162\theta_0=2.38043162、θ1=−0.09011196\theta_1=-0.09011196。代 x=2.13 得预测 2.18849315;训练 RSS=5.26941154。

从(a)到(b),求解原则不变,只多了一列。不要另外发明“二次回归公式”;把矩阵里的每一格看成一项数据求和即可。

(b) 每行改成 (1,xi,xi2)(1,x_i,x_i^2),第一行是 (1,0.96,0.9216)(1,0.96,0.9216)。各元素按 Gjk=∑ixij+kG_{jk}=\sum_i x_i^{j+k}、bj=∑ixijyib_j=\sum_i x_i^jy_i 累加,j,k=0,1,2j,k=0,1,2:

G=(1057.31412.386357.31412.38633293.792437412.38633293.79243727918.9431),b=(18.6499.2616731.09789). G=\begin{pmatrix}10&57.31&412.3863\\57.31&412.3863&3293.792437\\412.3863&3293.792437&27918.9431\end{pmatrix},\quad b=\begin{pmatrix}18.64\\99.2616\\731.09789\end{pmatrix}.

矩阵中高次和以显示精度呈现,计算使用原始十点。解 Gθ=bG\theta=b 得系数 (4.09743201,−0.94417603,0.07705496)(4.09743201,-0.94417603,0.07705496)。代 x=2.13 得 2.43592770;训练 RSS=1.70557505。它是抛物线,但对三个待求系数仍线性。

从(b)到(c),最容易错的是幂次:左右两列相乘时幂相加,例如二次列乘三次列形成五次和;右端只乘标签,不再增加一次输入幂。逐格检查比盲目复制五阶矩阵可靠。

(c) 每行有五列 (1,xi,xi2,xi3,xi4)(1,x_i,x_i^2,x_i^3,x_i^4)。仍按上述求和式组装,不过 j,kj,k 扩至 0–4;矩阵最大幂次为 8,右端最大幂次为 4,不能把最高列重复写成同一幂。解得系数 (5.93384994,−3.55821910,1.11381790,−0.15051947,0.00715212)(5.93384994,-3.55821910,1.11381790,-0.15051947,0.00715212)。代入第一个测试 x=2.13 得 2.10077965;训练 RSS=0.97893134。

三次求解都用原始训练数据的最小二乘数值计算复核。画曲线时,横轴用有序 x,纵轴分别代入以上三个完整多项式,散点分训练与测试两类;这不是用直线连起预测点。下方链接指向旧版依据本题训练数据绘制的本地演练图;本轮未重新绘图,网页不公开该核验图片。

HW01 三种次数的最小二乘曲线(本地素材,未公开)

图中蓝点是训练集、橙叉是测试集,三个面板分别为一次、二次、四次模型;绿色曲线只用训练集拟合。更贴合训练点不自动意味着更贴合测试点。相同测试点逐一代入的结果如下,便于复算形状与残差:

test x degree 1 degree 2 degree 4
2.13 2.188493 2.435928 2.100780
3.48 2.066842 1.744866 1.745449
3.82 2.036204 1.615096 1.727287
5.38 1.895629 1.248074 1.582292
5.68 1.868596 1.220490 1.519222
6.06 1.834353 1.205461 1.422602
6.91 1.757758 1.252403 1.172933
7.55 1.700086 1.361228 1.020088
8.96 1.573028 1.823710 1.295546
9.00 1.569424 1.841299 1.325506

回到正文:正规方程与解析解

来源与证据

  • 当前讲义:L02-Linear-Regression-2026T1.pdf(本地课件),PDF p.17–28;p.21、27、28已视觉核验。p.27严格正二阶导的必要性与p.28满秩条件已在正文明确辨析。
  • 附录A3沿用2025T1题面与数据,非2026作业;本轮未重新声称阅读旧版列出的全部试卷。正文三点计算按当前p.24重新手算。