我是深度学习的新手(特别是deeplearning4j),并且正在尝试这些示例。特别是,我想知道在下面的CSV示例中使用了哪种类型的神经网络。这是一个深度学习神经网络,还是仅仅是“常规神经网络”。我确实理解普通神经网络和深度学习神经网络的不同之处在于,DL算法处理“消失梯度”问题,而普通神经网络不能。我的感觉是以下是常规神经网络,但我想确认一下。
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder()
.seed(seed)
.iterations(iterations)
.activation(Activation.TANH)
.weightInit(WeightInit.XAVIER)
.learningRate(0.1)
.regularization(true).l2(1e-4)
.list()
.layer(0, new DenseLayer.Builder().nIn(numInputs).nOut(3)
.build())
.layer(1, new DenseLayer.Builder().nIn(3).nOut(3)
.build())
.layer(2, new OutputLayer.Builder(LossFunctions.LossFunction.NEGATIVELOGLIKELIHOOD)
.activation(Activation.SOFTMAX)
.nIn(3).nOut(outputNum).build())
.backprop(true).pretrain(false)
.build();
//run the model
MultiLayerNetwork model = new MultiLayerNetwork(conf);
model.init();
model.setListeners(new ScoreIterationListener(100));model.fit(trainingData);
发布于 2017-01-28 00:07:51
这确实是一个具有一个隐藏层的常规前馈神经网络。(如果我没看错代码的话)
对于某些东西是否很深,主要考虑的是隐藏层的数量。0-1隐藏层永远不会被认为是深的。2通常不是。3+通常是。
无论是否使用特殊的深度学习方法(例如ConvNet、DBN预训练或ReLU),网络深度与否都不会改变,但可能有助于获得更好的结果。
顺便说一句,有时其他与获得良好表示有关的事情都与深度学习捆绑在一起,例如为什么跳过word2vec。即使它们非常浅。
https://stackoverflow.com/questions/41898017
复制相似问题