目录
上一篇文章有提到线性回归方程。
时间序列预测(二)——前馈神经网络(Feedforward Neural Network, FNN)-CSDN博客
与线性回归相比:
线性回归只有一个线性层,输入直接映射到输出,不包含隐藏层和激活函数。而前馈神经网络通常包含多个隐藏层和非线性激活函数,可以学习更复杂的模式和非线性关系。当前馈神经网络只有一个输入层和一个输出层,且没有激活函数时,它实际上等价于线性回归。
接下来,讲前馈神经网络。
前馈神经网络(Feedforward Neural Networks)是最基础的神经网络类型,信号单向流动,从输入层到隐藏层再到输出层,没有反馈循环,它适用于非时间序列的预测问题。在时间序列预测中,前馈神经网络(FNN) 虽然没有时间依赖性,但可以通过适当的数据预处理来实现时间序列预测的功能。它的核心思路是将时间序列的历史数据转换为独立特征,然后通过 FNN 进行预测。这种方法称为 滞后输入法(Lagged Input Method) 或 窗口法。
一、基本结构和工作原理
1、基本结构
前馈神经网络(Feed-Forward Neural Network,简称FNN)是一种基本且广泛应用的人工神经网络结构。其结构由多个层次组成,主要包括:
- 输入层:接收外部输入的数据,并将其传递给下一层。
- 隐藏层:位于输入层和输出层之间,可以有一层或多层,负责对输入数据进行非线性变换和特征提取。
- 输出层:接收隐藏层的输出,并将最终的结果输出
2、工作原理
前馈神经网络的工作原理主要包括前向传播和反向传播两个过程。
(1)前向传播(Forward Propagation)
首先,输入数据X=[x1,x2,…,xn]进入输入层,然后依次经过每个隐藏层的神经元,每个神经元通过权重和偏置对输入进行线性组合,并经过激活函数处理。每层的输出成为下一层的输入。最后,隐藏层的最终输出通过输出层,生成预测结果。
如果是回归问题,输出可以是连续值;如果是分类问题,输出可以是概率分布或类别标签。
其中每个隐藏层(及输出层)的具体计算过程如下:
涉及到激活函数后面介绍。
在前向传播中,网络的参数(权重和偏置)保持不变,网络对输入数据生成初始预测结果。
(2)反向传播(Backward Propagation)
反向传播是神经网络在训练过程中使用的,其实思路是和上一篇文章讲的线性回归一样的,也是如下两步:
a、先计算计算损失函数;
b、更新权重和偏置。从输出层开始,逐层计算误差的梯度,并沿着网络向输入层传播。每层的梯度用于更新更新各层的权重和偏置,使得模型的损失逐步减小。(即梯度下降,这只是优化器的一种,后面介绍)。
这里的损失函数要丰富一些,常见的损失函数包括均方误差(MSE)、交叉熵损失等,后面介绍。
总得来说,前向传播用来计算预测结果。反向传播用来计算误差并更新参数。这两个过程相互交替,逐步优化模型,使其对输入数据的预测越来越准确。
值得注意的是,这里的“反馈”仅用于权重的调整,并不构成循环反馈,即网络整体仍然是前馈的。网络接收新信息后,改变连接权值,调节最终输出,直至网络输出误差满足精度要求,结束训练。