ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

机器学习期末复习全攻略:从梯度下降到SVM核心考点梳理

2026/9/11 2:35:01 拓冰建站 浏览量
机器学习期末复习全攻略:从梯度下降到SVM核心考点梳理 又到期末了。不管是西电、山大还是国科大“机器学习期末复习”这几个字一搜出来满屏都是焦虑。我当年也是这样过来的PPT翻了一遍又一遍算法公式看着都眼熟可是一做题就发现细节全对不上。后来我总结出一个道理机器学习这门课难点从来不在某个公式有多复杂而在于知识点之间是网状关联的——你只背线性回归的公式却不知道它和梯度下降、特征缩放、过拟合有什么关系那考试换个问法就懵了。这篇文章就是一份完整的机器学习知识点回顾按期末复习的逻辑来组织先搭框架再抠底层概念然后把监督学习、无监督学习、深度学习、动手实验逐个过一遍。适合正在备战期末的学生也适合刚入门想系统梳理知识体系的学习者。我尽量用大家看得懂的话把“为什么这样做”讲明白而不只是列公式。1. 先搭框架机器学习到底在学什么1.1 从期末考卷反推整门课的知识地图很多人复习机器学习是从翻课件开始的这其实是最低效的方式。课件是按教学顺序排的但考卷是按知识块出题的。真正有效的复习方式是先搞清楚这门课由哪些核心模块组成再往每个模块里填细节。机器学习课程的核心模块大致可以分为六块机器学习概述与基本概念什么是机器学习、监督/无监督/半监督/强化学习的区别、泛化能力、过拟合与欠拟合。模型评估与选择训练集/验证集/测试集划分、交叉验证、性能度量错误率、精度、查准率、查全率、F1、ROC与AUC。经典监督学习算法线性回归、逻辑回归、决策树、支持向量机、朴素贝叶斯、K近邻。集成学习Bagging、Boosting、随机森林、AdaBoost、GBDT。无监督学习聚类K-Means、层次聚类、DBSCAN、降维PCA、等度量映射、EM算法。深度学习基础神经网络、卷积神经网络CNN及其核心组件。对照这个清单去复习比按章节顺序翻PPT要高效得多。你可以拿一张白纸先凭记忆把这六个模块的框架画出来再对照课件补充细节。能画出来的部分说明已经掌握了画不出来的部分就是复习重点。期末复习还有一个技巧回头看作业和实验。头歌平台上的实验、课后编程题往往就是期中期末大题的原型。如果实验里实现过K-Means聚类、决策树、支持向量机考试时遇到类似题目至少不会慌。1.2 教科书怎么选课程怎么跟说到参考书周志华的《机器学习》也就是大家常说的“西瓜书”是绕不开的。这本书的特点是理论体系完整数学推导扎实但说实话对初学者并不友好。第一次读的时候很多推导会卡住。我的建议是第一遍通读时跳过复杂的数学推导重点理解算法思想和流程第二遍复习时再死磕公式那时你已经知道每个算法是干什么用的理解推导会容易很多。视频课方面李宏毅的课和吴恩达的课是最多人推荐的但风格完全不同。吴恩达的Coursera课程数学门槛低例子生动适合完全零基础入门李宏毅的课内容新、贴近工业界讲解风格幽默课后作业也很有挑战性。期末复习阶段我的建议是不要从头刷视频太耗时。正确姿势是哪个知识点搞不懂就针对性看那一节的视频讲解。比如SVM的核函数想不通就单独搜“李宏毅 SVM 核函数”来看。还有一份资源经常被忽略就是Scikit-learn官方文档。它里面有每个算法的数学原理、参数说明和示例代码比很多二手博客靠谱多了。复习到哪个算法就顺手翻一下官方文档对应的页面把参数和公式对应起来考试时遇到“这个参数是什么意思”之类的题就不会懵。2. 最容易被扣分的底层概念2.1 机器学习的三大假设热搜词里有一个“机器学习三大假设”这几乎是每份期末卷子都会涉及的考点。这门课里反复提到的“三大假设”虽然不是某本教材里一字不差写死的定义但核心是公认的第一个是独立同分布假设i.i.d.即训练样本和测试样本都是从同一个未知分布中独立采样得到的。这个假设是整个监督学习的地基。没有它“用历史数据训练、用未来数据预测”这件事就失去了合法性。试卷常见的考法是让你解释为什么机器学习模型能泛化到新样本答案的核心就是独立同分布假设。第二个是潜在分布假设也就是假设数据背后存在一个可学习的规律或函数关系。比如线性回归假设x和y的关系可以用线性函数近似SVM假设数据在某个特征空间里可以被超平面分开。学习算法的本质就是从这个假设空间中选出一个最优的函数。第三个是损失函数假设即我们认为预测错误带来的代价是可以量化的并且优化这个代价就能得到好模型。回归用均方误差、分类用交叉熵或0-1损失都是这个假设的体现。关于独立同分布还有一个有意思的细节。我看见有人问“树模型是假设独立同分布的吗”。这个问题值得展开说一下。严格来说训练数据独立同分布是统计学习框架层面的一般性假设几乎所有监督学习算法都默认它成立。但决策树在构建过程中选择划分特征时并不要求特征之间相互独立——它基于信息增益或基尼指数做贪心划分本质上是想通过递归分区来拟合复杂的决策边界。所以准确说训练样本之间的关系遵循i.i.d.假设但树模型对特征本身没有独立同分布的要求。这也是树模型能处理特征之间存在相关性的数据的原因。2.2 梯度下降到底在做什么“机器学习中的梯度”能上热搜足以说明这个点卡住了多少人。很多人背下了梯度下降的参数更新公式却不理解为什么要往梯度的反方向走。梯度的数学定义是对多元函数求偏导后组成的向量方向指向函数值增长最快的方向。我们希望最小化损失函数自然就要朝函数值下降最快的方向走也就是梯度的反方向。这就是参数更新公式w ← w - η·∇L(w)中负号的来历。学习率η则控制每一步走多远它既不能太大容易震荡甚至发散也不能太小收敛太慢。期末复习时我建议亲手推导一次最简单的线性回归梯度下降。线性回归的损失函数是MSE对参数w求梯度后更新公式长这样# 线性回归梯度下降单个样本/随机梯度下降形式 import numpy as np def gradient_descent(X, y, lr0.01, epochs1000): m, n X.shape w np.zeros(n) b 0 for epoch in range(epochs): y_pred np.dot(X, w) b dw (1 / m) * np.dot(X.T, (y_pred - y)) db (1 / m) * np.sum(y_pred - y) w - lr * dw b - lr * db return w, b这里有个容易在考试中丢分的地方为什么有些教材里梯度项是1/m乘以残差有些没有区别在于损失函数是否已经做了均值归一化。使用MSE的均值形式1/m乘以残差平方和时梯度自然会带出1/m使用平方和形式时就没有。考试时看清题目用的是哪种形式的损失函数别被符号差异带偏。关于梯度还必须理解批量梯度下降BGD、随机梯度下降SGD和小批量梯度下降Mini-batch GD的区别。BGD每次用全量数据计算梯度稳定但慢SGD每次只用一个样本快但震荡剧烈Mini-batch GD是两者的折中也是深度学习中最常用的方式。复习到这里可以想一想为什么SGD的震荡反而是它逃离局部最优点的助力这也是面试和考试中常见的拓展提问。3. 监督学习核心算法逐个过3.1 线性回归与模型评估的坑线性回归是监督学习的起点。它的核心假设是y w^T x b目标是通过最小化均方误差来估计参数。这里有一个理解难点为什么最小化均方误差等价于极大似然估计如果假设噪声服从均值为0的高斯分布那么最大化似然函数经过一系列对数运算后得到的优化目标恰好就是最小化均方误差。这个推导在期末复习时值得亲手推一遍它连接了概率论和优化两个知识块。波士顿房价数据集是线性回归最经典的实验数据集之一。它包含506条样本、13个特征目标变量是房屋价格中位数。如果你在头歌平台上做过这个实验应该记得代码里有个关键步骤是特征归一化。原因很简单不同特征的数值范围差异非常大比如犯罪率是0到1之间的小数房间数却是3到9之间的整数如果不归一化梯度下降的收敛速度会非常慢。归一化有两种常见方式标准化的公式是(x - mean) / std在sklearn里对应StandardScaler。模型评估也是必考内容。回归任务看R²、均方误差分类任务看准确率、精确率、召回率、F1、ROC和AUC。这里有一个经典陷阱类别不平衡时准确率会骗人。比如99%的样本是负类模型全部预测为负类也能拿到99%的准确率但这显然是没用的模型。所以考试常给一个混淆矩阵让你算精确率和召回率然后判断模型在不同业务场景下的取舍。精确率和召回率是一对矛盾指标提高阈值精确率通常上升召回率通常下降。F1是两者的调和平均公式是2PR/(PR)调和平均对较小值更敏感所以只有当精确率和召回率都高时F1才高。3.2 分类器从逻辑回归到SVM逻辑回归虽然名字里有“回归”但它本质上是分类器。它在线性回归的基础上套了一个sigmoid函数把输出压缩到0到1之间表示样本属于正类的概率。理解逻辑回归的关键是理解交叉熵损失函数。为什么不用MSE因为sigmoid函数加上MSE会导致损失函数非凸梯度下降容易陷入局部最优而交叉熵损失与sigmoid结合后是凸函数有全局最优解。这个“为什么”是高频考点。支持向量机SVM是分类器里的硬骨头。它的核心思想是找到一个超平面使得两类样本到超平面的间隔最大化。间隔越大泛化能力越好这是结构风险最小化思想的具体体现。SVM涉及的概念包括函数间隔、几何间隔、支持向量、对偶问题、KKT条件、核函数、软间隔。期末复习到SVM时很多同学会被“对偶问题”卡住。这里我给你一个复习捷径考试对SVM的考察通常不会让你从头推导拉格朗日对偶的每一步而是考你对核心思想的理解。你要能回答这些问题什么是支持向量答距离超平面最近的那些训练样本点它们决定了超平面的位置。为什么引入核函数答为了把低维空间线性不可分的数据映射到高维空间使其线性可分同时避免显式计算映射后的坐标。软间隔中的惩罚参数C有什么作用C越大对误分类的惩罚越大模型越倾向于严格分类容易过拟合C越小模型越宽容容易欠拟合。还有一个高频题“SVM和逻辑回归有什么区别”可以从损失函数hinge loss vs 交叉熵、输出距离度量 vs 概率、优化目标最大间隔 vs 最大似然三个角度回答。能说清楚这个对比说明你真正理解了两种算法的本质差异。3.3 决策树与树模型的细节决策树是必考算法涉及的子知识点非常多。构建决策树的核心是特征选择三个经典准则需要对比记忆信息增益ID3选择信息增益最大的特征划分。信息增益的计算公式是父节点的信息熵减去子节点的加权信息熵。增益率C4.5信息增益有个缺点取值数目多的特征更容易获得高信息增益。增益率通过除以特征的固有值来惩罚取值多的特征。基尼指数CARTCART树使用基尼指数选择基尼指数最小的特征划分。基尼指数表示从样本集中随机抽取两个样本类别不一致的概率。关于决策树期末最常考的是手算信息增益。给你一个小数据集让你计算某个特征的信息增益。这类题只要记住熵的公式一步一步算就能拿分。熵的公式是Ent(D) -Σ p_k * log2(p_k)。信息增益 Ent(D) - Σ (|D_v|/|D|) * Ent(D_v)。决策树的过拟合问题也很常考。解决方法是剪枝分预剪枝和后剪枝。预剪枝指在构建过程中如果当前节点的划分不能带来验证集性能提升就停止划分并标记为叶子节点后剪枝是先把树长完整再从底向上判断把不能提升验证集性能的子树替换成叶子节点。通常后剪枝保留的分支更多泛化性能往往更好但计算开销也更大。如果你复习到树模型建议顺手记住随机森林的思想它是Bagging加随机特征选择的组合。Bagging的核心是有放回采样bootstrap每次用不同的样本子集训练一棵树最后投票。随机森林在Bagging基础上每次划分特征时从一个随机特征子集中选最优划分特征进一步降低树与树之间的相关性。这种“多个模型组合优于单个模型”的思想就是集成学习的精髓。3.4 集成学习AdaBoost和GBDT集成学习是期末大题的常客也是工作中最常用的机器学习方法之一。集成学习分两大类Bagging和Boosting。考试常考它们的区别这里给你一个易记的框架Bagging并行训练多个独立模型每个模型用不同的有放回采样子集训练最终投票或取平均。本质上降低方差对高方差模型比如深决策树效果明显。Boosting串行训练一系列模型每个新模型重点关注之前模型预测错误的样本。本质上降低偏差对高偏差模型比如浅决策树桩效果明显。AdaBoost是Boosting的代表算法。它的机制是初始化时所有样本权重相等每一轮训练后增大被分错样本的权重让下一轮的分类器更关注难分的样本最后按分类器的错误率加权组合所有弱分类器。理解AdaBoost的关键在于样本权重的更新公式和分类器权重的计算公式考试常给一个简化的例子让你手算一轮权重更新。GBDT梯度提升决策树是更进阶的Boosting算法。它的核心思想是每轮训练一棵决策树去拟合上一轮预测的负梯度残差而不是直接调整样本权重。GBDT的每一步迭代都是让新树去学习当前模型的“不足”。复习时可以对比AdaBoost和GBDT的实现差异顺便了解它在工业界的地位——很多推荐系统、风控模型都用它。基于GBDT改进的XGBoost和LightGBM在竞赛和工业场景中一直是非常强的baseline。4. 无监督学习聚类、降维与EM算法4.1 聚类算法K-Means、层次聚类和DBSCAN聚类是典型的无监督学习任务目标是把相似样本分到同一簇中。期末复习至少需要掌握三种算法K-Means是最基础的聚类算法。它的流程是随机选k个中心点迭代地执行“分配样本到最近中心点”和“更新中心点为簇内均值”两步直到中心点不再变化或达到最大迭代次数。考试常考的问题是K-Means的k怎么选答案是用肘部法则画出不同k值下损失函数所有样本到所属簇中心的距离平方和的曲线选择曲线下降趋势明显变缓的拐点。但这个拐点有时候并不明显所以实际中还需要结合业务判断。K-Means的局限性也很常考对初始中心点敏感、只能发现凸形簇、对异常值敏感。这些局限引出了它的改进版K-Means优化初始中心点选择和后面要说的DBSCAN。层次聚类是另一类经典方法AGNES是其中最具代表性的自底向上聚类算法。它的思路是一开始每个样本是一簇然后不断合并距离最近的两个簇直到簇数达到指定值。这里考点在于“簇间距离”的不同定义最小距离single-linkage、最大距离complete-linkage、平均距离average-linkage。不同距离定义生成的聚类结果差异很大考试可能会让你根据距离定义手算两个簇的距离。DBSCAN是基于密度的聚类算法它的最大优势是能发现任意形状的簇并且能自动识别噪声点。核心参数有两个半径ε和最小样本数MinPts。核心样本的定义是在半径为ε的邻域内样本数不少于MinPts的样本。DBSCAN通过不断访问邻域内样本把密度相连的样本归入同一个簇。期末常考的是给定一组点和参数让你判断哪些点是核心点、哪些是边界点、哪些是噪声点。这类题只要理解了定义就能做对但要注意边界点属于哪个簇以及ε半径小于两个簇的间距时两个簇是否会被合并——这些都是出题人喜欢挖的坑。聚类算法的性能评估也需要掌握分外部指标和内部指标。外部指标是在有真实标签的情况下评估聚类结果常用的是Jaccard系数、FM指数和Rand指数。内部指标是不需要真实标签基于簇内紧密程度和簇间分离程度来评估常用的是轮廓系数和DB指数。轮廓系数的取值范围是-1到1越接近1说明聚类效果越好这个在实验报告中经常用到。4.2 降维PCA与流形学习降维的目的是在保留数据主要结构的前提下减少特征数量作用包括降低计算开销、缓解维度灾难、便于数据可视化。最经典的降维算法是PCA它的数学原理是找到一组正交基使得数据投影到这组基上后方差最大。PCA的操作步骤期末必考对原始数据做中心化每个特征减去均值。计算协方差矩阵。对协方差矩阵做特征值分解。取最大的k个特征值对应的特征向量组成投影矩阵。用投影矩阵对原始数据做线性变换得到降维后的数据。这里要理解为什么选择方差最大的方向方差大意味着数据在这个方向上的区分度大丢失的信息少。PCA是线性降维方法对线性结构的数据效果好但遇到流形结构的数据就不够用了。等度量映射Isomap是流形学习的代表算法头歌平台有专门实验。它的核心思想是在高维空间中直接计算欧氏距离会被“扭曲”但数据所在的低维流形上样本之间的测地线距离更能反映真实的相似度。Isomap的做法是构建近邻图用图上的最短路径近似测地线距离然后对这个距离矩阵做MDS多维缩放。理解了这个逻辑你就能回答“Isomap和PCA的区别”这类题PCA基于欧氏距离的线性投影Isomap基于测地线距离的非线性嵌入。4.3 EM算法的直觉EM算法最大期望算法在期末复习里属于“看起来很难、其实考得浅”的知识点。它的应用场景是带有隐变量的概率模型估计最经典的例子是高斯混合模型GMM。EM算法迭代地执行E步和M步E步根据当前参数计算隐变量的后验概率即每个样本属于每个高斯成分的概率。M步用这些后验概率做加权更新模型参数均值、方差、混合系数。直观理解EME步相当于“猜”隐变量的值M步相当于根据“猜”的结果更新模型参数然后再用新参数重新“猜”反复迭代直到收敛。考试时不太可能让你完整推导EM公式更多是考它的基本流程和GMM场景下的应用。如果时间紧张把这个直觉抓住再把E步和M步各自做什么背清楚这块分数就能拿下。5. 深度学习入门卷积神经网络的四个关键参数期末复习到了深度学习部分经常会出现头歌平台的“卷积神经网络卷积、池化、步长、核、填充”实验。CNN的考点高度集中核心就两个卷积层和池化层以及四个参数卷积核大小、步长、填充、池化方式。卷积层的作用是提取局部特征。卷积核也叫滤波器在输入图像上滑动每次对覆盖的区域做加权求和得到输出特征图上的一个像素点。这里需要理解两个关键思想局部连接每个神经元只连接输入的局部区域和参数共享同一个卷积核在整个输入上滑动参数不变。这两个机制大幅减少了参数量是CNN相对全连接网络的核心优势。输出特征图尺寸的计算公式是高频考点输出尺寸 (输入尺寸 2 × 填充大小 - 卷积核大小) / 步长 1举例来说输入是32×32的图像卷积核是3×3步长为1填充为1代入公式(32 2×1 - 3)/1 1 32输出尺寸不变。而paddingsame的含义就是通过填充让输出尺寸等于输入尺寸除以步长后向上取整。如果步长为2paddingsame输出尺寸就是输入的一半这是图像下采样的常见做法。池化层的作用是下采样保留主要特征的同时压缩数据量。最大池化取窗口内的最大值平均池化取窗口内的平均值。最大池化能保留更突出的特征比如边缘、纹理对光照变化和微小位移有一定鲁棒性。考试常问池化层有参数吗答案是没有池化层只有一个池化窗口大小和步长不需要学习参数。还有一个高频考点是感受野。感受野指输出特征图上的一个像素点对应输入图像上的区域大小。卷积层堆叠得越深高层特征的感受野越大所以浅层网络提取的是边缘、纹理等低级特征深层网络提取的是部件、物体等高级语义特征。这个理解在回答“为什么CNN需要多层堆叠”时非常有用。如果头歌实验里用到了PyTorch你还会接触到nn.Conv2d、nn.MaxPool2d这些接口。有一点要注意PyTorch默认的数据格式是[batch, channel, height, width]卷积层输入要求四维张量。很多同学第一次写CNN时在这里报错就是因为忘记把形状从[batch, height, width, channel]转换成PyTorch要求的格式或者在全连接层前忘了把特征图展平。6. 动手环节环境配置、数据集与实验思路6.1 Python机器学习环境配置环境配置是很多人入门时被劝退的第一个坎。热搜词里“机器学习python环境配置”和那个“安装程序无法与下载服务器联系”的报错都在提醒我们环境问题大多是网络和版本问题。我推荐的方式是安装Anaconda然后用conda创建独立的虚拟环境这样pandas、numpy、scikit-learn这些包可以一次性装好不需要一个个去pip。创建环境的命令是conda create -n ml python3.9 conda activate ml conda install numpy pandas scikit-learn matplotlib jupyter为什么要单独建虚拟环境因为机器学习项目之间依赖经常冲突一个项目要用TensorFlow 2.x另一个要用PyTorch 1.x如果装在同一个环境里很容易出现包版本互相覆盖导致运行报错。虚拟环境相当于给每个项目一个独立的“房间”互不干扰。如果conda或pip下载包时速度慢或报错先不要怀疑是包本身有问题大概率是默认源的问题。解决办法是换用国内镜像源比如清华源或阿里源。conda换源的方式是修改.condarc文件pip换源则是在安装时加上-i参数pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple还有一个常见坑是机器学习包对Python版本有要求。比如某些老版本的TensorFlow在Python 3.10以上装不上某些科学计算包需要64位Python。遇到“安装程序无法与下载服务器联系”这类报错时先检查网络再检查版本最后检查镜像源通常三步就能解决问题。6.2 免费公开数据集去哪找做实验和期末项目数据集是刚需。我把常用的公开数据集渠道整理成一个速查表方便你按需取用数据集/平台内容特点适用场景Scikit-learn内置数据集波士顿房价、鸢尾花、手写数字、乳腺癌课程实验、算法练习最简单UCI Machine Learning Repository门类丰富各领域经典数据期末作业、论文复现Kaggle Datasets真实比赛数据规模大、质量高竞赛、项目实战入门天池国内平台中文文档友好中文场景、入门比赛波士顿房价数据集是Scikit-learn里的经典内置数据别的不说光是“用13个特征预测房价”这一句话就足够拿来练手线性回归了。加载方式很简单from sklearn.datasets import load_boston # 新版sklearn中该数据集已移除可用fetch_openml替代 from sklearn.datasets import fetch_openml boston fetch_openml(nameboston, as_frameTrue)这里要提醒一个细节新版sklearn已经移除了load_boston改用fetch_openml。如果你在别人的代码里看到load_boston报错不用慌换成都对应的接口就行。写作业时如果用fetch_openml记得把数据和Series的列名处理一下不然后面建模会报类型错误。6.3 头歌平台实验的刷题思路热搜词里关于“头歌机器学习××”的词条特别多这说明不少高校的机器学习课程都在用头歌这个实训平台。头歌实验的形式通常是给你一个任务描述和代码骨架你补全关键的几行代码平台会自动判分。头歌实验容易踩的坑有三个。第一个是代码风格问题有些实验要求你在给定函数里补全禁止修改函数签名也不要打印多余内容否则判分程序可能因为输出格式不对而报错。第二个是库版本问题平台预装的sklearn版本可能和你本地不一样个别接口的行为有差异实验时尽量只依赖平台已安装的库。第三个是数据路径问题平台通常已经把数据文件放在工作目录里直接按照提示读取文件名即可别自作聪明填绝对路径。刷头歌实验的最佳顺序是先看题目要求和函数签名明确输入输出再动手写核心逻辑。写完本地跑通后先处理边界情况比如空数组、全零数据、样本数小于类别的异常场景再提交平台判分。如果某次提交不过别急着乱改先输出中间变量的形状和值定位问题在哪一步。还有一个容易被忽略的操作头歌平台支持多线程并行测试不同代码。如果时间紧可以先提交一个能跑通的版本拿基础分再逐步优化算法效果争取拿满数据增强或可视化部分的附加分。7. 常见问题与排查技巧实录期末复习和做实验时有一些问题几乎每个人都遇到过。我把它们整理成速查表方便你随时排查。问题可能原因解决思路梯度下降损失不下降学习率过大或过小尝试不同量级的学习率0.1到0.00001观察损失曲线训练集准确率高、测试集准确率低过拟合增加正则化、做交叉验证、增加数据量、使用集成方法特征尺度差异大导致收敛慢未做标准化用StandardScaler对特征做标准化聚类结果全是同一个簇k选择过大或特征分布异常先归一化特征再用肘部法则重新选k决策树过深导致过拟合未剪枝设置max_depth或min_samples_leaf限制树复杂度混淆矩阵里精确率极高但召回率极低阈值设置偏高降低分类阈值或改用F1作为优化目标代码报错“ValueError: Expected 2D array”输入的样本是一维数组用reshape(-1, 1)或reshape(1, -1)改变形状装包报错“找不到安装文件”网络或镜像源问题换成国内镜像源并确认Python版本兼容这些坑里最常见的还是前三条。特别是梯度不下降这个问题很多同学第一个想到的是改模型结构其实90%的情况是学习率设置得不合理。我个人的调试习惯是先用一个非常小的学习率跑几十轮确认损失确实在下降再逐步调大学习率。这样能快速判断当前问题是出在梯度计算还是出在学习率设置上。还有一个特别实用的排查技巧当你的模型效果不好时先做一个最小化测试。也就是用一小部分数据比如100条样本训练模型如果能逼近100%的准确率说明模型有足够的表达能力问题出在数据或调参上如果连小数据都学不动说明模型或者特征处理本身有问题先解决这个再说。写在最后个人经验是机器学习期末复习最忌讳的就是只读不写。公式看着懂了跟亲手推一遍完全是两回事算法流程看着懂了跟用代码实现一遍也完全是两回事。我当年复习SVM看得头晕后来自己动手写了一个简化版的SMO才真正理解了支持向量和间隔到底是怎么回事。推荐一个“三天复习法”第一天搭框架画出六大数据块的知识点思维导图第二天集中攻关高频考点把线性回归、决策树、SVM、聚类这四个重点算法的手算过程各练三遍第三天刷错题和实验代码把之前头歌平台上做过的实验重新跑一遍加深对算法流程的肌肉记忆。最后再提醒一个容易被忽视的小技巧复习时把每个算法的“三个一”写下来——一句话讲清核心思想、一张图画出算法流程、一个例子说明输入输出。能写出来才是真的懂了。祝复习顺利考试稳稳过关。