作为初学者看3B1B的视频,记不住所有内容,但是也不能看完就忘,所以总结一个概念性的文字,告诉自己“哦,看完视频我学到了这些”,因为没有上实际的案例,关于反向传播这集听了好几遍,现在模模糊糊就觉得原理有点像LLM最大似然估计,都是从现有的现实倒推参数,反向传播的本质是求得最优参数。第五章就是简单介绍GPT。最后一个transformer网上笔记很多,先建立一个大概的印象,后续会反复逐步的学习注意力机制的。
第一集:神经网络究竟是什么? (But what is a neural network?)
这一集从一个非常具体且直观的问题开始:如何让计算机识别手写的数字?
-
核心思想: 视频将神经网络比作一个复杂的函数,输入是手写数字的像素数据,输出是0到9这10个数字的概率。
-
神经元: 视频首先介绍了单个“神经元”的概念。你可以把它想象成一个小小的计算单元。它接收一组输入值,每个输入值都有一个对应的“权重”(weight),代表这个输入的重要性。神经元将所有输入值与它们的权重相乘后求和,再加上一个“偏置”(bias),最后通过一个叫做“激活函数”(activation function)的东西处理一下,得到一个输出值。这个激活函数(比如Sigmoid函数)的作用通常是把任意的输入值压缩到0和1之间,可以理解为这个神经元被“激活”的程度。
-
网络层级: 单个神经元能做的事情有限,但把它们组织成“层”(layers)就变得非常强大。
- 输入层 (Input Layer): 负责接收最原始的数据。在手写数字识别的例子中,就是代表图片所有像素点的784个数值 (28x28像素)。
- 隐藏层 (Hidden Layers): 介于输入和输出之间,负责大部分的计算和特征提取。第一集中的例子用了两个各包含16个神经元的隐藏层。 视频用非常精彩的动画展示了,第一层隐藏层的神经元可能学会识别一些基础的笔画、边缘;更深一层的神经元则可能学会组合这些基础笔画,识别出更复杂的形状,比如圆圈或者直线段。
- 输出层 (Output Layer): 最后一层,负责输出最终结果。在数字识别的例子里,它有10个神经元,分别对应0到9这10个数字。哪个神经元的激活值最高,就代表网络认为图片上是那个数字。
-
总结: 第一集通过手写数字识别的例子,非常直观地展示了神经网络的结构——由大量的、通过权重和偏置连接起来的神经元分层构成。它让我们明白,所谓的“学习”,其实就是找到一套正确的权重和偏置,让这个网络在接收到特定输入时,能够给出正确的输出。
第二集:梯度下降,神经网络如何学习 (Gradient descent, how neural networks learn)
知道了神经网络的结构,接下来的问题是,网络如何“学习”?也就是说,如何自动找到上百万个正确的权重和偏置?这一集就介绍了实现这个目标的核心算法——梯度下降。
- 成本函数 (Cost Function): 首先,我们需要一个标准来衡量网络当前表现的好坏。这个标准就是“成本函数”(或称“损失函数”)。它会计算网络对一个训练样本的输出结果与真实标签之间的差距。如果网络预测完全正确,成本函数的值就很低;如果错得离谱,值就很高。我们的目标,就是让这个成本函数的值变得尽可能小。
- 梯度下降的直观比喻: 视频用了一个非常经典的比喻:想象你正站在一座连绵起伏的山上,蒙着眼睛,你的任务是走到山谷的最低点。你应该怎么做?最直观的方法就是,伸脚向四周探一探,找到当前位置最陡峭的下山方向,然后朝着那个方向迈一小步。不断重复这个过程,你最终就能走到一个山谷的底部。
- 梯度 (Gradient): 在数学上,这个“最陡峭的下山方向”就是成本函数的“梯度”(gradient)的负方向。梯度是一个向量,指向函数值增长最快的方向。因此,我们只要沿着梯度的反方向去调整网络的参数(所有的权重和偏置),就能最快地降低成本函数的值。
- 学习率 (Learning Rate): “下山时迈出的那一步”的大小,在机器学习中被称为“学习率”。步子太小,下山速度会很慢;步子太大,则可能会直接跨过最低点,甚至跑到更高的山坡上去。选择一个合适的学习率非常重要。
- 总结: 第二集的核心就是解释了梯度下降算法的原理。它将“训练网络”这个抽象问题,转化为了一个直观的“寻找函数最小值”的优化问题。通过计算成本函数对于每一个权重和偏置的梯度,我们就能知道应该如何微调这些参数,从而让网络的表现变得更好。
第三集:反向传播的直观理解 (Backpropagation, intuitively)
第二集告诉我们,我们需要计算成本函数相对于网络中每一个参数的梯度。但一个复杂的网络有成千上万甚至上百万个参数,直接计算的复杂度是难以想象的。第三集就介绍了实现这一目标的高效算法——反向传播。
-
核心思想: “反向传播”顾名思义,就是“反向”地“传播”误差。它是一种从网络输出端开始,逐层向后计算梯度的方法,非常高效。
-
直观解释: 视频并没有立刻深入复杂的数学公式,而是提供了一个非常直观的理解方式。
- 首先,我们观察网络最终的输出。比如,我们输入一张“7”的图片,但网络可能错误地输出了一个“1”。
- 我们会看到输出层的成本很高。反向传播首先关注的是,我们希望输出层的激活值变成什么样才能降低成本?(比如,我们希望代表“7”的那个神经元激活值变高,其他神经元的激活值变低)。
- 接着,这个“期望的改变”会反向传播到前一层(最后一个隐藏层)。算法会计算,为了让输出层发生我们期望的改变,这个隐藏层的激活值、权重和偏置应该如何相应地调整?
- 这个过程会一直持续下去,一层一层地向后传播,直到第一层隐藏层。在每一层,算法都会计算出成本函数对该层权重和偏置的梯度,也就是这些参数应该调整的方向和幅度。
-
链式法则的核心作用: 视频中提到,反向传播算法在数学上的基础是微积分中的“链式法则”。虽然没有深入推导,但它点明了,正是链式法则让我们能够将输出端的误差,高效地、一层层地分解并关联到网络中每一个参数上。
-
总结: 第三集是关于如何高效地调整参数以达成目标
第四集:反向传播的微积分 (Backpropagation calculus)
-
符号系统的建立:
- 为了处理复杂的网络,视频首先建立了一套严谨的数学符号系统。比如用 表示层数,用 表示从上一层的第 个神经元连接到当前层第 个神经元的权重。
- 引入了中间变量 ,代表神经元在经过激活函数处理之前的加权和(Weighted Sum)。这非常关键,因为链式法则通常是针对 展开的。
-
链式法则 (The Chain Rule):
-
这是全集的核心。视频展示了如何计算成本函数 对某个特定权重 的导数(即梯度)。
-
这个求导过程不能一步到位,必须像剥洋葱一样一层层剥开:
- 第一层: 成本 是如何随着输出激活值 的变化而变化的?
- 第二层: 激活值 是如何随着加权和 的变化而变化的?(这取决于激活函数的导数,比如 Sigmoid 的导数)。
- 第三层: 加权和 是如何随着权重 的变化而变化的?(这取决于上一层的激活值)。
-
将这三个变化率相乘,就得到了我们想要的梯度。这就是链式法则在神经网络中的具体应用。
-
-
“反向”的数学体现:
- 视频推导展示了,为了计算倒数第二层的梯度,你需要用到最后一层的误差项。为了计算倒数第三层,又要用到倒数第二层的计算结果。
- 这种数学上的依赖关系(当前层的导数计算依赖于后一层的导数项),在公式上完美对应了算法中“从后向前”的传播过程。
-
总结: 这一集证明了反向传播不仅仅是一个直观的“调整策略”,它在数学上是完全精确的梯度计算方法。它把复杂的网络训练简化为了一系列重复的、基于链式法则的乘法运算。
第五集:GPT 是什么?生成式预训练变换器 (But what is a GPT? Generative Pre-trained Transformer)
这一集跨越到了现代深度学习的核心——大语言模型(LLM)。它解释了像 ChatGPT 这样的模型在底层到底在干什么。
-
核心任务:预测下一个词 (Next Token Prediction):
- 视频开篇点明,GPT 的核心功能非常单一:给定一段文本,预测下一个最可能出现的“词”(Token)。
- 它不是在“思考”整个句子,而是在计算概率分布。它会给词典中所有可能的词打分,选出概率最高的那个(或者根据概率随机选一个),填进去,然后把新生成的词加到输入里,再预测下一个。
-
嵌入向量 (Embeddings):
- 这是理解 GPT 的关键。计算机不认识单词,它只认识数字。
- 模型将每个词转换成一个高维空间中的向量(比如 12288 维)。在这个空间里,意思相近的词(如“猫”和“狗”)距离很近,意思无关的词距离很远。
- 更神奇的是,向量空间存在算术关系。经典的例子是: “国王” - “男人” + “女人” ≈ “女王” 。这说明模型通过向量的位置,捕捉到了词语之间的语义关系。
-
上下文窗口 (Context Window):
- 模型不仅仅看这一个词,它会看前面成千上万个词(上下文)。
- 视频解释了模型是如何通过内部的层级处理,将上下文的信息“融合”到当前正在处理的向量中,从而做出准确预测的。
-
总结: 这一集揭示了 GPT 的本质——一个巨大的概率预测机器,它通过将词语转化为高维向量,并利用海量数据学习这些向量之间的空间关系,从而学会了人类的语言规律。
第六集:Transformer 中的注意力机制 (Attention in transformers, visually explained)
这一集深入讲解了 Transformer 架构的心脏——注意力机制 (Attention Mechanism) 。这是现代 AI 最重要的技术突破之一。
-
问题的提出:
- 单词的含义取决于上下文。比如 "Bank" 在 "River bank"(河岸)和 "Bank account"(银行账户)中意思完全不同。
- 在处理 "Bank" 这个词时,模型通过什么机制知道要关注 "River" 还是 "Account" 来确定它的确切含义?这就是注意力机制要解决的问题。
-
三位一体:查询、键、值 (Query, Key, Value - Q, K, V):
-
视频用了一个非常精彩的**“档案检索系统”**比喻:
- Query (查询): 当前这个词(比如 "Bank")发出的请求:“我在找形容我的词”。
- Key (键): 句子中其他所有词(比如 "River")手里的标签:“我是形容地理特征的”。
- Value (值): 词本身包含的实际意义信息。
-
计算过程: "Bank" 的 Query 会与 "River" 的 Key 进行匹配(点积运算)。如果匹配度高(相关性强),"Bank" 就会给予 "River" 很高的注意力权重。
-
-
信息的融合:
- 一旦确定了关注哪些词,模型就会把那些高相关性词的 Value(信息)加权融合到 "Bank" 自己的向量中。
- 经过这一步,"Bank" 的向量就从一个模糊的“多义词向量”,变成了一个具体的“河岸向量”。
-
多头注意力 (Multi-head Attention):
- 视频还解释了为什么需要“多头”。因为词与词的关系是多维度的(语法关系、指代关系、形容关系等)。多个头允许模型同时在不同的维度上关注不同的词。
-
总结: 这一集用可视化的方式解释了 Transformer 为什么强大:它允许句子中的每个词都与其他所有词“对话”,并根据上下文动态地更新自己的含义。这就是为什么现代 AI 能真正“理解”语境的原因。