我一直致力于一个与序列相关的项目,以便对时间序列预测进行序列自动编码器。所以,我在编码器和解码器中使用了tf.contrib.rnn.MultiRNNCell
。我很困惑使用哪种策略来规范我的seq2seq模型。我应该在丢失中使用L2正则化还是在multiRNNCell中使用DropOutWrapper(tf.contrib.rnn.DropoutWrapper
)?或者我可以同时使用两种策略...... L2用于权重和偏置(投影层)以及multiRNNCell中的单元之间的DropOutWrapper?
在此先感谢:)
答案 0 :(得分:0)
您可以像通常那样同时使用dropout和L2正则化。它们是非常不同的正规化类型。但是,我要注意的是,最近的文献表明批量标准化已经取代了批量标准化原始论文中提到的辍学需求:
https://arxiv.org/abs/1502.03167
从摘要中说:“它还充当了规范者,在某些情况下消除了对Dropout的需求。”
L2正则化通常在使用batchnorm时应用。没有什么可以阻止你应用所有3种形式的正规化,上面的陈述只表明当batchnorm已经被使用时你可能没有通过应用辍学看到改善。
通常应用L2正则化量的最佳值和丢失保持概率。这些是通过反复试验或超参数搜索算法调整的超参数。