人工智能专业课 机器学习(2)—— 线性模型
本文依照《机器学习从原理到应用》卿来云、黄庆明编著人民邮电出版社2020 年第一版的目录顺序整理为系列的第二篇覆盖监督学习中的线性模型部分。结构沿用系列统一格式知识地图 → 考点详解 → 对比表 → 自测题 → 复习建议。〇、本章知识地图线性模型是监督学习的起点一条主线贯穿本章回归问题线性回归模型形式 → 损失函数最小二乘→ 求解正规方程 / 梯度下降→ 正则化岭回归 / LASSO分类问题Logistic 回归Sigmoid 函数 → 对数几率 → 交叉熵损失 → 极大似然求解 → 多分类扩展Softmax二者的共同点是线性决策 凸损失 可解析或迭代求解区别仅在于输出空间与损失函数的选择。一、线性回归Linear Regression1.1 模型形式给定维特征向量线性回归假设输出为特征的线性组合其中为权重向量b 为偏置。学习的任务就是依据训练样本确定。考点线性回归的线性指对参数线性而非对特征线性。因此可以通过特征变换如多项式特征拟合非线性关系模型本身仍是线性模型。1.2 损失函数最小二乘以均方误差MSE为经验损失使该损失最小化即最小二乘法。其概率解释在噪声服从零均值高斯分布的假设下最小二乘等价于极大似然估计——这是常见的简答题采分点。1.3 求解方法方法一正规方程解析解将偏置并入权重增广特征令设计矩阵为 X令梯度为零可得闭式解适用条件可逆特征数不多、无严重共线性。缺点矩阵求逆复杂度约为特征数的三次方特征维度高时不可行。方法二梯度下降迭代解沿负梯度方向迭代更新公式与复习(1) 第五节一致。均方误差是凸函数梯度下降保证收敛到全局最优——这是线性回归采用梯度下降的理论保证常考。对比要点特征少、样本少 → 正规方程特征多、样本大 → 梯度下降或小批量梯度下降。1.4 正则化岭回归与 LASSO为防止过拟合在损失函数上加入结构损失呼应复习(1) 第 2.3 节岭回归RidgeLASSO正则项范数范数效果权重整体缩小趋于平滑部分权重被压缩为恰好 0附加价值缓解共线性特征选择稀疏解记忆口诀L2 缩小L1 置零。\lambda 控制正则化强度\lambda 越大模型越简单。1.5 回归问题的评价指标MAE平均绝对误差对异常值不敏感MSE / RMSE均方误差及其开方放大较大误差最常用决定系数越接近 1 越好表示模型解释方差的比例。二、Logistic 回归Logistic Regression2.1 从回归到分类Sigmoid 函数Logistic 回归是分类模型名称中的回归是历史遗留。做法是将线性输出压缩到 (0,1) 区间解释为正类的概率Sigmoid 函数的性质常考值域 (0,1)单调递增导数简洁这一性质使梯度推导非常规整。决策规则概率判为正类等价于因此 Logistic 回归的决策边界仍是线性的。2.2 对数几率Logit将几率odds取对数可以发现 Logistic 回归的线性本质即对数几率是特征的线性函数这也是 Logistic 回归被称为对数几率回归的原因。2.3 损失函数交叉熵为什么不能沿用均方误差因为 Sigmoid 与 MSE 组合后损失函数非凸存在大量局部极小。改用极大似然估计对数似然取负即得交叉熵损失交叉熵是凸函数可用梯度下降求全局最优。其单样本形式的含义预测越自信且正确损失越接近 0预测越自信却错误损失趋于无穷大。2.4 多分类扩展Softmax 回归二分类扩展到 K 类将 Sigmoid 推广为 Softmax 函数各类概率归一化和为 1损失函数相应推广为多类交叉熵。三、线性回归 vs Logistic 回归核心对比表维度线性回归Logistic 回归任务类型回归分类输出连续值概率 (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_yTrue) X_train, X_test, y_train, y_test train_test_split(X, y, random_state0) for name, model in [(普通最小二乘, LinearRegression()), (岭回归(L2), Ridge(alpha1.0)), (LASSO(L1), Lasso(alpha0.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 产生稀疏解。片段 2Logistic 回归二分类——注意系数可解释性与概率输出。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_yTrue) X_train, X_test, y_train, y_test train_test_split(X, y, random_state0) clf make_pipeline(StandardScaler(), LogisticRegression(max_iter2000)) 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 写法可顺带防止数据泄漏。四、本章自测题写出线性回归的模型形式与最小二乘损失函数并说明最小二乘的概率解释。推导正规方程提示对求梯度并令其为零。岭回归与 LASSO 的区别是什么为什么 LASSO 能用于特征选择Logistic 回归为什么不用均方误差作损失函数写出 Sigmoid 函数及其导数说明 Logistic 回归的决策边界为什么是线性的。由 Sigmoid 推导对数几率表达式解释对数几率回归名称的由来。写出二分类交叉熵损失并解释其随预测置信度变化的趋势。比较线性回归与 Logistic 回归的异同从至少四个维度作答。五、复习建议本章的核心是模型形式 损失函数 求解方法三件套任何一种模型都按此框架记忆后面 SVM、神经网络同样适用第三节对比表是最高频考点务必能默写推导题集中在两处正规方程、交叉熵梯度提示利用 Sigmoid 导数性质最终结果为形式极其简洁值得亲手推一遍。