ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

北航机器学习期末试卷考点全解析:从SVM到深度学习的复习指南

北航机器学习期末试卷考点全解析:从SVM到深度学习的复习指南 北航机器学习期末考试那份卷子我是真真切切啃过一遍的。2020年春这份题放在当年不算难但覆盖面很扎实从经典统计学习到深度学习的入门概念都有涉及。现在回头再看这份试卷几乎就是北航《机器学习》这门课半学期的知识地图——把每一道题的知识点吃透比单纯背答案有用得多。这篇东西我打算按“试卷整体分析 → 考点逐章拆解 → 典型题型答题思路 → 备考时间线 → 实战避坑”这个顺序写适合正在准备期末的本科生也适合想了解高校机器学习考核重点的初学者。文章里涉及的例题和解析是我结合当年的课程讲义、作业以及同类考题特征做的高度还原不是原始真题的逐字抄录但考点的覆盖和命题风格是贴近的。1. 试卷整体情况与应对策略1.1 题型分布与考查逻辑先说说这份试卷的构成。2020年春的北航机器学习期末整体题型分为四块选择题或填空题约20分、基础计算与推导题约30分、算法分析题约25分、综合应用设计题约25分。满分100考试时间通常是150分钟。从命题逻辑上看这份卷子有几个明显特征第一概念辨析占比不低。选择题和填空题考察的都是“机器学习里最容易混淆的基础概念”比如生成模型和判别模型的区别、L1正则和L2正则的作用机制、过拟合和欠拟合在不同数据集上的表现等。这类题表面简单实际上坑很多平时不细抠概念的人很容易在这里翻车。第二推导题考的是基本功不是死记硬背。典型的推导题包括岭回归闭式解的推导、感知机损失函数的梯度计算、朴素贝叶斯在给定条件下的后验概率计算等。这些内容对应的是课程讲义里的标准推导流程如果你平时只看PPT不自己推一遍考场上临时推很容易卡壳。第三算法分析题强调“手算能力”。比如给定一个很小的数据集让你手动完成一次K均值聚类迭代或者手算一个决策树的信息增益。这种题没有任何捷径只有平时练熟了考场才能准确。第四综合设计题是拉分题。通常会给你一个实际场景比如用户流失预测、垃圾邮件分类、图像识别让你完成从问题定义、数据预处理、模型选型、评估指标选择到部署注意点的完整方案设计。这道题没有标准答案但如果你能踩准“数据预处理 → 模型选择 → 训练调参 → 评估与迭代”这个标准流程分数一般不会低。1.2 如何利用这份卷子做复习规划我在复习时把这份卷子当作“体检报告”用而不是“押题宝典”。具体做法分三步第一步限时模拟。找一个完整的时间块150分钟不翻书、不看手机完完整整做一遍。做完之后不要立刻对答案而是把每道题对应的知识点写下来看看自己卡在哪些地方。第二步定位薄弱章节。模拟完之后按章节统计错题分布。如果错误集中在某个特定主题比如SVM或者集成学习说明这部分基础不牢需要回到讲义和教材重新过一遍而不是盲目刷题。第三步针对训练。根据薄弱点找对应习题反复练直到能不看笔记写出完整推导。这里有个小提示往年题目的重复率其实不高但知识点覆盖是稳定的。你要关注的不是“今年会不会考原题”而是“我能不能闭卷答出每个知识点”。把这份卷子上的所有考点列成清单逐个打勾比刷三遍试卷更有效。2. 核心考点逐章拆解2.1 模型评估与正则化模型评估这块几乎是每年必考2020年春也不例外。核心考点包括训练误差、泛化误差、偏差-方差分解、交叉验证、过拟合与欠拟合、正则化。先说偏差-方差分解。很多同学记得住公式但理解不了它在实际中的意义。举一个栗子你用一个简单的线性模型去拟合高次多项式生成的数据模型拟合能力不足偏差很高表现为训练误差也高如果你换一个足够复杂的决策树不加任何限制它能完全记住训练集但换一批数据表现就会变差这时方差偏高。偏差和方差往往是此消彼长的正则化就是在这两者之间做trade-off。L1和L2正则的对比也是一个高频考点。L1正则Lasso会给解带来稀疏性也就是让一部分特征权重变成0这在高维特征选择场景下特别有用L2正则Ridge会让权重整体变小但不归零它对异常值没那么敏感。理解背后的原因是L1的约束区域是菱形最优解更容易落在坐标轴上L2的约束区域是圆形最优解通常不会在坐标轴上。考试里关于这部分常见的形式是给一组训练误差和验证误差的数据让你判断当前模型是过拟合还是欠拟合并选择改进手段。解题核心就一句话训练误差高是欠拟合验证误差远高于训练误差是过拟合。看到训练误差低但验证误差高优先考虑正则化、降低模型复杂度、增加数据量。2.2 线性模型与支持向量机线性回归和逻辑回归是机器学习的基础也是这份卷子的重点之一。线性回归部分需要熟练掌握最小二乘的矩阵形式(\hat{w} (X^TX)^{-1}X^Ty)。考场上常见的推导题就是让你从损失函数(L(w) ||y - Xw||^2)出发对(w)求导并令导数为0得到闭式解。这里有个容易踩的坑如果(X^TX)不可逆怎么办标准做法是加一个小的(\lambda I)这实际上就是岭回归。逻辑回归和线性回归的区别一句话就能说清线性回归做回归输出连续值逻辑回归做分类在线性回归的基础上套了一个sigmoid函数输出的是一个概率值。逻辑回归的损失函数是交叉熵不是均方误差。为什么不用均方误差因为逻辑回归的输出经过sigmoid压缩均方误差的损失函数不是凸函数用梯度下降可能陷入局部最优而交叉熵损失在逻辑回归中是凸的梯度下降可以收敛到全局最优。SVM部分需要理解最大间隔的思想SVM不只是找一个能把数据分开的超平面而是找一个距离两类样本都尽可能远的超平面这样泛化能力更强。间隔定义为(2/||w||)最大化间隔等价于最小化(\frac{1}{2}||w||^2)同时满足约束(y_i(w^Tx_i b) \ge 1)。考试里如果让你写SVM的优化目标这个形式一定要默写出来。核函数的考点一般比较浅能说出线性核、多项式核、RBF核各自的适用场景就够用了。RBF核最常用因为它可以把数据映射到无穷维但要注意gamma参数设置gamma太大会过拟合gamma太小会欠拟合。2.3 决策树与集成学习决策树的考点集中在特征选择标准上信息增益、信息增益率、基尼指数。信息增益对应ID3算法公式是(Gain(D, a) Ent(D) - \sum_v \frac{|D^v|}{|D|}Ent(D^v))。信息增益率对应C4.5算法在信息增益的基础上除以特征固有值intrinsic value目的是解决信息增益偏向取值较多特征的问题。基尼指数对应CART算法(Gini(D) 1 - \sum p_k^2)选择划分后基尼指数最小的特征。2020年春试卷里有一道典型的计算题给定一个小数据集让你计算年龄、收入、是否学生三个特征的信息增益选出最优划分特征。这道题考的就是能不能把熵和信息增益的公式用对。需要提醒的是计算熵的时候如果某个类别的概率为0约定(0\log0 0)这个约定要在答题时写清楚避免被扣步骤分。集成学习部分重点在Bagging和Boosting的区别。Bagging随机森林是其代表是并行地训练多个独立的基学习器然后投票/平均BoostingAdaBoost、GBDT、XGBoost是代表是串行地训练一系列基学习器每个基学习器重点关注前面分类错误的样本。考试喜欢让你分析为什么Bagging能降低方差、Boosting能降低偏差——前者是因为多个模型平均可以缓解随机波动后者是因为每一轮都在拟合残差或加大错分样本权重最终组合模型表达能力更强。随机森林还有一个隐藏考点为什么它对特征也要做随机采样原因有二一是进一步降低树与树之间的相关性二是让每个基学习器尽可能多地使用不同特征从而提升整体的多样性。这个点在面试里也常问不要只答“防止过拟合”就完事要能说清机制。2.4 聚类与降维聚类是典型的无监督学习考点。K均值和层次聚类是重点。K均值的手算题很经典。题目会给6个点让你用K2做一次迭代。步骤是随机选两个初始中心计算每个点到两个中心的欧氏距离将点分配到最近的中心然后重新计算每一类的质心。再重复直到质心不再变化。这里要注意距离通常用欧氏距离质心是每一类所有点的均值向量。考试中如果要求“迭代两次”你要把每一轮的中心和簇分配结果都写出来。K均值有两个明显的痛点一是K值要事先指定二是初始中心的选择会影响最终结果。改进方法包括K-means用概率分布选择相距较远的初始中心和肘部法则根据SSE曲线选择K。这些属于加分项答题时提一句能让老师知道你不只是背了流程。层次聚类的考点一般是自底向上的凝聚式聚类核心是类间距离的度量方式单链接两个类中最近样本的距离、全链接最远样本距离、均链接平均距离、Ward方法合并后类内离差平方和的增量。考试会让你用单链接或全链接对一个小数据集做合并画出树状图。注意单链接容易产生链状结构全链接对噪声敏感这两种各自的适用场景要能说出来。降维部分主成分分析PCA是核心。需要掌握的计算流程是数据标准化 → 计算协方差矩阵 → 求特征值和特征向量 → 按特征值降序排列 → 取前k个特征向量组成投影矩阵 → 将原数据投影到新空间。考试可能让你手动算一个2×2协方差矩阵的特征值和特征向量这里就考验线性代数的功底了。PCA和线性判别分析LDA的区别也是常考点PCA是无监督的目标是最大化投影后方差LDA是有监督的目标是最大化类间距离、最小化类内距离。2.5 深度学习基础深度学习在2020年春这份卷子里占的分值不算特别高但一定有底。基本考点包括感知机、多层感知机MLP、反向传播的思想、激活函数、卷积神经网络的基本概念。感知机是最基础的神经网络模型它的训练规则是如果预测错误就按(w \leftarrow w \eta y x)更新权重。这个公式考试里大概率会考要么让你推导要么让你在某一步迭代中手算更新后的权重。一个容易忽视的点感知机只能解决线性可分问题线性不可分的问题比如异或XOR感知机无法解决这是多层网络的动机之一。反向传播是最容易让人头疼的内容。考试一般不要求你手动计算链式法则的完整过程太复杂但会要求你解释反向传播的基本思想通过链式法则从输出层到输入层逐层计算损失对每个参数的梯度然后用梯度下降更新参数。要能写出单个神经元的前向传播和反向传播公式(z w^Tx b)(a \sigma(z))(\frac{\partial L}{\partial w} \frac{\partial L}{\partial a}\frac{\partial a}{\partial z}\frac{\partial z}{\partial w})。激活函数的考点是关于它们的对比。sigmoid的优点是输出在(0,1)之间适合做概率输出缺点是容易梯度饱和数值太大或太小时导数接近0tanh是sigmoid的平移缩放版本输出在(-1,1)之间均值接近0收敛更快ReLU计算简单、不容易梯度消失正区间导数恒为1缺点是负区间导数恒为0可能导致神经元“死亡”。Leaky ReLU就是专门解决ReLU死亡问题的改良版。考场上如果你能写出这些优缺点对比加上说明实际应用中ReLU是默认选择这题基本拿满分。卷积神经网络部分2020年春考的比较简单主要是概念卷积层、池化层、步长、填充、感受野。题目可能会给出输入尺寸和卷积核参数让你计算输出特征图的尺寸(n_{out} \lfloor (n_{in} 2p - k)/s \rfloor 1)。这里的(n_{in})是输入尺寸(p)是填充(k)是卷积核大小(s)是步长。这个公式要背熟考试现场推导容易出错。3. 典型题型与答题思路拆解3.1 概念辨析题怎么答这份卷子里的选择题/填空题大概是10题左右。题目风格偏向“下列哪项描述正确/错误”。比如下列哪个说法是正确的 A. 训练误差越小模型泛化能力越强 B. L2正则化可以让部分特征权重变为0 C. 逻辑回归是一种生成式模型 D. 交叉验证可以更好地评估模型的泛化能力答案是D。A错在泛化能力要看验证集或测试集表现训练误差小可能是过拟合B错在L2是让权重整体变小而非归零归零是L1C错在逻辑回归是判别式模型。这类题看起来简单但每个错误选项都精准踩在常见误区上。我的建议是不要急着选答案先判断每个选项的对错再用排除法。训练时多积累错误选项对应的反例比单纯记正确表述更管用。3.2 推导证明题的拿分套路推导题是很多同学的痛点但其实技巧性很强。以岭回归推导为例给定目标函数(L(w) ||y - Xw||^2 \lambda||w||^2)求最小化解。步骤拆开写展开(L(w) (y - Xw)^T(y - Xw) \lambda w^Tw)对(w)求梯度(\nabla_w L -2X^T(y - Xw) 2\lambda w)令梯度为0(X^Ty (X^TX \lambda I)w)所以(w (X^TX \lambda I)^{-1}X^Ty)满分的关键在于每一步要写清楚矩阵求导的规则。很多同学直接把结论写上中间过程跳步容易被扣分。另外要注意(\lambda I)的维度要和(X^TX)匹配这里的单位矩阵是(d \times d)特征数×特征数不是样本数。做推导题的经验是考前把所有常见推导线性回归闭式解、岭回归、逻辑回归梯度、感知机更新规则、SVM原问题各写三遍写到不看笔记也能连贯写出来为止。考场上才不会因为紧张丢掉关键步骤。3.3 综合应用设计题的答题模板综合设计题通常是最后的大题占分最高。题目可能长这样某银行需要构建一个“客户流失预测”模型现有10万条客户历史数据包含年龄、收入、账户余额、交易次数、客户服务投诉次数等特征部分客户有流失标签。请设计完整的机器学习解决方案。这类题的答题模板我总结为“问题定义 → 数据预处理 → 基线模型 → 模型优化 → 评估与部署”五段式。问题定义这是一个二分类问题目标是预测客户是否流失。明确模型输入是特征向量输出是流失概率。数据预处理处理缺失值数值特征用均值或中位数填充类别特征用众数填充处理类别特征用独热编码或标签编码特征缩放逻辑回归、SVM对特征尺度敏感需要标准化处理类别不平衡流失客户通常占少数可用过采样、欠采样或调整类别权重。基线模型先用逻辑回归作为baseline因为逻辑回归简单、可解释性强、训练快可以快速验证特征有效性。后续再尝试随机森林、XGBoost或者神经网络。模型优化使用交叉验证调参。逻辑回归调正则化系数C随机森林调树的数量和最大深度XGBoost调学习率、最大深度、子采样比例。同时做特征重要性分析去除无关特征。评估指标准确率在不平衡数据集上没有意义因为全部预测为不流失也有90%多的准确率。要用精确率、召回率、F1-score和AUC-ROC进行评估尤其是AUC它能衡量模型在不同阈值下的综合排序能力。同时画出PR曲线考察少数类的预测效果。部署模型上线后要周期性重训练防止数据分布漂移导致模型效果下降。同时监控预测分布的变化。答题时注意层次分明分点回答。老师看卷速度很快你把五段式的关键词标出来每个段落展开三到四句话基本就能拿到大部分分数。4. 复习方法与备考时间线4.1 三个月复习规划结合这份试卷的考点密度我给一个可执行的复习方案。这套规划我用了很多次对我个人帮助很大你可以根据自己的基础情况调整。第一个月基础梳理期。目标是过完课程讲义和教材建立完整的知识框架。每章做思维导图把核心公式和算法流程写下来。不要沉浸推导这一阶段重在“知道有哪些内容”。以周为单位推进第一周线性模型第二周SVM第三周决策树与集成学习第四周聚类、降维、深度学习基础。每周结束用课后的选择题做自测。第二个月强化训练期。针对本试卷涉及的高频题型做专项训练。每天固定两道推导题每周做一套模拟卷。这时候要开始限时训练培养做题节奏。发现薄弱章节回头再翻讲义。重点突破信息增益手算、朴素贝叶斯后验概率计算、K均值迭代、PCA手算。第三个月冲刺阶段。主要做三件事第一做往年真题和模拟题严格按照考试时间第二整理错题本把反复出错的知识点集中背诵第三回归基础概念把最容易混淆的概念对照复习比如生成模型vs判别模型、Bagging vs Boosting、L1 vs L2。4.2 必备资源清单关于参考书我推荐三本各有侧重周志华《机器学习》西瓜书内容全面理论深度适中适合配合课程使用。李航《统计学习方法》推导非常扎实SVM、集成学习、EM算法的部分值得精读。关于深度学习基础的可以看《深度学习》花书的入门章节重点读反向传播和卷积网络。你可能会搜到李宏毅老师的机器学习课程在张量运算和直觉理解上很有帮助适合入门。在线资源方面我建议看吴恩达的机器学习课程视频方便入门。这些视频里关于梯度下降和反向传播的部分讲得很接地气。国内高校的往年题也可以用来参考比如西电、山东大学等高校的机器学习期末题题型基本类似多做一份没有坏处有利于拓宽应对不同出题风格的能力。4.3 要不要刷CSDN项目和GitHub开源代码考试复习以理论为主但如果时间充裕强烈建议跑一两个简单的机器学习项目。我在复习期间用开源代码跑了一个人脸识别的小项目虽然是调包为主但对理解整个机器学习应用流程帮助很大。当你真正走一遍“数据加载 → 数据清洗 → 特征提取 → 模型训练 → 评估”的完整流程考试里的综合设计题会变得非常顺手。特别是头歌Educoder平台上关于数据预处理、逻辑回归、卷积神经网络的实训任务如果你们学校用了这个平台里面的题目和期末考试风格很接近。5. 常见问题与避坑经验考前必看5.1 计算类题目的典型失误这部分我总结了三个最常见的坑第一个是信息增益计算时忘记考虑特征取值数量。ID3直接使用信息增益天然偏向取值多的特征。如果题目里有一个特征比如“学生ID”取值非常多信息增益会非常高但实际没啥用。答题时如果能主动提到“ID3偏向取值多的特征C4.5用信息增益率改进”是明显的加分项。第二个是K均值迭代时迭代次数不够就停。题目说“迭代两次”就写两次不要自作聪明写到收敛。每次迭代后要写出当前中心坐标和簇成员。另外初始中心有时候题目会给有时候需要自己选。自己选的时候建议选尽量分散的点避免所有点都归到同一个簇导致后续无法更新。第三个是PCA计算协方差矩阵时忘了标准化。PCA对特征的尺度敏感如果特征单位不同比如“年龄”和“收入”相差很大必须先标准化。考试中如果题目没明确说提一句“先对数据做标准化”可以让答案显得更合理大部分情况会给步骤分。5.2 概念题常踩的坑概念题最容易错的地方在于“相似概念的边界”。这里我整理了一个高频混淆对照表对比项核心区别记忆技巧生成模型 vs 判别模型生成模型建模联合分布P(X,Y)判别模型直接建模P(Y|X)或决策边界生成模型“能生成数据”判别模型只负责“分界线”Bagging vs BoostingBagging并行降方差Boosting串行降偏差并行平均→方差降串行纠错→偏差降L1 vs L2正则L1稀疏、L2平滑L1像“筛选”L2像“压缩”过拟合 vs 欠拟合训练误差低验证误差高 vs 训练误差就高看训练误差先再比验证误差监督 vs 无监督有无标签无监督就是“没有标准答案地找规律”这个表是我考前最后一天反复看的。考试时遇到模糊的概念想想表格里的记忆技巧能迅速帮助定位知识点。5.3 考场时间分配与答题技巧150分钟的时间我建议这样分配选择/填空20分钟以内。不会的先跳过不纠结。计算与推导题60分钟。这类题分值密集平时练得最熟优先拿分。算法分析题30分钟。比如K均值、决策树、朴素贝叶斯这类手算题计算量大但思路固定按部就班写。综合设计题35分钟。留足时间做方案设计不要三两句写完。最后5分钟检查答题卡是否填涂完整公式有没有漏写符号。几个实用的考场技巧推导题的每一步都在左边写公式右边写简要的文字说明计算题的中间结果保留三位小数避免因为四舍五入导致最终结果偏差如果某道题毫无思路先把相关公式写上这种“拿基础分”的策略在你确实不会做的时候非常有效。5.4 实验与项目题的加分细节有些学校的期末成绩包含实验或大作业部分北航的机器学习课程通常也有project。如果你们的考核包含项目这里有几个加分细节值得注意项目报告的排版要干净不要大段复制开源代码。老师更希望在报告中看到你的思考过程包括为什么选这个数据集、你做了哪些数据清洗以及为什么、尝试了哪几个模型、模型性能比较结果、你踩过的坑。这些“过程性描述”比代码本身更重要。模型评估部分不要只报一个准确率。用混淆矩阵、PR曲线、AUC等多维度展示说明你理解评估指标的局限性这是区分80分和90分的关键。另外报告里附上实验环境说明Python版本、PyTorch或sklearn版本等体现工程规范意识。5.5 环境与工具准备最后说一个不算考点的考点环境准备。考试前一周强烈建议在自己的电脑上安装好Python环境并且把sklearn、pandas、numpy这些库跑通。如果你们学校有上机考试提前确认实验室的机器是否能正常连接服务器。如果是在本地写代码确保虚拟环境不报错。我在期末复习时遇到过一次环境问题——“安装程序无法与下载服务器联系请提供安装文件的位置”这种状况在实验室公共机器上很常见。后来总结的经验是提前一天到考试机房测试环境准备好离线安装包备用不要依赖在线下载。还有一个小技巧如果你选了PyTorch做深度学习相关的作业提前确认CUDA版本是否匹配。不匹配的话直接用CPU版本也不丢人跑个小实验足够了。2020年春这份卷子核心考的还是基础。说不难是因为每一道题都能在讲义上找到直接对应的知识点说难是因为如果不理解概念背后的why只能死记硬背考场上稍微变形就不会做了。我个人复习下来最大的体会是真正拉开差距的不是高难度的推导而是对基础概念的准确理解。把每一个相似概念都梳理清楚把每一个经典算法的手算流程过一遍再配合一套限时模拟这门课不会成为你期末的绊脚石。最后一个小建议考前不要贪多回归讲义和错题本把高频考点的公式默写一遍比新做三套题都管用。
返回列表