我正在尝试创建一个具有单字符记忆的 RNN。这是我基于 M-GRU(最小门控循环单元)的模型:
是输入和是RNN的隐藏状态。是状态的更新门。
然后我有向量的第一个和第二个元素具有特殊的意义,是设置或获取记忆的力量。,
这将输入添加到记忆中的强度然后softmaxed
然后候选输出是(如果没有 tanh,它似乎泛化得不太好,但收敛得更好):
然后通过添加强度为 g 的内存来给出实际输出:
然后它通过和进入下一个时间步。
然后我在一些数据“21(22)52(33)5421(44)32112(99)1232(33)132 ...”上进行了尝试,其中除了括号内之外基本上是随机数。然后我尝试给它一个起始字符串“(x”,如果它成功工作它应该输出“x)”,即使它以前从未见过字符“x”。
它几乎可以工作,但并不能很好地融合。这是一个典型的输出:
“(xx)7456725(11)9756x89994x548(33)383351051)(44)9887))1039(11))5407(77)953201(99)x1x85)53)(99))3846”
你知道有没有更好的模型可以做得更好(但比神经图灵机更简单)?