人工智能专业课 机器学习(2)—— 线性模型

本文依照《机器学习从原理到应用》(卿来云、黄庆明编著,人民邮电出版社,2020 年第一版)的目录顺序整理,为系列的第二篇,覆盖监督学习中的线性模型部分。结构沿用系列统一格式:知识地图 → 考点详解 → 对比表 → 自测题 → 复习建议。

〇、本章知识地图

线性模型是监督学习的起点,一条主线贯穿本章:

回归问题:线性回归

模型形式 → 损失函数(最小二乘)→ 求解(正规方程 / 梯度下降)→ 正则化(岭回归 / LASSO)

分类问题:Logistic 回归

Sigmoid 函数 → 对数几率 → 交叉熵损失 → 极大似然求解 → 多分类扩展(Softmax)

二者的共同点是"线性决策 + 凸损失 + 可解析或迭代求解",区别仅在于输出空间与损失函数的选择。

一、线性回归(Linear Regression)

1.1 模型形式

给定 n 维特征向量 \mathbf{x},线性回归假设输出为特征的线性组合:

其中 \mathbf{w} 为权重向量,b 为偏置。学习的任务就是依据训练样本确定 (\mathbf{w}, b)

考点:线性回归的"线性"指对参数线性,而非对特征线性。因此可以通过特征变换(如多项式特征 拟合非线性关系,模型本身仍是线性模型。

1.2 损失函数:最小二乘

以均方误差(MSE)为经验损失:

使该损失最小化即"最小二乘法"。其概率解释:在噪声服从零均值高斯分布的假设下,最小二乘等价于极大似然估计——这是常见的简答题采分点。

1.3 求解方法

方法一:正规方程(解析解)

将偏置并入权重(增广特征),令设计矩阵为 X,令梯度为零可得闭式解:

适用条件:X^TX 可逆(特征数不多、无严重共线性)。缺点:矩阵求逆复杂度约为特征数的三次方,特征维度高时不可行。

方法二:梯度下降(迭代解)

沿负梯度方向迭代更新(公式与复习(1) 第五节一致)。均方误差是凸函数,梯度下降保证收敛到全局最优——这是线性回归采用梯度下降的理论保证,常考。

对比要点:特征少、样本少 → 正规方程;特征多、样本大 → 梯度下降(或小批量梯度下降)。

1.4 正则化:岭回归与 LASSO

为防止过拟合,在损失函数上加入结构损失(呼应复习(1) 第 2.3 节):

岭回归(Ridge)LASSO
正则项L_2 范数:\lambda\lVert\mathbf{w}\rVert_2^2L_1 范数:\lambda\lVert\mathbf{w}\rVert_1
效果权重整体缩小,趋于平滑部分权重被压缩为恰好 0
附加价值缓解共线性特征选择(稀疏解)

记忆口诀:L2 缩小,L1 置零。\lambda 控制正则化强度,\lambda 越大模型越简单。

1.5 回归问题的评价指标

  • MAE(平均绝对误差):对异常值不敏感;
  • MSE / RMSE(均方误差及其开方):放大较大误差,最常用;
  • R^2(决定系数)R^2 = 1 - \frac{\sum(y_i-\hat{y}_i)^2}{\sum(y_i-\bar{y})^2},越接近 1 越好,表示模型解释方差的比例。

二、Logistic 回归(Logistic Regression)

2.1 从回归到分类:Sigmoid 函数

Logistic 回归是分类模型(名称中的"回归"是历史遗留)。做法是将线性输出 \mathbf{w}^T\mathbf{x}+b 压缩到 (0,1) 区间,解释为"正类的概率":

Sigmoid 函数 \sigma(z)=1/(1+e^{-z}) 的性质(常考):

  • 值域 (0,1),\sigma(0)=0.5,单调递增;
  • 导数简洁:\sigma'(z)=\sigma(z)\left(1-\sigma(z)\right),这一性质使梯度推导非常规整。

决策规则:概率 \geq 0.5 判为正类,等价于 \mathbf{w}^T\mathbf{x}+b \geq 0,因此 Logistic 回归的决策边界仍是线性的。

2.2 对数几率(Logit)

将几率(odds)取对数,可以发现 Logistic 回归的线性本质:

即"对数几率是特征的线性函数",这也是 Logistic 回归被称为对数几率回归的原因。

2.3 损失函数:交叉熵

为什么不能沿用均方误差?因为 Sigmoid 与 MSE 组合后损失函数非凸,存在大量局部极小。改用极大似然估计,对数似然取负即得交叉熵损失

交叉熵是凸函数,可用梯度下降求全局最优。其单样本形式 -[y\ln\hat{p}+(1-y)\ln(1-\hat{p})] 的含义:预测越自信且正确,损失越接近 0;预测越自信却错误,损失趋于无穷大。

2.4 多分类扩展:Softmax 回归

二分类扩展到 K 类:将 Sigmoid 推广为 Softmax 函数

各类概率归一化(和为 1),损失函数相应推广为多类交叉熵。

三、线性回归 vs Logistic 回归(核心对比表)

维度线性回归Logistic 回归
任务类型回归分类
输出连续值 (-\infty,+\infty)概率 (0,1)
输出函数恒等Sigmoid
损失函数均方误差(最小二乘)交叉熵(负对数似然)
解析解有(正规方程)无,只能迭代求解
决策边界无此概念线性边界
概率解释高斯噪声下的极大似然伯努利分布下的极大似然

附:代码实践(动手 10 分钟)

片段 1:线性回归与两种正则化——观察 LASSO 将部分权重压为 0 的特征选择效果。

from sklearn.datasets import load_diabetes
from sklearn.linear_model import LinearRegression, Ridge, Lasso
from sklearn.model_selection import train_test_split

X, y = load_diabetes(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

for name, model in [("普通最小二乘", LinearRegression()),
                    ("岭回归(L2)", Ridge(alpha=1.0)),
                    ("LASSO(L1)", Lasso(alpha=0.1))]:
    model.fit(X_train, y_train)
    n_zero = int((abs(model.coef_) < 1e-6).sum())
    print(f"{name:<10} 测试R2={model.score(X_test, y_test):.3f}  权重为0的特征数={n_zero}")

预期现象:三者测试得分接近,但 LASSO 的"权重为 0 的特征数"明显大于另外两个——直观验证"L1 产生稀疏解"。

片段 2:Logistic 回归二分类——注意系数可解释性与概率输出。

from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split

X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

clf = make_pipeline(StandardScaler(), LogisticRegression(max_iter=2000))
clf.fit(X_train, y_train)

print("测试准确率:", round(clf.score(X_test, y_test), 3))
print("前5个样本的正类概率:", clf.predict_proba(X_test[:5])[:, 1].round(3))

两点观察:predict_proba 输出即 2.1 节 Sigmoid 给出的概率;Logistic 回归对特征缩放敏感,务必先标准化(Pipeline 写法可顺带防止数据泄漏)。

四、本章自测题

  1. 写出线性回归的模型形式与最小二乘损失函数,并说明最小二乘的概率解释。
  2. 推导正规方程(提示:对 J(\mathbf{w}) 求梯度并令其为零)。
  3. 岭回归与 LASSO 的区别是什么?为什么 LASSO 能用于特征选择?
  4. Logistic 回归为什么不用均方误差作损失函数?
  5. 写出 Sigmoid 函数及其导数,说明 Logistic 回归的决策边界为什么是线性的。
  6. 由 Sigmoid 推导对数几率表达式,解释"对数几率回归"名称的由来。
  7. 写出二分类交叉熵损失,并解释其随预测置信度变化的趋势。
  8. 比较线性回归与 Logistic 回归的异同(从至少四个维度作答)。

五、复习建议

  1. 本章的核心是"模型形式 + 损失函数 + 求解方法"三件套,任何一种模型都按此框架记忆,后面 SVM、神经网络同样适用;
  2. 第三节对比表是最高频考点,务必能默写;
  3. 推导题集中在两处:正规方程、交叉熵梯度(提示:利用 Sigmoid 导数性质,最终结果为 (\hat{p}-y)\mathbf{x},形式极其简洁,值得亲手推一遍)。
机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课后习题答案(较完整)机器学习部分课
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值