深圳开发网站的公司,自己做网站的难度,如何做产品销售网站,兰州网络推广专员文章目录 1 引言2 基本结构2.1 神经元2.2 模型结构 3 训练过程3.1 损失函数3.2 反向传播3.3 基于梯度的优化算法 4 总结 1 引言
神经网络可以被视为一个万能的拟合器#xff0c;通过深层的隐藏层实现输入数据到输出结果的映射。神经网络的思想源于对大脑的模拟#xff0c;在… 文章目录 1 引言2 基本结构2.1 神经元2.2 模型结构 3 训练过程3.1 损失函数3.2 反向传播3.3 基于梯度的优化算法 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^Txb) \tag{1} hw,b(x)f(wTxb)(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_2b)\tag{3} hiσ(w1i1×x1w2i1×x2b)(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×h1w2i2×h2w3i2×h3w4i2×h4b)(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} MSEN1∑(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_{i1}^{N}\left[y_{i} \ln \hat{y}_i\left(1-y_{i}\right) \ln (1-\hat{y}_i)\right]\tag{6} CE−N1i1∑N[yilny^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.阈值判断如果所有Wb的变化值都小于停止迭代阈值ϵ则跳出迭代循环否则进入步骤2
4.输出结果输出最终的权重参数。
4 总结
本文介绍了一种较为简单的前馈神经网络介绍其基本组件、模型结构、前向计算流程并简单介绍了模型的训练原理。前馈神经网络是大多数深度模型的基石在此基础上演化出更加结构更加复杂的深度模型如在前馈神经的网络的基础上根据图像数据的特征使用稀疏交互、等变表示和参数共享的思想设计出卷积神经网络。在transformer中前馈神经网络被用来实现用自注意力机制捕捉输入序列中的长程依赖关系并更好地理解输入序列中的语义信息。