← 返回笔记列表
AI 技术与原理 第 3 / 28 篇

AI 原理学习笔记(三):机器学习任务、模型家族与选型

查看“AI 技术与原理”专题目录(3/28)
本文目录 11 个小节

返回系列导读 · 先修:数据、参数与向量

1. 先确定“要输出什么”

回归输出连续数值,例如房价、销量、设备温度;分类输出类别或各类别分数,例如邮件是否为垃圾。名字里的“回归”容易误导:逻辑回归主要用于分类。

排序关心候选顺序,例如让最相关的文档排在搜索结果前面。一个排序模型的分数不必是概率;重点是顺序是否帮助用户完成任务。

聚类没有现成标签,按相似性给样本分组,例如根据消费行为把客户分成几群。得到“第 0 群”之后,还需要人解释它的业务含义。

不要先问哪个模型最强。先写一句“已知什么,要预测什么,什么时候做预测”,这句话会排除很多不合适的方法。

2. 四种学习范式

范式给模型什么最小例子易混淆点
监督学习输入与目标答案面积、房龄与成交价标签也可能有错
无监督学习输入,没有目标类别按消费记录分群分群不自动等于真实人群
半监督学习少量带标签数据与较多无标签数据少量标注图片带动其他图片学习伪标签错误可能被放大
强化学习状态、可选动作、环境反馈的奖励游戏中选择动作获得分数奖励并不等于每一步标准答案

另一个重要词是自监督学习:从数据自身构造监督目标,例如遮住一个词让模型恢复,或用前文预测后文。它不要求人逐条写标签,却仍然有明确的训练目标,LLM 预训练会大量使用。

3. 线性回归与逻辑回归

线性回归把输入加权求和,得到连续预测:

y^=w⊤x+b\hat y=w^\top x+b

它适合作为容易检查的基线。这里“线性”主要说预测对参数的形式;通过人工加入面积平方等特征,也能表达一些非线性关系。

逻辑回归在加权分数后接 sigmoid:

p=11+exp⁡(−(w⊤x+b))p=\frac{1}{1+\exp(-(w^\top x+b))}

分数为 0 时 p=0.5p=0.5;分数很大时接近 1,很小时接近 0。再选择阈值,例如 p≥0.7p\ge0.7 才判正类。预测分数与业务决策阈值要分开:漏掉一次欺诈和误拦一次正常交易,代价可能不同。

详细推导可看线性回归与逻辑回归。

4. 决策树:用问题逐步缩小范围

一棵树可以这样预测房价:

面积大于 80 吗?
  是 → 房龄小于 5 吗? → 对应叶子的平均成交价
  否 → 是否靠近地铁? → 对应叶子的平均成交价

分类树的叶子记录类别比例,回归树的叶子常记录平均目标值。训练的关键是选“用哪一列、在哪个位置切分”,使分组后的目标更一致。

分类常用 Gini 不纯度:

G=1−∑k=1Kpk2G=1-\sum_{k=1}^{K}p_k^2

pkp_k 是当前节点中第 kk 类的比例。两类各一半时,G=1−0.25−0.25=0.5G=1-0.25-0.25=0.5;全是同类时 G=0G=0。切分时看子节点按样本数加权后的不纯度,不能只选一个特别纯、却只装一个样本的小组。

树不断长下去,可以把训练样本切得很碎,记住噪声。最大深度、叶子最少样本数和剪枝用来限制这种记忆。树通常不需要像距离模型那样先标准化,但缺失值、类别编码及数据质量仍然要处理。

5. Bagging、随机森林与 Boosting

Bagging让多个模型在有差异的数据上分别训练,再平均或投票。想象请多个独立评审判断,降低某一个评审偶然失误的影响。

随机森林在有放回抽样的基础上,还在切分时随机考虑部分特征,让树之间的错误不要完全一致。若所有树犯同样的错,增加树的数量也不会神奇解决问题。

Boosting逐轮添加模型,让后来的模型处理当前组合还没解决好的部分:

  • AdaBoost 提高被错分样本的相对权重。
  • GBDT 根据损失的负梯度训练新树;平方损失下可直观看成拟合残差。
  • XGBoost、LightGBM 是梯度提升树的工程与算法实现,涉及正则化、直方图、切分与生长策略等不同设计,不能把所有优化都说成双方完全相同。

偏差指方法本身存在系统性偏离;方差指换一批训练数据结果就大幅变化。深树常有较高方差,Bagging 常用于降低它;Boosting 逐步增强表达能力,但也需要限制复杂度和检查过拟合。

进一步看树与集成学习。

6. SVM:不仅分开,还要留出间隔

两类点可以被很多条直线分开。SVM 倾向于寻找留出较大间隔的边界;离边界近、对边界位置起关键作用的点叫支持向量。

软间隔允许少量违反间隔的样本,用参数 CC 在“尽量少犯训练错误”和“边界别太复杂”之间取舍。CC 不是越大越好。

核函数计算某种特征空间中的相似性,使模型能表达弯曲边界,而不用显式列出所有高维特征。距离和尺度会影响效果,因此标准化通常很重要。

进一步看SVM 与线性判别。

7. 朴素贝叶斯:把条件概率乘起来

贝叶斯公式把“某类里常出现某些词”转成“看到这些词后属于某类的可能性”:

P(c∣x)∝P(c)∏jP(xj∣c)P(c\mid x)\propto P(c)\prod_j P(x_j\mid c)

P(c)P(c) 是类别的先验概率;右侧乘积用了一个简化假设:给定类别后,各个特征条件独立。现实中词语并不真正独立,所以叫“朴素”。

某个词没在训练集出现,直接估计可能得到 0,导致整个乘积为 0。平滑给计数加小量,避免这种一票否决。实现常在对数空间把乘法变加法,减少数值下溢。

它可以是很好的文本分类基线,但输出的概率不必已经校准。进一步看朴素贝叶斯。

8. KNN、K-Means 与 PCA

KNN预测时寻找最近的 KK 个已知样本,再投票或平均。训练过程简单,但预测要找邻居,数据大时搜索成本高。若“工资”按万元、“年龄”按年,距离会受单位影响,通常应先缩放特征。

K-Means反复做两步:把每个点分到最近中心,再用组内平均值更新中心。它优化组内平方距离,适合相应几何假设下的分组;对初始中心、异常值、特征尺度和 KK 敏感。

PCA把中心化后的数据投影到保留方差较多的方向。例如身高与腿长高度相关,可以用少数新的坐标概括它们。PCA 不是挑几个原始列,也不保证保留的最大方差恰好最有助于预测标签;主成分方向同样只能从训练数据学习。

相关展开:KNN与聚类。

9. 真正怎样选模型

先建立简单基线,再逐步加复杂度:

  1. 明确输出、预测时可用信息和错误代价。
  2. 根据数据形态缩小候选:表格、图片、文字、时间序列各不同。
  3. 用正确的数据划分比较,预处理放在验证流程内部。
  4. 同时记录效果、延迟、资源、解释性和维护成本。
  5. 只有收益被验证后,才选择更复杂的方案。

基线可以是“全部预测多数类”或“预测训练集均值”。如果复杂模型连它都赢不了,应先查数据和评估,而不是立即加层、加卡。

复习卡片与自测

  • 任务决定输出形式,数据形态影响模型结构。
  • 监督有标签;自监督从数据构造目标;强化学习依据环境奖励。
  • 随机森林让多棵树分散风险,Boosting 逐步补充当前模型。
  • 选型依赖验证结果,不靠一个脱离场景的冠军名字。

1. 客户分成三群后,第 0 群一定是高价值客户吗?

参考答案不是。编号没有业务意义,要检查每群的特征分布、规模与实际价值。

2. 为什么一棵训练满分的深树可能不如较浅的树?

参考答案它可能把偶然噪声也记住了。应该比较未参与训练的数据表现,而不是训练分数。

3. PCA 为什么可能降低分类效果?

参考答案它寻找大方差方向,没有直接利用分类标签;区分类别的重要信息可能恰好在小方差方向。

原文定位

依据:原资料 第一篇 1.2—1.4,第二篇 2.1—2.19。各模型的进一步公式与实践见正文中的站内链接。

继续学习本专题