前馈神经网络是什么?信息只从输入单向流到输出的神经网络
前馈神经网络(Feedforward Neural Network,FNN)是最基本的一种人工神经网络。在这种网络中,信息只朝一个方向流动:从输入层出发,经过一个或多个隐藏层,最后到达输出层,中间没有任何回路或反馈,某一层的输出不会再回到这一层或前面的层。“前馈”这个名字就来源于这种单向向前传递的特点。
网络的结构
前馈神经网络由多层神经元组成:输入层接收原始的数据,比如图片的像素值、表格的特征;隐藏层位于中间,对数据进行逐层的变换和特征提取,可以有一层,也可以有很多层;输出层给出最终的结果,比如分类的概率、预测的数值。最常见的前馈神经网络是多层感知机(MLP),它的每一层的每个神经元都与下一层的所有神经元相连,所以也叫全连接网络。每个神经元对来自上一层的输入进行加权求和,加上偏置,再经过一个非线性的激活函数,得到自己的输出,传给下一层。
它是怎么训练的
前馈神经网络通过反向传播算法进行训练:先进行前向传播,把训练数据输入网络,一层层地计算,得到输出;用损失函数计算输出与正确答案之间的差距;然后进行反向传播,从输出层往回,利用链式法则逐层计算每个权重对误差的影响,也就是梯度;最后用梯度下降等优化算法更新所有的权重。重复这个过程,网络的预测就会越来越准确。这里需要注意:反向传播中误差信号是从后往前传的,但这只是训练时计算梯度的方法,网络本身在进行预测时,信息仍然只是单向地向前流动,所以它仍然是前馈网络。
万能逼近定理
前馈神经网络有一个重要的理论性质:万能逼近定理。它指出,只要隐藏层有足够多的神经元,即使只有一个隐藏层的前馈网络,也能以任意的精度逼近任何连续函数。George Cybenko 在 1989 年针对 Sigmoid 激活函数证明了这一结论,Kurt Hornik 等人随后推广到了更一般的情况。不过,这个定理只说明了这样的网络存在,并没有告诉我们需要多少个神经元,也没有说明如何训练出这样的网络。在实践中,使用更多的层,也就是更深的网络,往往比使用一个非常宽的单层网络更高效。
和其他网络的区别
与前馈神经网络相对的是循环神经网络(RNN):它的神经元之间存在回路,上一个时间步的输出会作为下一个时间步的输入,从而能够记住之前的信息,适合处理文本、语音等序列数据。卷积神经网络(CNN)也属于前馈网络的一种,但它不是全连接的,而是用卷积核在局部区域中提取特征,并在不同位置共享参数,特别适合处理图像。
在今天的大模型中
前馈神经网络并没有过时,它是许多现代模型的重要组成部分。在 Transformer 架构的每一层中,都包含两个主要的模块:注意力模块和前馈网络模块。前馈网络模块通常由两个全连接层组成,中间先把维度扩大几倍,再缩回原来的大小,它占据了 Transformer 模型的大部分参数,被认为是模型存储知识的重要场所。在混合专家模型中,每一个“专家”本身也就是一个前馈网络。此外,多层感知机也常被用于处理表格数据,以及作为各种模型的分类头和预测头。