更新中….
📌 人工智能与深度学习
在开始之前,我们要先了解一下,在人工智能领域,什么是“人工神经网络”以及“训练”。
📍 AI 的起源与神经网络的启示
人工智能,一个听起来像是来自科幻小说的词汇,其实已经有着超过半个世纪的历史。自20世纪50年代起,它就在科技的舞台上不断探索,经历了风风雨雨,起起落落。
在AI的早期探索中,有一个流派虽然起初并不被看好,却最终成为了AI的核心——那就是“人工神经网络”。这个流派的灵感来源于我们最复杂、最神奇的器官:人脑。人脑由数十亿神经元组成,它们相互连接,形成了一个庞大而精密的网络。就像一张白纸的婴儿大脑,通过不断的学习和模仿,逐渐展现出惊人的智慧**。**
受此启发,科学家们设计出了人工神经元模型。想象一下,这些模型就像是简化版的大脑神经元,它们通过调整输入信号的权重,经过一系列计算,最终输出结果。每个权重,我们称之为参数,就像是神经元的“学习记忆”。
📍 人工神经网络的构建
将这些神经元模型连接起来,就构成了人工神经网络。它们通常由输入层、中间的多个隐藏层以及输出层组成。类似于婴儿的大脑,一开始是空白的,需要大量的数据来“喂食”,通过不断的学习和调整,最终形成解决问题的能力。这个过程,就是我们所说的“深度学习”,它是机器学习的一个重要分支。
📍 监督学习与AI泛化:如何让机器学会“认猫”
以常见的“监督学习”为例,,如果我们想让 AI 学会识别图片中的猫,就需要给它提供大量已知含有猫的图片,并告诉它猫的特征。AI 会用这些信息来训练自己,找出识别猫的规律。它首先会尝试用当前的参数对一张图片做出判断,然后与正确答案进行比较,根据差异来调整参数权重,这个过程会不断重复,直到 AI 能够准确识别出猫。

:::
📍 超参
:::color5 超参数(Hyperparameters)是机器学习和深度学习模型训练过程中需要设置的参数,它们不是从数据中学得的,而是需要人为设定的。超参数对于模型的性能和最终结果有着重要的影响。与模型参数不同,模型参数(如神经网络中的权重和偏置)是在训练过程中通过学习数据自动调整的。
:::
✅** 超参数的例子包括:**
- 学习率:控制模型参数在每次迭代中更新的幅度。
- 批次大小(Batch Size):每次训练迭代中用于计算梯度和更新参数的样本数量。
- 迭代次数(Epochs):整个训练数据集被遍历和用于训练模型的次数。
- 网络结构:如层数、每层的节点数或神经元数等。
- 正则化参数:如L1、L2正则化项的系数,用于防止过拟合。
- 优化器的选择:如SGD、Adam、RMSprop等。
- 激活函数的选择:如ReLU、Sigmoid、Tanh等。
- dropout率:用于随机丢弃一些神经元输出的比率,以减少过拟合。
✅** 在训练时设定超参数的方法通常包括以下几种:**
- 经验设定:根据经验或文献中的建议来设定超参数的初始值。
- 网格搜索(Grid Search):系统地遍历超参数的所有可能组合,找到最优的参数组合。
- 随机搜索(Random Search):随机选择超参数的值,通常比网格搜索更高效。
- 贝叶斯优化(Bayesian Optimization):基于概率模型来选择最优的超参数,可以更智能地选择参数值。
- 基于模型的方法:使用一个模型来预测不同超参数设置下的性能,从而选择最佳的超参数。
- 遗传算法(Genetic Algorithms):模拟自然选择过程来优化超参数。
超参数的选择对模型的训练和泛化能力至关重要。通常,需要通过多次实验和调整来找到最佳的超参数配置。这个过程可能需要较长的时间和较多的计算资源,但它是构建高效、准确模型的关键步骤。
📌 Q.K.V
📍 概念
在大模型训练中,特别是在涉及到注意力机制(Attention Mechanism)的模型,如 Transformer 架构及其衍生模型中,”Q”、”K”、”V”通常代表查询(Query)、键(Key)和值(Value)这三个组件,它们是注意力机制的核心部分。
- 查询(Query):查询向量是用于与键进行匹配的向量。在注意力机制中,查询向量决定了模型应该关注输入序列中的哪些部分。例如,在自注意力(Self-Attention)中,查询向量可以用来计算输入序列中每个元素对其他元素的影响。
- 键(Key):键向量是用于与查询进行匹配的向量。每个输入元素都会有一个对应的键向量。查询和键之间的匹配程度通常通过计算它们的点积来确定。
- 值(Value):值向量是一旦键和查询匹配后,将要被加权和累加的向量。在注意力机制中,值向量代表了输入序列中的信息,通过加权(权重由查询和键的匹配程度决定)和累加,可以得到加权后的输出表示。
在注意力计算过程中,首先会计算查询和所有键的点积,得到一个注意力分数(Attention Scores),然后通常会通过softmax函数对这些分数进行归一化,使得它们的和为1。这样得到的注意力权重(Attention Weights)会与对应的值向量相乘,最后将所有加权的值向量求和,得到最终的输出向量。
这种机制使得模型能够动态地关注输入序列中的重要部分,并根据上下文信息调整输出表示,这是 Transformer 模型及其变体在自然语言处理任务中取得成功的关键因素之一。
📍 Q.K.V 参数调整策略
在实际训练中,调整查询(Q)、键(K)、值(V)这三个参数通常涉及到注意力机制的超参数调整,以及可能的网络架构改动。以下是一些调整这些参数的例子和方法:
- 缩放因子(Scaling Factor):
在计算查询和键的点积时,通常会有一个缩放因子,以防止点积过大导致softmax函数进入梯度很小的区域,这被称为softmax的梯度消失问题。这个缩放因子通常是键向量维度的倒数平方根。在实际训练中,可以通过调整这个缩放因子来控制注意力的敏感度。
例子:如果发现模型对长距离依赖的学习能力不足,可以尝试增大缩放因子,使得模型更加关注于全局的依赖关系。 - 多头注意力(Multi-Head Attention):
Transformer模型中使用多头注意力来并行地学习不同的注意力模式。这里的“头”(head)数量是一个重要的超参数。增加头的数量可以让模型在不同的表示子空间中学习信息,增强模型的表达能力。
例子:如果模型在处理某些复杂的语言任务时表现不佳,可以尝试增加头的数量,例如从4头增加到8头,以期望模型能够捕捉到更丰富的上下文信息。 - 维度分割(Dimension Splitting):
在多头注意力中,查询、键和值的维度通常会被分割成多个头,每个头拥有较低的维度。分割的方式(如平均分割、分组分割等)会影响模型的学习能力和效率。
例子:如果模型的训练速度较慢或显存占用较高,可以尝试对维度进行不同的分割策略,比如将维度平均分配到每个头上,或者将某些头的维度合并。 - 注意力层的堆叠(Stacking Attention Layers):
通过堆叠多个注意力层,模型可以逐渐学习到更抽象的表示。堆叠的层数是另一个超参数,需要根据任务的复杂性来调整。
例子:对于一个需要深层语义理解的任务,可以增加注意力层的堆叠数量,以便模型能够捕捉到更深层次的依赖关系。 - 激活函数(Activation Function):
在注意力分数通过softmax函数之前或之后,有时会使用非线性激活函数来增加模型的非线性表达能力。
例子:如果模型在某些任务上的性能不佳,可以尝试更换激活函数,如从ReLU更换为GELU,以期望模型能够更好地捕捉到复杂的模式。
在实际训练中,调整这些参数需要根据模型在验证集上的表现来进行。通常需要进行多次实验,通过比较不同配置下的性能来找到最优的参数设置。此外,也需要考虑计算资源和训练时间的限制。
学习更多关于 AI 大模型全栈知识👇
:::danger 🌈** AI大模型全栈通识课程**👇
:::
:::color1 🙋 个人介绍 **👉🏻**
:::
:::color5 🙋 AI 工具 **👉🏻**
:::
:::info 🙋 开源版知识库**👉🏻**
:::
:::warning 🙋 AI全栈通识课堂
:::
✅免责声明
素材来源于网络以及个人总结,仅供个人学习交流无商业用途,版本归原创者所有
如有侵权请及时与我联系(微信:AGI舰长-LHYYH0001)删除