机器学习 · ML
机器学习(Machine Learning)是 AI 大圈里的一个具体流派,也是今天几乎所有"看起来智能"的产品的底子。它的核心思想只有一句:不写规则,让机器从数据里自己找规律。这句话听起来平淡,实际上是软件工程史上最激烈的一次范式反转——过去六十年程序员的核心工作是"把规则写清楚",机器学习把这份工作外包给了数据。这一节要讲清五件事:这个反转具体反转了什么、学习有哪几种范式、经典算法各自的性格、"特征工程"为什么曾经是这行的全部、以及一套能保证你的模型不是在自欺欺人的实验流程。
你第一次挑西瓜完全靠猜。挑了 100 个瓜,每次回家切开,你记下:敲起来闷响 + 底部黄 + 瓜蒂卷——大概率甜。慢慢地,下一次你不用切就能挑出好瓜。
整个过程里:100 个瓜的经验是"数据",你脑子里那套规律是"模型",能挑出没切过的新瓜是"泛化能力"。
先把术语翻译成人话
机器学习的名词有一个共同特点:听着玄,其实全是你早就会的常识换了个说法。先把本节核心名词一次性摆出来,换成大白话再各配一个生活里的对应物:
| 术语 | 换成大白话 | 生活里对应什么 |
|---|---|---|
| ML(Machine Learning,机器学习——不写规则,让机器从例子里自己总结规律的程序) | 不教它怎么做,只给它看足够多的例子 | 新厨师没背菜谱,切了三百斤菜之后自己知道该多厚 |
| 特征(Feature——喂进模型的每一个观测维度) | 你拿来做判断的那几条线索 | 挑西瓜时看的"响声、颜色、瓜蒂" |
| 标签(Label——你希望模型学会给出的正确答案) | 切开之后那个"甜/不甜"的结论 | 考试卷背面的标准答案 |
| 参数(Parameter——训练过程中被自动调出来的那一大堆数) | 网络里那一大堆可以拧的旋钮,机器自己拧 | 洗衣机里的水位、转速,只不过这些旋钮是它自己边洗边调 |
| 超参数(Hyperparameter——训练之前由人手动定下的设置) | 你自己拧的那几个外部旋钮,机器不动它 | 你按下的那个"标准/快洗/强力"模式键 |
| 训练(Training——反复调参让预测和答案更接近的过程) | 一遍遍改,直到差距缩到最小 | 练一道题练二十遍,每遍对一次答案改一次做法 |
| 泛化(Generalization——在没见过的新样本上也管用) | 不是背会了,而是真会了 | 会做没做过的新题,而不只是会做作业上那几道 |
| 过拟合(Overfitting——把训练集里的噪音也当规律背下来) | 把答案连错别字一起背了 | 学生把例题答案全背下来,一换数字就废 |
| 欠拟合(Underfitting——连训练集都学不好) | 它连例题都没听懂 | 上课全程走神,笔记一个字没记 |
| 损失(Loss——预测和真实答案之间的差距,越小越好) | 扣了多少分 | 考完试的错题总扣分 |
| 梯度下降(Gradient Descent——沿着最陡的下坡方向一小步一小步走) | 闭着眼下山,每次朝脚下最陡的方向挪一小步 | 停电了摸黑找楼梯,靠脚感一级一级往下探 |
| 数据泄漏(Data Leakage——答案的线索混进了特征里) | 考卷里夹了答案,成绩当然漂亮 | 模拟考试用的是原题,一到真考就崩 |
| 概念漂移(Concept Drift——世界变了,旧规律不再成立) | 规律本身会过期 | 去年那家菜市场的摊位排布,今年全变了 |
这张表最该盯住的是"参数"和"超参数"这一对,因为它们后面会反复出现。参数是机器自己拧的旋钮,超参数是你替它拧的旋钮——简单说:机器负责微调水位,你负责选模式。剩下那些词,说白了都在描述同一件事的不同侧面:怎么从例子里榨出规律,以及怎么确认你榨出来的规律不是自己骗自己。
再打个比方把"训练"这件事彻底落地。想象一下你在一间黑漆漆的屋子里找门:你看不见全局,只能用脚试——哪个方向地面往下斜,你就往那儿挪一小步,挪完再试一次。挪的那一步有多大,是你自己定的(学习率,属于超参数);你实际站到了哪个位置,是一步步试出来的(参数)。这就是梯度下降的全部内容:不需要知道门在哪,只需要每一步都朝当下最陡的下坡走。步子太大会在两侧来回弹永远到不了底,步子太小则天亮了还在原地——其实就是这么朴素的一件事,只不过在真实模型里这个"屋子"有几十亿个方向。
所以整套机器学习本质上就是三个动作循环:猜一次 → 看差多少 → 照着差距挪一小步。它每天干的活儿就是把这三步重复几万到几百万遍,直到差距缩到不能再缩。后面所有听起来复杂的技术名词,都是在这三步里的某一步上做优化。
ML 和传统编程的最大区别:一次输入输出的对调
| 传统编程 | 机器学习 | |
|---|---|---|
| 输入 | 数据 + 规则 | 数据 + 答案 |
| 输出 | 结果 | 规则(模型) |
| 规则来源 | 程序员写 | 机器自己找 |
| 擅长 | 逻辑清晰、规则明确的问题 | 规则模糊、样本丰富的问题 |
把这张表念一遍容易,理解它有多颠覆则需要一个具体例子。假设任务是识别手写数字。传统编程的做法:你得写规则去描述"8"——上下两个闭合圈、腰部有交叉点;描述"1"——一条近乎竖直的笔画。真动手写你会立刻绝望:有人的 7 带横杠,有人的 4 是开口的,有人的 9 尾巴拖得像 g。你写到第两百条规则时,新规则开始和旧规则互相打架,而准确率卡在 70% 上不去。
机器学习的做法:拿 MNIST 数据集里 6 万张标好数字的手写图片,喂进一个模型,让它自己去找"什么样的像素组合对应 8"。你一条规则都不用写,几分钟训练后准确率就能到 98% 以上。你交出去的不是知识,而是判断的权力——这是这个范式最迷人也最危险的地方:模型可能学到你完全没想到的正确规律,也可能学到你完全没想到的错误捷径。
关于"错误捷径",有个被反复引用的真实教训:早年有研究者训练模型区分哈士奇和狼,准确率很高,事后用可解释性工具一看,模型根本没看动物,它学的是"背景里有雪就是狼"——因为训练集里狼的照片大多在雪地拍的。同类问题在医学影像里也出现过:模型靠"图像上有没有某家医院的标尺水印"来判断病变,因为重症病人集中在那家医院。这就是范式反转的代价:你不写规则,就等于不完全知道它在用什么规则。
传统编程: 规则(人写) + 数据 ──程序──▶ 答案
机器学习: 数据 + 答案(人给) ──训练──▶ 规则(模型)
│
新数据 ─────────────┴──▶ 预测答案
↑ 注意:第二行的"规则"跑到了右边,这就是"范式反转"
顺带说一句常被引用的定义。1959 年,IBM 的塞缪尔(Arthur Samuel)写出了会下西洋跳棋且能通过自我对局越下越强的程序,他把机器学习定义为"让计算机不需要被显式编程就能学习的研究领域"。1997 年米切尔(Tom Mitchell)给出了更工程化、至今写在所有教材第一页的版本:一个程序从经验 E 中学习任务 T,如果它在 T 上由指标 P 衡量的表现随 E 增加而提升,就说它在学习。这个定义的价值是把"学习"变成了可测量的东西——你必须先说清 T(任务)、P(指标)、E(经验)三者,才算真的在做机器学习,而不是在做玄学。
机器学习的四大流派
监督学习 · Supervised
你给:数据 + 标准答案。
它学:输入 → 输出的映射。
例:垃圾邮件识别、房价预测、看片诊断。
无监督学习 · Unsupervised
你给:只有数据,没有答案。
它学:数据里的结构、群体、异常。
例:用户分群、异常检测、话题聚类。
强化学习 · Reinforcement
你给:一个环境 + 奖励/惩罚。
它学:在环境里"怎么做能得高分"。
例:下棋 AI、机器人控制、自动驾驶。
自监督学习 · Self-Supervised
你给:只给数据,自己造答案。
它学:数据的深层表征。
例:大语言模型的预训练(今天的主流)。
监督学习是这行的绝对主力,工业界九成以上的落地项目属于它。它内部还分两支:预测离散类别叫分类(这封邮件是不是垃圾、这个用户会不会流失),预测连续数值叫回归(这套房值多少钱、明天订单量是多少)。它的门槛也非常现实——标注数据贵得惊人。ImageNet 为了给 1400 多万张图片打标签,用了亚马逊众包平台上数万名工人、耗时约两年半;医学影像的标注更贵,必须是有资质的医生逐张勾画病灶轮廓,一张片子可能耗掉专家十几分钟。所以"有没有高质量标注数据"往往是一个 AI 项目能否启动的真正门槛,而不是算法。
无监督学习不需要标签,因此数据便宜,但代价是没有客观的对错。你把用户聚成 5 群还是 8 群,没有标准答案,只能靠业务解释力来判断好坏。它的典型价值在三处:聚类(K-Means 把客户分群做差异化营销)、降维(PCA 把 200 个指标压成 10 个主成分,便于可视化和加速)、异常检测(信用卡盗刷、工厂设备故障——因为异常样本天生稀少,很难凑够标签,反而适合"学正常长什么样,偏离就报警"的思路)。
强化学习的设定完全不同:没有现成数据集,只有一个能反复试错的环境和一个奖励信号。它要处理两个监督学习没有的难题——延迟奖励(下棋走第 30 步的好坏要到第 120 步才知道,功过如何分摊?)和探索与利用的权衡(该继续用已知得分高的招,还是冒险试新招?)。它的战绩很硬:2013 年 DeepMind 用 DQN 玩 Atari 游戏、2016 年 AlphaGo 以 4:1 胜李世石、2017 年 AlphaGo Zero 零人类棋谱自我对弈三天超越前代。它的短板同样硬:极其吃试错次数——在游戏里可以随便重开一万局,在真实工厂或真实病人身上不行。这也是它落地远慢于监督学习的原因。
自监督学习是这几年最重要的一支,因为它一举解决了"标签太贵"这个瓶颈。它的把戏是从数据自己身上造标签:把一句话的最后一个词遮住,让模型预测它——这个词本来就在原文里,等于标签是免费的。互联网上的万亿级文本因此在一夜之间全部变成了"带标签的训练数据"。这就是 GPT 系列预训练的全部秘密,也是 2018 年之后 NLP 突飞猛进的根本原因。它在视觉上也有对应版本(遮住图像块让模型补全,即 MAE;或者拉近同一张图两种增强视角的表示,即对比学习)。严格说自监督是监督学习的一个变种——损失函数、反向传播都一样,唯一的区别是标签不是人给的,是从数据结构里挖出来的。
监督学习:老师每题都给标答,你对着改。
无监督学习:老师不给答案,只把一堆卷子放你面前,让你自己分类。
强化学习:老师不讲课,只在你做对时说"好"、做错时说"不好",你自己摸索。
自监督学习:老师撕掉一半试卷让你补全另一半——不需要额外标注,就能从原文本里"自问自答"。
把这个类比推到底还能看出各自的"教学成本":监督学习最省学生的力,但最费老师的力(每题都得批改);无监督学习老师最省力,但学生学到的东西没法验收;强化学习老师只需要说"好/不好",可学生要试上几百万次才摸到门道;自监督学习则是老师彻底下岗,学生拿一本书自己出题自己答——这就是为什么它能扩展到"整个互联网"这种数据量级,而其他三种都不行。
机器学习的四步流程
1. 准备数据
收集样本、清洗噪音、划分训练集和测试集。数据决定天花板,模型只是逼近。
2. 选一个模型
线性回归、决策树、神经网络——本质都是"一个带参数的函数"。参数就是模型要学的东西。
3. 训练
把训练数据喂进去,让模型不断修正参数,让预测和答案的差距(损失)尽可能小。
4. 评估
拿测试集打分。考得好说明"泛化"了;只在训练集上好叫过拟合——死记硬背而已。
这四步在真实项目里的时间分配非常不直观:第 1 步通常吃掉 60%–80% 的工时,第 3 步往往只占几个百分点。多份行业调查都指向同一个结论——数据科学家把大部分时间花在找数据、洗数据、对齐口径上,真正"调模型"的时间少得可怜。理解这一点能帮你避开新手最常见的心态错误:以为这行的核心竞争力是会用哪个算法。
第 3 步的内部机制值得单独说一句,因为它是所有现代 ML 的公共引擎。训练就是一个下山的过程:模型的参数决定了它在"损失曲面"上的位置,损失越低越好;算法计算出当前位置最陡的下坡方向(梯度),朝那个方向走一小步(步长叫学习率),然后重复几万次。学习率太大会在山谷两侧来回弹跳永不收敛,太小则慢到训不完——这类"不是学出来而是人调出来"的参数叫超参数,它们是这行最耗人的手工活。
三个必须知道的术语
- 特征 · Feature喂给模型的"输入维度"。挑西瓜时"响声、颜色、瓜蒂"就是三个特征。
- 标签 · Label你希望模型学到的"正确答案"。切开后的"甜/不甜"就是标签。
- 过拟合 · Overfit在训练集上完美、遇到新数据就傻。像只会做他做过的题的人。
过拟合还有个孪生兄弟叫欠拟合(Underfit),二者构成了这行最核心的一对矛盾——偏差与方差的权衡。欠拟合是模型太笨,连训练集都学不好(相当于学生连例题都没听懂);过拟合是模型太"聪明",把训练集里的噪音也当成规律背下来了(相当于学生把例题答案连错别字一起背了)。判断哪一种,只需看两个数字:
| 训练集表现 | 测试集表现 | 诊断 | 该怎么救 |
|---|---|---|---|
| 差 | 差 | 欠拟合(高偏差) | 换更复杂的模型、加特征、训练更久 |
| 好 | 差 | 过拟合(高方差) | 加数据、正则化、Dropout、早停、简化模型 |
| 好 | 好 | 健康 | 上线,然后持续监控数据漂移 |
| 差 | 好 | 数据划分或代码有 bug | 先查数据泄漏,这种情况几乎不正常 |
再补三个每天都会遇到的词。参数 vs 超参数:参数是训练中自动学出来的(比如权重),超参数是你训练前手动定的(学习率、树的深度、层数)。准确率不等于有用:如果 1000 个交易里只有 1 笔是欺诈,那么一个"永远预测不欺诈"的模型准确率高达 99.9%,却毫无价值——这就是为什么要用精确率(报警的里面有几个真的)、召回率(真的坏人里抓到了几个)以及二者的调和平均 F1。数据泄漏(Data Leakage):不小心把答案的线索混进了特征,比如用"是否已退款"去预测"是否会退货",模型在测试集上分数漂亮,上线立刻崩——这是新手最常踩且最难自查的坑。
特征工程:深度学习之前,这行的全部功夫
有句在业内流传多年的话:"数据和特征决定了机器学习的上限,模型和算法只是逼近这个上限。"在 2012 年之前,一个 ML 项目的成败几乎完全由特征工程决定——因为经典模型(逻辑回归、SVM、树模型)本身不会"理解"原始数据,你必须把原始数据加工成它能吃的形状。
举个具体例子。要预测一家外卖店明天的订单量,原始数据只有一张订单流水表。直接把"日期"这个字符串丢进模型是没用的,你得手工造出这些特征:星期几(周末和周三完全不同)、是否节假日、前 7 天订单均值(近期趋势)、去年同期同比(年周期)、当日降雨量(下雨订单暴涨)、是否有平台补贴。这六个特征凝结的全是业务常识,模型自己一辈子也从"2026-08-01"这个字符串里想不出"下雨天点外卖的人更多"。
常见的特征工程手法可以归成几类:清洗(缺失值填补、异常值截断)、编码(把"北京/上海/广州"这类类别变量做 One-Hot 或目标编码)、缩放(把"年龄 0–100"和"收入 0–1000000"归一化到同一量级,否则距离类算法会被大数字主导)、构造(用"身高、体重"造出 BMI;用"总金额、订单数"造出客单价)、筛选(去掉相关性极高的冗余特征)。
那么深度学习是不是让特征工程消失了?只在特定领域是。在图像、语音、文本上,深度网络能自动从原始像素和字符里学出特征,手工特征基本被淘汰。但在结构化表格数据(银行、保险、电商、广告的主战场)上,特征工程至今仍是胜负关键——这也是 XGBoost 这类树模型二十年不倒的根本原因。换句话说,特征工程没有被消灭,它是被从一部分领域赶走了。
经典算法的性格:五个各有脾气的选手
在深度学习火起来之前,机器学习的主力是一批更"轻量"的经典算法——今天在很多工业场景里仍然是首选(数据不够、要求可解释、算力有限时用这些):
| 算法 | 擅长 | 今天用在哪 |
|---|---|---|
| 线性回归 / 逻辑回归 | 简单预测和分类 | 信用评分、风控基线 |
| 决策树 / 随机森林 | 可解释的规则 | 金融风控、医学辅助诊断 |
| SVM 支持向量机 | 中等规模分类 | 文本分类、生物识别 |
| K-Means 聚类 | 把数据自动分群 | 用户分群、图片压缩 |
| XGBoost / LightGBM | 结构化数据王者 | Kaggle 比赛、推荐、广告 |
光看表格记不住,逐个说清它们的"性格"你就再也不会混:
- 线性回归 / 逻辑回归最朴素的一条直线(或一个 S 形曲线)。优点是系数可以直接解释——"收入每增加一万,违约概率下降 0.8 个百分点",这种话监管机构听得懂,所以银行的信用评分卡至今用它。缺点是只能表达线性关系,遇到"温度过高过低都影响销量"这种非线性就无能为力。任何项目都应该先用它跑一个基线,如果复杂模型比它强不了几个点,说明问题不在模型。
- 决策树 · Decision Tree就是一串嵌套的 if-else,模拟人的问诊思路:"年龄大于 35 吗?→ 是 → 有房贷吗?→ 有 → 低风险"。最大优点是画出来给谁都能看懂,还不需要做特征缩放。最大缺点是极易过拟合——不加限制它能长到给每个样本单独开一个叶子,那就成了查字典。
- 随机森林 · Random Forest针对上面那个缺点的经典解法:种几百棵树,每棵树只看随机的一部分样本和一部分特征,最后投票。单棵树不靠谱,一群不靠谱的树互相抵消误差反而很稳——这就是集成学习的"群体智慧"。它几乎不需要调参就能给出不错的成绩,是工程师最喜欢的"省心模型"。
- SVM · 支持向量机思路很几何:在两类点之间画一条间隔最宽的分界线,只有贴着边界的那几个"支持向量"决定了这条线的位置。配上核函数(Kernel Trick)还能把线性不可分的数据映射到高维再切开。它在 1990s–2000s 是文本分类的霸主,但样本量一上万计算就吃力,所以今天大多退到中小数据集场景。
- KNN · K 近邻最懒的算法——它根本不训练。要预测一个新样本时,就在训练集里找出离它最近的 K 个邻居,看它们多数属于哪一类。"物以类聚"的直接实现。优点是概念简单、天然支持多分类;缺点是每次预测都要扫全量数据,且在高维空间里"距离"会失去意义(维度灾难)。
- XGBoost / LightGBM梯度提升树,结构化数据上的长期王者。和随机森林的"并行投票"不同,它是串行纠错:第一棵树先粗略预测,第二棵树专门去学第一棵树犯的错,第三棵树学前两棵合起来还没解决的错……一层层把残差啃掉。2015 年前后它几乎垄断了 Kaggle 表格类比赛的冠军,至今在风控、推荐、广告点击率预估里仍是首选。
训练集、验证集、测试集:一套防止自欺欺人的制度
初学者最容易犯的错是用同一批数据训练又评估,然后欢天喜地地宣布准确率 99%。这就像让学生把答案抄一遍再考同一张卷子。所以这行有一套近乎仪式化的数据切分制度,它存在的唯一目的是让你无法骗自己。
| 数据集 | 典型占比 | 用途 | 能看几次 |
|---|---|---|---|
| 训练集 Train | 60%–80% | 让模型调整参数(拟合) | 无限次 |
| 验证集 Validation | 10%–20% | 调超参数、选模型、决定何时早停 | 多次,但每次都在轻微"污染"它 |
| 测试集 Test | 10%–20% | 最终验收,模拟真实世界 | 理想情况只看一次 |
为什么验证集和测试集必须分开?因为只要你根据某份数据的分数做过决定,这份数据就不再"干净"了。如果你反复用测试集调参,试了三十组超参数挑出分数最高的那组,你其实是在把测试集的信息偷偷训进了模型,最后那个漂亮分数是虚的。这种现象叫"在测试集上过拟合",它是学术圈刷榜和工业落地效果落差的主要来源之一。
数据不多时(比如只有几千条),单独切出验证集太浪费,就用 K 折交叉验证:把数据均分成 5 份,轮流拿其中 1 份当验证集、其余 4 份训练,跑 5 次取平均。这样每条数据都当过一次验证样本,结论稳得多。
还有两个必须记住的切分纪律。第一,时间序列绝不能随机切分:预测明天的股价,如果训练集里混进了后天的数据,那就是"用未来预测过去",线下分数会好得离谱,上线立刻打脸。正确做法是按时间切——用 1 月到 9 月训练,10 月验证,11 月测试。第二,切分必须在特征工程之前做:如果你先用全量数据算出"收入的平均值"再拿去填缺失值,那测试集的统计信息已经泄漏进了训练流程。
时间序列的正确切法(不能打乱!)
├──── Train ────┤├─ Val ─┤├─ Test ─┤
1月 ────────── 9月 ── 10月 ── 11月 ──▶ 时间
随机打乱后的错误切法(未来信息泄漏)
▓░▓▓░▓░░▓▓░▓ ← 训练集里混进了测试期之后的样本
训练集、验证集、测试集这套制度,用一家餐厅的三道品尝关就能全说明白。
训练集 = 厨师自己在厨房里试做。他可以做一百遍、尝一百遍、改一百遍配方,想尝多少次都行——这就是"训练集能看无限次"。
验证集 = 店长每天来尝一口,决定用哪版配方。店长不参与做菜,但他要在三版配方里挑一版、要决定辣度调到几档。这一口一口地尝下来,配方其实是照着店长的口味在偏——这就是为什么说"验证集每被用一次就被轻微污染一次"。
测试集 = 开业那天进门的第一批真客人。你不能提前让他们试吃,不能根据他们的反馈改配方再让他们重来一遍。他们的评价之所以值钱,恰恰因为你没机会照着他们的口味调过。
那么"用测试集反复调参"错在哪?好比你把开业第一批客人叫回来试吃三十次,每次照他们的口味改一改,最后那份满分评价其实是你自己给自己打的。翻译成人话就是:一份数据只要你照着它的分数做过决定,它就不再是"外部考官",而变成了你的私人教练。
这个类比还能顺手解释时间序列不能随机切:相当于你拿这个月的客流去"预测"上个月的备货量——数字一定漂亮,因为你在用未来的账本填过去的表,而真开店那天你手里没有明天的账本。
ML 与统计学:两个亲兄弟为什么长得不像
机器学习的数学工具几乎全部来自统计学——最小二乘法、极大似然、贝叶斯定理,没有一个是 ML 发明的。但两个领域的目标不一样,导致气质差别很大。统计学关心解释:这个变量对结果的影响是否显著,置信区间多宽,模型的假设是否成立。机器学习关心预测:只要在新数据上准,模型是不是黑箱、参数有没有含义都可以不管。
| 维度 | 统计学 | 机器学习 |
|---|---|---|
| 首要目标 | 解释与推断 | 预测精度 |
| 关心的问题 | "X 是否真的影响 Y" | "能不能准确猜出 Y" |
| 模型偏好 | 简单、假设明确、可写成公式 | 复杂无妨,能提分就行 |
| 核心指标 | p 值、置信区间、拟合优度 | 测试集准确率、AUC、F1 |
| 数据规模习惯 | 几十到几千条,样本珍贵 | 几万到几十亿条 |
| 术语差异 | 自变量 / 因变量 / 估计 | 特征 / 标签 / 学习 |
2001 年统计学家布雷曼(Leo Breiman,随机森林的作者)写了一篇著名论文《统计建模:两种文化》,把这个分歧点破得很透:一派人假设数据由某个确定的随机模型生成,任务是把模型参数估出来;另一派人认为真实机制根本不可知,任务只是找一个预测得准的算法。机器学习是第二派的胜利。但这胜利有代价——预测准不等于理解因果,这也是为什么医学、政策、经济这些必须回答"为什么"的领域至今更信统计学。
什么问题适合用机器学习
这一节最实用的一段。判断一个需求该不该用 ML,套下面五个条件,缺一个就要非常谨慎:
- ① 规则说不清,但例子给得出这是最根本的前提。你写不出"什么样的评论算辱骂",但你能找出一万条标好的评论——这才是 ML 的地盘。反之,"增值税怎么算"规则写得一清二楚,用 ML 是自找麻烦。
- ② 有足够多、足够干净的数据经验上,简单表格任务几千条起步,图像分类每类几百到几千张,深度模型动辄几十万。而且数据必须和上线后遇到的分布一致——用北方超市数据训的模型放到南方可能直接失效。
- ③ 模式是稳定的ML 的全部假设是"未来和过去长得差不多"。预测明天的电力负荷可以,预测下一个爆款梗不行——后者的规律每周都在变,这叫概念漂移。
- ④ 允许一定错误率ML 输出是概率,永远有错。所以要问"错了会怎样":推荐错一部电影,用户划走就是;诊断错一个癌症,是人命。后者不是不能用 ML,而是必须设计成"AI 初筛 + 人复核",不能让它单独下结论。
- ⑤ 收益能覆盖成本数据标注、算力、上线后的监控和重训都要持续花钱。如果一条业务规则能拿到 90% 的效果,那个多花十倍钱换来的 93% 未必划算。
还要提醒一个最容易被忽略的环节:模型上线不是结束,而是维护的开始。真实世界会漂移——用户口味变了、竞品改了策略、疫情来了,昨天还准的模型今天开始悄悄退化。所以成熟团队一定会做三件事:监控(跟踪线上预测分布和真实结果的偏差)、定期重训(用新数据刷新模型)、影子部署(新模型先并行跑一段时间只看不用,确认更好再切流量)。机器学习产品是活的,它会因为世界变化而变差,而传统软件不会。
机器学习的核心是"给经验,学规律,用规律"。今天再复杂的 AI(包括大模型),底子上都是这三个字:学·验·用。
七条要点收束这一节:(1) 它的本质是范式反转——规则从"输入"变成了"输出",代价是你不再完全知道模型在用什么规则;(2) 四大范式按"标签从哪来"划分:人给(监督)、不给(无监督)、环境给(强化)、数据自己给(自监督);(3) 经典算法各有脾气,先跑逻辑回归做基线,表格数据上 XGBoost 至今难敌;(4) 特征工程决定上限,深度学习只在图像语音文本上替代了它,表格数据上它依然是胜负手;(5) 训练/验证/测试三分是防止自欺欺人的制度,时间序列绝不能随机切;(6) 它和统计学同源不同志——一个要解释,一个要预测;(7) 五个适用条件缺一不可,且上线只是维护的开始。记住一句话:数据决定天花板,模型只负责逼近它。