我是深度学习的新手,(尤其是deeplearning4j),我正在尝试这些例子。特别是,我想知道以下CSV示例中使用了哪种类型的神经网络。这是一个深度学习神经网络还是只是“常规神经网络”。我确实理解正常神经网络和deeplearning神经网络之间的区别在于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);
答案 0 :(得分:2)
这确实是一个带有一个隐藏层的常规前馈神经网络。 (如果我正确地阅读了代码)
关于某些东西是否深层的主要问题是隐藏层的数量。 0-1隐藏层永远不会被认为是深层次的。 2通常不是。 通常是3+。
是否使用了特殊的深度学习方法(例如ConvNet,DBN Pretraining或ReLU)并没有改变网络的深度,但可能有助于获得更好的结果。
顺便说一句,有时候其他与获得良好表现有关的事情也会深入学习,例如为什么Skip-gram来自word2vec。即使它们非常浅薄。