Arganzheng's Blog

stay hungry, stay foolish

深度学习基础(09):Embedding 与表示学习——从查表到句向量

Embeddings and Representation Learning: From Lookup Tables to Sentence Vectors

词、token、用户 ID 都是离散编号;神经网络接收的却是向量。中间这一步查表,把一个编号变成什么?1 一、总览:从离散编号到可学习的表示 Embedding 把每个离散符号映射成一个可训练的稠密向量。模型再通过预测、重建或对比等目标,调整这些向量,让它们携带任务需要的信息。 Embedding 能嵌入的不只是词。句子、图像、位置、图里的节点、推荐系统里的用户 ID,都可以走同一条路:先有东西被嵌入,再有某种训练信号把向量摆到位。这篇覆盖这条路的全貌: 各类 embedding 对象、代表方法与本文去处 嵌入什么 代表方法 怎么得到向量 去处 词 ...

深度学习基础(08):CNN——从 LeNet 到 ResNet,再到 ViT

CNN: Convolution as a Constrained Linear Layer, the ResNet Legacy and How ViT Turns Images into Tokens

第二至第七篇讲训练动力学,用的网络全是 MLP。这一篇和后两篇依次回看 Transformer 之前的三条结构史——卷积、Embedding 与循环——不是为了怀旧,而是因为 Transformer 的每个部件都有来历:残差连接、归一化、”堆同样的块”来自卷积这条线;离散 token 的表示连接词表与向量空间;attention 来自循环那条线。理解一个部件当初解决了什么问题,才知道它今天还在解决什么、什么时候可以拿掉。 卷积网络的故事可以压缩成三句话:卷积是一个被强约束的线性层,约束带来的参数节省与归纳偏置让它在数据不多时远胜 MLP;深度是为了感受野(receptive field,一个输出位置能看到输入的范围),而深了就训不动,ResNet 用残差解决了它;...

深度学习基础(07):正则化与泛化——为什么参数比样本多却不过拟合

Regularization and Generalization: Double Descent, Implicit Bias, Dropout, Weight Decay and When Overfitting Comes Back

L2 经典机器学习系列讲过经典机器学习的第一定律:模型容量超过数据量就会过拟合。一个 160 万参数的网络在 4000 个样本上训练,按这条定律应该背下每一个样本、在测试集上一败涂地。第九章的实验里它做到了前半句——训练错误率 0.0%——却没有做到后半句:测试错误率 14.5%,是所有宽度里最好的。而一个参数只有样本两倍的小网络,测试错误率 43%。 这个现象——参数越多泛化越好,越过某个点之后——在 2017 年前后被系统地记录下来(Zhang 等 2017;Belkin 等 2019),它推翻的不是”过拟合”这个概念,而是”容量”这个度量。本篇讲三件事:为什么深网络在参数远多于样本时不过拟合(隐式正则化与 double descent);显式正则化手段各自在...

深度学习基础(06):优化器——从 SGD 到 AdamW 与学习率调度

Optimizers: From SGD to AdamW, Warmup, Clipping and the Batch-Learning-Rate Scaling Rule

打开任何一份 LLM 技术报告的训练配置,会看到同一组数字:AdamW,\(\beta_1 = 0.9\),\(\beta_2 = 0.95\),weight decay 0.1,梯度裁剪 1.0,warmup 2000 步,cosine 衰减到峰值的 10%。这组数字从 GPT-3 到 Llama-3 几乎没变过,以至于很少有人再问它们是从哪来的。本篇把每一个数字拆开:它在公式里的位置、它解决的问题、改了会怎样、以及为什么优化器状态要占每参数 8 字节。 主线从最简单的 SGD 开始,每加一个优化器或训练策略就问两个问题——它改变了更新量的哪个性质、代价是什么。Momentum 改变了方向的平滑度,Adam 改变了每个参数的步长尺度,weight decay 改...

深度学习基础(05):训练为什么不稳定——初始化、归一化与残差

Why Deep Training Is Unstable: Variance Propagation, Initialization, Normalization and Residual Connections

《深度学习基础(03):反向传播——手推一个两层网络》的那个两层网络怎么训都能训。把它加深到 64 层,同样的代码会出现四种结局:loss 停在 \(\ln 10\) 一步不动;第三步变成 NaN;能动但慢得像没训;正常收敛。四种结局对应的网络只差三样东西——权重初始化的标准差、有没有归一化层、有没有残差连接——而这三样东西恰好是 1990 年代到 2016 年深度学习解决”深了就训不动”这个问题的三步。 本篇把这三步各自推到公式、算到数字、在同一个 64 层网络上测出来。推导的主线只有一条:信号的方差在层间怎么传播,梯度作为一串 Jacobian 的乘积怎么放大或缩小。三种方案各自动了这条链上的哪一环,决定了它们能修什么、修不了什么。最后落到当前 LLM 的标准...

深度学习基础(04):激活函数——从 sigmoid 到 SwiGLU

Activation Functions: From Sigmoid to SwiGLU

两层 Linear 中间放一个 ReLU,和把两层直接乘起来,表达能力完全不同。差别不在层数,而在中间那一下非线性。本篇把常见激活函数按这条线串起来:它们怎样让网络学到弯曲的边界,又怎样改变梯度、显存和算子开销。 如果把 100 层 Linear 叠起来,为什么它仍只能表示一个线性 / 仿射变换?1 sigmoid、ReLU、GELU 和 SwiGLU 分别解决了什么问题?2 一、总览:为什么需要非线性 线性层负责混合输入维度;激活函数打破线性,才让层叠起来的网络表示复杂函数。若每层之间没有非线性,任意多层 Linear 都能折叠成一个 Linear(带 bias 时是仿射变换)。 所以层数再多,也只相当于一个 \(W\) 和一个 \(b\)。《深度...

深度学习基础(03):反向传播——手推一个两层网络

Backpropagation by Hand: Shapes, the 2x Rule and Why Activations Must Be Saved

loss.backward() 是训练代码里最短的一行。它沿计算图反向应用链式法则,一次得到 loss 对所有参数的梯度。理解它要抓住三件事:梯度的形状与自变量相同、反向矩阵乘的计算量约为前向的两倍、前向中间结果要留到反向使用。第一件帮助读梯度公式,第二件连接到训练 FLOPs 等于 \(6ND\),第三件解释激活显存与重算。 上一篇《深度学习基础(02):损失函数——怎样把「好」写成一个可求导的数》给出了优化目标;本篇从梯度怎样计算开始。 本文用一个两层 MLP(Linear、ReLU、Linear、softmax、交叉熵)把这些规则推到底。它足够小,每一步形状都能写清楚;又足够完整,Transformer 里的 Linear、激活函数、norm 和 loss...

深度学习基础(02):损失函数——怎样把「好」写成一个可求导的数

Loss Functions: How to Write 'Good' as a Differentiable Number

训练代码里 loss.backward() 的前提是 loss 存在——是一个标量、可求导、而且”更小”恰好意味着”模型更好”。把任务翻译成这样一个数,这件事本身有将近两百年的历史:最小二乘、最大似然、交叉熵、Huber、focal、InfoNCE、DPO,每一个损失函数背后都是同一个问题的回答——「好」在这件事上到底怎么量化。 上一篇《深度学习基础(01):深度模型演进史——从感知机到 Transformer》把网络结构从感知机追到 Transformer;这一篇回到所有结构共有的那一端:输出之后、反向传播之前,那个决定”往哪调”的数是怎么写出来的。 分工先说清楚,避免重复:最大似然 → 交叉熵的推导在《算法工程师的数学(05):从最大似然到交叉熵——第一个要...

深度学习基础(01):深度模型演进史——从感知机到 Transformer

A History of Deep Models: From the Perceptron to the Transformer

Transformer 不是突然出现的。它接过了感知机、反向传播、卷积、Embedding、循环网络与 attention 留下的问题。本篇沿时间线看这些结构为什么出现;公式推导和可复现实验放在后续文章。 为什么单层感知机会遇到 XOR?多层网络何时变得可训练?Transformer 又从哪些旧结构中继承了组件? 一、总览:三起两落 神经网络的发展不是平滑上升。感知机带来第一次热潮,能力边界、资金收缩与英国的研究评估共同构成第一次寒冬;反向传播带来第二次兴起,但算力、数据与训练稳定性仍有限;2006 年逐层预训练重燃深层网络研究,随后 GPU、ImageNet 与更可靠的训练方法让深度学习进入第三次兴起。 本文讲历史与动机;感知机、ADALINE...

深度学习基础:从反向传播到残差(总纲)

Deep Learning Foundations: From Backpropagation to Residual Connections

内容简介 《深度学习基础:从反向传播到残差》是一组十篇正文加一篇总结的系列文章,对应《AI 算法工程师学习地图》的第 L3 层。它面向已经有 L0 数学、L1 工具、L2 经典机器学习基础、准备进入 Transformer 与 LLM 的读者,讲的是训练一个深度神经网络时会发生什么、为什么、以及怎么算出来。 它回答的问题是: 一个几十层甚至上百层的网络,为什么能训、什么时候不能训、训不动的时候该看哪个数字?1 深度学习教材通常按”模型”组织:感知机、MLP、CNN、RNN、Transformer。这个系列先用第一篇沿着感知机到 Transformer 回看深度模型的演进与动机,再用六篇讲训练动力学——梯度、激活、深层稳定性、优化与泛化,最后用三篇回看...

×