问题标签 [dropout]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
neural-network - CNN 中的 ReLu 和 Dropout
我正在研究卷积神经网络。我对 CNN 中的某些层感到困惑。
关于ReLu...我只知道它是无限逻辑函数的总和,但是ReLu没有连接到任何上层。为什么我们需要 ReLu,它是如何工作的?
关于辍学......辍学是如何工作的?我听了 G. Hinton 的视频演讲。他说有一种策略,在训练权重时随机忽略一半节点,在预测时将权重减半。他说它的灵感来自随机森林,其工作原理与计算这些随机训练模型的几何平均值完全相同。
这个策略和dropout一样吗?
有人可以帮我解决这个问题吗?
machine-learning - 使用 dropout 时停止程序?
我目前正在实现一个利用 dropout 的神经网络。出现的一个问题是何时停止训练。
通常我会使用提前停止来确定这一点,但在原始dropout 论文中指出“dropout 允许训练更大的网络并消除提前停止的需要”。
如果他们不申请提前停止,他们使用什么停止程序?
python - 扫描中的辍学——Theano
我正在实现一个指针网络的变体,我想在编码/解码步骤中将 dropout 应用于隐藏状态。
这是我的辍学功能:
我选择在RandomStreams
每个函数调用时初始化一个实例,因为这似乎是 keras 所做的......
这是函数扫描调用:
这是扫描的调用:
请注意我是如何提供对 theano 函数的更新的,正如人们所说的那样,可以解决类似的问题。
最后,这是错误:
一种想法是,当你给它一个符号形状时,用于扫描的函数中使用的二项式生成器会导致错误。这篇文章中已经提到了这一点。
我需要做一些小的改动,还是必须完全修改我使用 dropout 的方式?
编辑 更完整的代码版本:
在此函数中调用扫描:
并调用该函数ptr_network
:
neural-network - 在神经网络中在哪里添加 dropout?
我在神经网络的不同部分看到了关于 dropout 的描述:
权重矩阵中的 dropout,
在矩阵乘法之后和 relu 之前隐藏层中的 dropout,
relu后隐藏层dropout,
并且在softmax函数之前的输出分数中丢失
我对应该在哪里执行 dropout 有点困惑。有人可以帮忙详细说明一下吗?谢谢!
matlab - 带 Dropout 的神经网络
我正在尝试使用神经网络进行分类,数据集由 7 个参数和超过 30 万个样本组成。通过使用 dropout,我想看看 dropout 对我的网络有什么影响。我使用的是 Matlab。但是,matlab 没有关于 dropout 的完整文档。我发现了一些关于 dropout 的论文,但其中大部分都是针对图像的深度神经网络,并且方法非常复杂。我曾尝试通过 matlab 使用 nnstart,但是我不确定我是否可以通过这种方式添加 dropout。有没有什么方法可以使用 matlab 的 dropout 进行简单的神经网络?
如果您可以分享一些信息或可能与我的问题相关的 matlab 代码,那就太好了。
tensorflow - 张量流中的自定义辍学
我正在用一些数据训练 DNN 模型,并希望分析学习到的权重以了解我正在研究的真实系统(生物学中的信号级联)。我想有人可以说我正在使用人工神经网络来了解生物神经网络。
对于我的每个训练示例,我删除了一个基因,该基因负责在顶层发出信号。
当我将此信号级联建模为 NN 并删除第一个隐藏层中的一个节点时,我意识到我正在做一个真实版本的 dropout。
因此,我想使用 dropout 来训练我的模型,但是我在网上看到的 dropout 的实现似乎随机丢弃了一个节点。我需要一种方法来为每个训练示例指定要退出的节点。
关于如何实现这一点的任何建议?我对任何软件包都持开放态度,但现在我已经完成的一切都在 Tensorflow 中,所以我很感激使用该框架的解决方案。
对于那些喜欢详细说明的人:
我有 10 个输入变量,它们完全连接到第一层的 32 个 relu 节点,它们完全连接到第二层(relu),它完全连接到输出(线性,因为我正在做回归)。
除了 10 个输入变量之外,我还碰巧知道 28 个节点中应该删除哪个节点。
有没有办法在训练时指定这个?
这是我目前使用的代码:
neural-network - 在 CNTK 中正确应用 dropout
我正在使用 Python API 在三个隐藏层前馈网络中按如下方式应用 dropout。我的结果不是很好,我想知道我是否误用了 dropout 层——将它应用到密集层的输入还是在内部应用到第一个线性层的输出更好?
tensorflow - model.fit 中的 dropout 和 data.split
众所周知,dropout 是一种帮助控制过拟合的机制。在 Keras 的训练过程中,我们可以通过监控验证损失进行在线交叉验证,并设置数据拆分为model.fit
.
一般来说,我需要同时使用这两种机制吗?或者如果我设置数据拆分model.fit
,那么我不需要使用 dropout。
tensorflow - TensorFlow LSTM Dropout 实现
- 调用 tf.nn.rnn_cell.DropoutWrapper() 时,tensorflow如何具体应用dropout ?
我读到的所有关于将 dropout 应用到 rnn 的参考文献Zaremba 等人的这篇论文。al说不要在循环连接之间应用 dropout。神经元应该在 LSTM 层之前或之后随机退出,而不是 LSTM 层间。好的。
- 我的问题是神经元是如何随时间关闭的?
在每个人引用的论文中,似乎在每个时间步都应用了一个随机的“dropout mask”,而不是生成一个随机的“dropout mask”并重新使用它,将其应用于给定层中的所有时间步被丢弃。然后在下一批中生成一个新的“dropout mask”。
此外,也许目前更重要的是,tensorflow 是如何做到的?我检查了 tensorflow api 并尝试四处寻找详细的解释,但还没有找到。
- 有没有办法深入了解实际的 tensorflow 源代码?