复习
核心问题:
- 线性回归建模
- 代价函数
- 最小化代价函数的算法与计算
- 欠拟合与过拟合定义与解决方案
Q&A
(前置)矩阵求导
线性回归模型假设(长什么样)
代价函数(最小二乘)
单样本梯度推导
(LWS)WH学习规则
BGD vs SGD
!!!最小二乘正规方程
欠拟合与过拟合
前置线性代数知识 🟢 了解(当字典用,别死磕)
这里给还没有学完线代的同学们(啊哈包括我自己),先补一下基础知识。
线性回归里用到的线代,其实就这几样:向量内积、矩阵乘法、转置、迹、矩阵求导、范数。
下面按“线性回归里哪里用到 → 这个概念是什么 → 怎么算”来补。
向量和向量内积
1. 向量是什么 = 就是一串数竖着排。比如:
- 是”特征”(你输入的信息,比如面积、几间卧室)
- 是”参数”(模型要学的权重,也就是每个特征占多大分量)
2. 内积 = 对应位置相乘,再加起来。这就是”点乘”:
其中 表示把 这一列「横过来」:
所以:
哎你先别管为什么一定要转置才能相乘,反正你把它横过来就对了。
3. 在线性回归里它是干嘛的:
模型:
约定 后:
💡 最土的说法:本来式子有一项”截距 “单独站着,很讨厌。我们硬塞一个永远等于 1 的 进去,这样截距也能写成"",于是整个式子就统一成了”两个向量点乘”,后面求导、写成矩阵都省事。这就是原笔记说的”引入 是关键技巧”。
矩阵和矩阵乘法
1. 矩阵是什么 = 数的二维表格。 个样本、 个特征,写成矩阵 :
每一行 = 一个样本,第一列全是 1(对应 )。
2. 矩阵乘法 = “行乘列”:拿左边的行,点乘右边的列。
比如:
3. 在线性回归里:所有样本的预测值,一次性写成 。
例:三个样本
结果是一个 的向量,正好是 3 个样本各自的预测值。
转置
1. 定义:把矩阵的行列互换,记作 。
2. 性质(照抄即可):
3. 在回归里: 做内积、、 都会用到。
矩阵的迹 🟢 了解(推导正规方程的工具,不用会推)
1. 定义:方阵对角线元素之和。
2. 常用性质:
| 性质 | 公式 |
|---|---|
| 转置不变 | |
| 交换 | |
| 轮换 | |
| 线性 |
3. 在回归里:迹只是用来推导”正规方程”的计算工具,结论会用了就行(见👇)。
看不懂吧?我也看不懂。所以就不用看懂了,哈哈。说真的,一个计算过程而已,这里只需要明白迹可以简化计算就行。
矩阵求导(梯度)🔴 必会(LMS 的根源)
1. 是什么:标量对向量求导,得到的是一个”梯度”向量——每个分量告诉你”往这个方向调 ,损失会变多快”。
2. 常用公式(考试能套就行,前两个最常用):
| 公式 | 结果 |
|---|---|
| , 对称则 | |
3. 在回归里:单样本梯度就是 (预测值 − 真实值) × x,写成向量就是 ,多样本 。LMS 和正规方程都从这来。
范数 🟢 会用(记住 L1/L2 各是啥即可)
1. 是什么:一个数(向量)的”大小”。
- L2 范数(欧几里得长度):
- L1 范数(绝对值之和):
💡 最土的记法:L2 = 平方和再开方,L1 = 直接加起来(带绝对值)。
2. 在回归里:用来做”正则化”(防止过拟合)——L2 就是 Ridge(岭回归),L1 就是 LASSO。
- L2 平方后处处可导,梯度是 ,只会把权重整体缩小。
- L1 在 0 处不可导,容易把权重压成 0,所以结果稀疏。
看不懂!反正就是用来纠正机器预测的偏差的!吧。(损失函数与正则化)
行列式和逆矩阵 🟢 了解(知道长啥样即可)
1. 行列式:方阵的一个数,记 或 。二阶:
2. 逆矩阵:若 ,则 是 的逆。二阶:
3. 在回归里:正规方程 里的 就是逆矩阵。如果 不可逆(特征共线),要改用正则化或伪逆。
总结:线代清单
| 概念 | 在线性回归里的作用 | 掌握程度 |
|---|---|---|
| 向量内积 | 模型 | 🔴 必会 |
| 矩阵乘法 | 多样本预测 | 🔴 必会 |
| 转置 | 、 等 | 🟡 会用 |
| 迹 | 推导正规方程的工具 | 🟢 了解 |
| 矩阵求导 | 求梯度,得到 LMS | 🔴 必会 |
| 范数 | L1/L2 正则 | 🟡 会用 |
| 逆矩阵 | 正规方程里那一下 | 🟢 了解 |
看矩阵公式,按这 4 步走(笨办法但有效):
- 这是什么形状?几行几列。
- 乘法能不能做?维数对不对得上。
- 结果是什么?标量、向量还是矩阵。
- 对应回归里的啥?预测值 / 误差 / 梯度 / 代价。
举例: → 是 , 是 ,结果是 = 每个样本的预测值。
一、模型假设 🔴 必会
💡 一句话:我们要用”面积 × 一个系数 + 卧室数 × 一个系数 + 截距”来预测房价。
以房价预测为例:特征是居住面积(feet²)和卧室数,输出是价格。模型:
一般形式(令 ,把截距塞进向量,变成内积):
核心要点 🔴 必会引入 把截距 统一进向量是关键技巧:模型变成纯向量内积 ,后续求导、矩阵化都因此变简单。
实例结果:对面积/卧室数房价数据,最小二乘拟合得 。
⚠️ 注意 为负,不代表”卧室越多越便宜”,只是这组样本上碰巧拟合出来这样(特征之间有相关性,会互相抢解释权),别过度解读单个系数。
二、代价函数(Cost Function)🔴 必会
你知道这个玩意是为了让模型的预测更加准确的就好,需要使代价函数尽可能小,就更贴合现实。所以求导求这个的最小值(大部分情况只能取到极小值其实)。
💡 一句话:代价函数就是”打分器”,衡量模型预测得多烂。目标是让这个分越低越好。
参数 到底定多少?需要一个”目标”——代价函数。最直观的想法是”误差取绝对值再相加”:
但实际用的是平方误差(最小二乘):
为什么用平方而不是绝对值 🟡 了解理由
- 方便梯度下降——平方函数处处可导,绝对值在 0 处是个”尖”,没法求导,梯度下降处理不了。
- 有物理意义——误差服从高斯分布时,最大似然估计(MLE)恰好等于最小化平方误差。
常见错误 🟡 会用那个 是为了求导时跟平方产生的 2 抵消,不影响最优解在哪;但考试写公式要跟讲义一致,不然对答案对不上。
三、梯度下降法与 LMS 规则 🔴 必会(本讲最核心)
💡 一句话:参数往”让误差变小最快”的方向,一步步挪,直到挪不动(到谷底)。
3.1 单样本梯度推导 🔴 必会(要会自己推)
只看一个样本,对某个参数 求导(中间用链式法则):
💡 最土的推导套路(记住三步):
- 平方求导,
2 · ½ · (括号),2 和 ½ 一约没了; - 剩下
(h−y)再对 求导,只有 这一项能求出来,结果是 ; - 合起来 =
(预测 − 真实) × xⱼ。
3.2 LMS 更新规则 🔴 必会
代入梯度下降 :
这就是 LMS update rule(最小均方),也叫 Widrow-Hoff 学习规则。
核心要点 🔴 必会Widrow-Hoff 规则的性质:更新量的大小正比于误差 。
- 误差大 → 步子大,快速逼近;
- 快收敛时 → 误差趋零 → 步子自动变小,自然稳下来。
💡 你可以把它理解成”错多少,就改多少”。这套”误差驱动学习”的最简形态,后面神经网络的反向传播就是它的超进化版。
WH 学习规则(随机 / 在线形式)Widrow–Hoff 学习规则的标准用法是**随机(在线 / sequential)**式:每收到一个样本就立即用它更新一次 ,无需等全部样本到齐。它正是下面 3.3 里”随机梯度下降(SGD)“的更新规则本身——所以 WH 学习规则 = LMS = 随机/在线梯度下降的单样本版本。
记法:随机(在线) = 逐个样本,来一个改一次;批量(Batch) = 攒齐全部 个样本,把每个样本的 累加起来再更新一次。
3.3 多个样本怎么办:BGD vs SGD 🔴 必会
单个样本会了,m 个样本怎么办?两种搞法:
| 批量梯度下降 BGD | 随机梯度下降 SGD | |
|---|---|---|
| 每步更新 | 用全部 m 个样本的梯度累加 | 随机挑一个样本立即更新 |
| 收敛路径 | 平滑,每步都在降 | 抖动,但总体往下走 |
| 速度 | 慢(每步扫全数据集) | 快(大数据集优势明显) |
| 适用 | 小数据集、理论分析 | 在线学习、大数据 |
注意 🟡 会用作业明确要求:SGD 要打乱数据顺序(shuffle)。不 shuffle 的话,如果数据是按某种规律排的(比如按房价从低到高),参数更新会带系统性偏差,收敛会变差。
3.4 最小二乘正规方程(Normal Equation)🔴 会推
梯度下降是”一步步走下山”;正规方程是”直接算出最低点在几度”——前者是迭代法,后者是闭式解,一次就算出最优参数。
代价函数写成矩阵形式:
令其对 的梯度等于 (最小二乘原理):
解出:
核心要点 🔴 必会这就是正规方程:不用选学习率 、不用一点一点迭代,一次矩阵运算直接得到最优 。
与梯度下降的对比(常考):
| 对比 | 正规方程 Normal Equation | 梯度下降 Gradient Descent |
|---|---|---|
| 方式 | 闭式解,一次性算出 | 迭代,多步逼近 |
| 学习率 | 不需要 | 需要调 |
| 特征缩放 | 不需要 | 通常需要 |
| 特征数 | 求 是 , 大时很慢 | 大数据集也更适用 |
| 前提 | 必须可逆 | 无矩阵可逆要求 |
| 适用 | 小规模( 几千以内) | 大规模、在线学习 |
注意 🟡 会用当特征共线(两个特征高度相关)或样本数 < 特征数时, 不可逆,正规方程失效。此时改用正则化——Ridge 会给 加上 保证可逆。
四、矩阵迹的性质 🟢 了解(正规方程的推导工具,别死磕)
| 性质 | 公式 |
|---|---|
| 转置不变 | |
| 交换 | |
| 轮换 | |
| 线性 | |
| 梯度 | |
| 二次型梯度 | |
| 行列式梯度 |
常见错误 🟢 了解轮换性 不能忘了”维数要匹配”这个前提。考试写推导最好顺手标注矩阵维数。
五、非线性模型的多元回归 🟡 会用
💡 一句话:“线性回归”的”线性”指对参数 线性,不是对特征线性。你可以把特征随便折腾(平方、交叉相乘),只要参数还是一个个乘上去的加法,就还是线性回归。
把非线性项当”新特征”塞进去就行。matlab 示例(carsmall 数据集:Weight、Horsepower → MPG):
x1 = Weight; x2 = Horsepower;X = [ones(size(x1)) x1 x2 x1.*x1 x1.*x2 x2.*x2];b = regress(y, X) % 对扩展特征做线性回归相当于模型 ,再用 mesh 画三维曲面看效果。
核心要点 🟡 会用这招叫多项式特征扩展:还是标准线性回归(对参数线性),但能拟合曲线/曲面。代价是特征数随阶数暴涨——这就给后面的过拟合埋下伏笔。
六、欠拟合与过拟合 🔴 必会(理解层面)
💡 一句话:模型太简单 = 欠拟合(没学到位);模型太复杂 = 过拟合(把噪声都背下来了,换个新数据就废)。
6.1 模型选择
- 奥卡姆剃刀(Occam’s razor):能用简单模型解释清楚的,就别上复杂模型。
- 治理手段:正则化、特征选择。
💡 最土的理解:奥卡姆剃刀就是”别用大炮打蚊子”。能一条直线说明白的,就别上五次多项式。
6.2 正则化 🔴 必会
💡 一句话:在代价函数后面加一个”罚款项”,罚的是”参数太大”。参数一大就说明模型在拼命记细节(过拟合),所以要按住它。
前面一项就是使误差小,后面一项是使系数小(系数过大说明模型强行拟合数据点,造成过拟合。)
- L2 正则(Ridge / 岭回归):
- L1 正则(LASSO):
核心要点 🔴 必会L1(LASSO)容易得到稀疏解(很多系数被压成 0),所以自带”特征选择”功能;
L2(Ridge) 只想把权重整体缩小,一般不压成 0。
6.3 L1 为什么稀疏:几何解释 🟡 了解
约束空间(L1 是菱形、L2 是圆)和损失函数等高线第一次相交的点,就是最优解。
- L1 的菱形有尖角 → 交点常落在角上 → 角上某些坐标 → 稀疏。
- L2 的圆光滑无角 → 交点几乎不会正好在坐标轴上 → 各分量都非零。
延伸理解 🟢 了解从导数角度:L1 在 0 处次梯度是区间 , 时会把 直接拉到 0(软阈值);L2 梯度是 ,在 0 处连续,只会按比例缩小。想自动挑特征用 LASSO,只想压过拟合、保留所有特征用 Ridge。
七、作业要点(波士顿房价)🔴 必会(动手)
数据:housing_data.csv,波士顿 506 个郊区房价,506 条 × 13 属性 + 1 个房价均值。属性速查:
| 属性 | 含义 | 属性 | 含义 |
|---|---|---|---|
| CRIM | 城镇人均犯罪率 | RM | 住宅平均房间数 |
| ZN | 25000 英尺以上住宅用地比例 | AGE | 1940 年前自建单位比例 |
| INDUS | 非零售商业用地比例 | DIS | 到五个就业中心的加权距离 |
| CHAS | 查尔斯河虚拟变量 | RAD | 高速公路可达性指数 |
| NOX | 一氧化氮浓度 | TAX | 全值财产税率 |
| B | 城镇黑人比例指标 | PTRATIO | 师生比例 |
| LSTAT | 低地位人口比例 | MEDV | 房价中位数(目标) |
要求 1:自己实现(不能调库的模型)
- 原始数据 vs 归一化数据分别跑线性回归梯度下降,画图对比结果;
- BGD vs SGD 分别实现并画图对比(SGD 要打乱顺序)。
要求 2:调库对比模型
- 线性回归 vs 岭回归 vs LASSO 对波士顿房价预测,图形化对比(归一化数据 + SGD);
- 对三个模型的系数做对比分析。
注意 🟡 会用
- 归一化的作用会直观体现:原始特征量纲差太大(CRIM 是几十,NOX 是零点几),不归一化时等高线是狭长椭圆,收敛慢还震荡。
- 系数对比的核心看点:LASSO 把弱相关特征系数压成 0(稀疏),Ridge 系数整体偏小但非零,普通线性回归系数偏大且对共线敏感。
八、本讲知识链回顾 🔴 必会(合上笔记能默出来)
模型 h(x)=θᵀx → 代价函数(平方误差) → 梯度推导 → LMS 规则 → BGD/SGD ↓ 特征扩展(多项式) 模型变复杂 → 过拟合风险 → 奥卡姆剃刀 → 正则化(L1/L2) → Ridge/LASSO一条主线:从”怎么拟合”,到”怎么防止拟合过头”。下一讲逻辑回归,就是把 套一个 sigmoid,把回归升级成分类。
附:一句话版本(考前过一遍)
- 模型:
预测 = θᵀx(截距靠 塞进去) - 代价:
½Σ(预测−真实)²,平方是为了好求导 - 更新:
θⱼ := θⱼ − α·(预测−真实)·xⱼ(LMS,错多少改多少) - 两种梯度:BGD 全量、SGD 随机(要 shuffle)
- 防过拟合:加罚项,L2=Ridge、L1=LASSO(LASSO 会稀疏)
- 作业:自己写梯度下降 + 调库对比三种模型系数