暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

海山数据库(He3DB)+AI:(一)神经网络基础

wukong 2024-08-21
31

Table of Contents

1 引言

神经网络可以被视为一个万能的拟合器,通过深层的隐藏层实现输入数据到输出结果的映射。神经网络的思想源于对大脑的模拟,在其发展过程中历了三大浪潮:感知器时代(1940s-1960s)、BP算法时代(1980-1995))和深度学习时代(2006-至今)。在深度学习时代,随着众多研究学者的投入和硬件的发展,从结构较为简单的前馈神经网络,到针对图像数据的卷积神经网络,到处理序列数据的循环神经网络,再到捕捉长距离依赖的transformer,神经网络在多个任务上展现出强大的生命力。2022年,基于transformer架构的ChatGPT的出现,掀起了一场大模型浪潮,在大数据、大参数量的训练下,模型产生了涌现现象,在语言理解、逻辑推理等能力上展现惊艳的能力。本文以最简单的前馈神经网络(Feed Forward Neural Network,FFNN)为例,首先介绍神经网络的基本框架,然后介绍模型的训练过程,为本系列奠定基础。

2 基本结构

2.1 神经元

神经元是构成前馈神经网络的基本组件,其基本原理是通过对输入进行加权、激活,实现信息的非线性处理和传递,一个神经元的结构如图1所示,其数学表达式如公式1所示。

在这里插入图片描述

图1 神经元

image.png

加权:对于输入的多个信号,每个信号都关联了一个权重,该权重反映了输入信号对于输出的重要性。该权重在初始时被随机初始化,权重的值即模型训练的目的。对输入信号进行加权和偏置计算后,得到线性组合结果。

激活:激活将线性转化为非线性,使得能够拟合更复杂的函数。ReLu函数是最常用的激活函数之一,其数学表达式如公式2所示,当输入大于0时,输出不变,当输入小于0时,输出为0。ReLu函数以非常简单的方式增加了网络的非线性,具有易于求导的优点,使得模型在训练时具有较快的速度。
alt text

2.2 模型结构

基于单个神经元,即可构建模型。前馈神经网络主要可分为三个部分:输入层、隐藏层和输出层,如图2为一个较简单的前馈神经网络:

在这里插入图片描述

图2 一个简单的神经网络

输入层:与外界数据的直接接口,接收并传递数据到网络的下一层。

隐藏层:隐藏层可以有多层,每层中可以设置多个神经元。隐藏层实现对输入数据的特征提取,在学习过程中不断调整神经元的权重和偏置值,寻找输入数据到输出结果的最优表示。

输出层:网络的最后一层,给出最终的预测结果。输出层的结构与具体任务相关,在分类任务中,一般使用softmax函数得到概率分布,在回归任务中,可直接计算预测值。(分类任务对应离散,回归任务对应连续。)

从数学表达式来看,隐藏层的输出如公式3所示:
image1.png

输出层的输出公式如公式4所示:
image2.png

公式3和公式4即模型前向计算的过程。

3 训练过程

训练过程即通过大量的数据样本,对模型中的权重及偏置参数进行学习,实现输入数据到输出结果的最优表示。

在模型的训练过程中,还包括三个部分:损失函数、反向传播算法和最优化方法。损失函数,又称为代价函数,反映了模型预测结果到目标结果之间的差值。反向传播算法基于损失函数计算网络中所有权重参数的梯度,这个梯度反馈给最优化方法,用来更新权重以最小化损失函数,使得预测结果不断接近目标结果。

3.1 损失函数

根据具体任务选择损失函数。在回归任务中,常用的损失函数有均方差损失函数,在分类任务中,常用的损失函数有交叉熵损失函数。

均方差损失函数: 计算预测值和目标值之间差值的平方和,来衡量预测的准确性,如公式5所示。
image3.png

其中,yiy_i为目标值,y^i\hat{y}_i为预测值,NN为样本数量。

交叉熵损失函数: 交叉熵损失函数衡量预测结果的概率分布和真实标签的的差异,如公式6所示。
image4.png
其中,yiy_i为真实标签,y^i\hat{y}_i为预测的概率分布,NN为样本数量。

3.2 反向传播

假设使用如图1所示的神经网络,损失函数为公式1,那么基于链式法则可以计算出神经网络中每一个参数的梯度。

(1)输出层的梯度

CE(W,b)w(2)=CE(W,b)yyw(2)\frac{\partial CE(W, b)}{\partial w^{(2)}} = \frac{\partial CE(W, b)}{\partial y}\frac{\partial y}{\partial w^{(2)}}

(2)隐藏层的梯度

CE(W,b)w(1)=CE(W,b)yyhhw(1)\frac{\partial CE(W, b)}{\partial w^{(1)}} = \frac{\partial CE(W, b)}{\partial y}\frac{\partial y}{\partial h}\frac{\partial h}{\partial w^{(1)}}

在更深的神经网络中,可通过递推由后一层的梯度计算出前一层的梯度,梯度从后往前进行计算,因此称为反向传播。

3.3 基于梯度的优化算法

在最优化问题中,可分为凸优化和非凸优化,其中凸优化可寻找到全局最优解,非凸优化问题复杂难以求解,只有通过各种策略和方法寻找近似解和局部最优解。神经网络的优化问题属于非凸优化问题,常用的优化算法有最速梯度下降法。由反向传播算法得到了每个参数的梯度,梯度反映了参数的调整方向,优化算法基于这些梯度,对权重值进行调整,使得损失值下降,预测值不断接近目标值。

最速下降法的步骤如下:

1.参数初始化:选择初始参数值x(0)x(0),可以是随机的或根据问题特点进行初始化。设定终止精度ε>0,以及迭代次数;

2.计算梯度:由反向传播算法得到梯度;

3.更新参数:取负梯度为下降方向(正梯度为损失值增长的方向),设置步长α\alpha(或学习率),沿着该方向移动步长;

4.阈值判断:如果所有W,b的变化值都小于停止迭代阈值ϵ,则跳出迭代循环,否则进入步骤2;

4.输出结果:输出最终的权重参数。

4 总结

本文介绍了一种较为简单的前馈神经网络,介绍其基本组件、模型结构、前向计算流程,并简单介绍了模型的训练原理。前馈神经网络是大多数深度模型的基石,在此基础上演化出更加结构更加复杂的深度模型,如在前馈神经的网络的基础上根据图像数据的特征,使用稀疏交互、等变表示和参数共享的思想设计出卷积神经网络。在transformer中,前馈神经网络被用来实现用自注意力机制,捕捉输入序列中的长程依赖关系,并更好地理解输入序列中的语义信息。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论