Orders matters: seq2seq for set 实验

论文提出了input的顺序影响seq2seq结果 有一些输入本身是无序的怎么去处理呢

作者提出LSTM controller的方式 替代输入的LSTM encode方式

   

   

作者实验这种方式对应无序浮点数序列排序效果好于直接seq2seq

   

N是要排序的数的数目

P = 10 steps 表示 LSTM contorller process 10次

glimpses = 1 表示输出使用attention机制

   

不过实验复现这个结果不太一致

这里实验结果如下,也许实验细节和论文有出入,比如排序问题 要求输入是set 与顺序无关,那么LSTM的初始 input query是啥? 这里使用了全0向量作为input query实验

另外这个排序训练过程decoder是否使用feed prev 这里使用feed prev 同时 使用soft attention读取输入作为下一步输入

实验结论:

  1. Ptr-Net 和作者提出的 set2seq方式 都是收敛有效的
  2. Ptr-Net 采用glimplse=1 N=15 使用tensorflow lstm训练,adgrad optimizerlearning rate 0.1初始, 运行10000次的结果 比上图所示要好很多

    AverageEvals:[0.37186, 0.14407] loss 0.37186 序列完全预测准确情况的比例是14.4% 远远好于上面提到的4%的结果

  3. Set2seq虽然work 但是没有看出比直接ptr-net效果要好。。。

    开始几步收敛确实更快 但是后续收敛远远慢于ptr net

       

    选用Step = 20 对比 ptr net

       

       

    所以是哪里出了问题 没有正确复现? 还是本来sort这个例子 lstm controller相比直接lstm序列encode就没有提升效果呢?

       

    实验地址

    https://github.com/chenghuige/hasky/tree/master/applications/set2seq

posted @ 2017-07-31 10:54  阁子  阅读(1071)  评论(0编辑  收藏  举报