大模型基础知识-神经网络

神经网络

机器学习本质

机器学习的本质是通过学习数据中蕴含的规律,利用这些规律进行数据分析和判断。前提是数据服从固定分布、有规律,但如果数据完全没有规律,则无法通过学习模型捕捉到规律。

神经网络本质

一个多层的线性回归,通过逐层线性回归计算,将人类眼中的数据转换成计算机能认识的数值特征。

神经网络与Transformer的关系

神经网络并不是算法的一个框架,而是基础计算单元或方法。在后续的Transformer等技术中,也会用到神经网络基础知识。

线性回归的基本思想

线性回归的基本思想是通过一组权重参数 (w1,w2)(w_1, w_2)(w1,w2),将已知的数据特征 (x1,x2)(x_1, x_2)(x1,x2) 与标签 (y)(y)(y) 之间建立关系模型为一个线性方程,从而预测 YYY 的值。

神经网络相比传统的机器学习看似简单易于拓展,但是实际不直接易懂。

神经网络中的损失函数的作用用于衡量模型在预测过程中与期望结果之间的差距,并驱动模型调整权重以减少这个差距。

权重参数 & 偏置

权重参数并非单个值,而是一组矩阵,权重参数在模型开始时是随机初始化,通常是随机生成有正值与负值数值。初始化权重参数会影响模型初始预测结果,但后续会通过训练过程中的更新逐步调整优化。

权重参数是用来调整输入数据特征与结果之间的关系。每个特征都有相应的权重,决定了该特征对最终的结果的影响程度。而偏置则是为每个类别或输出做出微调,它与输出类别数量一致,通过调整偏置可使得神经网络预测更加精准。

过拟合

过拟合是模型只关注局部特征而忽略全局。过拟合会导致模型在面对新数据时泛化能力变差。解决过拟合的方法有:引入正则化,它在模型学习时除了考虑预测值与标签的差异外,还会加入对权重的惩罚项(权重的平方和)。这样做的目的为了让模型在学习过程中更加收敛,避免过分关注样本点导致过拟合,提升模型的泛化能力。

损失函数

模型好坏的关键在于设置固定的评价标准,比如通过损失函数来计算模型预测值与期望值的差异,希望这个差异(损失)越小,则模型表现越好。

损失函数=损失数据+正则化项 \text{损失函数} = \text{损失数据} + \text{正则化项} 损失函数=损失数据+正则化项

损失函数的设计旨在让模型学习时,正确类别得分高于错误类别的得分,并引入容错能力,确保模型在面对接近正确的答案的错误预测能识别并纠正。损失函数是一个相对值,反应了模型预测值与实际值的差异。数值越小,代表模型表现越好,数值越大,则表示模型需要改进。

损失函数主要由两部分组成,一是预测值与真实标签之间的差异;二是正则化项,即权重参数的惩罚项。在回归任务中,损失函数还会考虑正则化惩罚(www 的平方),以控制模型的复杂度,防止过拟合。

反向传播

反向传播在神经网络中主要用于根据损失值调整权重参数优化模型。其计算过程采用链式法则,从后向前逐层计算梯度,通过梯度下降算法迭代更新权重。尽管在实际应用中无需手动推导和实现反向传播,但理解其基本原理和如何运用其优化模型至关重要。

有无监督学习

区分无监督学习与有监督学习的关键是否有标签,如果有明确的类别标签,则为有监督学习;如果无标签,即仅提供原始数据,则为无监督学习。

神经元

神经元是神经网络的基本单元,可以视为一个特征,神经元通过全连接结构(即每个神经元与所有其他神经元相连)相互作用并传递信息。神经元的作用将输入层的特征通过特定的权重综合和非线性转换,生成新的特征值,为后续的隐藏层或输出层提供输入。

神经元的个数越多,模型越复杂,能解决问题难度越大。例如在单数据集上,随着神经元个数从4个增加到2个、3个,模型逐渐增加更好分割数据,适应更复杂的问题。

在神经元不足的情况下,就像自身认知不足时,确实需要付出更多努力学习和提升,如果脑子不够用,就需要多学习几年来补充。

神经网络层次结构

神经网络的层次结构是指内部的多层结构,包括输入层、隐藏层(隐藏1和隐藏2)及输出层。其中:

  • 输入层:接收原始数据将其转换为计算机可理解的特征
  • 隐藏层:负责对这些特征进行变换和加工,使其适应计算机学习模型
  • 输出层:负责处理特征产生的最终输出结果

全连接意味着神经网络中的每个神经元都与其他神经元相连,形成一个整体,确保信息在层与层之间能够充分流动。

非线性则体现在神经网络通过不同权重参数的组合和激活函数,将线性模型转化为能解决复杂问题的非线性模型,比如在训练过程特征系数以更准确预测目标值。

神经网络的学习能力体现其能够从原始数据中自动提取和学习有效特征,并根据这些特征进行下游任务(分类、回归等)。学习能力强的神经网络可以快速适应不同任务需求,即使未曾见过数据也可以做出合理的预测。大厂在招聘时候倾向有较强学习能力和适应性人才,也适合神经网络训练,即追求更好学习能力和更强的泛化能力。

神经网络的层次结构分明,易于扩展,每个部分都可以单独调整或增加,这使得在论文中考虑创新点更多。


卷积神经网络(CNN)

当输入对象是图像数据时,传统神经网络需要处理大量的权重参数。这种情况下,网络结构过于复杂,权重参数过于庞大,对于图像数据来说不合适。

卷积神经网络通过改变层结构,采用卷积和池化等方法,使得网络更适合处理结构化数据如图像、文本、和时间序列数据。

卷积网络主要包含输入层、卷积层、激活层等部分。其中,卷积层主要用于提取图像等数据的特征,而激活层则负责激活这些特征,类似于传统神经网络中的全连接层。

卷积是一种通过特定"滤波器"或"核"与输入图像的局部区域进行逐元素乘积并求和,从而提取图像中的特定特征的方法。这个过程可以看作输入图像的不同位置寻找与已知特征向量匹配的最佳子区域,并用内积来衡量两者之间的相似性。

在深度学习中,初始化权重是随机初始化的,随着模型对数据的学习,它会不断更新权重以更好适应和提取特征。权重是在模型训练过程中通过反向传播算法逐步调整的。

卷积核是深度学习模型的一个术语,它代表一组权重数据,用于在输入图像的不同区域提取特征。卷积核的大小可以根据需求设定,但其最后一个维度必须设置与图像的通道数相同。

计算特征值过程就是将卷积核与输入图像的特定区域进行逐元素相乘再求和。每个通道都独立计算,并且最后加上偏置项得到一个完整的特征输出结果。

理论上卷积核个数越多,提取到的特征越全面,因为每增加一组卷积核就相当于要模型提取一组不同的特征。但实际效果并非数量越多越好,要根据具体任务来调整。

卷积的目的主要是为了提取特征,而不是快速完成任务。在处理图像时,步长的选择会影响特征数量,步长越大,提取特征越少,一般适中为好,通常设置为1。

卷积共享

卷积共享是指在卷积过程中,对于不同的输入区域,使用相同一组卷积核进行特征提取。比如对于图像不同区域进行卷积操作时,虽然计算会增加,但权重参数不会随着输入大小增大而增多,而是共享一组固定的卷积核。

在卷积结构中,通过参数共享机制,无论输入大小如何变化,权重参数的数量保持不变,只用一组卷积核在不同位置上滑动,从而大大减少了所有的权重参数数量,降低了计算复杂度。

在卷积结构中,完成卷积运算后通常需要加上激活函数(例如ReLU),引入非线性,并且,在某些情况下,还会加上BN(Batch Normalization)层,用于标准化中间的特征层,减少内部之间的差异性,增强模型的稳定性和泛化能力,防止某一层面学习出现问题影响整个模型的表现。

卷积核的数值是在设计时随机初始化的,通常使用1、-1、0等值。尽管卷积核的设计和初始化很重要,但在卷积结构中,更关注的是如何通过共享机制有效控制整体的参数量,同时保证模型处理大规模输入时依然高效运作。输出不是特征图,而是经过卷积核BN等处理后的结果。

池化

池化的作用压缩特征图,减少计算量和特征数量,通过筛选重要的特征避免过拟合。并利用最大池化或平均池化等方式进行压缩。

池化操作如最大池化不需要训练,因为它仅选取每个区域的最大值作为代表,没有参数要更新。

卷积网络通过不断堆叠结构,能够在特征图获取更为丰富高级别的特征。

现代GPU对 3×33 \times 33×3 卷积核的优化效果更好,因此在没有特殊要求下,通常采用 3×33 \times 33×3 卷积核进行模型构建。

残差网络

残差网络设计时引入了残差连接,类似玩游戏存档概念。在模型训练过程中,每几层之间都有一个支路,将前一层特征图的结构相加,这样即使某一层效果不好,也不会导致整体崩溃。因为可以通过之前特征信息进行弥补,保证模型在不断叠加层后效果不下降,甚至可以提升。在实践中,残差连接通常表现为在卷积结构中加入原始图的副本,也可能包含其他类型的层,比如全连接层。通过这种方式,模型可以灵活地调整整个层级的特征表示,增强表达能力。

随着层数增加,如果网络结构直接堆叠,理论上可能出现"灾难遗忘"问题,即在网络学习过程中,前面学到的信息可能对后续学习产生负面影响,导致整体效果随着层数增加而恶化。

虽然残差网络采用独特的残差连接设计,但它本质上仍然是基于卷积结构,因为卷积在特征提取方面具有独特优势。在实际应用中,如Transformer模型,虽然其第一步也将图像分块进行卷积提取特征,但后续步骤则利用Transformer机制进行更复杂的特征整合和建模。


RNN网络

递归神经网络并没有像卷积神经网络那样在整体架构上发生巨大变化,它主要改进一些细节以及处理具有时间序列的数据。在传统神经网络中,每个数据点(如早餐、午餐、晚餐的状态)是独立的,而RNN则关注数据间的潜在联系和时间依赖性,则通过循环结构将前后数据关联起来。在递归网络中,后续阶段输入不仅包含当前阶段的数据,还会整合前一阶段经过处理后的中间阶段结果。例如,当处理第二阶段数据时,除了自身的特征外,还会使用第一阶段经过隐藏处理后的输出 H1H_1H1 作为输入,这样就能将前后阶段的信息关联起来。

递归神经网络在层次结构中引入循环箭头来实现时间序列中前后关系的联系。在前一阶段处理完数据后,当前阶段数据不仅接受自身的信息,还会结合前一阶段的中间结果进行特征组合,从而使得网络能够考虑历史数据对当前数据的影响。

Ht−1H_{t-1}Ht−1 包含了之前所有阶段的信息,这些信息是由神经网络自动组合而成,具体含义取决于网络的学习和组合过程。

最终我们关注的是 HTH_THT 的输出,它包含前面所有过程的信息总和,用于得出一个具体任务(如命名实体识别)中各类别概率的最大值。

反向传播是从最后一层开始,向下传播不仅限于自身,隐藏层也需要参与传播。通过计算log值并逐层更新参数,直到传播完整个模型。梯度传播是指在当前点处沿着能往下走的方向(即反向)有个传播误差,用于模型参数的调整优化。但实际应用中,使用TensorFlow时,内部已经封装好求导过程,开发者无需直接处理复杂矩阵求导计算。

XTX_TXT 表示每个阶段的输入,可以是时间序列数据,例如一句话分词的各个词,用于预测下一个词出现的频率。

递归神经网络主要应用于自然语言处理中,因为它能记住前一阶段的值,适合处理前后依存关系的文本数据。

激活函数用于寻找最合适特征已完成分类任务,如通过Softmax函数将输出转化为各类别的概率分布,以便进行分类决策。


LSTM网络

LSTM网络在处理长文本序列面临的问题,它会记住序列中所有信息,即使这些对最终结果影响较小甚至无用。这导致网络处理长文本时,可能因保留过多无关信息影响模型性能。

控制参数 CCC 在LSTM网络中扮演核心角色,它负责根据当前信息决定哪些特征应该保留,哪些应该被遗忘,通过乘法和加法操作,CCC 能够动态调整网络的记忆和遗忘行为。

门单元是LSTM网络中控制信息通过的方法,它通过Sigmoid函数产生0到1之间的值来决定哪些信息应该被保留,哪些信息该被遗忘。当门单元的值趋于1时,信息会被全部保留;趋于0时会被全部遗忘;介于两者之间则按照比例进行保留或遗忘。

LSTM的第一步主要做的是选择性忘记之前阶段的一些信息。具体来说,它通过当前数据(XTX_TXT)和前一阶段隐藏信息(HT−1H_{T-1}HT−1),通过一组权重参数(KaTeX parse error: Unexpected end of input in a macro argument, expected '}' at end of input: c \mod 函数中权重参数)决定哪些信息应该被保留,哪些信息不应该被保留。这种过程最终计算出一个 FTF_TFT 值,然后与控制参数结合,以决定丢弃什么样的信息。

在丢弃了部分信息后,LSTM还需要更新其控制参数 CCC。为了实现这一点,首先计算出新的 CTC_TCT 值,该值不仅基于当前阶段需要保留的信息(ITI_TIT),还结合了前一阶段的遗忘信息(FTF_TFT 与 ITI_TIT 的乘积)。这样,CTC_TCT 能够随着新数据的到来而动态更新,以调整信息保留策略。最终,CTC_TCT 会作用于当前结果,通过权重参数选择性保留有价值的信息,从而生成新的输出值。

LSTM中控制参数 CCC 的初始值通常是随机生成的,例如可能采用高斯初始化或其他随机方法来确定。在LSTM模型中,CCC 作为记忆单元的一部分,负责控制信息的保留和更新策略。

相较于RNN网络架构,LSTM在内部结构和计算方面更为复杂,能够有效地进行信息的选择和更新。因此,在多数场景下,LSTM的表现优于RNN,并且具有更强的表达能力。

相关推荐
LS_learner2 小时前
Clawdbot介绍与平台部署
人工智能
小程故事多_802 小时前
平台工程工具,解锁研发效能的核心密码
人工智能·aigc
多恩Stone2 小时前
【3DV 进阶-12】Trellis.2 数据处理脚本细节
人工智能·pytorch·python·算法·3d·aigc
vx-bot5556662 小时前
企业微信接口在AI智能体与知识库集成中的架构实践
人工智能·架构·企业微信
生成论实验室2 小时前
生成式通用智能(GAGI):基于《易经》状态空间的认知架构
人工智能·神经网络·算法·架构·信息与通信
丝斯20112 小时前
AI学习笔记整理(69)——物理AI中世界模型
人工智能·笔记·学习
新缸中之脑2 小时前
Docling+视觉AI增强
人工智能
咩咩不吃草2 小时前
【深度学习】:从神经网络到AI大模型的核心逻辑
人工智能·深度学习·神经网络
杜子不疼.2 小时前
数字人技术实战:从零构建实时交互式AI虚拟人系统
人工智能