【发布时间】:2016-10-18 11:44:20
【问题描述】:
我目前正在使用 Theano 中构建的卷积神经网络。 Dropout 是一种正则化技术,其中节点输出以一定的概率被屏蔽,据我了解,应该在正向和反向传播期间应用掩码。
由于我目前在 Theano 工作,因此反向传播步骤被 T.grad 函数取代,该函数使用自动微分来计算模型的梯度。在我在网上找到的几个例子中,它们只掩盖了正向的值,在梯度计算步骤中根本不考虑 dropout 掩码。这将对网络产生什么样的影响,如果我想在梯度计算中包含掩码,我该怎么做?我现在的代码主要是基于 Lisa Lab 在他们的深度学习教程中提供的代码。
【问题讨论】:
-
通常这样的问题应该包括你的一些代码。我建议看更多的例子。看看“lasagne”……这是一个建立在 theano 之上的框架,具有不错的支持和代码,您可以查看。使用 dropout 时,只会更新处于活动状态的单元。在测试期间,使用所有单位,但输出根据 dropout 比率进行缩放。
-
您在纯 Theano 与 Lasagne 中这样做的任何原因?在 Lasagne 中实现 dropout 是单行的。
-
@user1269942 我拥有的很多代码并不是那么有用,所以我不想发布一些无用的东西。但是谢谢你,我一定会尝试千层面,或者至少对他们如何实施它有很多了解。
标签: python machine-learning theano deep-learning conv-neural-network