前馈神经网络 (FNN) 是一种人工神经网络,其中信息以单向流动,从输入层通过隐藏层(如果有)到输出层,没有循环或回路。 这种结构将其与允许反馈连接的循环神经网络 (RNN) 区分开来。 在 FNN 中,每一层都由节点(神经元)组成,这些节点对数据应用数学运算。 输入层接收原始数据,例如图像中的像素值或数据集中的特征,并且每个后续层使用加权连接和激活函数来处理这些数据。 例如,在用于图像分类的简单 FNN 中,输入可以表示像素强度,隐藏层可以检测边缘或纹理,而输出层可以预测图像的类别(例如,“猫”或“狗”)。
网络的架构由其层以及它们之间的连接定义。 一层中的每个神经元都连接到下一层中的每个神经元,形成“完全连接”的结构。 在训练期间,网络使用诸如梯度下降之类的优化算法来调整这些连接的权重。 此过程最小化了损失函数,该函数衡量了网络预测与实际目标之间的差异。 例如,如果训练一个网络来预测房价,则损失函数可能会量化预测价格与真实价格的距离。 激活函数(例如 ReLU(整流线性单元)或 sigmoid)引入了非线性,使网络能够对复杂的模式进行建模。 如果没有这些函数,网络将仅学习线性关系,从而限制其用处。
由于其简单性和有效性,前馈神经网络被广泛用于回归、分类和模式识别等任务。 它们擅长处理具有固定结构的输入数据,例如表格数据或扁平化图像。 但是,它们缺乏记忆力,因此不适用于诸如时间序列或自然语言之类的顺序数据,在这些情况下,RNN 或 transformers 是更好的选择。 一个常见的例子是将 FNN 用于 MNIST 手写数字数据集:输入层有 784 个节点(每个像素一个节点),隐藏层可能会降低维度,而输出层有 10 个节点(每个数字一个节点)。 尽管 FNN 是基础,但它们的性能在很大程度上取决于数据预处理、层设计和诸如 dropout 之类的正则化技术来防止过度拟合。 开发人员通常首先使用 FNN 作为基线,然后再探索更复杂的架构。