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 的分数为 ,B 为 。按这个准则,B 更好。
这就是残差平方和 RSS。记 为样本条数, 是当前样本, 与 分别是该行预测、真实值:
叫目标函数或损失函数,输出一个数;括号中的 提醒我们,预测取决于参数,换参数会改变分数。训练数据在这一轮比较中保持不动。训练不是替每条样本另选一套系数,而是让同一套系数共同服务所有样本。
若模型写成 ,同一损失可缩写为 。双竖线加下标 2 表示欧氏长度,外面的平方让它变成“各分量平方相加”;读作残差平方和即可,不必把它当成另一种目标。
预测函数与损失函数不要混淆。 预测函数输入一条新数据,输出一个预测;损失函数输入一套待比较的参数,借助整份固定训练数据输出总误差。学习时我们在改变参数,使用时我们通常在改变输入。
如果改成均方误差 MSE,就将 RSS 除以固定样本数。上例 B 的 MSE 为 ;它与 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,输出离差之和也为 0。这个性质使接下来的式子变短。
为了别每次写长求和,定义三个暂用的缩写:
衡量输入离中心的分散程度; 看输入和输出是否常一起高于中心、或一起低于中心; 是输出的离差平方和。它们都只由数据决定,不随当前直线参数变化。
**由 p.22 展开的中间步骤,留在本节直接读完:**把 看成直线在平均输入处的偏移。代入 、,每条残差就是 。因此
第二行是逐项展开平方;中间交叉和因两组离差各自和为零而消失;第三行再展开第一个平方。对斜率两项配方时,要加上又减去 ,得到
把 换回定义,就是接下来的原页完整公式。没有换成求导捷径;这正是课件从中心化与配方到最小值的路线。
p.22 用配方把目标写成下面的形式。先只辨认“可调的平方项”和“与参数无关的常数”,不用一次吞下推导:
公式按讲义重排,要求 。第一项是斜率偏离某个值的平方;第二项是截距偏离相应值的平方;最后两项不含待调参数。平方不能小于零,前面系数又为正,因此前两项能一起变成零时,就确实达到最低分。
p.23 To minimize J(θ0 , θ1 ), let the first two terms equal to 0 (why?).
“为什么”现在可以分两步回答:先取 让第一个括号为零;斜率确定后,再取 让第二个括号为零。这两个选择并不冲突,所以不是任意删掉两项,而是找到了可以达到的下界。完整配方逐行解释在见附录 A1。
截距关系还说了一件直观的事:把平均输入代进拟合直线,得到平均标签。它不要求穿过任何一个具体训练点,只要求整体不系统性地高估或低估。
边界情况:如果所有输入都一样,那么所有 ,,上面的除法不能用。你只观察了某一个输入位置,无法仅凭这一堆标签分辨斜率与截距怎样搭配;不要让程序除以零后再解释输出。
用讲义三点算到底(p.24)
题面(当前 L02 PDF · Quiz · p.24)
p.24 Please use least squares to find the line regression solution for with the training data points represented in (x, y) pairs as below.
(9, 21), (3, 6), (12, 27)
A
B
C
D
公式按原题重排。第一步不是找选项,而是求中心:输入均值 ,标签均值 。再逐行算离差:
| 原点 | 输入离差 | 输出离差 | 输入离差平方 | 离差乘积 |
|---|---|---|---|---|
| (9,21) | 1 | 3 | 1 | 3 |
| (3,6) | -5 | -12 | 25 | 60 |
| (12,27) | 4 | 9 | 16 | 36 |
| 合计 | 0 | 0 | 42 | 99 |
两个负离差相乘为正,这是第二行 60 的来源。不要把“负数”自动当成削弱正相关的贡献:它表示输入低时输出也低,两者仍同向。
第二步求斜率:。第三步求截距:
因此选 B。保留分数有助于检查,而不是过早把每一步都截成两位小数。
最后必须把结果放回数据,看它究竟做了什么:
| 输入 | 预测 | 真实 | 预测减真实 |
|---|---|---|---|
| 9 | 21 | ||
| 3 | 6 | ||
| 12 | 27 |
例如第一行:,真实 21 写成 ,所以残差为 。三残差和为零;RSS 为
它没有穿过所有点。最小二乘要求总平方误差最小,不是要求每条误差为零。
小检查:若把这三个标签都加 5,拟合斜率和截距分别会怎样变化?先从均值和离差想,不重新计算整套公式。
参考答案 · 平移标签
标签均值增加 5,但每个标签减去新均值后的离差不变,所以 不变,斜率不变。截距随标签均值增加 5。整条预测线向上平移。
优化、凸性与驻点(p.25–27)【新】
“优化”就是在允许的候选中,按某个准则选最好的。p.25 的 问的是“哪组参数”,而 问的是“最低分是多少”。在三点例子里,前者是两个参数,后者是 ,不能交换。
为了少试参数,我们希望知道怎样识别最低点。单变量函数的导数,可以理解为向右移动一点时函数值的即时变化率;多个参数时,把每个参数的变化率排成向量,叫梯度 gradient。每个分量为零称为驻点,但一般函数的驻点不一定是最低点,也可能是最高点或其他平坦位置。
课件 p.26 说明 RSS 对参数是凸函数。碗形是一个直觉:若在碗里找到一个不能向任何方向继续下降的位置,就没有另一个更低的小谷底藏在远处。这个类比只帮助理解结论,不是证明;矩阵证明放在附录 A2 和 ESTR Part 5。
原页条件需谨慎使用。 p.27 写零一阶导和严格正二阶导为等价条件,p.28 又写 。已视觉核对原页。对于一般无约束、可微凸目标,梯度为零足以刻画最小;严格正二阶导不是必要条件。补充反例: 在零点最小,但二阶导为 ,零点等于 0。对本讲 RSS,列满秩保证严格正定和参数唯一;秩不足时仍凸,却可能有多套最优参数。不要将“凸”直接翻译成“必有唯一逆矩阵”。
补充 · 不靠碗形比喻,直接证明最低点(通识讲解;演示数据不属于原题)。
假设已经找到一套参数 ,使每个方向的一阶变化为零。要证明它全局最好,不能只说“附近看起来平”;必须比较任意另一套参数。把另一套写成 ,其中 表示各参数的改变量,不要求很小。记原残差为 ,则新残差是 :参数改变 ,整批预测就改变 。
将新残差平方展开,再减去原损失:
第一项是旧残差与预测改变量的交叉项。驻点条件 使它等于 ;剩下的平方长度不可能为负。因此任何大小、任何方向的参数改动都不能降低损失。这就把“局部斜率为零”与“全局最小”真正接上了,而且没有假定逆矩阵存在。
若 ,损失差恰好为零。取演示矩阵 、标签 :参数 与 都预测 2,改变量 被两列相抵消。这不是两个不同的预测效果,而是同一个预测被两套参数表示。只有列满秩, 才迫使 ,才能进一步断言参数唯一。
自查 · 最优残差必须全是零吗?
不必。要求的是 ,即残差与每一列特征正交; 本身可以非零。正文三点的 RSS 为 ,已经是一个最优但未完美拟合的例子。不要把“不能通过调整参数继续改善”误读成“没有误差”。
**图(p.26):局部最低与全局最低。**元素:左图曲线有两个谷底,较高谷底标 local minimum,较低谷底标 global minimum;右图是两个输入坐标上的碗状曲面。看什么:一般目标可能有多个高度不同的局部谷底,而凸目标不存在比全局最小更差的局部最小。凸性不等于最小点只有一个,平底仍可能有多个最小点。
补充:梯度为零之后,还能怎样检查手算答案
先不使用逆矩阵。对带截距的一元最小二乘,令残差 ,两条驻点条件是 与 。前者来自截距导数,后者来自斜率导数;它们是两个不同方向的检查,不是“误差平均为零就足够”。
自编数据取 、。样本均值为 ;中心化分子为 ,分母为 ,故斜率 、截距 。预测为 ,残差为 。残差和是0,加权残差和为 ,RSS为 。
只预测常数 时,残差和同样为零,但 ,因此还可沿斜率方向改善。它的RSS为 ,确实比 大。这个反例说明验算应检查所有参数方向;若没有截距,则残差和为零本来也不是必然条件。
正规方程与解析解(p.28)【新】
现在将一元直线扩到多个特征。仍先明确尺寸: 已含全 1 截距列,若有 样本、 个含截距参数,则 是 , 为 , 为 。
**先沿 p.28 原来的矩阵展开:**残差列 的平方和等于 ,用 展开得
两个交叉项都是标量且互为转置,数值相等; 对称。二次项对参数的导数是 ,两个交叉项各贡献 ,最后常数项贡献零,合为 。其二阶导矩阵为 。对任意向量 ,,所以 RSS 凸;严格大于零要求 时 ,也就是列满秩。下面逐参数的解释用来展开这一步求导,不替换课件的推导起点。
不记矩阵求导也能推。第 条残差为
固定数据时,对第 个参数求导,只有含它的项会变化,所以残差的导数是 。再对残差平方用链式法则:外层平方给 ,内层给 。将所有样本相加:
这行的意义是:第 个参数会影响所有样本,影响大小由那列特征决定,所以不能只看某一个样本的误差。把每个 的结果排成列,就得到 。长度为参数数 ,不是样本数 。
令所有变化率为零,依次整理:
第一行除以 2,第二行分配乘法,第三行移项。最后这组线性方程叫正规方程。当 可逆时,才可以左乘它的逆得到参数;不能反过来默认逆总存在。
用三点例子检查矩阵式与手算一致:
左上 3 是三行常数 1 的平方和;右上 24 是输入和;右下 234 是 。右端的 54 是标签和,531 是 。因此不是“神奇矩阵”,只是这些容易复算的求和。
第一条方程为 ,给出 。放进第二条 ,得到 ,恰是前面的斜率。一般逆矩阵形式与完整二次型解释在见附录 A2。
实际计算可使用稳定的最小二乘求解器,不必真的先算逆矩阵。模型结构、损失和正规方程是数学关系;具体数值求解方法可以不同。旧版多项式演练保留在见附录 A3,当前 2026 作业请使用独立的当前题目与提示页,不套旧数据。
本讲核心考点
- RSS 先算每条残差、平方,再相加;不让正负误差相互抵消。
- 拟合用共享参数,目标函数将整份训练数据合成一个分数。
- 一元解先算均值、离差和,再求斜率与截距;输入必须有变化。
- 正规方程来自每个参数的变化率为零,逆矩阵只是可逆时的后续写法。
- 训练最优不等于泛化最优;唯一参数需要额外的列满秩条件。
附录
A1 一元最小二乘的完整配方
配方不是凭记忆猜一个平方。先令 、,并令 。最后这个数表示当前直线在平均输入处与平均标签相差多少。
把 、 代回残差,得到 。按 展开每一行再求和:
中间和为 ,这是中心化发挥作用的地方。第一项再展开为 。现在只对含斜率的二次多项式配方:
验证这一步的最好方法是把右边平方再展开:额外出现的常数恰好被最后一项减去,所以没有改变原值。加回 就得到正文长式。
A2 从二次型到梯度
残差向量自身的内积等于各残差平方和,所以 。使用乘积转置规则 ,再把两个括号相乘:
两个中间项都是一个数,而一个数转置不变,因此它们相等。 又是对称矩阵,所以二次项的导数为 ;也可以不用这条记忆公式,改走正文逐坐标求导。两个交叉项各给 ,末项完全不含参数,导数为零。合起来就是 。
若系数矩阵可逆,正规方程左乘逆矩阵才得到
这里逆矩阵相当于解一组方程的记号,不是把矩阵元素逐个取倒数。为什么需要列满秩、残差为什么与特征列正交,继续见 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 .
(a) Calculate the analytic solution of the linear model . 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 as a linear function of both and : . 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 is related to higher-order forms of , i.e., . 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) 每行写成 。累加得到 、、、。因此解 与 ,得到 、。代 x=2.13 得预测 2.18849315;训练 RSS=5.26941154。
从(a)到(b),求解原则不变,只多了一列。不要另外发明“二次回归公式”;把矩阵里的每一格看成一项数据求和即可。
(b) 每行改成 ,第一行是 。各元素按 、 累加,:
矩阵中高次和以显示精度呈现,计算使用原始十点。解 得系数 。代 x=2.13 得 2.43592770;训练 RSS=1.70557505。它是抛物线,但对三个待求系数仍线性。
从(b)到(c),最容易错的是幂次:左右两列相乘时幂相加,例如二次列乘三次列形成五次和;右端只乘标签,不再增加一次输入幂。逐格检查比盲目复制五阶矩阵可靠。
(c) 每行有五列 。仍按上述求和式组装,不过 扩至 0–4;矩阵最大幂次为 8,右端最大幂次为 4,不能把最高列重复写成同一幂。解得系数 。代入第一个测试 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重新手算。