1、前馈网络存在的问题
(1)、梯度消失/梯度爆炸问题:在深度前馈网络中,当使用如sigmoid或tanh等饱和性激活函数时,网络在训练过程中可能会出现梯度消失的问题。这就导致了网络参数很难更新,进而影响网络的学习。相反,如果梯度过大,则可能会导致梯度爆炸,使得网络训练变得不稳定。
(2)、过拟合问题:前馈网络可能会过度拟合训练数据,这就使得网络在新的、未见过的数据上表现得不好。这个问题可以通过正则化技术,如权重衰减、Dropout等方法来缓解。
(3)、不能处理时序数据:前馈网络无法处理时序数据或者序列数据,因为它们没有记忆功能,无法保存先前的状态或输出。这对于理解语音、文本等顺序数据非常重要。而这一点可以通过引入RNN或LSTM等模型来解决。
2、序列数据
一种数据类型,其中的数据具有某种特定的顺序。
3、循环神经网络(RNN)为什么能解决前馈网络中的问题
RNN通过在序列的每个元素上一次处理一个元素来操作。这就意味着它可以处理任何长度的序列。RNN的核心思想是有一个循环的隐藏状态,这个隐藏状态可以保存并更新过去的信息。因此,RNN在处理当前输入时,可以利用隐藏状态获取过去的信息。
4、卷积神经网络(CNN)与循环神经网络(RNN)的异同
相同点:
深度学习模型:CNN和RNN都是深度学习的模型,使用了神经网络的结构,并通过反向传播和梯度下降等优化算法进行训练。
非线性映射:它们都可以学习输入和输出之间的复杂非线性映射。
参数共享:CNN和RNN都使用参数共享的策略。CNN在所有空间位置共享其核的参数,RNN在时间步骤中共享其参数。
不同点:
数据类型:CNN主要用于处理网格型数据,如图像和音频。RNN主要处理序列数据,如时间序列和文本。
结构:CNN有卷积层和池化层,主要用于局部感知和降维。RNN有循环层,可以处理序列数据,能够在时间步骤中传递信息。
空间/时间依赖性:CNN通过使用卷积核来学习局部特征,适合于处理固定长度的输入(如固定大小的图像),对空间依赖性有很好的处理能力。RNN可以处理任何长度的序列,对于长期的时间依赖性,标准的RNN处理起来有困难,但LSTM或GRU等RNN的变体可以很好地解决这个问题。
并行计算:CNN的前向和后向传播都可以高效地并行化,因为其卷积操作在所有位置都是独立的。但RNN由于其序列依赖性,在时间步骤上难以进行有效的并行化。
5、沿时间反向传播算法(BPTT)
BPTT是反向传播算法(BP)由前馈神经网络向RNN的推广 ,BPTT将RNN的链式连接展开,其中每个循环单元对应一个“层”,每个层都按前馈神经网络的BP框架进行计算。
6、序列到序列模型 seq2seq
所谓Seq2Seq(Sequence to Sequence),即序列到序列模型,就是一种能够根据给定的序列,通过特定的生成方法生成另一个序列的方法,同时这两个序列可以不等长。这种结构又叫Encoder-Decoder模型,即编码-解码模型,其是RNN的一个变种,为了解决RNN要求序列等长的问题。
7、梯度消失、梯度爆炸
梯度消失和梯度爆炸的根源主要是因为深度神经网络结构以及反向传播算法,目前优化神经网络的方法都是基于反向传播的思想,即根据损失函数计算的误差通过反向传播的方式,指导深度网络权值的更新。