Keras - 用于反向传播的输出的情况掩蔽

时间:2016-07-15 03:07:17

标签: backpropagation keras

我想在Keras复制这篇文章https://arxiv.org/pdf/1606.07659v1.pdf。它使用自动编码器作为推荐系统。这个想法是掩盖一些已知的值(评级),以教你的网络预测未知值,同时正确地重建其他值。 因此,您有三种类型的评级:非屏蔽已知值,屏蔽已知值(变为0)和未知值(变为0)。 您的损失函数只需要包含非屏蔽已知值和屏蔽已知值的错误,但如果我理解正确,您还需要屏蔽输出以获得反向传播的未知值,以便不在重量更新中包含它们(和它需要是明智的)。链接(forward and back propagation)中的附加图片来自文章教程,并解释了前向和后向传播的步骤。

您是否知道如何实现此输出的案例明智屏蔽或任何其他方式来处理此问题?

非常感谢!

1 个答案:

答案 0 :(得分:0)

如果两个张量(A,Mask)具有相同的形状或可以广播到相同的形状。然后使用A*Mask实现逐元素屏蔽。

可以通过document中的K.switch()实施案例明智的屏蔽。例如,如果Mask为0,则K.switch(T.equal(Mask, 0), 0, A)返回0,否则返回A元素。