Orders matters: seq2seq for set 实验

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

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

 
 

Orders matters: seq2seq for set 实验

 
 

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

 
 

Orders matters: seq2seq for set 实验

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 optimizer,learning 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

    Orders matters: seq2seq for set 实验

     
     

     
     

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

     
     

    实验地址

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

上一篇:安卓开发_浅谈SubMenu(子菜单)


下一篇:Dubbo 通过Spring 配置具体启动服务