机器学习课的常见开场是讲算法:第一周线性回归,第二周决策树,第三周神经网络。Paul Liang 这一讲反着来。他先讲数据,而且讲了整整一节课,模型一个字没提。他给的理由很简单:你手里那摊数据长什么样,基本上已经决定了模型该长什么样,反过来不成立。
这是 MIT《How to AI (Almost) Anything》的第 3 讲(原视频),主题是 数据、结构与信息。
这一讲想让你记住的一件事
Paul 在结尾给了一个”how to data”的六步清单,翻译过来就是:先想清楚收什么数据、怎么清洗、怎么找噪声、画图看结构、定评估指标,最后才轮到选模型。前五步全是数据侧的工作,模型只占第六格。
整节课就是在论证这个排序的合理性。他先把世界上常见的几种模态过了一遍,再把它们抽象成一个统一的”模态档案”(modality profile),最后才让学习范式登场。顺序本身就是观点:模型是后来才有的事。
一种模态就是一种看世界的方式
模态(modality)指的是数据被表达或感知的一种方式。Paul 把它分成两层:靠近传感器的原始模态,和离传感器远一点的抽象模态。麦克风录下的音频是原始的,从音频里识别出来的文字就是抽象一层,文字里再读出情绪又是更抽象一层。机器学习做的事,大多数就是从原始往抽象走,留下有用的信息,丢掉没用的部分。
他挑了七种数据形态做样本,每一种都顺手讲了”它跟其他模态最不一样的地方在哪”。这部分是这一讲最干货的一段,我按他的顺序留下来。
视觉。一张彩色图在计算机里是 H×W×3 的矩阵。任务可以是二分类(有没有狗),也可以是多分类(从几千个类别里挑一个)。看起来朴素,但它定下了视觉数据最重要的两个属性:有空间结构,通道是固定的。
语言。最简单的表达是 bag of words:把所有词排进字典,出现哪个词就在哪个位置打 1。Paul 自己马上就吐槽,这种表达不管词序——”not happy”和”happy”在 bag of words 里挨在一起,但意思相反。他没展开,但留了一句话:整门课后面会讲更好的表达方式。这一句留白本身就是教学法:先让你看到糙的版本,你才知道精致的版本是为了解决什么。
音频。麦克风按固定采样率把连续声音离散化,关键参数是采样率和位深。时间窗也很关键:窗太短只听到一个音素,窗太长又把好几个词混在一起。有趣的是,你可以把频谱图(spectrogram)当成图像扔给图像识别模型,居然能跑出结果。这就是模态之间的第一次串味。
传感(机器人)。这是 Paul 私心最重的一段。他举的例子是机器人手臂上的六轴力矩传感器:一个 T×6 的矩阵,六个维度分别是不同方向的力和力矩。配上”本体感觉”(proprioception),也就是机器人自己知道每个关节的角度、速度、位置,你就能让模型预测正在抓的物体是软是硬、形状是什么,甚至预测下一步该往哪儿走。一旦动了一下,数据又变了,新的一帧进来,继续预测。这就是从感知到行动的雏形。
表格。他用 ICU 的 MIMIC 数据集做例子。一个病人有两类数据:进医院之前的静态信息(年龄、性别、既往病史),进了 ICU 之后的时序信息(心率、血氧、血糖在每个时间点的值)。表格数据有一个隐性约束很容易被忽略:列的顺序不应该影响判断。你先填年龄还是先填性别,模型给出的预测应该一样。如果你的模型对列序敏感,那它没真正理解数据。这条规则放出去之后,后面”集合模态”的引子就铺好了。
图。社交网络、蛋白质相互作用网络、知识图谱。节点本身有属性,边告诉你谁跟谁有关。常见任务是节点分类(这个人偏左还是偏右)和链路预测(这两种蛋白质会不会相互作用)。早期的 IBM Watson 玩 Jeopardy,背后就靠一个巨大的常识知识图谱。Paul 顺手提了一句:今天大模型流行,但大模型的参数里存的知识 vs 外部知识图谱这两条路怎么调和,仍是活跃方向。
集合与点云。集合(set)跟表格有点像:里面有哪些元素重要,但元素顺序不重要。点云就是三维空间里的一堆 xyz 点,3D 重建用得多。共同点都是顺序不敏感。如果你不小心训了个对顺序敏感的模型,等于自己给自己挖坑。
七种模态过完,你会发现 Paul 没在比”哪种最重要”,他在带你看:每种模态都有一组独属于它的怪癖——视觉有空间结构,语言有词序,音频有时间和频率两套表达,机器人传感是 T×D 的连续流,表格列序无关,集合元素无序,图有拓扑结构。这些怪癖才是后面选模型时真正的约束。
模态档案:五个维度看清你手里的数据
讲完七种数据,Paul 抛出他的统一框架,叫模态档案(modality profile)。给你任何一种新数据(气味、触觉、生理信号、还没人碰过的传感器),你都应该先回答五个问题。这是这一讲最该带走的工具。
第一,元素分布。这种模态里,最小的有意义单位是什么?图像里是物体(笔记本电脑、茶杯、沙发),语言里是关键词(忽略 the/of 这些虚词),它们是连续的还是离散的,取值范围有多大?这一步直接决定了你后面怎么表征单个元素。
第二,粒度。元素出现的频率。一张图里几个主要物体?一段语音每分钟多少个词?一个句子多少个 token?粒度决定了你的模型一次要吞多少东西、要在多大窗口上做组合。
第三,结构。元素之间怎么拼成更高层的意思。图像是空间结构,语言可以理解成层级的语法树(Chomsky 派),也可以简单粗暴地当成序列让 Transformer 吃(经验主义派,事实证明这条路反而更好走)。结构定下来,模型架构基本就定了型。
第四,信息量。把元素组合起来之后,这种模态总共能告诉你多少东西、能支持多少种推断。不同模态信息量不一样,而且模态之间常常重叠——视觉看到杯子在笔记本右边,文字描述也说杯子在笔记本右边,这一段信息两边都有。重叠不是坏事,它是后面做多模态融合的前提。
第五,噪声。这是大家最容易跳过的一栏。相机会抖、会被遮挡;键盘输入有错别字;语音识别有口误。Paul 提醒你:每种模态都有它自己一套独特的噪声模式,提前知道噪声长什么样,模型才能扛得住。
五个维度合起来就是一张数据的脸。下次你抓到一种从没人做过的模态(比如电梯井道里的振动信号、机器人轮子打滑的电流波形),按这五个维度问一遍,你大概知道接下来该怎么走。
三种学习范式,六条数据通路
模态档案讲完,Paul 才进学习范式。他先把基本款过了一遍:监督学习给 X 给 Y、无监督学习只给 X、强化学习给 X 还得给序列化的奖励。这部分没新东西。
有意思的是他在基本款之外列的六条变体,每一条都对应”你手上的数据长什么样”。这才是干货所在:
- 多模态学习:有两路输入 X₁、X₂(比如视觉+语言),共同预测 Y。信息更多,但要求数据里 X₁、X₂、Y 同时配齐。
- 多任务学习:一路输入 X,同时预测 Y₁ 和 Y₂(比如同时预测情绪和压力水平)。两个任务相关时效果好,但你得有同时标了 Y₁ 和 Y₂ 的数据。
- 迁移学习:先在 X→Y₁ 上训练,再把模型搬到 X→Y₂ 上继续训。典型场景是自然图像数据多、医学图像数据少,先在自然图像上把视觉表征学好,再迁过去。
- 跨模态迁移:输入模态本身换了。在语言上预训练的大模型,迁到代码、数学、蛋白质序列、基因组,甚至机器人的状态-动作序列上,居然都能用。这条路 Paul 特别强调,后面会专开一讲。
- 自监督预训练:不要标签,自己从 X 里造伪标签。常见招式:遮一半图让模型猜另一半;把图切成拼图让模型还原;给前几个词让模型预测下一个词;给图像加噪声让模型还原。这些任务都不用人工,数据量可以做到无限。前提是你设计的”X → X′”这条关系本身有意义,学到的表征才会迁得动。
- 人在环路学习:模型预测、人给反馈、反馈进训练、模型再预测。RLHF 是它的当代变种。
这六条不是平行的”工具箱”,它是一棵决策树。你手里数据的形状决定了你能走哪一支:有完整标签走监督,标签贵但数据多走自监督预训练,有多种传感器走多模态,跨场景但任务相似走迁移,有人愿意持续给反馈就上人在环路。Paul 没明说,但这是顺着前面”模态档案”自然推出的:你想用哪种学习范式,本质上是数据形状的函数。
评估在最前,模型在最后
这一讲快结尾的时候,Paul 给了一张”how to data”清单。这是他对学生最直接的劝告,我原样翻译:
- 先想清楚要收多少数据、多少要打标签——人力、时间、钱,提前算账。
- 清洗、归一化、标准化,让数据落在合理的取值范围。
- 找出噪声、离群点、异常值,这些有现成的库。
- 画图看数据。一维直接画;高维用 PCA、t-SNE 降到二维三维,看看数据有没有天然的簇。Paul 在这条上特别加了一句”很多人不画图”,语气罕见地重。
- 定评估指标。回归用平方误差,分类用准确率,涉及人的用真实用户测试或代理指标(因为真实指标很难快速迭代)。
- 以上五步都做完,才轮到选模型类。
这套顺序的潜台词是:你定不下来怎么评估,就没法判断模型好不好;判断不了模型好不好,再多算力也是在原地打转。机器学习课最容易让人误以为这是一个”挑模型”的学科,但真正决定胜负的早在数据这一头。
他在最后还顺手提了过拟合和泛化。把数据切成训练/验证/测试三段,本质是用静态切片去模拟”未来还没出现的数据”。模型在训练集上学得太死,在测试集上就跨不过去。这是老生常谈,但放在数据那六步清单后面,你才能体会到”测试集”和”未来真实分布”不一致才是问题的根:测试集本身是不是真实部署条件的一个好代理,这件事得提前想。
把这一讲放到机器人上看
我做的是机器人云服务,这一讲对我来说几乎像一份现场工作说明书。
清洁机器人就是七种模态里的”传感”那一段的工业版。一台车上,激光雷达每秒钟吐几十万点云,深度相机给 RGBD,IMU 给三轴加速度和角速度,里程计给轮速,碰撞条给二值信号,电机给电流和温度,有的还带超声、红外悬崖、地毯识别传感器。每一路数据都是 T×D 的连续流,只是 D 和采样率各不相同。Paul 课上的 T×6 力矩传感器,在我们这儿是一打数据流并行。
把”模态档案”五个维度套上去,问题瞬间具体起来:
- 元素:点云里的一个点(xyz + 反射强度)是不是合适的最小元素?还是要先聚成 voxel(体素,三维网格里的一个小方格)再当元素?这件事我们组里争论过好几轮。
- 粒度:激光雷达 10Hz,IMU 200Hz,碰撞条事件触发(可能几小时不响一次)。三种粒度差两个数量级,怎么让它们在同一个模型里说得上话,是融合最难的一步。
- 结构:激光雷达点云是无序集合,跟 Paul 讲集合模态那一段对上了——我们模型如果对点序敏感,就是在自残;IMU 是严格时序;栅格地图是空间结构。三种结构混在一辆车上。
- 信息量:晴天空旷大厅里,激光雷达基本能独立决策,视觉是冗余;但在玻璃门、镜面、低矮黑色物体面前,激光雷达直接瞎掉,视觉变成主力;雨天起雾两个都失灵,得靠 IMU + 里程计盲走一小段。信息量不是常数,是场景的函数。这条 Paul 课上没讲,但他那个”用文件夹挡摄像头让机器人切回力觉”的逻辑是同一回事。
- 噪声:玻璃门反光、镜面、地面积水反射,这些是激光雷达的特定噪声;逆光、低照度是视觉的特定噪声;打滑、震动是 IMU 和里程计的特定噪声。每一种噪声背后都是一条工程债。
更值得抄的是 Paul 那条”先评估、后模型”的顺序。我们以前上一套新算法,常见的流程是:工程师在仿真里调通,跑几条录包,看着效果好,直接上车。结果上车后才发现现场的”测试集”跟仿真不是一回事:光照、地胶反光、人流密度、电梯里的金属反射,统统没覆盖。Paul 课上那句”测试集要尽可能贴近真实部署条件”,在机器人这边的代价非常昂贵:返工一次就是一次大版本回滚。所以我现在更倾向于先把”评估到底怎么算赢”这件事吵明白,再开工——这跟先选模型反过来。
最后一条想留下来的是自监督预训练那段对机器人特别合身。我们手头每天产生几 TB 的原始传感器数据,绝大多数是没标签的:它们记录了车走过的每一条走廊、每一次避障、每一次擦边。让人打标签贵到不可承受,但”用前 5 秒预测后 5 秒”、”用激光雷达预测视觉、用视觉预测激光雷达”、”遮一段轨迹让模型补全”——这些自监督任务,数据量近乎无限,而且任务本身就贴近驾驶。这条路我们才刚开始试,但方向感是这一讲给我加深的。
收束
这节课表面在讲数据有几种形态,底下其实在教一个习惯:拿到一种新数据,不要先问”用什么模型”,先把模态档案那五栏填一遍。元素是什么、粒度多大、怎么组合、信息量多少、噪声长什么样。填完之后,大半个模型选型已经做完了,你只是还不知道。
下一讲讲实用 AI 工具,会从这条线接着往下走:你看清楚了数据的脸,接着才好挑趁手的家伙。
本系列
MIT《How to AI (Almost) Anything》共 12 讲,这是我的逐讲解读:
- 这门 MIT 课不教模型,教你怎么”想” AI
- 怎么做 AI 研究:读论文、找想法、快速验证
- 数据、结构与信息 (本篇)
- 实用 AI 工具
- 常见模型架构
- 多模态对齐
- 多模态融合
- 跨模态迁移
- 大型基础模型
- 大型多模态模型
- 强化学习与交互
- 人机交互









AI周刊:大模型、智能体与产业动态追踪
程序员数学扫盲课
冲浪推荐:AI工具与技术精选导航