seq2seq 和 DeepAR, MQRNN, MQCNN的关系

1 什么是 seq2seq ?

    seq2seq字面意思是序列到序列。一般是指下面着这种encoder-decoder结构:

x 1 , x 2 , . . . , x m → e n c o d e r ( 编码器 ) → 隐状态 → d e c o d e r ( 解码器 ) → y 1 , y 2 , . . . , y n x_1,x_2,...,x_m \rightarrow encoder(编码器) \rightarrow 隐状态 \rightarrow decoder(解码器) \rightarrow y_1,y_2,...,y_n x1,x2,...,xmencoder(编码器)隐状态decoder(解码器)y1,y2,...,yn
    编码器,解码器的结构可以是RNN, LSTM, CNN,也可以是其他结构。所以DeepAR,MQRNN, MQCNN等模型都属于seq2seq模型的范畴。
    seq2seq结构最初是用在自然语言处理或者语音处理等领域,比如文本预测,语音合成等。

1.1 最初的seq2seq

    最先提出seq2seq的是:Graves, A. (2013). Generating sequences with recurrent neural networks. arXiv preprint arXiv:1308.0850.
    该模型是用来做文本预测,手写预测,手写合成等。模型结构如下图所示:
在这里插入图片描述
    损失函数使用的是条件概率的负对数,应该就是似然,如下图:
在这里插入图片描述
    我看有的seq2seq用的损失函数是交叉熵损失函数tf.nn.sparse_softmax_cross_entropy_with_logits 见文献:Tensorflow中的Seq2Seq全家桶,感觉seq2seq在自然语言领域的应用场景,好多可以归结为分类场景,所以损失函数可以用交叉熵。其实具体使用哪种损失函数,要看模型的具体应用场景。

2 DeepAR

2.1 Deepar和seq2seq的区别

    DeepAR的模型结构和seq2seq模型结构差不多。DeepAR的贡献在于:

  • 以前神经网络主要应用在自然语言处理领域,DeepAR将神经网络模型成功应用在了时序预测上,并在真实数据上取得了很好的效果。证明时序预测也是可以使用神经网络模型的。
  • 在DeepAR进行时序预测的过程中,解决了一些特定问题,比如数据量级差距大如何处理,数据的假设分布应该如何选择,时序数据应该提取哪些特征,参数如何选择等。
  • 有人将神经网络模型用在断断续续的时序数据预测上,但得到的结果并不理想。
  • 也有人将神经网络模型应用在时间序列上,但是一般是一个时间序列训练一个单独的模型。
  • DeepAR与他们不同的地方在于,1. DeepAR预测的是整个分布特征,而不是单单预测一个值;2. 此外,对count类型的数据,DeepAR使用了负二项分布似然估计,极大的提高了模型准确率。3. 最后DeepAR一个模型可以对多个时间序列进行预测,每个时间序列给定一个编号做embedding即可。

2.2 损失函数

    损失函数: DeepAR假设数据符合正太分布(实数)或者负二项分布(正整数)。损失函数使用的是对应的似然估计。如下图所示:
在这里插入图片描述在这里插入图片描述

2.3 结构

    DeepAR结构如下图所示:
在这里插入图片描述
    图中左边是编码器,右边是解码器。
    编码器: x i , t x_{i,t} xi,

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值