资讯动态

机器学习入门核心:监督学习、梯度下降与过拟合实战

发布时间:2026/10/21 19:55:11 来源:尧图企业网站定制
人工智能课程学到第四章基本就到了第一个真正的分水岭前几章还在讲历史、流派、应用图谱这些读起来像科普轻松但第四章开始几乎所有教材都会切入同一个核心——机器学习。这个章节劝退了相当一部分人不是因为内容有多难而是因为它第一次把“人工智能”从一个概念名词变成了需要动手算、需要写代码、需要理解数学逻辑的工程学科。我个人非常喜欢第四章的位置它就像一座桥桥那头是“人工智能是什么”的认知桥这头是“人工智能怎么做出来”的实现。如果你正在自学或者刚跟着某门课、某本书推进到这里那么这篇内容就是想帮你把这座桥走稳一点。我会把第四章通常涉及的几个核心模块逐层拆开为什么这一章要讲机器学习、监督学习的完整套路、无监督和强化学习的定位、以及初学阶段最容易踩的坑。全程会用生活化类比和实际可跑的代码片段尽量做到既说原理、也讲操作。1. 为什么几乎所有教材都把“机器学习”放在第四章这个位置安排不是巧合。前几章铺垫完人工智能的起源、主要流派和应用场景之后教材必须在某个节点从“介绍历史”切换到“讲解方法”否则整门课会沦为纯科普。机器学习之所以被选作这个切换点是因为它是当前绝大多数人工智能系统的实现基础也是理解后续神经网络、深度学习、自然语言处理等内容的先决条件。更深一层看机器学习承担的是“让计算机从数据中找规律”这件事的首次正式定义。第四章通常会明确几个关键概念训练集和测试集、特征和标签、模型和参数、损失函数和优化。这些术语在后面的章节会被反复使用如果在第四章没有建立起直觉理解后面学到反向传播、卷积核、注意力机制时会非常吃力。我见过不少初学者跳过第四章直接去看深度学习结果是一开始就蒙了。因为深度学习只是机器学习的一种实现手段它解决的是“如何让模型更复杂、更能拟合大数据”的问题但底层那套“通过数据调整参数来最小化误差”的逻辑在第四章就已经定下了基调。换句话说第四章是整个算法大厦的地基部分地基没打牢上层建筑越盖越悬。这一章还通常会给出第一个完整的机器学习项目流程定义问题、准备数据、选择模型、训练调参、评估效果、部署应用。这个六步框架的价值不在于每一步多高深而在于它建立了一种标准化的做事方式。后面你不管做什么具体任务图像分类也好、房价预测也好、推荐系统也好本质上都是在这六个步骤里打转。2. 机器学习三种主要范式监督、无监督和强化学习第四章的核心内容之一就是讲清楚机器学习的三种基本范式。这三者的区别其实可以浓缩成一句话你的训练数据里有没有标准答案以及反馈以什么形式出现。监督学习是三者中最常用、也最容易理解的。它的训练数据是一组“特征标签”的配对相当于你交给计算机一批已经批改好的试卷。比如房价预测特征是面积、地段、楼层标签是成交价比如垃圾邮件识别特征是邮件文本的词频或长度标签是“垃圾”或“正常”。模型要做的事情就是反复看这些试卷自己摸索出特征和标签之间的映射关系然后拿没见过的新样本去预测。无监督学习则完全相反训练数据只有特征、没有标签。相当于给计算机一大堆散乱的积木块让它自己去发现积木之间有哪些相似性、可以分成几堆。最常见的任务是聚类比如用户分群和降维比如把高维数据压缩到二维以便可视化。无监督学习在第四章通常不会讲太深但它会点明一个关键认知现实世界中大量数据是没有标签的如何从无标签数据中挖掘结构是人工智能走向更广泛应用的重要方向。强化学习的范式又不一样它不依赖静态数据集而是让智能体在环境中不断试错、通过奖励信号来学习策略。类比学骑自行车没有人能给你一张标准答案表告诉你“左脚踏到多少度时右腿该抬多高”你只能不断尝试摔倒了调整骑得稳了就会得到一个“正向反馈”。第四章讲到强化学习时通常只会给概念不会展开算法细节因为马尔可夫决策过程、策略梯度这些内容往往在后续章节才展开。实话说三种范式不必在一开始就全搞精通但必须能把边界划清楚模型在训练时看到什么信息、目标是什么、反馈是什么形式。这个分类框架是理解后面所有具体算法的地图地图没画对后面很容易迷路。3. 监督学习的完整落地流程从数据到模型3.1 数据准备建房子前先备料监督学习的第一步是数据准备但这一步恰恰是初学者最不重视的。很多人一上来就调用现成的库数据集是别人清洗好的模型跑通就觉得自己会了。但真实场景中数据永远是最脏、最乱、最耗时间的部分。以最简单的波士顿房价预测式任务为例我说的是类似风格的数据集不特指某个具体数据集你要做的第一件事是检查数据形态有多少行多少列、有没有缺失值、特征是不是数值型、量纲差异大不大。测试中经常遇到的情况是某个特征列碰上空值就直接报错或者因为某列是字符串导致模型根本无法训练。数据清洗的常规操作包括处理缺失值用均值、中位数填充或者直接删除行、处理异常值比如房价中出现负数这种显然不合理的数据、对类别型特征做编码把“东城、西城、南城”映射成0、1、2或者做独热编码。这些操作听起来琐碎但每一条都是真实项目中消耗时间的点跳过任何一步后面模型效果都会莫名其妙地变差。我习惯把数据准备阶段比喻成备菜你要做的菜是红烧肉五花肉买回来不洗、不切、不焯水直接扔锅里做出来大概率没法吃。机器学习也一样数据和特征质量决定了模型效果的上限模型只是在尽可能接近这个上限。3.2 划分数据集训练集和测试集不能混用数据准备好之后下一步是划分训练集和测试集。这个操作的原则可以概括为一句很严肃的话测试集永远不能参与训练。测试集的作用是模拟“未来遇到的新数据”如果模型在训练时已经“看过”测试集那评估出来的分数就只是自欺欺人。实际操作中常用train_test_split这类工具设定一个随机种子来保证划分结果可复现。划分比例通常是七三开或八二开数据量比较大时甚至可以设九一开。更复杂的做法是交叉验证把数据切成K份每次用K-1份训练、1份验证轮流K次最后取平均效果。交叉验证的优点是能更充分地利用数据缺点就是训练时间变长。初学阶段一次简单的按比例划分就够用了重要的是养成“训练集、验证集、测试集三层隔离”的意识。还有一个新手极容易犯的错数据泄漏。比如做时间序列预测时如果用未来数据去训练模型去预测过去逻辑上就完全反了。哪怕算法代码写得再漂亮数据划分不对结果也没有参考价值。这个问题在第四章阶段可能不太会遇到但从一开始建立起“数据边界意识”是非常重要的。3.3 模型选择线性回归、决策树还是别的监督学习的模型选择在第四章通常从最简单的线性回归入手。房价预测这类回归问题的核心公式是y wx b模型要学的就是怎么找到一组w和b让预测值和真实值的差距最小。听起来简单但它引出了本章最重要的两个概念损失函数和优化算法。损失函数是一个用来衡量“模型错得多离谱”的函数。回归任务最经典的损失函数是均方误差MSE把每个样本的预测值和真实值相减、平方、再加总取平均。这个值越大说明模型错得越离谱越小说明预测越准。模型训练的目标就是找一组参数让损失函数的值尽可能小。优化算法则是“怎么找”这个问题的方法。第四章通常会讲梯度下降它的思想可以类比成摸黑下山你站在山上某个位置看不到全貌但能感受到脚下哪个方向是向下的于是每次往最陡的向下方向迈一步反复迭代最终就能走到山脚。梯度下降里的“学习率”就是迈步的幅度步子太大会跨过最低点甚至飞跃到对面山坡上步子太小则收敛得太慢非常考研调参功力。除线性回归外第四章通常还会提一两个分类模型比如逻辑回归和决策树。分类任务和回归任务的区别在于输出是离散的类别而不是连续数值。逻辑回归虽然名字里带“回归”但本质上做的是分类它在线性组合外面套了一个Sigmoid函数把任意实数压到0到1之间当作概率来用。决策树则是完全不同的思路它通过一系列“如果特征A大于某个值就走左边否则走右边”的规则来做出判断像一个自动生成的流程图。3.4 评估指标准确率不是万能的模型训练好之后必须评估效果第四章在这方面有个很重要的认知点准确率不是万能的评估指标。尤其是分类问题中如果存在类别不平衡准确率会给出相当有误导性的信号。举个例子一个数据集里99%是正常邮件、1%是垃圾邮件那么哪怕模型把所有邮件都判为正常邮件准确率也有99%。看起来模型很厉害但实际上它没有做任何有效工作。这时候应该看查准率Precision和查全率Recall或者把它们综合起来的F1分数。查准率回答的是“模型说它是垃圾邮件说对的比例有多大”查全率回答的是“真正的垃圾邮件里模型找回了多少”。这两个指标此消彼长需要根据具体业务场景去权衡。回归任务的评估指标则常用均方误差MSE、平均绝对误差MAE或R²。R²是一个相对更直观的指标它的值越接近1越好代表模型解释了数据中多大比例的方差。初学者最容易犯的毛病是只看训练集上的分数看到0.99就欢呼雀跃结果拿到测试集上一测效果一落千丈。这就牵出了机器学习中最经典也最让人头疼的问题——过拟合。4. 过拟合与欠拟合第四章最具实战价值的议题4.1 什么是过拟合背答案式的学习过拟合可以类比成学生考试前不学方法只把题目和答案死记硬背下来。如果考试题目完全一样他能拿满分但题目稍微换一种表述他就完全不会了。模型也是一样如果一个模型在训练集上表现极好、在测试集上表现很差大概率就是过拟合了——它把训练数据里的噪音和细节当成了普遍规律。欠拟合则是另一个极端模型太简单连训练集本身的规律都没学出来在训练集上表现就已经很差。这时候不谈泛化能力因为模型连“记住”都没做到。理想状态是模型复杂度刚刚好在训练集上学到的是真正的规律而不是噪声同时具备在新数据上的泛化能力。第四章通常会给出判断过拟合的实操方法观察训练集误差和测试集误差的差距。训练误差低、测试误差高过拟合两者都高欠拟合。更精细的诊断是绘制学习曲线横轴是训练数据量纵轴是误差通过曲线形态来判断模型处于什么状态。如果随着训练数据量增加训练误差和测试误差的差距逐渐缩小说明还有救如果两者始终保持巨大差距那就说明模型结构本身太复杂或训练数据不够。4.2 应对过拟合数据增强、正则化和交叉验证对付过拟合最直接的办法是增加训练数据。数据量大了模型就没法轻易“背答案”因为规律是海量样本中共同体现出来的噪声很难覆盖住真正的信号。但在很多场景下数据收集成本很高这时候就需要从模型侧入手。正则化是第四章一定会提到的对策它的核心思路是在损失函数后面追加一个惩罚项让模型参数不要变得过大。参数值太大通常意味着模型过于依赖某些特征而正则化会强制模型参数向零收缩从而降低模型复杂度。最常用的两种正则化是L1让参数趋向稀疏很多参数直接变成0相当于帮模型做了一次特征选择和L2让参数整体变小但不一定为0更温和也更常用。交叉验证同样是防过拟合的重要手段。它不是在模型训练完之后才出来救火而是在训练阶段就参与模型选择不同超参数组合跑出来的模型用验证集去评估哪个泛化效果最好。很多初学者不理解为什么训练集之外还要单独设一个验证集不就是测试集吗区别在于验证集是“用来选模型的”测试集是“最终裁定模型的”验证集参与了人的决策过程所以它不能同时充当最终评估的角色。4.3 实操中的调参经验我自己跑模型时调参的顺序一般是先保证模型在训练集上能收敛再去解决泛化问题。很多新手恰恰搞反了模型在训练集上都没学好就急着考虑正则化和交叉验证。先确认训练集上的损失在下降、预测效果在不断提升然后再去看测试集的表现——如果发现测试集远差于训练集才进入应对过拟合的阶段。学习率这个超参数值得单独说。用梯度下降训练时学习率设得太大会导致损失函数震荡甚至爆炸太小会让训练漫长到让人怀疑人生。我在调参时习惯先设一个中间值跑几轮观察损失变化趋势如果损失上下乱跳说明学习率偏高如果损失下降得像蜗牛爬说明偏低。先粗调量级再细调具体数值效率会高很多。还有一个小技巧是保存模型检查点checkpoint。每次训练跑到验证集效果最好的时候保存一次训练结束后用表现最好的那个检查点去做最终测试。不要等训练全部跑完再回去找模型那样往往已经过拟合了。这个习惯在第四章的小项目里可能还看不出多大威力但到了后面跑深度学习模型时简直是常规操作中的保命技能。5. 无监督学习从无标签数据中发现结构5.1 聚类的核心思想与K-Means无监督学习在第四章中通常以聚类为主要内容K-Means则是最先讲的算法。它的原理非常直观假如你想把一批用户分成几个群体先随机选K个点作为初始的“群体中心”然后把每个样本分给离它最近的中心所有样本分完一轮之后再重新计算每个群体的中心位置如此反复迭代直到中心位置不再变化为止。K-Means最让人头疼的问题是需要预先指定K值也就是“你要把数据分成几类”。这个问题没有标准答案常用的辅助方法是肘部法则画出K值和整体误差比如样本到所属中心距离的平方和的关系图随着K增大误差一定下降但在某个K值之后下降速度会明显放缓那个拐点看起来就像手肘因而得名肘部法则。我实际用过K-Means做用户分群最大的感受是特征工程的优先级比算法选择更高。K-Means对特征的尺度极其敏感一个取值范围0到1的特征和一个取值范围0到10000的特征放在一起算距离后者会完全主导聚类结果。所以聚类之前通常要把特征标准化让不同特征的尺度处于同一量级这样它们才能在距离计算中真正“平起平坐”。5.2 降维高维数据的可视化和压缩除了聚类第四章还会简单提及降维PCA主成分分析是最常被介绍的方法。降维的目标是把高维数据映射到低维空间同时尽可能保留原始数据中的信息。前面提到聚类时说要标准化特征PCA同样如此因为它本质上是在寻找数据方差最大的方向如果某个特征的方差本来就远大于其他特征PCA的结果就会偏向那个方向失去意义。降维有两个典型应用场景。一是可视化高维数据人眼没法直接看降到二维或三维之后可以画成散点图帮助人理解数据的分布结构。二是特征压缩当特征维度非常高比如几千维但样本量不够大时直接训练模型容易过拟合用PCA压缩到几十维再训练往往效果更稳健。当然这个手段要慎用PCA丢了信息是事实如果压缩后模型效果明显下降说明丢掉的恰是关键信息。无监督学习在第四章通常篇幅不长但它的重要性恰恰在于提醒你不是所有问题都有标准答案。海量无标签数据是人工智能面对的真实常态能从无结构中发现结构本身就是一种很有价值的能力。6. 强化学习用奖励信号驱动智能行为6.1 强化学习的基本框架强化学习在第四章通常作为认知拓展出现讲述不会太深但基本框架必须理解清楚。一个强化学习系统由三大部分组成智能体Agent、环境Environment、奖励Reward。智能体在环境中采取行动环境根据行动返回新的状态并给予奖励智能体根据奖励调整自己的策略以便在未来获得更多累积奖励。这里与监督学习最大的区别在于强化学习没有“正确答案”可以直接比对。下围棋时没有一个明确的函数告诉你当前这步棋应该下在哪你只能通过与对手对弈、获得输赢结果来反复修正策略。很多学者把强化学习类比成一个孩子学会走路的过程我觉得非常贴切摔倒不是“错误答案”而是一条宝贵的反馈信息孩子通过不断试错来掌握平衡的技巧。6.2 探索与利用强化学习的核心矛盾强化学习中有一个极其核心的权衡叫“探索与利用”。利用是说自己继续采用当前已知最好的策略探索是说尝试一些没试过的行动哪怕现在看起来不太好。这个权衡在第四章可能只是几个段落但在实际应用中却非常关键。拿餐厅选择来类比你每次去同一家吃过的餐厅用餐体验稳定这是“利用”偶尔去一家新店可能踩雷也可能发现宝藏这是“探索”。如果永远利用你找不到更好的选择如果永远探索你会反复踩雷。强化学习算法做的事情本质上就是在不断动态调整这个权衡最大化长期的累积奖励。第六章及后面的深度强化学习算法本质上都在解决“如何在复杂环境中高效探索并利用经验”这个问题。第四章阶段不需要掌握算法细节但需要建立起“奖励很稀疏、反馈很延迟”的直观感受下围棋要到终局才知道胜负一局棋那么长每一步棋的价值到底应该归功于谁这就是强化学习后面会遇到的“信用分配”难题。先把这个直觉建立起来后面学Q-Learning、策略梯度时才有抓手。7. 一个可以动手试的小项目房价预测与分类任务理论看十遍不如动手跑一遍。第四章学完我建议你立刻做一个端到端的小项目来巩固理解。这里提供一个最简单但完整的实操路径不需要GPU也不需要大数据集一台普通电脑就能跑完。项目任务1回归——房价预测加载一个自带房价数据集完成以下步骤用head()查看数据前几行确认特征和标签的位置。检查是否有空值用isnull().sum()逐列统计。用train_test_split划分训练集和测试集设置random_state42保证复现。初始化一个线性回归模型在训练集上fit然后在测试集上predict。计算测试集上的MSE、MAE和R²记录结果。在训练集上增加一个多项式特征比如给面积加一个平方项再看测试集效果观察过拟合现象是否出现。加上L2正则化Ridge回归对比测试集效果是否改善。这个过程会把本章几乎全部核心概念串起来数据清洗、数据集划分、模型选择、评估指标、过拟合与正则化。我在指导别人入门时始终强调不要急着换更复杂的模型线性回归能让你把所有环节都看清而复杂模型会把环节之间的交互搅在一起新手根本分不清是数据问题、参数问题还是模型问题。项目任务2分类——鸢尾花分类或类似数据做分类任务时可以完整跑一遍逻辑回归和决策树计算准确率、查准率、查全率和F1分数。重点对比两种模型在不同数据分布上的表现差异。如果你精力够再用PCA把四维特征降到二维把样本画在散点图上你会非常直观地看到聚类结构——这是概念图像化最有效的体验。做项目时我建议养成写实验记录的习惯每个模型、每套参数、每个评估指标都记下来。这个习惯带来的好处在初学者阶段容易被低估但到了后面调参、比较模型时它相当于你自己的经验数据库。你会越来越清楚地看到“什么场景用什么手段、效果如何”这种体感是任何教材都教不会的。8. 初学第四章常见的认知误区与学习建议8.1 误区一把数学推导当作学习重点很多初学者一进第四章就开始死磕梯度下降的数学推导半天过去还在房间里绕圈过不去自信心被打击得所剩无几。我的看法是数学推导是必要的但不是第一遍学习时要死磕的重点。第一遍应该先理解直觉——梯度下降是摸黑下山、正则化是给参数套缰绳、损失函数是衡量错误程度的尺子。有了直觉以后再回头推导公式你会惊讶地发现推导变得顺畅许多因为你已经知道每一步的目标是什么了。反过来如果一上来就陷在推导里最常见的后果是公式推导了整个周末代码一行没写到最后连“模型到底是怎么从数据中学到规律的”这句话都答不清楚。学习新知识时直觉先行、推导跟进这个顺序在工程领域往往更高效。8.2 误区二只调库不调参第一次接触机器学习时很多人会被各种库的简单API“宠坏”三行代码就能训练一个模型实在是太方便了。但便利也有副作用——调用接口并不会让你理解模型内部的运作机制。同样是梯度下降你知道的是model.fit(X_train, y_train)会训练模型但你不知道学习率默认值是多少、模型迭代了多少轮、损失函数最终收敛到了什么水平。破解方法很简单尝试不使用默认参数训练。把学习率手动调成0.1、0.01、0.001各跑一遍观察损失曲线的变化差异把迭代次数从100改成1000看效果提升是否明显给线性回归加不同的正则化系数感受参数约束力度的效果。亲手改变一个参数并观察模型行为的变化这个动作比读十遍理论更有价值。8.3 误区三用准确率单一指标走天下准确率最容易理解所以大家都喜欢用但实际业务里它往往不够用。遇到类别不平衡数据时记得关注查准率和查全率遇到回归问题时用好R²和MSE的组合视角。一个模型的好坏必须放到具体场景里去说垃圾邮件过滤里把正常邮件误判为垃圾邮件的代价很高查准率优先癌症筛查里漏诊的代价更高查全率优先。机器学习的评估永远离不开业务语境这是第四章可能不会直接写出来的深层道理。8.4 学习建议建立自己的实验模板经历过几轮踩坑之后我自己会强烈建议初学者建立一个属于自己的“实验模板”一组标准化的函数封装数据清洗、划分、训练、评估流程每次拿到新数据集就直接套用。这个模板的价值不在于代码多高级而在于它能逼你每次实验都保持同样的流程框架方便横向对比。顺手把每次实验的结果记录下来数据集描述、模型类型、超参数、评估指标时间久了这就是属于你自己的经验知识库比任何教科书都接地气。第四章的篇幅往往不长但它是整门课程中信息密度被低估最高的章节之一。如果你读到这里说明你真的打算把人工智能学扎实而不是只停留在“人工智能很厉害”的感慨层面。花时间把这章的每个概念都亲手验证一遍后面不管你往计算机视觉方向走、往自然语言处理方向走、还是往数据分析方向走都能站得稳。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑