热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

交通预见未来(4):从NLP自然语言处理到工程领域中的时间序列:我们能学到什么?...

NLP自然语言处理中的单词,句子,经过各种处理编码,电脑识别到的还是一串数字,即一个有前后关系的时间序列。放到交通工程、土木

NLP自然语言处理中的单词,句子,经过各种处理编码,电脑识别到的还是一串数字,即一个有前后关系的时间序列。放到交通工程、土木工程领域,时间、速度、客流量、轨道形变量、桥梁变形位移等各类时间序列本来就是数值,相比于NLP,还省去了编码的过程呢,哈哈哈!所以做个大自然的搬运工岂不省事?!!!计算机小白的我,还是从NLP领域大火的Seq2Seq模型开始蜗牛吧……

文章信息

《Sequence to Sequence Learning with Neural Networks》。

这篇文章是2014年Google Brain团队的三位老外发的一篇文章,首次真正提出了Seq2Seq模型,被引6000多次。其实还有另外一篇文章《Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation》也是在2014年使用了 Seq2Seq 模型来解决机器翻译的问题,被引5000多次,这边文章比前者早了几个月,两篇文章的区别是前者是来自于谷歌的论文,工程应用性更强,后者来自蒙特利尔大学的一个博士生,学术性更强,后面这篇文章有空再看。

摘要

本文提出了一种end-to end序列学习方法,使用多层LSTM将输入序列映射到一个固定维数的向量上(编码),然后用另一个深层LSTM从向量上解码目标序列。将该方法应用在WMT-14数据集的英法翻译任务中。此外,LSTM擅长处理长句子(得益于LSTM处理long-term dependency的良好性能,交通领域即能记忆很久以前的交通状态,从而应用到当前状态的预测中)。LSTM还学习了对词序敏感、对主动语态和被动语态相对不敏感的短语和句子表示。最后,我们发现对所有输入序列(不是目标序列)做逆序处理后显著地提高了LSTM的性能,因为这样做会在输入序列和目标序列之间引入许多短期依赖关系,从而使优化问题变得更加容易。

简介

深度神经网络(DNNs)是一种功能极其强大的机器学习模型,在语音识别和视觉对象识别等困难问题上表现优异。DNNs之所以功能强大是因为它们可以用很少的步骤执行任意并行计算。虽然神经网络与传统的统计模型有关,但它们能够学习复杂的计算。此外,只要有足够的有标记的训练集来确定网络参数,就可以使用有监督的反向传播算法对DNNs进行训练。

尽管DNNs具有灵活性和强大的功能,但其输入和输出只能用用固定维数的向量来编码。这是很大限制,因为许多重要的问题最好用长度未知的序列来表示。例如,语音识别和机器翻译(输入输出不可能长度相等)。因此,一个学习将序列映射到序列的不受输入输出维数限制的方法显然是有用的。

DNNs要求输入和输出的维数是已知的和固定的。(对于RNN,只要预先知道输入和输出之间的固定长度,RNN就可以轻松地将序列映射到序列。然而,如何将RNN应用于输入和输出序列长度不同且关系复杂且非单调的问题,目前尚不清楚)。

本文展示了一个直观的长短期记忆(LSTM)结构解决一般序列对序列的问题(如下图)。其思想是使用一个LSTM来读取输入序列(每次一个时间步长)通过编码获得固定维度的向量,然后使用另一个LSTM进行解码,即从该向量中提取输出序列。第二个LSTM本质上是一个递归神经网络语言模型,但它的输入是编码得到的固定维度的向量。LSTM能够成功地学习具有长期时间依赖关系的数据,所以本文中的模型也自然是基于LSTM。

简单理解一下就是输入序列为ABC以及输入序列结束符号,从开始解码出WXYZ以及结束符号,停止解码。多说一句该模型架构在翻译任务上,均取得了不错的效果,且还有巨大的提升空间(比如引入Attention注意力机制)

该模型在长句子上表现很好,因为我们颠倒了训练集和测试集中输入序列中单词的顺序(只颠倒输入序列,不颠倒输出序列)。这样做,我们引入了许多短期依赖关系从而使优化问题变得更简单。

LSTM的一个特性是它能将一个可变长度的输入语句映射成一个固定维度的向量表示。考虑到翻译往往是原句段落的释义,翻译目标鼓励LSTM找到能够表示其含义的句子表示形式,因为具有含义相近的句子彼此接近,而含义不同的句子会距离很远。结果表明我们的模型能够识别词序,并且对主动语态和被动语态也不敏感。

创新点

(1)首先我们使用了两种不同的LSTM:一种用于输入序列,另一种用于输出序列,这样虽然增加了模型参数,但计算成本的增加可以忽略不计,并且可以提高模型的泛化能力。

(2)其次,我们发现深度LSTM明显优于浅层LSTM,因此我们选择了一个4层的LSTM。

(3)第三,我们发现颠倒输入句子的单词顺序非常有价值。例如,不是映射将a, b, c 映射到α, β, γ,而是将 c, b, a 映射到α, β, γ。其中α, β, γ是翻译后的a, b, c。这样, a 就离α很近, b 就离β很近, 依此类推。(正如上面所提到的,一个段落中有含义相近的句子彼此接近,而含义不同的句子会距离很远)

主体内容

只是学习建模思想,所以NLP领域的专业知识和建模过程就略过了。

模型的实现上,其实Seq2Seq模型就是一个使用了LSTM层Encoder-Decoder自编码器模型,Keras 中也比较适合新手实现。

类似于这样的……


或者这样的……

特别之处

将输入进行颠倒逆序:

文章说虽然我们对这一现象没有一个完整的解释,但我们认为这是由于对数据集引入了许多短期依赖关系造成的。

但是又强行解释到:通过颠倒输入序列中的单词,保持输入序列中对应单词与输出序列的平均距离不变。然而,输入序列中的前几个单词现在与输出序列中的前几个单词非常接近,因此问题的最小time lag大大减少,而句子末尾的词距离变长的代价似乎并不显著。因此,反向传播更容易在输入序列和输出序列之间“建立通信”,从而大大提高了整体性能。

展望

土木工程和交通工程领域的时间序列处理问题上,或许可以探索借鉴本文的建模思想,以得到更好的结果。

每一个不曾起舞的日子,都是对生命的辜负。

——  尼采

Transportation-ML

与你分享科研成长的乐趣

长按二维码关注


推荐阅读
author-avatar
翻版的袁城
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有