system: [SYSTEM]

user: 3. 常用的深度学习模型 3.1. 循环神经网络 循环神经网络(Recurrent Neural Network， 缩写为RNN)是被设计用来识别序列特征并使用模式来预测下一个可能的场景，最大的特点就是有了记忆功能。与传统深度神经网络中每一层使用不同的参数的做法不同，RNN在所有时刻中共享相同的参数，这反应了在每一步中都在执行相同的任务，即循环所在，只是用了不同的输入，这样极大地减少了需要学习的参数的个数。之后出现的RNN变体，如Bidirectional RNN是在某时刻的输出不仅依赖于序列之前的元素也依赖于之后的元素。DeepBRNN，即在Bidirectional RNN的基础上，每时每刻会有多个隐藏层，这将会使它有更强的学习能力。 图2展示了RNN的基本结构。其中x t 和h t 分别表示t时刻的输入和学习到的隐藏状态，A是一组神经网络，它不停的接收x t 并输出h t 。可以看出前一时刻t − 1的输出(h t − 1 )被输入到了下一时刻t，这样历史信息就被存储并传递下去了。 RNN有两个缺点，一是记忆力短，随着网络的加深前面存储的内容的影响将逐渐减弱，这将会丢失部分重要的信息。二是没办法控制信息中记住哪些，舍掉哪些，这使得一些不重要的信息增加网络的训练负担，增加干扰。 图2. 循环神经网络模型结构 3.2. 长短时记忆 长短时记忆(Long Short Term Memory，缩写为LSTM)是RNN的一个扩展，图3展示了LSTM的基本结构，与RNN不同的是循环的神经网络A结构变复杂了，它加入了一种特殊的记忆单元(细胞状态)，即贯穿图表顶部的水平线，能很好的保持信息不变；并用三个门控制信息的输入输出，即输入门、忘记门和输出门；最后，每个时刻的输出由两部分组成：细胞状态和输出状态。其中，门的结构很简单，就是一个sigmoid层(即图x中的σ处)来决定输入信息中哪些需要丢弃、哪些需要更新、哪些需要输出。细胞状态是由上一次的细胞状态按元素乘以遗忘门，再加上输入门与当前状态(输入信息经过tanh处理后)的乘积结果，而最后的输出状态是由细胞状态经过一个tanh之后与输出门的乘积。LSTM这种结构提供了只把重要的内容存下来，需要的时候再输出，甚至必要的时候清空等十分强大的功能，解决了RNN的两个问题，但也同时增大了网络的训练难度，因为结构中所需的参数大大增加了。 图3. 长短时记忆模型结构 但参数的数量还没有大到让人们望而却步，反而LSTM与其它网络的结合使用频繁出现，如 [ 16 ] LSTM-FCN将数据转换成相应的维度同时输入FCN和LSTM，并将输出的结果合并，取得了非常好的效果。 [ 17 ] 提出的Conv-LSTM结构堆叠在编码–解码模型中，不仅很好的保留了数据的时序性，还能在空间维度保留数据间的相关关系。 [ 18 ] 提出了一个新的方法来训练LSTM，使门的输出不是0到1的一个范围，而是非0即1。这种方法使得输出结果更容易理解，意思是经过门的信息要么保留要么舍弃。试验结果也证明这种训练方式的效果更佳。另外，门循环单元(Gated Recurrent Unit，缩写为GRU)是在LSTM的基础上省略了一个门，并将单元状态与输出状态合并为一个h t ，使得结构得以简化，参数量变小。 [ 19 ] 比较了RNN、LSTM、GRU的记忆能力，并提出了一个记忆能力更强的ELSTM和一个性能优于BRNN和Seq2Seq的DBRNN模型。 LSTM在轨迹预测方面有了广泛地应用。 [ 9 ] 运用RNN-LSTM的网络结构，将船舶的历史轨迹特征和当前轨迹特征作为网络的输入，输出未来某时刻船舶的轨迹特征，再与真实值相对比进行网络的训练，建立历史船舶轨迹与未来船舶轨迹特征数据之间的映射关系，并实现对未来轨迹特征的推算和预测，达到了很好的效果。 [ 20 ] 提出了一个基于随机森林和MLP-LSTM的轨迹预测混合模型，先利用随机森林构成的移动状态预测组件来对运动状态进行预测，在用多层感知机来捕获轨迹数据中的局部特征，最后利用LSTM来获取轨迹数据中的时间依赖关系，解决了轨迹预测中关于静止轨迹数据预测误差大和提取轨迹数据中长时间依赖的问题。 3.3. Seq2Seq Seq2Seq全称为Sequence to Sequence，是一个编码器——解码器结构的生成神经网络，它的输入是一个序列，输出也是一个序列。图4表示了Seq2Seq的基本结构，这里的每一个方块代表着一个RNN单元，通常是LSTM或者GRU。其过程就是，编码器将可变长度的序列如 { x 1 ， x 2 ， x 3 ， x 4 } 转变为固定长度的向量表达v，解码器将这个固定长度的向量v转换为可变长度的目标输出序列 { y 1 ， y 2 ， y 3 } 。 图4. 序列到序列模型结构 然而，由于编码器将输入序列编码为固定大小的状态向量实际上是一个信息有损压缩的过程，如果信息量很大，压缩过程将造成大量信息丢失，同时解码器在解码这个固定长度的向量时也很难关注到输入信息的更多细节，所以注意力(Attention)概念的引入和双向编码器(Bidirectional encoder layer)的提出，使模型的性能大大提高。如Attention机制可以把输入序列根据时间步编码为不同的向量v i ，在解码时，结合每个不同的v i 进行解码输出，这样得到的结果会更加准确。 [ 13 ] 通过结合两种不同的Attention机制来预测行人轨迹。在目标行人轨迹上使用Soft Attention，即注意力不同程度的分散在轨迹的各个部分，而在周围行人的轨迹上使用Hardwired Attention，重点关注他与目标行人的距离，最后将某时刻各个Attention获得的信息想融合作为预测输入的一部分。 鉴于Seq2Seq模型有强大的获取序列数据间关系的能力，它已被用于很多轨迹数据挖掘任务。如 [ 21 ] 提出了基于Seq2Seq的模型用来学习轨迹特征，作为轨迹相似度计算的基础研究。 [ 6 ] 提出了Dest-ResNet的序列学习模型，用来处理两种不同形式的序列数据，如交通速度序列和用户在特定时间段的查询请求序列，其中用到的Seq2Seq被用来完成未来一段时间的交通速度预测。 3.4. 卷积神经网络 卷积神经网络(Convolutional Neural Network， 缩写为CNN)是一类深度前馈神经网络，一般用于视觉图像领域。典型的CNN模型(如图5)通常包括输入层、卷积层、池化层和输出层。卷积层是用不同大小的卷积核来进行特征提取，池化层则通常用于在空间维度进行下采样，起到数据压缩、特征降维、降参的作用。同时在对图像处理时，卷积操作所获得的特征具有平移、缩放和旋转不变性，它的权值共享结构大幅度减少了参数，能有效降低深度网络模型的连接复杂度和训练难度。而如今，一些CNN已被证明对单变量时序数据的分类任务有很好的效果，如FCN、ResNet等。 [ 22 ] 又提出了多变量卷积神经网络(MVCNN)对多变量时序数据进行分类并证明了其高性能。 [ 23 ] 将轨迹位置数据转化为二维图像作为CNN的输入，利用CNN的卷积层和池化层获取图片中轨迹的不同尺度特征，再与轨迹的其他数据特征相融合进行分类预测，达到了很不错的预测效果。 [ 24 ] 通过将原始轨迹序列转化为语义上重要的位置轨迹序列，研究评估了CNN结构在语义位置预测任务中的性能表现。 图5. 卷积神经网络模型基本结构 但试验也表明，若直接将一维时序数据作为卷积网络的输入来训练时很容易出现过拟合的现象，所以用验证集来适时地调整超参数是常用的方法。或者增大训练数据，因为深度学习的一个最大的特点就是，数据量越大效果越好。此外，对数据做变换如数据增强、数据归一化处理，手动进行特征选择、问题重构、算法上调优等方法都能对过拟合问题提供或多或少的帮助。 3.5. 自动编码机 自动编码机(Auto Encoder， 缩写为AE)是一类人工神经网络，能以一种非监督的模式学习到输入数据的有效特征。最简单的AE由一个输入层、一个隐藏层和一个输出层组成。输入层到隐藏层的映射关系可以看作一个编码的过程，将输入信息进行压缩表示，从隐藏层到输出层的过程相当与一个解码的过程，输出的结果其实是对输入信息的一个重构。作为一个有效的非监督的特征表达学习方式，AE多用于数据挖掘下采和机器学习的分类聚类任务中。而堆叠自动编码器(Stacked Auto Encoder)是逐层对输入数据进行处理，降维，特征提取，最终获得输入数据的高阶特征。图6展示了一个一层的AE模型结构。 图6. 一层的自动编码器模型结构 由于很多网络都是从权重随机初始化开始的，这会使得训练不稳定。 [ 25 ] 提出用一个序列编码器(Sequence Auto Ncoder)作为LSTM网络的预训练算法，这个训练步骤中得到的参数作为有监督的训练模型LSTM的起点，发现LSTM的训练变得更稳定，泛化能力更强。 [ 26 ] 通过测量“轨迹长度”学习到网络是如何将输入进行变换的，证明了低层网络权重的微小变化将随着网络的加深，影响是成指数倍放大的，所以优化低层网络的权重尤为重要。