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

文章目录

    • [1 引言](#1 引言)
    • [2 基本结构](#2 基本结构)
      • [2.1 神经元](#2.1 神经元)
      • [2.2 模型结构](#2.2 模型结构)
    • [3 训练过程](#3 训练过程)
      • [3.1 损失函数](#3.1 损失函数)
      • [3.2 反向传播](#3.2 反向传播)
      • [3.3 基于梯度的优化算法](#3.3 基于梯度的优化算法)
    • [4 总结](#4 总结)

1 引言

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

2 基本结构

2.1 神经元

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


图1 神经元

h w , b ( x ) = f ( w T x + b ) (1) h_{w,b}(x)=f(w^Tx+b) \tag{1} hw,b(x)=f(wTx+b)(1)

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

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

2.2 模型结构

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


图2 一个简单的神经网络

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

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

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

从数学表达式来看,隐藏层的输出如公式3所示:
h i = σ ( w 1 i 1 × x 1 + w 2 i 1 × x 2 + b ) (3) h_i = \sigma (w_{1i}^1\times x_1 + w_{2i}^1\times x_2+b)\tag{3} hi=σ(w1i1×x1+w2i1×x2+b)(3)

输出层的输出公式如公式4所示:
y i = σ ( w 1 i 2 × h 1 + w 2 i 2 × h 2 + w 3 i 2 × h 3 + w 4 i 2 × h 4 + b ) (4) y_i = \sigma (w_{1i}^2\times h_1 + w_{2i}^2\times h_2+ w_{3i}^2\times h_3 + w_{4i}^2\times h_4 + b)\tag{4} yi=σ(w1i2×h1+w2i2×h2+w3i2×h3+w4i2×h4+b)(4)

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

3 训练过程

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

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

3.1 损失函数

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

均方差损失函数: 计算预测值和目标值之间差值的平方和,来衡量预测的准确性,如公式5所示。
M S E = 1 N ∑ ( y i − y ^ i ) 2 (5) MSE = \frac{1}{N}\sum(y_i-\hat{y}_i)^2\tag{5} MSE=N1∑(yi−y^i)2(5)

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

交叉熵损失函数: 交叉熵损失函数衡量预测结果的概率分布和真实标签的的差异,如公式6所示。
C E = − 1 N ∑ i = 1 N y i ln ⁡ y \^ i + ( 1 − y i ) ln ⁡ ( 1 − y \^ i ) (6) CE=-\frac{1}{N} \sum_{i=1}^{N}\lefty_{i} \\ln \\hat{y}_i+\\left(1-y_{i}\\right) \\ln (1-\\hat{y}_i)\\right\tag{6} CE=−N1i=1∑Nyilny\^i+(1−yi)ln(1−y\^i)(6)

其中, y i y_i yi为真实标签, y ^ i \hat{y}_i y^i为预测的概率分布, N N N为样本数量。

3.2 反向传播

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

(1)输出层的梯度
∂ C E ( W , b ) ∂ w ( 2 ) = ∂ C E ( W , b ) ∂ y ∂ y ∂ w ( 2 ) \frac{\partial CE(W, b)}{\partial w^{(2)}} = \frac{\partial CE(W, b)}{\partial y}\frac{\partial y}{\partial w^{(2)}} ∂w(2)∂CE(W,b)=∂y∂CE(W,b)∂w(2)∂y

(2)隐藏层的梯度

∂ C E ( W , b ) ∂ w ( 1 ) = ∂ C E ( W , b ) ∂ y ∂ y ∂ h ∂ h ∂ w ( 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)}} ∂w(1)∂CE(W,b)=∂y∂CE(W,b)∂h∂y∂w(1)∂h

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

3.3 基于梯度的优化算法

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

最速下降法的步骤如下:

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

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

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

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

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

4 总结

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

相关推荐
江畔柳前堤10 小时前
roLabelImg 详细安装教程
开发语言·人工智能·后端·云原生
阿里云大数据AI技术10 小时前
分链路差异化设计的DSP准实时数仓|钛动科技基于阿里云实时计算 Flink 版 + DLF Paimon + EMR Serverless StarRocks 的实践
人工智能·flink
陕西企来客10 小时前
2026年7月AI智能搜索曝光趋势研判
大数据·人工智能·机器学习·ai智能搜索曝光
阿里云大数据AI技术11 小时前
从算力到智能体,面向 Agentic AI 的基础设施演进
人工智能·agent
hangyuekejiGEO11 小时前
GEO技术服务选型指南
大数据·人工智能·python
阿里云大数据AI技术12 小时前
EMR Serverless Spark AI Function 的双维降本实践
人工智能·sql·spark
维基框架12 小时前
GitHub源码处理提速 一趟扫描反而更慢
人工智能·github
冬奇Lab12 小时前
代码库知识库系列(05):向量检索 vs 知识图谱——加了调用图并没有变更好
人工智能
AKAMAI12 小时前
你的源服务器可能是你做出的最昂贵决定
运维·人工智能·云计算
冬奇Lab12 小时前
【无标题】
人工智能·开源