具有辍学的神经网络

时间:2016-11-29 08:38:52

标签: matlab neural-network classification dropout

我正在尝试使用神经网络进行分类,数据集由7个参数和超过300k个样本组成。通过使用dropout,我想看看dropout对我的网络有什么影响。我正在使用Matlab。但是,matlab没有完整的dropout文档。我发现了一些关于辍学的论文,但大多数都是针对图像的深度神经网络,并且有一个非常复杂的方法。  我试着通过matlab使用nnstart,但是我不确定我是否可以通过这种方式添加dropout。 有没有办法使用matlab的dropout用于简单的神经网络?

如果您可以分享一些与我的问题相关的信息或可能的matlab代码,那将会很棒。

2 个答案:

答案 0 :(得分:0)

您需要提供300K样本的验证集。然后在其他样本上训练和测试网络并评估保持的验证集上的性能。为您的辍学和非辍学网络做这件事。

答案 1 :(得分:0)

使用辍学对象的想法是防止过度拟合。如果将dropout设置为0.1,则对于每个时期内的每次迭代,该层中的每个节点都有10%的概率被从神经网络中删除。这实质上迫使网络学习更深,更重要的关系,而不是学习导致过度拟合的琐碎关系。

一个好方法是通过想象一个基于神经网络的二进制分类器来想象这,该分类器预测图像是否是猫。如果我们在训练时没有掉落的情况下使用橙色猫的图像,则模型检测黑色猫的图像是否实际上是猫的能力可能会很低。但是,当您添加辍学对象时,它可能会开始理解猫的特征而不是橙色猫的特征,因为将激活的节点(更重要)会更少(且更重要),而节点可能更重要。

尽管我以前没有使用过Matlab,但您可以在matlab中创建一个遵循以下伪代码的自定义函数:

Project B
相关问题