第一部 · 先看清人工智能 · 第 4 章

读懂 AI 所需的计算、数据与数学直觉

从一张虚构贷款小表出发,理解计算机怎样表示数据、模型怎样学习,以及缺失、偏差、泄漏和因果边界为何不能被公式抹掉。

导读:模型看到的是一张表,不是一个人

一家机构面对贷款申请,现实里会遇到工作是否稳定、收入怎样核实、突发支出从何而来等复杂情境。计算机收到的却可能只是几列数字和几个类别。数据集(dataset)是为分析而组织的一组观测;在常见表格里,一行通常是一条样本,一列是一项变量。[1, §1.3] 从现实到表格,已经发生了选择、测量和编码。空格不自动说明“没有收入”,邮编不等于生活处境,“准时还款”也只记录某个期限和规则下观察到的结果。

本章建立后文够用的最低直觉,不把读者变成速成程序员或统计学家。主线只有一句:硬件执行软件中的算法;算法把被编码的数据变成表示,模型再从表示产生结果;每一道转换都保留一些信息,也丢掉一些信息。 跳过三处公式不影响理解;公式只是把三个常见关系说得更精确。

案例边界 下文贷款表完全虚构,数值仅为教学而设计,不来自真实个人或机构,也没有用于训练真实模型。它不提供授信、反歧视、数据保护或模型风险管理方面的合规建议;现实决策须由适用法域的专业人员审查。

4.1 一次计算背后:硬件、软件与算法

硬件(hardware)是处理器、内存、存储器和网络设备等物理部件。处理器执行指令;内存暂存正在使用的数据;存储器较长期保存文件。CPU 擅长按复杂控制流程处理多种任务,GPU 能让大量相似数值运算并行进行。后者适合很多神经网络计算,却不意味着“有 GPU 就有 AI”,也不表示 GPU 只用于 AI。

软件(software)是程序、库、操作系统及其配置。算法(algorithm)则是解决一类问题的有限、可执行步骤或规则。[2, Definition] 算法像做法,程序是把做法写成机器可执行形式,硬件是实际执行者;同一算法可以由不同程序实现并在不同硬件运行。

“计算量”可用操作次数、时间或内存需求随问题规模怎样增长来讨论,这就是计算复杂度(computational complexity)的直觉。它比较的是增长趋势,不是秒表上的固定秒数。一个理论上增长较慢的算法,在数据量很小或实现效率较低时仍可能更慢;算得快也不等于结论可靠。

4.2 从开关到数值,再到向量、矩阵和张量

数字电路用两个可区分状态承载二进制位(bit),通常写作 0 和 1。多个位可以编码整数、字符、颜色或指令;编码规则决定同一串位怎样解释。十进制的 13 可写成二进制 1101,因为它表示 1×8+1×4+0×2+1×11\times 8+1\times 4+0\times 2+1\times 1。这只是表示不同,不是数值发生变化。

有限位数带来范围与精度边界。许多十进制小数不能用有限二进制小数精确保存;例如 0.1 的机器表示通常只是邻近值,因此若直接检验 0.1 + 0.1 + 0.1 == 0.3,结果可能为假。[3, Representation Error] 这不等于“计算机数学都不准”:整数范围、数据类型、舍入方式和容许误差必须具体说明。

模型需要固定形式的输入。把表 4-1 的 A01 编码为 [7200,36,1][7200,36,1],可以约定三个位置依次表示月收入 7200 元、工龄 36 个月,以及把邮编组 P1 编成 1。这是向量(vector)的计算直觉。许多申请逐行排成表,就是矩阵;多加图像的高度、宽度、颜色通道或一批样本等轴,可以用张量(tensor)表示。机器学习框架通常把张量实现为同一数据类型的多维数组,并以 shape 记录各轴长度。[4, Basics; About shapes]

表示本章直觉例子不能据此推出
标量一个数月收入 7200 元它已解释收入是否稳定
向量有顺序的一列数一名申请人的三项编码数字顺序具有天然意义
矩阵行列组成的数表多名申请人 × 多项特征每列都可比较或相加
张量带更多轴的数值容器一批彩色图像它包含了现实的全部结构

维度不是装饰。若矩阵有 6 行、4 列,它的 shape 是 6×46\times4;其中 6 可代表样本数,4 可代表特征数。交换两轴会改变含义。类别还须编码:把“合同工/自雇/受雇”写成 0/1/2,不表示三者存在天然高低或相等距离。

4.3 贯穿案例:六行贷款小表

表 4-1 六份虚构贷款申请的教学数据。

下表一行是一份样本(sample);模型输入列是特征(feature);希望预测的“12 个月内是否按约还款”是标签(label)。标签不是人的本质,而是按特定期限、观察方式和规则编码的结果。

编号月收入(元)工龄(月)邮编组申请后 12 个月按约还款(标签)用途
A01720036P1训练候选
A024800P2训练候选;工龄缺失
A03910018P1训练候选
A04520060P3训练候选
A05460012P2测试候选
A06830042P3测试候选

表注:“—”表示缺失值,不表示 0。全表为本项目原创虚构数据,不对应真实个人、机构、授信规则或人群,也不构成授信、反歧视、数据保护或模型风险管理方面的合规建议。

缺失值是“该格没有观测值”,不是零。A02 的工龄可能因为未填写、系统故障或不适用而缺失;不同原因会携带不同信息。删掉这一行会改变样本,填成全表平均数会加入假设。无论删除、单独标记还是插补,都应记录方法,并只用训练部分估计插补所需的量。

代理变量(proxy variable)是用来近似另一个难以直接测量概念的变量。邮编组可能关联通勤、房价或服务覆盖,也可能间接编码族群和经济差异。代理不天然有害,但关联会随地区和时间变化,且可能把历史不平等带进结果。NIST 强调,偏差可以从问题设定、数据收集到部署的各阶段进入;方便取得的数据未必代表目标人群。[5, §§3.2.1–3.2.3, 4]

抽样(sampling)决定哪些现实片段能进入表。若表里只收录过去获批者,就看不到被拒者后来是否本可还款;若只收录一家网点、一个季度,部署到别处也可能失灵。六行尤其不足以估计真实表现,但把同一种偏样本扩大到六百万行,也不会自动恢复被系统排除的人。记录数据动机、组成、收集、处理、用途与限制,是数据集文档的基本方法。[6, pp. 86–92]

数据到结果流程:左起是现实申请与测量形成的六行数据表,经缺失处理、类别编码和数值缩放变成向量表示;训练算法据此调整模型参数;模型输出分数或类别,随后才由阈值、人工复核与流程形成行动。四张阶段卡片分别标注抽样与测量、编码假设、目标与数据分布、部署情境与后果等边界。

窄屏提示:流程图可横向滚动。箭头表示信息加工,不表示现实被无损复制。

图 4-1 数据 → 表示 → 模型 → 结果。 模型只处理现实经过抽样、测量和编码后的表示;输出还要经过阈值、人工复核和组织流程才成为行动。图不表示模型能看见申请人的完整处境。(本项目原创绘制;无外部定量数据;许可:CC BY 4.0

见图 4-1:从数据到结果不是一步“算答案”,而是四次需要分别审查口径的转换。

4.4 概率和统计:在限定人群里谈不确定性

概率(probability)用 0 到 1 之间的数表达某事件在明确模型或重复过程中的不确定性;0 与 1 是边界。模型给出 0.8,必须继续问:哪件事、针对什么人群、在什么时间窗、怎样校准?它不是“这个人有八成那么好”。概率分布(probability distribution)则把可能结果与相应概率组织起来,总概率为 1。

条件概率回答“已经限定在某个条件内,比例怎样”。先定义事件 AA 为“12 个月内按约还款”,事件 BB 为“邮编组为 P1”;P(A)P(A) 表示事件 AA 的概率,ABA\cap B 表示两事件同时发生。只在 P(B)>0P(B)>0 时:

P(AB)=P(AB)P(B).(4-1)P(A\mid B)=\frac{P(A\cap B)}{P(B)}. \tag{4-1}

竖线读作“在……条件下”。若把“从六条记录中等概率抽一条”作为这个小例子的随机过程,P1 有 2 条且两条都按约还款,经验条件比例为 P(AB)=2/2=1P(A\mid B)=2/2=1。这只是六行样本内的比例,不能外推为“所有 P1 都会还款”;样本极小且选择机制未知。更不能把方向倒过来:P(AB)P(A\mid B) 通常不等于 P(BA)P(B\mid A)。公式与条件定义可见 OpenStax。[7, §3.1, Conditional Probability]

统计(statistics)用样本描述数据,也在假设下推断更大总体。均值是常见摘要。设 x1,,xnx_1,\ldots,x_n 是同一单位下的 nn 个已观测数值,nn 为正整数,样本均值记作 xˉ\bar{x}

xˉ=1ni=1nxi.(4-2)\bar{x}=\frac{1}{n}\sum_{i=1}^{n}x_i. \tag{4-2}

求和符号表示从第 1 个加到第 nn 个,再除以数量 nn;结果单位与 xix_i 相同。以已观测的五个工龄 36、18、60、12、42 月为例,n=5n=5,均值为 (36+18+60+12+42)/5=33.6(36+18+60+12+42)/5=33.6 月。缺失的 A02 没有被偷偷当成零。均值会受极端值影响,也不等于“大多数人的值”。[8, §2.5, The Arithmetic Mean]

这两个公式都没有消除数据口径。算式可以完全正确,事件定义、抽样或测量却不适合问题;这正是“数学正确”与“研究设计可靠”必须分开的原因。

4.5 函数、参数、损失与优化:学习究竟改了什么

函数(function)是把允许的输入按规则映射到输出的关系。模型可看作带参数的函数:输入一条特征向量,输出一个分数。参数(parameter)是训练中被调整的数;用户选择的学习率、树深等超参数则通常由训练过程外设定或选择,不要混为一谈。

损失函数(loss function)把预测与目标之间的某种不合意程度变成数值,供训练比较。降低所选损失只表示在这项目标和数据上数值更低,不等于更公平、因果解释更正确或现实代价更小。若错拒与错批的代价不同,如何编码目标本身就是人的选择。

梯度下降(gradient descent)反复沿局部损失下降方向调整参数。只看一个实数参数:设旧参数为 θold\theta_{\mathrm{old}},新参数为 θnew\theta_{\mathrm{new}}L(θ)L(\theta) 是可在当前位置求导的实值损失。导数(derivative)是一种描述函数在某一点附近怎样变化的数:横轴参数稍微增加时,纵轴损失大约每增加一个单位会变多少,也就是曲线在该点的局部斜率。记号 L(θold)L'(\theta_{\mathrm{old}}) 读作“LL 在旧参数处的导数”;正值表示向右时局部上升,负值表示向右时局部下降,零只表示该点一阶近似是平的,并不保证它是最低点。这个直觉要求函数在该点可导,也只描述足够小的附近,不能用来保证迈一大步后仍下降。学习率 η>0\eta>0 决定步长。相减还要求更新量 ηL(θ)\eta L'(\theta) 与参数 θ\theta 量纲相同;下列教学例把参数与损失都作为无量纲数:

θnew=θoldηL(θold).(4-3)\theta_{\mathrm{new}}=\theta_{\mathrm{old}}-\eta L'(\theta_{\mathrm{old}}). \tag{4-3}

导数为正,减去正数使参数变小;导数为负,减去负数使参数变大。两种情况都取局部“下坡”方向。小数值例:若 L(θ)=(θ3)2L(\theta)=(\theta-3)^2,则 L(θ)=2(θ3)L'(\theta)=2(\theta-3)。在 θ=1\theta=1 时,括号里 13=21-3=-2,再乘 2 得 4-4;负号表示参数从 1 稍向右增加会让损失下降。从 θold=1\theta_{\mathrm{old}}=1η=0.25\eta=0.25 出发,所以新参数为 10.25×(4)=21-0.25\times(-4)=2;损失从 4 降到 1。若同处用过大的 η=2\eta=2,新参数变为 9,损失升到 36。学习率过小会很慢,过大可能越过低点、振荡或发散。[9, Learning rate]

一维小碗只是方向直觉。真实模型可有海量参数,损失面也未必是单一碗形;梯度方法不保证一般情形都找到全局最低点。优化只回答“怎样降低写下的目标”,不回答“目标是否值得降低”。

4.6 训练、验证与测试:三份数据承担三种工作

训练集用于拟合参数;验证集用于选择模型、阈值或超参数;测试集应封存到选择完成后,估计最终方案在未见样本上的表现。在训练数据上既学又考,模型即使记住答案也可能得高分;反复看测试结果再改方案,也会让测试集逐渐变成训练信息。[10, §3.1; Training, validation and test]

六行表小到不能作可靠评测,但足以看清错误:

  1. 先用全表五个已观测工龄(含测试候选 A05、A06)算得 33.6 月,再划分 A01–A04 训练、A05–A06 测试,并用 33.6 填 A02——测试行参与了训练预处理,发生数据泄漏(data leakage);若只用训练部分三个已观测工龄,均值应是 (36+18+60)/3=38(36+18+60)/3=38 月。
  2. 把“申请后 12 个月按约还款”或由它事后生成的催收状态当输入预测同一标签——使用了真实预测时不可获得的信息,是更直接的目标泄漏。
  3. 按行随机拆分同一人的重复申请、同一家庭或时间相邻记录——训练和测试可能共享近乎相同的信息,评估会过于乐观。

正确顺序是先按真实部署单位和时间关系划分,再只在训练部分拟合插补、缩放和特征选择,把已经学到的处理规则应用到验证与测试部分。scikit-learn 将“预处理只从训练数据学习”列为防泄漏要点。[11, §11.2] 方法学研究还归纳了时间穿越、相关样本跨分区等泄漏,指出这类错误可使研究结论失效,而不只是代码不整洁。[12, pp. 2–6; Table 1]

现实案例:内战预测中的共同插补

2023 年,Princeton University 的 Sayash Kapoor 与 Arvind Narayanan 在 Patterns 发表复现研究,考察政治学中用机器学习预测某地区、某时期是否爆发内战的工作。研究者系统检索到 124 篇文献,再把复现范围限定为同时采用训练—测试划分并公开完整代码和数据的 12 篇;其中 4 篇声称复杂机器学习模型优于逻辑回归,而这 4 篇都被发现存在不同形式的数据泄漏。[12, Civil war prediction, Finding 1; Figure 3]

其中 Muchlinski 等人的数据把训练和测试部分一起插补;另两项研究重复使用已经共同插补的数据。Kapoor 与 Narayanan 按训练—测试边界纠正这些处理后,复杂模型在四项比较中都不再实质优于逻辑回归;Wang 那项研究中,两类模型的 AUC 差距从 0.14 缩小到 0.01。AUC 衡量排序区分能力,这里的差值不是“预测对了多少场战争”。[12, Figure 3; Finding 1]

这是研究发现,适用范围是作者实际复核的 12 篇公开代码与数据论文,不能外推成“所有内战预测”或“复杂模型总不如简单模型”。它与表 4-1 的联系也只是方法教学类比:无论对象是国家—年份记录还是贷款申请,若先用测试部分参与插补,再报告测试表现,封存评估就被破坏。它不说明两类任务的数据、后果或治理要求相同。

过拟合(overfitting)是模型过度适应训练数据中的偶然细节,以至对新数据表现变差。独立测试能发现一部分过拟合,却不能证明部署安全:测试人群若与现实人群不同,指标仍会误导;只报告总体准确率,也可能遮住小群体错误和不同错误代价。

4.7 相关不是因果判决

若这六行里收入较高者更多按约还款,我们观察到的是相关(correlation):两个变量共同变化。它可能来自收入的作用,也可能来自年龄、地区、既有筛选规则等共同原因,或纯属小样本偶然。反过来,线性相关接近零也不排除曲线关系。

因果关系(causality)讨论干预一个因素是否会改变结果。仅从历史表格预测“谁可能还款”,不等于知道“提高表中收入数值会不会使同一个人还款”。把邮编改成另一个编码,更不会搬动一个人的住所、机会或债务。CDC 的方法指南提醒,统计显著本身不建立因果;关联还可能由偶然、选择偏差、信息偏差、混杂或分析错误产生。[13, Interpretation; Causation]

因果问题通常需要时间先后、合理对照、随机实验或经过论证的准实验/因果模型,再结合领域知识。伦理或现实限制也可能使实验不可行。最实用的阅读规则是:看到“X 与 Y 相关”,先把它当线索;看到“改变 X 会导致 Y”,则追问研究设计怎样排除了反向因果、共同原因和选择机制。

核心概念

  • 向量:有顺序的一维数值表示;数字本身不保证保留现实语义。
  • 张量:机器学习实现中常指带 shape 的多维数组;这是计算直觉,不是完整数学定义。
  • 特征:提供给模型的可测量或编码属性;不等于对象的本质。
  • 抽样:从目标总体选择观测单位的过程;大样本不自动有代表性。
  • 概率分布:可能结果与概率的组织;须说明对象和条件。
  • 损失函数:把特定预测误差编码为训练目标;低损失不等于所有现实目标都好。
  • 梯度下降:按局部导数方向迭代调整参数;不保证一般问题的全局最优。
  • 过拟合:过度贴合训练细节而不能推广到新样本。
  • 数据泄漏:训练或选择过程使用了真实预测时不可得的信息,使评估虚高。
  • 因果关系:干预一个因素是否改变结果的关系;不能由相关自动推出。

本章小结

  • 硬件执行软件,算法规定可执行步骤;模型是从输入到输出的一种表示或函数,不是完整产品。
  • 二进制和张量让现实可计算,但有限精度、类别编码和 shape 都有边界。模型处理的是现实的编码,不是现实本身。
  • 一行样本、一列特征、一个标签看似简单,背后却有测量、缺失、代理和抽样选择;更大数据不能自动修正系统性偏差。
  • 条件概率会改变参照人群,均值只压缩一组同单位观测;算式正确不能替代口径和研究设计。
  • 损失定义训练想降低什么,梯度给局部调整方向;优化目标不是公平、因果或公共利益的代名词。
  • 训练、验证、测试必须分工,预处理也只能从训练部分学习。相关可用于预测线索,却不能独自承担干预和因果结论。

相关词条与继续阅读

算法 · 模型 · 向量 · 张量 · 特征 · 数据泄漏 · 过拟合 · 梯度下降 · 因果关系

上一章:智能、心智与机器。下一章将从这些表示与目标出发讨论:搜索、规划与问题求解

资料截止说明 本章资料核查至 2026-08-26。贷款表是原创教学构造,不对应真实授信政策或人群;所有样本比例仅用于手算,不能作经验结论。基础数学关系按 OpenStax 与 Google 教材复核,偏差与泄漏边界按 NIST、scikit-learn 及同行评议方法学文献核对。

本页参考来源

  1. OpenStax. Principles of Data Science: 1.3 Data and Datasets [M]. Rice University, 2024. 定位:§1.3. 稳定来源(访问 )。
  2. Black P E. algorithm [EB/OL]. NIST Dictionary of Algorithms and Data Structures, 2020. 定位:Definition. 稳定来源(访问 )。
  3. Python Software Foundation. Floating-Point Arithmetic: Issues and Limitations [EB/OL]. Python Documentation, 2026. 定位:Representation Error. 稳定来源(访问 )。
  4. TensorFlow Authors. Introduction to Tensors [EB/OL]. Google, 2024. 定位:Basics; About shapes. 稳定来源(访问 )。
  5. Schwartz R et al.. Towards a Standard for Identifying and Managing Bias in Artificial Intelligence [R]. National Institute of Standards and Technology, 2022. 定位:§§3.2.1–3.2.3, 4. DOI稳定来源(访问 )。
  6. Gebru T et al.. Datasheets for Datasets [J]. Communications of the ACM, 64(12): 86–92. Association for Computing Machinery, 2021. 定位:pp. 86–92. DOI稳定来源(访问 )。
  7. Illowsky B, Dean S. Introductory Statistics 2e: 3.1 Terminology [M]. OpenStax, Rice University, 2023. 定位:§3.1, Conditional Probability. 稳定来源(访问 )。
  8. Illowsky B, Dean S. Introductory Statistics 2e: 2.5 Measures of the Center of the Data [M]. OpenStax, Rice University, 2023. 定位:§2.5, The Arithmetic Mean. 稳定来源(访问 )。
  9. Google for Developers. Linear regression: Hyperparameters [EB/OL]. Google, 2025. 定位:Learning rate. 稳定来源(访问 )。
  10. scikit-learn developers. Cross-validation: evaluating estimator performance [EB/OL]. scikit-learn, 2026. 定位:§3.1; Training, validation and test. 稳定来源(访问 )。
  11. scikit-learn developers. Common pitfalls and recommended practices: Data leakage [EB/OL]. scikit-learn, 2026. 定位:§11.2. 稳定来源(访问 )。
  12. Kapoor S, Narayanan A. Leakage and the Reproducibility Crisis in Machine-Learning-Based Science [J]. Patterns, 4(9): 100804. Cell Press, 2023. 定位:Introduction; L1–L3; Civil war prediction, Finding 1; Figure 3. DOI稳定来源(访问 )。
  13. Centers for Disease Control and Prevention. Field Epidemiology Manual: Analyzing and Interpreting Data [EB/OL]. CDC, 2024. 定位:Interpretation; Causation. 稳定来源(访问 )。