资讯详情

机器学习概述:三次浪潮与数据、模型、优化三要素

📅 2026/10/28 20:40:40 | 华诺云谱 👁 阅读
机器学习概述:三次浪潮与数据、模型、优化三要素
简介《第一章机器学习概述PPT》是一份面向人工智能、计算机及相关专业初学者与课程教师的入门课件围绕“为何学、是什么、怎么学”三条主线梳理机器学习在人工智能中的位置。内容从人工智能定义与三次发展浪潮切入串联自动推理、专家系统到深度学习阶段的演进并延伸到机器学习的研究领域及先修课程关系帮助读者建立课程整体框架。课件进一步落到机器学习的核心对象以数据为基础通过模型与优化从数据中提取特征、发现规律并完成分析与预测对离散数据、连续数据以及条件概率分布、决策函数等概念作了引导式说明。资源包共1个pptx文件约10.28MB以幻灯片形式组织理论脉络与案例线索便于课堂展示或自学翻阅。目前已有165人学习适合在正式开课前快速建立概念地图也便于教师按章节取舍内容、学生对照梳理重点。1. 从三个英文单词开始机器学习概述为什么要按 Why / What / How 排很多人第一次打开机器学习概述这类课件期待的是满屏算法名结果第一页只有三个英文单词Why、What、How。这个排版本身就是结论——机器学习不是一堆模型的罗列而是一条因果链先回答机器凭什么能学再回答学出来的东西长什么样最后才是怎么把它算出来。更反直觉的是这条链的终点能被压缩成六个字数据、模型、优化。搞懂这六个字各自承担什么、边界在哪比背下十个算法名字有用得多因为换一个业务场景你真正要判断的就是这三件事里哪一件坏了。2. 异或问题第一次浪潮为什么死在一条画不出来的直线上2.1 「给机器装上推理能力它就有智能」这个赌注的前提第一阶段的研究者押的是一个非常朴素的命题智能的核心是思维思维的本质是符号推演那么只要让机器会推理智能就自然涌现。沿着这条线最漂亮的成果是自动定理证明——把数学命题翻译成一串形式符号再用一套机械的推导规则一步步往下推推到最后一行就是定理。当年有程序把一部数学基础著作里的几十条定理全部证完这件事在当时的震撼程度不亚于今天看到一个模型自己写出可运行的代码。但这条路有个隐藏前提很少被摆在台面上说问题必须是良定义且封闭的。定理证明之所以能被机械化是因为公理集合有限、推理规则有限、每一步的对错都能机械判定。现实世界绝大多数问题不满足这三条——「这句话是不是讽刺」「这张图里有没有猫」你甚至没法把输入写成一个合法的形式表达式更谈不上判定每一步推导对不对。于是整个第一阶段的成果高度集中在少数几个领域定理证明、棋类、积木世界。这些领域的共同点是状态空间可以被穷举描述。一旦走出这个圈子符号系统就迅速退化成一个只会背规则的复读机你给它一个规则里没写的情况它不会猜、不会变通只会卡死。这就是「推理即智能」这个赌注真正的天花板——不是算力不够而是符号系统没有容错。2.2 异或四个点、一条直线、一个无解的不等式组真正把第一次浪潮按在地上的是一个小小的逻辑运算。异或的真值表只有四行(0,0) 输出 0(0,1) 输出 1(1,0) 输出 1(1,1) 输出 0。把它画在平面上四个点呈对角分布同类点在对角线上。问题很直白能不能画一条直线把这两类点分开答案是不能。而当时的感知机判定方式恰好就是一条直线高维下叫超平面给定输入向量 x算一个加权和 w·xb大于零判一类小于零判另一类。这条直线能表达的全部信息就是「线性可分」。异或偏偏是线性不可分的。这不是训练技巧的问题是表达能力的问题——不存在任何一组 (w, b) 能让四个点全部分对这是一个无解的不等式组。下面这段代码把这件事跑一遍你会看到权重不是「学得慢」而是永远在两个错误解之间来回弹。import numpy as np # 异或的四个样本以及对应的标签 X np.array([[0, 0], [0, 1], [1, 0], [1, 1]], dtypefloat) y np.array([0, 1, 1, 0], dtypefloat) w np.zeros(2) # 权重对应那条直线的法向量 b 0.0 # 偏置对应直线的位置 lr 0.1 # 学习率 for step in range(200): pred (X w b 0).astype(float) # 硬判定输出 0 或 1 err y - pred # 分错的样本给出非零误差 w lr * (X.T err) # 感知机学习规则 b lr * err.sum() if step % 50 0: print(step, 分错个数:, int(np.abs(err).sum()), w , w, b , round(b, 3))跑完两百轮最后打印出来的「分错个数」始终是 2权重在一组错误解和另一组错误解之间反复横跳。这段代码里真正值得注意的参数不是学习率而是pred那一行的硬判定它把连续的加权和压成了一个二值输出因此误差信号只能告诉你「错了」不能告诉你「往哪偏一点会更好」。这就是早期感知机的第二个病灶——离散判定导致梯度信息消失模型没有任何可微的路径去自我修正。把这两个病灶放在一起看异或问题的分量就清楚了它同时否定了线性假设空间的表达能力和硬判定的学习机制。后来所有关于多层网络、非线性激活、反向传播的工作本质上都是在拆这两颗雷。2.3 从「教知识」到「学知识」范式切换真正付出的代价第一次浪潮退去的时候批评声集中在两点算力不够以及模型太弱。但更深的一层是研究范式的错位。符号主义的工作方式是「人把知识总结成规则再教给机器」这套流程的隐含成本是知识的形式化成本全由人承担。领域越复杂形式化越贵而且一旦形式化错了整个系统跟着错没有回旋余地。有一个被反复引用的例子很能说明这种脆性把一句中文俗语丢给机器翻译系统先译成外文再译回来结果变成了「酒是好的肉变质了」。系统的每一步都严格按规则执行可整条链路上没有任何一处能做「这句话整体不通」的判断。规则系统里没有全局一致性检查只有局部匹配。这就是范式切换的代价放弃符号系统带来的可解释、可验证、可证伪去换取一个连自己都不知道内部存了什么、但能在没见过的情况下给出合理输出的东西。这个交换在八十年代没有做成不是因为理念不对而是因为当时缺了让连接主义真正跑起来的三样东西。三十年后它们补齐了那是第 4 章的事。3. 专家系统的账本第二次浪潮为什么被「知识」本身压垮3.1 专家系统把口头经验编译成 if-then 规则第二次浪潮换了个思路既然通用智能太难那就把范围缩小到具体领域把领域专家的经验一条条抠出来写成「如果……那么……」的规则再用一个推理引擎去串。这套东西叫专家系统八十年代在配置、诊断、排障这类场景里确实跑通过某些系统的规则规模上千条能替代一部分资深工程师的日常工作。从实现角度看专家系统的结构其实很清晰三层规则库、工作内存、推理机。规则库存 if-then 规则工作内存存当前已知的事实推理机负责匹配——找出哪条规则的前提被现有事实满足触发它把结论写回工作内存再继续匹配。这就是一个前向链推理的循环本质上是在一张巨大的状态图上做搜索。它和第一阶段最大的区别是不再试图证明一切只在一个收窄的领域内做条件推理。这个收缩在工程上是对的短期效果也确实好产业界一度非常乐观。问题出在规模上去之后。3.2 规则库的熵增知识越多系统越脆专家系统最反直觉的一点是规则数量增加系统可靠性反而下降。原因在于规则之间不是独立的。上千条规则里任意两条都可能在某些输入下同时被触发给出互相矛盾的结论也可能一条规则的前提被另一条规则的结论悄悄改写形成意料之外的推理链。你加一条新规则去修一个 bug很可能同时打开了三个新 bug。更麻烦的是知识获取本身。领域专家说出来的经验往往是模糊的、带例外的、依赖语境的工程师要做的是把它压成精确的 if-then这个翻译过程没有标准答案也没有自动化手段只能靠人一条条对。有经验的人会说这套流程真正的瓶颈从来不是推理机的性能而是知识工程师和领域专家之间的语义损耗——专家说「一般情况这样处理」工程师写成了「永远这样处理」三个月后线上发现例外再补一条规则规则库又多了一处裂缝。再叠加一层真实业务的知识是持续变化的。规则库需要维护而维护成本随规则数量的增长不是线性的。一个上千条规则的库改动一处要评估的影响面可能覆盖几十条规则没人敢动最后整个系统变成一个谁也说不清楚的怪物。这就是第二次浪潮退潮的账本——不是推理能力不够是知识的存储和维护成本超过了它能带来的收益。3.3 被埋进冬天的两颗种子反向传播与循环网络有意思的是第二次浪潮退潮的同一时期两个后来真正改变局面的东西已经出现了只是当时没人当回事。一个是多层前馈网络的反向传播算法。它解决的是第 2 章留下的第二颗雷怎么让一个多层的、非线性的模型知道每一层的参数该往哪调。思路其实不复杂——把输出端的误差按照链式法则一层层往回传每一层都能拿到「我这层的输出偏了多少所以我的参数该改多少」的信号。这个机制一旦成立第 2 章那个「硬判定导致梯度消失」的问题就绕过去了把硬判定换成可微的激活函数误差就能流动起来。另一个是带反馈连接的循环网络。它把「当前输出」和「上一时刻的状态」关联起来让网络具备了处理序列的能力也第一次让「记忆」这件事在模型内部有了物理位置——状态向量。这在当时只是个理论上的漂亮结构因为没有足够的数据和算力去训练它。这两颗种子之所以在冬天里没被冻死是因为它们指向了一个共同的方向不再由人来规定模型该长什么样而是让模型自己从数据里把参数调出来。这个方向和专家系统完全相反——专家系统是「人写规则机器执行」反向传播是「人定结构机器找参数」。八十年代没有人愿意为后者买单因为它既不可解释又跑不动两头都不占。4. 第三次浪潮算法、理论、数据、算力是怎么互相点燃的4.1 算法侧从人工设计特征到让模型自己找特征第三次浪潮最容易被误解的一点是很多人以为它是突然出现了一个全新的算法。其实算法结构本身和八十年代那套并没有本质断裂——多层网络、反向传播、可微激活这些骨架都在。真正变的是表示这件事的归属。在传统机器学习流程里特征是人工设计的。你要做图像分类得先想清楚用边缘、纹理、颜色直方图还是 HOG然后把这些手工特征喂给一个不算复杂的分类器SVM、随机森林。模型的上限很大程度上由设计特征的那个人的领域水平决定。这套流程的专业术语叫特征工程本质是把「什么信息重要」这个判断交给人的先验知识。多层网络的思路反过来不告诉模型该看什么只给它原始像素让它自己一层层地把原始输入重新组合成有用的表示。浅层学到边缘和色块中层学到部件深层学到物体。这个「自动学表示」的能力只有在层数够深、数据够多、梯度能稳定传回去的时候才成立。所以算法的演进其实是把原本由人承担的表示设计工作转移到了优化过程里。这个转移是有代价的。人工特征可解释、可调试、样本效率高学出来的表示不可解释、调不动、极度吃数据。这个取舍后面第 6 章还要展开说。4.2 数据与算力同样的算法为什么这次突然 work如果只把算法演进当成第三次浪潮的原因会解释不了一个现象同样的多层网络结构八十年代训练不出来十多年后就能训练出来。差别不在公式在喂进去的东西和算得多快。数据这一侧的变量是量级。八十年代的标注数据规模在千级到万级而多层网络的参数量动辄百万级样本数远小于参数量过拟合是必然的模型能把训练集背下来但学不到任何可迁移的规律。当数据量上到百万、千万级参数量和样本量之间的比例关系才反过来模型「背不下来」只能被迫去学规律。这就是为什么数据增强、大规模标注、以及互联网本身产生的海量文本图像成为第三次浪潮真正的燃料。算力这一侧的变量是并行度。反向传播的计算主体是矩阵乘法而矩阵乘法天然可以在大量计算单元上并行。当通用图形处理器被用来做矩阵运算训练一个深层网络的时间从几个月压到几天整个研究循环的节奏就变了——原本一年只能试一个想法现在一周能试十个。这一点常被忽略算力带来的不只是「能算完」而是试错频率的量级提升而算法的进步本质上是一个试错过程。四件事——算法演进、理论基础的补强、数据规模、算力——不是并列关系而是乘数关系。缺任何一个另外三个的收益都会被压到接近于零。这也解释了为什么两次浪潮都倒在半路上不是方向错是乘法链里有一项是零。把三次浪潮放在一张表里对照各自的「智能来源」和「致命瓶颈」其实很清晰阶段智能来源核心技术致命瓶颈第一次人把逻辑规则写进机器符号推理、自动定理证明表达不了线性不可分规则无容错第二次人把领域知识写成规则专家系统、规则推理机知识获取成本高规则库一致性崩塌第三次机器从数据里自己找参数多层网络、反向传播、大规模优化依赖数据与算力可解释性弱4.3 三元组的实现骨架假设空间、损失、优化器把前四章的内容压缩机器学习干的事就是三句话选一个假设空间模型定义一个衡量好坏的标准损失用某种方式在里面找最优优化。这三件事缺一不可而且顺序不能反——先有假设空间才有「最优」这个概念。下面这段代码用最朴素的线性回归把三元组跑通它只有二十来行但结构上和训练一个大模型没有区别。import numpy as np # ---------- 1. 数据连续型特征构造一个带噪声的线性关系 ---------- rng np.random.default_rng(0) X rng.normal(size(200, 3)) # 200 个样本3 个连续特征 true_w np.array([2.0, -1.0, 0.5]) y X true_w 1.5 rng.normal(scale0.1, size200) # 噪声 scale 控制任务难度 # ---------- 2. 模型把假设空间限定为「线性函数」 ---------- def predict(X, w, b): return X w b # ---------- 3. 优化经验风险最小化 梯度下降 ---------- w, b np.zeros(3), 0.0 lr, epochs 0.05, 200 # lr 太大发散太小走不完epochs 是遍历全量的次数 n len(y) for epoch in range(epochs): residual predict(X, w, b) - y # 残差预测值与真实值的差 loss (residual ** 2).mean() # 均方误差即经验风险 grad_w 2 * X.T residual / n # 损失对 w 的梯度 grad_b 2 * residual.mean() # 损失对 b 的梯度 w - lr * grad_w # 沿负梯度方向更新参数 b - lr * grad_b逐层拆开看。数据那一行里的scale0.1决定了噪声水平也就是这个任务的理论下限——噪声越大任何模型都不可能把损失压到零。模型那一段定义的predict就是假设空间所有形如 w·xb 的函数构成的集合只有 4 个自由参数。优化那一段做的是经验风险最小化loss是经验风险的估计值grad_w是它对参数的导数lr决定每一步走多远。这里最值得琢磨的不是代码而是三个选择各自的后果。假设空间选窄了只有线性模型表达能力不足损失压不下去这叫欠拟合假设空间选宽了比如加上二次项、三次项参数变多训练损失能压到很低但在没见过的数据上表现崩掉这叫过拟合。而优化器这一侧lr取 5 会直接发散成 NaN取 0.0001 则两百轮后参数几乎没动——很多人第一次遇到「训练不收敛」第一反应是换模型实际上十有八九是学习率和损失尺度没对齐。一个实用的判断顺序是先看训练损失能不能降下去优化是否有问题再看训练和验证的差距假设空间是否过宽最后才看整体水平够不够假设空间是否过窄或数据是否有问题。三件事对应三个不同的修法混在一起调就是纯玄学。4.4 离散与连续数据类型怎样反向约束模型选择课件里有一句话很容易被跳过不同的数据类型对应不同的算法模型离散数据和连续数据要区别对待。这句话背后是一条硬约束。线性模型的全部力量来自「加权求和」这个操作而加权求和默认了特征之间存在距离概念——两个样本在特征空间里的远近是有意义的。连续特征满足这个前提身高 170 和 175 的距离和 175 和 180 的距离是一回事。但离散特征不满足把「城市」编码成 1、2、3模型会认为城市 3 和城市 1 的距离是城市 2 的两倍这个「距离」纯属虚构学出来的权重毫无意义。所以离散特征的标准处理是独热编码——把一个类别变量展开成若干位 0/1每一位单独一个权重。代价是维度膨胀类别多的时候矩阵会变得极其稀疏于是又衍生出各种降维和嵌入的方法把高维稀疏的独热向量映射到一个低维稠密向量上让模型自己在训练中决定这些类别之间该有多近。今天大模型里的词嵌入本质就是这套思路的极端版本。连续特征也不是无条件安全。量纲不一致是最常见的翻车点一个特征的取值范围是 0 到 1另一个是 0 到 100000做梯度下降时后者的梯度会压倒前者模型几乎只学那一个特征。标准化的意义就在这——把所有特征拉到同一量级让优化过程对所有参数一视同仁。这件事听起来琐碎但它决定了模型能不能训练起来属于那种不做就一定出问题、做了又看不出效果的环节。5. 避坑初学机器学习概述时最容易翻车的五个认知5.1 跳过 Why 直接刷算法遇到新问题就无从下手现象把课件里的算法名字抄了一遍SVM、决策树、神经网络都能说出个大概但拿到一个真实需求时第一反应是「该用哪个」然后开始随机试。原因学习路径从「算法清单」入手跳过了「为什么需要这个算法」这一段。每个算法都是为了解决前一个算法的具体缺陷才被提出来的——决策树解决可解释性集成方法解决单棵树的方差核方法解决线性不可分。不知道缺陷是什么就不知道算法的适用边界。解决每学一个模型强制回答两个问题——它把假设空间限定成了什么形状它对数据有什么隐含假设。回答完这两个选型基本就不靠猜了。5.2 把「数据越多越好」当默认忽略分布一致性现象训练集上的指标很漂亮上线后效果断崖式下跌回头查代码没找到 bug模型结构也没动过。原因训练数据和线上数据的分布不一致。历史数据里某类样本占比极高模型学到的是「大部分情况都长这样」而不是「这一类该怎么判」。数据量大不等于信息量大重复的、有偏的样本只会把模型往多数类上推。解决切数据之前先看分布按时间切而不是随机切训练集和验证集的类别比例、特征分布都要对一遍。这一步花的时间比调参值钱得多。5.3 默认「模型越复杂越强」在小样本上过拟合现象换了一个参数更多的模型训练损失降了一半验证损失反而涨了两边曲线形成一个大喇叭口。原因参数量超过了样本能支撑的规模。模型有能力把训练集里的噪声也记下来这些噪声在验证集上不存在于是泛化性能下降。第 4 章那个三元组里这属于假设空间选得过宽。解决先跑一个简单模型做基线复杂度只在这个基线上加。同时看训练和验证两条曲线的间距间距持续扩大就是过拟合的明确信号此时该做的是加正则、减参数或者补数据而不是继续调学习率。5.4 训练不动就换模型其实是优化环节出了错现象损失从一个很大的值几乎不下降换了两三个模型结构情况一样。原因把优化问题和建模问题混为一谈。损失不降可能是梯度爆炸、学习率过大导致在最优解附近震荡、特征没标准化导致某些维度梯度压倒其他维度这些都属于优化环节换模型结构完全无效。解决先做一次「能不能过拟合一个小批量」的测试——拿 20 个样本反复训练如果损失都降不到接近零那一定是优化链路有问题跟模型容量无关。这个测试五分钟能做完能省掉大半天的瞎试。5.5 把离散特征当连续值喂进去学到的是虚构的距离现象模型能训起来指标也不算差但特征重要性排序看起来毫无道理某些类别变量的权重方向完全反直觉。原因整数编码让模型误以为类别之间存在序关系和距离关系。第 4 章讲过线性模型的加权求和依赖距离概念而类别之间的距离是人造的。解决类别变量一律走独热编码或嵌入不要用整数编码直接喂给依赖距离的模型。树模型对这一点相对宽容但也只是相对——类别数多的时候同样会出问题。6. 取舍为什么这门课先讲历史再讲公式把六章串起来看会发现一个刻意的顺序先讲两次失败再讲第三次成功最后才落到数据、模型、优化这三个词。这个顺序不是叙事偏好而是一种取舍——先建立失败的模式再学成功的工具。因为工具是会过期的。今天讲的所有具体算法五年后大概率会被换掉一批但「假设空间太窄导致欠拟合」「知识维护成本超过收益」「优化链路断了导致训练不动」这几类失败模式换十代技术栈都还是那几类。历史那一部分看起来最没用、最像科普实际上信息密度最高它把「什么情况下这套方法会崩」提前告诉你了而这恰恰是工程实践里最贵的知识。另一个取舍在可解释性和表达能力之间。符号系统和专家系统把这两者绑在一起——规则可读代价是表达不了复杂模式连接主义把可解释性交出去了换来了表示学习的能力。这个交换没有普适答案只有场景答案风控、医疗这类需要给出理由的场景可解释性的权重要往上提感知类任务可解释性本来就难以定义那就不该为它牺牲性能。判断标准不是「哪个更先进」而是「出了错之后你能不能定位到原因」。定位不了又必须定位的地方就别用黑匣子。最后一个取舍是关于学习路径的。这份课件本身是概述性质覆盖面广但不深它的价值不在于让你掌握某个算法而在于给你一张地图——知道每个方向解决什么问题、彼此之间是什么关系、走到边界会在哪里卡住。真正深入要回到具体的论文和代码里但有了这张地图你翻开任何一篇论文都能快速定位它在整条链上的位置而不是从零开始理解。我自己的血泪经验是早年学这些东西时我总想跳过 Why 直接看公式觉得历史部分是废话结果每次遇到「模型明明训得动但效果就是不行」的问题都要从头推一遍才想明白卡在哪。从那以后我每次碰一个新模型第一件事不是看它的结构图而是把它的假设空间和失效条件写在一张纸上写不出来的就说明还没搞懂。这个习惯帮我省掉的时间比任何调参技巧都多。希望帮到你。这份机器学习概述的课件从三次浪潮的因果链到数据、模型、优化的三元组骨架配上避坑清单适合当作建立底层认知的第一张地图来用需要的话可以拿去对照着过一遍。本文还有配套的精品资源点击获取
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑