Deep Learning by 3Blue1Brown
Deep Learning by 3Blue1Brown
MLP的结构
- 输入层: 接收原始数据,每个神经元对应一个输入特征。
- 隐藏层: 位于输入层和输出层之间,包含多个神经元。隐藏层的神经元通过非线性激活函数对输入数据进行变换,从而提取出数据的特征。
- 输出层: 输出网络的预测结果,神经元的个数取决于任务类型(分类、回归等)。
MLP(Multi-Layer Perceptron),即多层感知机,是深度学习中最基础的神经网络模型之一。它可以看作是感知机的扩展,通过引入多个隐藏层,使得网络能够学习到更加复杂的非线性映射关系。
Sigmoid函数
也称为S型函数或逻辑斯蒂函数,是一种在生物学、信息科学、神经网络等多个领域广泛应用的数学函数。
表达式:f(x) = 1 / (1 + e^(-x))
- 取值范围: 函数的值域为(0, 1),这使得它可以将任意实数映射到0到1之间的概率值,常用于表示神经元的激活程度。
- 连续性: Sigmoid函数是连续可导的,这使得它可以用于梯度下降等优化算法。
- 非线性: Sigmoid函数是非线性的,这使得神经网络能够拟合复杂的非线性关系。
Sigmoid函数在神经网络中的作用 - 作为激活函数: Sigmoid函数是早期神经网络中常用的激活函数。它可以将线性输入转化为非线性输出,从而使神经网络具有学习复杂模式的能力。
- 将输出限制在0-1之间: 在二分类问题中,Sigmoid函数可以将输出解释为属于正类的概率。
机器学习即是要找到正确的权重的偏置,使代价函数最小化。
神经网络本身就是一个大型函数。
反向传播算法(Backpropagation,BP)
工作原理:
- 前向传播: 输入数据从输入层开始,经过隐藏层,最后到达输出层。每一层的神经元计算加权和,并通过激活函数得到输出。
- 计算损失: 将网络的输出与实际的标签进行比较,计算出损失函数的值。常见的损失函数有均方误差、交叉熵损失等。
- 反向传播: 从输出层开始,计算损失函数对输出层每个神经元的偏导数。然后利用链式法则,逐层向前计算损失函数对隐藏层和输入层神经元的偏导数。
- 更新参数: 根据计算得到的梯度,利用梯度下降法更新网络中的权重和偏置。
四个计算方程:
误差项 δ 的定义:
1
δ^L = ∂C/∂z^L
其中:
- δ^L:第 L 层第 j 个神经元的误差项。
- C:损失函数。
- z^L:第 L 层第 j 个神经元的输入。
误差项 δ 的计算:
1
δ^l = (w^(l+1))^T δ^(l+1) * σ'(z^l)
其中:
- w^(l+1):第 l 层到第 l+1 层之间的权重矩阵。
- σ’(z^l):第 l 层第 j 个神经元的激活函数的导数。
偏置的梯度:
1
∂C/∂b^l_j = δ^l_j
权重的梯度:
1
∂C/∂w^l_jk = a^(l-1)_k δ^l_j
其中:
- a^(l-1)_k:第 l-1 层第 k 个神经元的输出。
随机梯度下降(Stochastic Gradient Descent,SGD)
SGD 的主要特点在于每次迭代只随机选取一个样本(或一小批样本)来计算梯度,并根据这个梯度来更新参数。
gpt
GPT,全称Generative Pre-trained Transformer,中文翻译为生成式预训练变换器。
Transformer架构: GPT模型的核心是Transformer架构。Transformer是一种神经网络架构,特别适合处理序列数据,如文本。它利用自注意力机制,让模型能够关注输入序列的不同部分,从而更好地理解文本的上下文。
word embedding过后方向可以代表语义。
softmax函数
它的作用是将一个任意实数的K维向量“压缩”到另一个K维实向量中,使得每一个元素的范围都在(0,1)之间,并且所有元素的和为1。换句话说,它将输入的数值转化为一个概率分布。其输入称为logits,输出称为probabilities。
Softmax函数引入温度参数后的形式:
1 |
|
y_i
: 输出向量y的第i个元素,表示输入数据属于第i类的概率。z_i
: 输入向量z的第i个元素。T
: 温度参数。
高温度 (T较大): 概率分布会变得更加平滑,各类别之间的概率差异减小,模型会倾向于给所有类别分配较高的概率。这在一些场景下可以增加模型的探索性,例如在生成模型中生成多样化的样本。 低温度 (T较小): 概率分布会变得更加尖锐,模型会更加自信地将概率分配给最有可能的类别。这在需要模型做出明确决策的场景下非常有用,例如分类任务。
注意力机制
它允许模型在处理大量输入数据时,有选择性地关注其中最相关的部分,从而提升模型的性能。
数学表达:
1 |
|
- Query: 表示当前需要关注的元素。
- Key: 表示所有输入元素的键。
- Value: 表示所有输入元素的值。
- softmax: 将相似度转化为概率分布。
- d_k: 是Key向量的维度。
掩码
通常,掩码是一个与输入序列长度相同的向量,每个元素的值为0或1。值为0的位置会被屏蔽,即在计算注意力权重时,这些位置的权重会被设置为一个非常小的负数(例如-inf),从而使得softmax函数将这些位置的概率归为0。
掩码的应用场景
- 机器翻译: 防止模型在翻译过程中“偷看”目标序列。
- 文本生成: 确保生成的文本是连贯的,符合语法规则。
- 问答系统: 控制模型只关注与问题相关的部分。
Deep Learning by 3Blue1Brown
https://blakehansen130.github.io/2024/10/15/3Blue1Brown/