Anthropic 工程博客 · 中文学习笔记Anthropic 工程笔记

    标签:ml-foundations

    0 篇笔记 · 30 篇论文笔记 · 1 个资源导读

    论文笔记(30)

    1. D01 循环神经网络为什么“好用得不讲道理”:字符级语言模型入门 · P1 · 8 分钟

      Karpathy 的经典博文:用一个只会“看前面的字符、猜下一个字符”的循环网络,在莎士比亚、维基百科、LaTeX、Linux 源码上学出像模像样的文本。它把“预测下一个 token + 逐个采样 + 温度”这套今天大模型仍在用的骨架讲得最直观。

    2. D02 理解 LSTM:用“门”管理记忆的循环网络 · P1 · 7 分钟

      Chris Olah 的图解博文:普通 RNN 理论上能记住长距离信息,实践中却学不会;LSTM 用一条几乎只做加法的“细胞状态”加上遗忘门、输入门、输出门,决定忘什么、记什么、说什么。文末把注意力点名为下一步,是通往 Transformer 的桥。

    3. D03 循环神经网络的正则化:dropout 只加在层与层之间 · 补完 · 6 分钟

      Zaremba、Sutskever、Vinyals 2014 年的短论文:dropout 直接用在 RNN 上效果不好。作者只对层与层之间的非循环连接做 dropout,不碰时间步之间的循环连接,LSTM 因此既被正则化、又不丢长期记忆,在语言建模、语音、翻译和图像描述上都减轻了过拟合。

    4. D04 用最短描述长度让神经网络保持简单:给权重加噪声、按比特计价 · P6 · 7 分钟

      Hinton 与 van Camp 1993 年的论文:网络的权重里装的信息如果远少于训练数据的输出,就能泛化。作者用最小描述长度原理把“权重的信息量”算成比特数,给每个权重加可学习的高斯噪声,并用“比特返还”论证说明带噪权重的成本等于后验和先验之间的 KL 散度。这是后来变分贝叶斯神经网络的早期形式。

    5. D05 最小描述长度原理入门:学习就是压缩 · P6 · 7 分钟

      Grünwald 2004 年的 80 页教程:数据里的任何规律都能用来压缩数据,能压缩得越多,学到的就越多。第一章不用公式讲清 MDL 的思想,第二章把它数学化:从“两段式编码”的粗糙 MDL,到用参数复杂度和 NML 分布消除任意性的精细 MDL,并给出压缩、计数、贝叶斯、序贯预测四种解释,最后坦白讨论它的问题。

    6. D06 复杂动力学第一定律:熵一直增加,“有趣程度”却先升后降 · P6 · 7 分钟

      Scott Aaronson 2011 年的博文:为什么封闭系统的熵单调增加,“复杂”程度却先升后降,就像倒进奶的咖啡?他用 Kolmogorov 复杂性和“精致度”分析,指出不加计算资源限制时这些量升不上去,于是提出带资源限制的“复杂熵”,猜想它先低、后高、再低,并建议用压缩文件大小做实验。

    7. D07 咖啡自动机:在封闭系统里量化复杂度的先升后降 · P6 · 7 分钟

      Aaronson、Carroll、Ouellette 2014 年的论文,是 Day 6 博文的实验版:用二维元胞自动机模拟咖啡和奶混合,把“表观复杂度”定义为粗粒化后状态的压缩大小。粒子相互作用时复杂度先升后降,峰值约与杯子边长成正比;互不作用时作者证明它始终不会变大。前者的理论证明仍是开放问题。

    8. D08 AlexNet:用深度卷积网络和两块 GPU 刷新 ImageNet · 补完 · 7 分钟

      Krizhevsky、Sutskever、Hinton 2012 年的论文:8 层、6000 万参数的卷积网络在 ImageNet 上大幅降低错误率,以 top-5 15.3% 赢得 ILSVRC-2012(第二名 26.2%)。关键做法有 ReLU、双 GPU、数据增强和 dropout,被视为深度学习崛起的起点。

    9. D09 ResNet:让每一层只学“残差”,网络从几十层做到上百层 · 补完 · 6 分钟

      何恺明等人 2015 年的论文:网络加深后训练误差反而上升,这不是过拟合而是优化困难。ResNet 让每组层只学残差,再用恒等捷径把输入加回输出。152 层残差网络集成后在 ImageNet 上 top-5 错误率 3.57%,获 ILSVRC 2015 分类第一。残差连接后来成为深层网络的标配。

    10. D10 深度残差网络中的恒等映射:把归一化和激活挪到卷积之前 · 补完 · 6 分钟

      ResNet 原班人马 2016 年的后续:从公式上证明,捷径和相加后的操作都是恒等映射时,信号能在任意两层间直接前向、反向传播;给捷径加缩放、门控或卷积都会让训练变难。据此提出把 BN 和 ReLU 移到权重层之前的“预激活”单元,1001 层网络在 CIFAR-10 上错误率 4.62%。

    11. D11 空洞卷积的多尺度上下文聚合:不降分辨率也能看得更远 · 补完 · 7 分钟

      Yu 与 Koltun 2015 年的论文:语义分割要给每个像素打标签,既要像素级精度,又要大范围上下文,而分类网络靠池化和下采样扩大视野,会丢掉分辨率。空洞卷积让同一个 3×3 卷积核按间隔取样,逐层把间隔翻倍,感受野就能指数增长而分辨率不变。作者据此设计了可插拔的上下文模块,并发现去掉分类网络里多余的部件反而更准。

    12. D12 Dropout:随机丢弃神经元,防止网络过拟合 · 补完 · 8 分钟

      Srivastava、Hinton 等人 2014 年发表在 JMLR 的论文:训练时每个神经元以概率 p 保留、否则临时删掉,相当于在共享参数的指数多个“稀疏子网络”上训练;测试时不再丢弃,只把权重乘以 p,近似对这些子网络做平均。它打破神经元之间的共适应,在视觉、语音、文本和生物数据上都明显减轻了过拟合。

    13. D13 Attention Is All You Need:只用注意力的 Transformer · P2 · 9 分钟

      Transformer 的原始论文:去掉循环和卷积,只用缩放点积注意力、多头注意力、位置编码和逐位置前馈层搭出编码器—解码器。任意两个位置一步相连、训练可完全并行,代价是计算量随序列长度平方增长。今天的大模型都从这里来。

    14. D14 The Annotated Transformer:把论文逐段变成可运行代码 · P2 · 7 分钟

      哈佛 NLP 组的“带注释的 Transformer”:按论文顺序,一段原文配一段 PyTorch 代码,从注意力、掩码、位置编码一路写到训练循环、学习率预热、标签平滑和贪心解码,再用复制任务和德英翻译跑通。读它是为了把 Day 13 的每个公式落到张量形状上。

    15. D15 Bahdanau 注意力:翻译时边对齐边生成 · P2 · 7 分钟

      编码器把整句压成一个固定长度向量,句子一长翻译就变差。这篇 ICLR 2015 论文让解码器每生成一个词,都对源句所有位置打分、加权求和得到专属的上下文向量,也就是后来所说的注意力。它是 P2 的起点,读 Transformer 前先读它。

    16. D16 顺序很重要:把序列到序列模型扩展到集合 · 补完 · 8 分钟

      Vinyals、Bengio、Kudlur 2015 年的论文:链式法则在理论上对任何顺序都成立,但实验表明输入和输出按什么顺序排列,会明显影响 seq2seq 模型的学习效果。针对无序输入,作者提出“读取—处理—写出”结构,用注意力反复读取集合,得到与顺序无关的表示;针对无序输出,提出训练中同时搜索较优顺序的损失。

    17. D17 神经图灵机:给神经网络接上一块可读写的外部记忆 · P3 · 9 分钟

      DeepMind 2014 年的论文:一个神经网络控制器加一块 N×M 的记忆矩阵,读写都是对所有位置的“模糊”加权操作,所以整套系统可微、能用梯度下降训练。它在复制、重复复制、联想回忆、排序等任务上学出了类似程序的读写模式,并能泛化到比训练更长的序列。

    18. D18 指针网络:输出不是词表里的词,而是“指向输入的第几个” · P3 · 7 分钟

      Vinyals 等人 2015 年的论文:凸包、三角剖分、旅行商这类问题的答案是输入元素的排列或子集,可选项随输入长度变化,固定词表的序列到序列模型处理不了。指针网络把注意力分布直接当作输出,每一步“指向”一个输入位置,并能在训练长度之外做一定程度的泛化。

    19. D19 关系网络:一个专门做关系推理的简单神经网络模块 · 补完 · 7 分钟

      Santoro 等人 2017 年的论文:CNN 和多层感知机很难学会“哪个物体离灰色物体最远”这类关系问题。关系网络(RN)把所有物体两两配对,用同一个小网络算出“关系”再求和,结构上就考虑成对关系且与顺序无关。接在 CNN 和 LSTM 后面,它把 CLEVR 准确率从 68.5% 提到 95.5%,超过人类。

    20. D20 关系循环神经网络:让记忆槽之间用注意力互相交流 · 补完 · 8 分钟

      Santoro 等人 2018 年的论文:LSTM 和记忆增强网络擅长存取信息,却不擅长比较不同时刻记住的东西。关系记忆核心(RMC)让一组记忆槽每步用多头点积注意力互相读取、同时读入新输入,再接 LSTM 式门控。它在“第 N 远向量”任务上把准确率从不足 30% 提到 91%,在三个语言建模数据集上也降低了困惑度。

    21. D21 神经消息传递:用统一框架在分子图上预测量子化学性质 · 补完 · 8 分钟

      Gilmer 等人 2017 年的论文:把至少 8 种已有图神经网络统一成“消息传递神经网络”(MPNN)框架,即节点反复收集邻居发来的消息、更新自身状态,最后用与顺序无关的读出函数得到整张图的输出。作者在框架内探索新变体,在 QM9 分子数据集的 13 个量子化学性质上都取得当时最好成绩,其中 11 个达到化学精度。

    22. D22 Deep Speech 2:用同一套端到端深度学习识别英语和普通话 · 补完 · 9 分钟

      百度硅谷 AI 实验室 2015 年的论文:用一个从频谱直接输出字符、以 CTC 损失训练的深层 RNN,取代传统语音识别中手工设计的多级流水线,几乎不改结构就能同时做英语和普通话。关键是更深的模型(BatchNorm、SortaGrad)、上万小时数据和高性能训练系统。数据每增加 10 倍,词错率相对下降约 40%。

    23. D23 变分有损自编码器:控制潜在编码只记住全局结构 · 补完 · 9 分钟

      Chen、Kingma、Sutskever 等人 2016 年的论文:解码器足够强时,VAE 会干脆不用潜在编码。作者用“比特返还”编码解释:能由解码器局部建模的信息就不会放进编码。于是反过来设计:让感受野很小的自回归解码器负责纹理等局部细节,迫使编码只保存全局结构;再用自回归流作先验,在多个数据集上刷新了似然成绩。

    24. D24 GPipe:把模型切段、把批次切片,用流水线并行训练超大网络 · 补完 · 9 分钟

      Google 的 Huang 等人 2018 年提出的流水线并行库:把任何“层序列”网络切成 K 段放到 K 个加速器上,每个小批量再切成 M 个微批量依次流过各段,梯度在小批量结束时同步更新,并重算激活以省显存。M ≥ 4K 时空等开销几乎可忽略。作者用它训练了 5.57 亿参数的图像模型和 60 亿参数的翻译模型。

    25. D25 神经语言模型的缩放定律:损失随规模按幂律下降 · P4 · 7 分钟

      OpenAI 2020 年的经验研究:Transformer 语言模型的测试损失和参数量、数据量、训练算力各自呈平滑的幂律关系,跨越六个数量级以上;模型形状影响很小。论文据此给出固定算力下如何分配模型大小、数据和训练步数的建议,主张训练大模型并提前停止。后来 Chinchilla 修正了其中的分配比例。

    26. D26 Kolmogorov 复杂性与算法随机性:用“最短描述”衡量信息和随机 · P6 · 9 分钟

      Shen、Uspensky、Vereshchagin 合著的数学专著。字符串的 Kolmogorov 复杂性是能输出它的最短程序长度;存在“最优”描述方式,换语言只差一个常数。由此可把信息量定义到单个对象上,把“随机”定义为不可压缩,但这个量本身不可计算。全书 500 多页,本笔记只覆盖导论和几个核心定理。

    27. D27 机器超级智能:用“智能体—环境”循环给智能下一个数学定义 · P6 · 11 分钟

      Shane Legg 2008 年的博士论文(导师 Hutter)。先汇总人类、动物和机器的智能定义,归纳为“智能衡量智能体在广泛环境中实现目标的能力”;再借助 Solomonoff 归纳与 AIXI 写成公式:在所有可计算环境上按 2^−K(μ) 加权求期望表现。还证明了可计算预测器的根本局限,并讨论超级智能的风险。

    28. D28 CS231n 卷积神经网络讲义:卷积层、池化层与网络尺寸的计算 · 补完 · 9 分钟

      斯坦福 CS231n 的卷积网络讲义,主要由 Andrej Karpathy 撰写。讲清卷积层的三个设计:局部连接、按深度切片共享参数、用步长和零填充控制输出尺寸,给出公式 (W−F+2P)/S+1;再讲池化层、全连接层改写成卷积层、常见的层堆叠模式,用 VGGNet 逐层算内存和参数,最后讨论显存瓶颈。

    29. D29 近端策略优化(PPO):用“截断”把每次策略更新限制在安全范围内 · P5 · 7 分钟

      OpenAI 2017 年提出的策略梯度方法:普通策略梯度每批数据只能更新一次,多更新几次就容易一步走太远。PPO 把新旧策略的概率比截断在 1±ε 之间,取截断前后的较小值作为目标,于是可以在同一批数据上做多轮小批量更新。它实现简单,在连续控制和 Atari 上表现稳健,后来成为 RLHF 的常用优化器。

    30. D30 基于人类偏好的深度强化学习:不写奖励函数,让人比较两段录像 · P5 · 8 分钟

      OpenAI 与 DeepMind 2017 年合作:很多任务写不出奖励函数,于是让人看两段 1–2 秒的行为录像、选更好的一段,用这些比较训练奖励模型,再用强化学习优化这个模型。在 Atari 和机器人模拟任务上,反馈只覆盖不到 1% 的交互,约一小时人力就能教会后空翻等新行为,是后来语言模型 RLHF 的前身。

    资源导读(1)

    1. 资源 30u30:30 篇经典 AI 论文(原理支线)

      开源学习项目:把 30 篇经典深度学习论文逐篇做成学习单元,含讲解、从零实现、notebook 和带答案的练习。书单据称源自 Ilya 推荐书单(未经本人证实),仓库另补 3 篇。在本路线中它是与主线并行的原理支线:30 篇全推,核心 10 篇按 P1–P5 搭配笔记,P6 读理论,其余 14 篇按单元补完。

    ← 全部标签