我应该使用相同的权重来计算双向RNN中的正向和反向传递,还是应该独立学习这些权重?
答案 0 :(得分:1)
应该独立。请参阅expected_hidden_size
might be not yet supported。
答案 1 :(得分:1)
除非您有palindromes,否则他们应该独立学习,因为他们学习不同的模式。实际上,这是Keras的Bidirectional包装器中的默认设置:
self.forward_layer = copy.copy(layer)
config = layer.get_config()
config['go_backwards'] = not config['go_backwards']
self.backward_layer = layer.__class__.from_config(config)
在上面的source code中,相反的方向是副本,其权重与原始方向无关。
答案 2 :(得分:1)
就个人而言,我没有见过经常使用相同的权重集来进行正向和反向传递,而我发现直观地使用相同的权重集可用于正向和反向传递计数器。
因为双向RNN的想法是每个输入都有两个隐藏状态,从而给出有关当前输入之前(或应该)以及当前输入之后(或应该)的信息。如果您使用相同的共享权重集,那么输入就不能有两种不同的状态。