BUAA机器学习考试全解析:从决策树到深度学习的核心考点
1. 决策树:从信息增益到实战计算
说到机器学习考试,决策树绝对是绕不开的第一道坎。很多同学觉得它简单,不就是一堆if-else吗?但真到了考场上,让你手算信息增益或者基尼系数,再画出一棵完整的树,可能就有点手忙脚乱了。我当年复习的时候,就差点在这个“基础题”上翻车。
决策树的核心思想,其实就像我们平时做决定的过程。比如你要决定周末去不去图书馆,可能会先判断“作业多不多”,如果多,就去;如果不多,再看“天气好不好”,天气好可能就去打球,天气不好可能就在宿舍。这一连串的判断,本质上就是一棵树。在机器学习里,我们用数据来构建这棵树,关键就在于每次选择哪个特征来划分数据,能让我们的“分类结果”最纯粹。
这里就引出了两个最重要的指标:信息增益和基尼系数。信息增益基于信息论中的熵,熵越大表示数据越混乱。我们的目标就是找到一个特征,用它划分后,子集的熵总和下降得最多,这个下降值就是信息增益。计算时确实离不开对数运算,所以考试时带个计算器是明智的。我建议你不要只背公式,一定要亲手算几个例子。比如给你一个关于“是否打网球”的小数据集,包含天气、温度、湿度等特征,一步步算出每个特征的信息增益,你会发现“天气=晴朗/多云/下雨”这样的特征往往增益很大。
考试中常见的坑点有几个:一是连续特征的处理。比如“温度”是连续值,你不能直接按类别分。这时需要先排序,然后考察所有可能的分割点(如相邻值的平均值),计算每个分割点下的信息增益,选最好的那个。二是过拟合问题。树如果长得太深,对训练数据记得太牢,对新数据的泛化能力就会变差。所以考题可能会问如何“剪枝”,包括预剪枝(设定最大深度、最小样本数)和后剪枝(生成树后再裁剪掉一些分支)。你需要理解剪枝是如何通过权衡训练误差和模型复杂度来避免过拟合的。
最后,别忘了决策树不仅可以分类,还能做回归。回归树预测的是连续值,其划分标准不再是纯度,而是最小化子节点的方差。虽然BUAA考试可能以分类树为主,但了解这个扩展能让你对“树”模型有更完整的认识。把PPT上的例题,特别是涉及计算过程的,反复算两遍,考试时这部分分数就能稳稳拿下了。
2. SVM:深入理解间隔、松弛与核技巧
支持向量机(SVM)大概是机器学习中最优雅、最需要数学功底的模型之一。很多同学对它的推导望而生畏,但一旦打通任督二脉,你会发现它的逻辑无比清晰。考试中,SVM的题目通常分量很重,要求你不仅懂概念,还要会推导。
首先要彻底搞懂硬间隔和软间隔。硬间隔SVM假设数据是完美线性可分的,它的目标很直观:找到一个超平面,让离它最近的正负样本点(即支持向量)到这个平面的距离(间隔)最大化。这个最大化间隔的数学形式,最终会转化成一个带约束的凸优化问题。你需要会写出它的原始形式:最小化权重向量的范数(即 1/2 * ||w||^2),约束条件是所有样本点都被正确分类(y_i(w·x_i + b) >= 1)。然后,你要理解为什么要引入拉格朗日乘子法将其转化为对偶问题。对偶形式的美妙之处在于,它只依赖于样本之间的点积,这为后续使用核函数埋下了伏笔。
现实中的数据哪有那么听话?总有噪音和离群点。这时软间隔SVM就登场了。它的核心是引入了松弛变量ξ,允许一些样本点犯点小错(不满足严格的间隔约束)。目标函数变成了 1/2 * ||w||^2 + C * Σξ_i。这个 C参数 至关重要,它是个惩罚因子,C越大,对分类错误的容忍度越低,模型越倾向于在训练集上做到全对,但也更容易过拟合。考试时可能会让你解释C的意义,或者比较不同C值对决策边界的影响。
对于非线性可分的情况,SVM的“核技巧”堪称神来之笔。它的思想是:既然在原始空间里线性不可分,那我就用一个映射函数φ,把数据映射到一个更高维的特征空间,在那里数据就变得线性可分了。但直接计算高维空间的φ(x)点积可能计算量爆炸。核函数 K(x_i, x_j) = φ(x_i)·φ(x_j) 巧妙地解决了这个问题,它让我们能在原始空间直接计算高维空间点积的结果。常用的核函数有:
- 线性核:就是普通的点积,用于线性可分情况。
- 多项式核:可以控制阶数,拟合更复杂的关系。
- 高斯核(RBF核):最常用也最强大,能将数据映射到无限维空间。但它的参数γ很敏感,γ太大容易过拟合,太小则模型过于平滑。
考试时,你很可能需要默写出软间隔SVM的对偶形式,并指出其中哪里用到了核函数。理解核函数是应对非线性问题的关键,而不是去纠结φ具体长什么样。
3. 集成学习:Bagging与Boosting的哲学与实践
如果说单个模型是一个精兵,那么集成学习就是一支军队。它的核心思想是“三个臭皮匠,顶个诸葛亮”,通过结合多个弱学习器的意见,来获得一个更强大、更稳定的强学习器。BUAA考试特别喜欢考集成学习,尤其是串行的Boosting和并行的Bagging的区别,一定要吃透。
Bagging,代表算法是随机森林。它的哲学是“民主”。首先,它通过自助采样法从原始训练集中有放回地抽取多个子集,每个子集用来训练一个基学习器(比如决策树)。这个过程是并行的,模型之间互不干扰。然后,对于分类问题,采用投票法汇总结果;对于回归问题,采用平均法。Bagging之所以有效,是因为它降低了模型的方差。决策树本身是方差很高的模型(对数据敏感),通过大量树的平均,可以平滑掉单棵树的噪声和偶然性。随机森林在Bagging基础上更进一步,不仅对样本采样,还对特征采样,进一步增强了模型的多样性,有效防止过拟合。
Boosting,代表算法是AdaBoost和梯度提升树。它的哲学是“知错就改,重点突破”。Boosting的训练是串行的。第一个模型在原始数据上训练,它会犯一些错误。第二个模型就会特别关注那些被第一个模型分错的样本,给它们更高的权重,试图纠正之前的错误。如此反复,一个个模型依次被训练出来。最终的预测结果是所有模型的加权投票,表现好的模型权重更高。Boosting主要降低的是模型的偏差,它通过不断聚焦于难样本,努力把训练误差降到最低。
考试时,你可能会被要求对比两者的异同。我帮你梳理一个表格:
| 特性 | Bagging (如随机森林) | Boosting (如AdaBoost) |
|---|---|---|
| 样本选择 | 自助采样,有放回 | 每一轮调整样本权重,权重高的被更多关注 |
| 基学习器关系 | 并行生成,相互独立 | 串行生成,后者依赖于前者的结果 |
| 目标 | 降低方差,提高泛化 | 降低偏差,提高精度 |
| 对过拟合 | 不易过拟合(尤其是随机森林) | 容易过拟合,需要谨慎控制迭代轮数 |
| 结果聚合 | 平等投票或平均 | 加权投票 |
此外,一定要理解AdaBoost中样本权重和模型权重的更新公式,以及梯度提升树如何用负梯度来近似残差、一步步拟合损失函数。这些是推导和问答中的高频考点。
4. 聚类与EM:从K-Means到高斯混合模型
无监督学习里,聚类是重中之重,而K-Means和混合高斯模型是两种经典又有关联的方法。考试不仅会考它们各自的过程,更会考它们的联系与区别,以及将它们统一起来的EM算法思想。
K-Means 的过程非常直观,就像不断重新划分领地。第一步,随机指定K个中心点。第二步,把每个数据点分配给离它最近的中心点,形成K个簇。第三步,根据每个簇里所有点的位置,重新计算这个簇的中心点(即各维度均值)。重复第二步和第三步,直到中心点不再变化或变化很小。它的目标函数是最小化每个点到其所属簇中心的距离平方和。K-Means的优点是快、简单,但它假设簇是凸形的、各向同性的,且对初始中心点敏感,可能陷入局部最优。
混合高斯模型 则用一种更概率化的视角看待聚类。它假设所有数据点是由K个高斯分布(即正态分布)混合生成的。每个高斯分布代表一个簇,有自己的均值μ和协方差矩阵Σ,以及一个混合权重π(代表这个分布生成数据的先验概率)。GMM的目标是找到这组参数,使得所有数据点的出现概率(似然函数)最大。这里的关键在于,我们不知道每个数据点具体来自哪个高斯分布,这个“隐变量”就是它的归属。
这就引出了EM算法。EM算法是解决含有隐变量参数估计问题的通用框架,它分两步迭代:
- E步(期望步):基于当前参数,计算每个数据点属于各个高斯分布的后验概率(也叫响应度)。你可以理解为,对每个点,算一个“软分配”,比如点A有70%的概率属于簇1,30%属于簇2。
- M步(最大化步):利用E步算出的“软分配”,更新参数。新的均值μ就是所有点的加权平均(权重是后验概率),新的协方差也是加权计算,混合权重π则是属于该簇的后验概率之和除以总点数。
现在看K-Means和GMM的联系:K-Means实际上是GMM的一个极端特例。当GMM中每个高斯分布的协方差矩阵趋向于0(即变成一个点),且我们认为所有簇的先验概率相等时,E步中的后验概率就会退化成“非0即1”的硬分配(即只属于最近的中心点),M步中更新中心点就变成了计算簇内均值。所以,K-Means是一种“硬分配”的EM算法。
考试时,你很可能需要写出K-Means的步骤,写出GMM的概率形式,并详细阐述EM算法的E步和M步在GMM中的具体计算过程。理解它们是一脉相承的,会让你答题时更有底气。
5. 概率图模型:贝叶斯网络与马尔可夫网络
概率图模型用图的形式来表达变量之间的复杂依赖关系,是表示和理解不确定性知识的强大工具。BUAA考试常考贝叶斯网络和马尔可夫网络,核心是写出它们的联合概率分布。
贝叶斯网络是一种有向无环图。图中的节点是随机变量,有向边表示因果关系或依赖关系。比如,“下雨”会导致“草地湿”,“草地湿”又可能导致“滑倒”。它的核心性质是条件独立性:给定父节点,一个节点与非后代节点独立。这大大简化了联合概率的计算。一个贝叶斯网络的联合概率密度,可以分解为所有节点给定其父节点条件下的概率的连乘。公式是:P(X1, X2, ..., Xn) = Π P(Xi | Parents(Xi))。考试时,给你一个小网络图,你必须能立刻写出这个分解式。
马尔可夫网络则是无向图,它表示的是变量之间的关联关系,而非因果。它的核心概念是团和极大团。团是一个节点子集,其中任意两点都有边相连。极大团是不能再加入新节点而仍构成团的团。马尔可夫网络的联合概率分布由定义在极大团上的势函数的乘积来刻画,然后通过一个归一化常数Z(配分函数)保证概率和为1。公式是:P(X) = (1/Z) * Π ψ_c(X_c),其中c遍历所有极大团,ψ_c是极大团c上的势函数。势函数通常取指数形式 exp(-E(X_c)),E是能量函数,表示该团状态的一种“成本”。
考试难点在于:一是理解两者表达能力的区别(有向图能更方便表示因果关系,无向图表示循环依赖更自然);二是给定一个简单无向图,找出其所有极大团;三是根据实际场景,判断用哪种模型更合适。比如,图像去噪中,像素间是网格状的相邻关系,用马尔可夫网络(马尔可夫随机场)就非常自然。
6. 深度学习基石:反向传播与残差网络
深度学习部分,反向传播和残差网络是绝对的重点,尤其是残差网络,它解决了深度网络训练的一个根本性难题。
反向传播是神经网络训练的引擎。很多同学怕推导,其实它本质就是链式法则的反复应用。我们以一个三层网络(输入-隐藏-输出)为例,目标是最小化损失函数L。训练过程分两步:前向传播计算预测值和损失;反向传播计算损失对每个参数的梯度。关键记住:误差是从后往前传的。先计算损失L对输出层输入的梯度,这个梯度会作为“误差信号”传回隐藏层。隐藏层收到这个信号后,结合本层的激活函数导数,计算出损失对本层输入的梯度,同时也能算出损失对本层权重和偏置的梯度。如此层层反推。考试时,务必注意激活函数!题目可能会指定使用Sigmoid、ReLU或Tanh,它们的导数公式必须牢记。Sigmoid的导数是 σ(z)*(1-σ(z)),ReLU的导数是 1 if z>0 else 0。推导时,一步一步写清楚,别跳步。
残差网络的出现,是为了解决网络深度增加到几十、上百层时出现的退化问题:网络更深了,但训练误差和测试误差反而都变大了。这不是过拟合,因为过拟合是训练误差小、测试误差大。退化问题表明,深网络连简单地拟合训练集都变得困难。
ResNet的解决方案极其巧妙:它不强求堆叠的层直接去拟合一个潜在映射 H(x),而是让它们去拟合残差映射 F(x) = H(x) - x。这样,原始映射就变成了 H(x) = F(x) + x。这个“+ x”就是快捷连接。为什么这样能避免退化?假设最优的映射就是恒等映射 H(x) = x,对于普通网络,需要让非线性层拟合出恒等映射,这很难。而对于ResNet,只需要让残差块中的权重层输出 F(x) = 0 即可,这显然更容易学习。即使最优映射不是恒等映射,它也比从零开始学习一个全新映射要容易。
考试可能会让你推导残差块的梯度。设损失为L,残差块输出为 y = F(x, {W_i}) + x。根据链式法则,损失对输入x的梯度为:∂L/∂x = (∂L/∂y) * (∂y/∂x) = (∂L/∂y) * (1 + ∂F/∂x)。注意这里有个关键的 “+1” 项!这意味着,梯度在回传时,有一条路径可以不经过任何权重层(直接通过快捷连接),从而保证了梯度不会轻易消失。即使 ∂F/∂x 很小(权重梯度消失),∂L/∂x 也至少能接收到来自上层的梯度 ∂L/∂y,确保了深层网络能够被有效训练。
7. 数据降维:PCA的最大方差与最小误差视角
主成分分析是数据降维的经典方法,它有两种等价的推导思路:最大方差思想和最小重构误差思想。考试很可能让你推导其中一种,甚至对比两种。
最大方差思想是最直观的。它的目标是:找到一个投影方向(单位向量w),使得所有数据点投影到这个方向后的方差最大。为什么是方差?因为方差代表了数据在该方向上的分散程度,分散得越开,信息保留得就越多。数学上,就是最大化 w^T Σ w,其中Σ是数据的协方差矩阵。加上约束条件 w^T w = 1(单位向量),这就变成了一个带约束的优化问题,用拉格朗日乘子法求解,最终转化为求协方差矩阵Σ的特征值和特征向量的问题。最大的特征值对应的特征向量就是第一主成分方向,第二大的对应第二主成分,以此类推。
最小重构误差思想则从数据压缩还原的角度出发。它希望用一组新的基(主成分)来线性表示原始数据,并且要求用这组基重构回原始数据时,误差最小。具体来说,我们想找到一组标准正交基 {u_i},用前q个基的线性组合来近似表示数据中心化后的向量x,即 x̂ = Σ_{i=1}^{q} (u_i^T x) u_i。目标是让所有数据点的重构误差 Σ ||x - x̂||^2 最小化。可以证明,这个最小化问题最终也等价于求协方差矩阵的特征向量,并且最优的基就是前q个最大特征值对应的特征向量。
两种视角,殊途同归。最大方差是“向前看”,关注投影后保留的信息最多;最小误差是“向后看”,关注压缩后恢复的损失最小。考试推导时,通常从最大方差出发更直接。你需要熟练掌握从目标函数 max (1/n) Σ (w^T x_i)^2 推导到 max w^T Σ w,再使用拉格朗日函数 L = w^T Σ w - λ(w^T w -1),求导令其为零得到 Σ w = λ w 的过程。这就是特征值方程。
8. 深度学习认知:超越技术的主观题答卷思路
最后这道20分的主观题“谈谈对深度学习的认识”,看似开放,实则是拉开分数差距的关键。它考察的不是某个具体公式,而是你对这个领域的整体视野、批判性思维和知识串联能力。千万别只写“深度学习很强大”就草草了事。
我建议你从一个结构化的框架来组织答案。首先,可以从历史与发展谈起,简述从感知机到反向传播,再到深度网络兴起的关键节点,提到ImageNet竞赛、AlexNet的突破性意义,说明是数据、算力和算法共同推动了这次浪潮。
其次,阐述深度学习的核心思想与优势。这里可以对比传统机器学习:深度学习通过多层非线性变换,能够自动从原始数据中学习层次化的特征表示(从边缘到纹理到部件再到物体),省去了复杂的人工特征工程。它的端到端学习方式,让模型设计更加统一和灵活。
然后,必须讨论其挑战与局限性。这是体现你思考深度的部分:
- 数据依赖:通常需要海量标注数据,获取成本高。
- 计算成本:训练大型模型耗能巨大,涉及环保和公平性问题。
- 可解释性差:常被诟病为“黑箱”,在医疗、金融等高风险领域应用受限。
- 脆弱性:容易受到对抗样本的攻击,添加微小扰动就能误导模型。
- 泛化能力的不确定性:在分布外数据上表现可能急剧下降。
接着,可以简要提一下当前的研究热点来展示你的知识广度,比如:
- 效率提升:模型压缩、剪枝、量化、知识蒸馏,让模型更轻量。
- 架构创新:Transformer在NLP和CV领域的统治性地位,以及大模型(LLM)涌现出的新能力。
- 可解释性:注意力机制、特征可视化等试图打开黑箱的工具。
- 学习范式:自监督学习、对比学习减少对标注数据的依赖。
最后,结合你的专业(如果你是计算机、自动化等相关专业),谈谈深度学习的应用前景,比如在自动驾驶、科学发现、内容生成等领域的潜力,并再次强调其作为工具,应与领域知识、伦理思考相结合。这样写下来,内容充实、有层次、有思考,足以让阅卷老师看到你对这个领域的热情和理解。记住,主观题没有标准答案,但清晰的逻辑和全面的视角就是最好的答案。
更多推荐
所有评论(0)