这是什么类型的神经网络?

时间:2017-01-27 15:56:21

标签: deep-learning deeplearning4j

我是深度学习的新手,(尤其是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);

代码 - https://github.com/deeplearning4j/dl4j-examples/blob/master/dl4j-examples/src/main/java/org/deeplearning4j/examples/dataExamples/CSVExample.java

1 个答案:

答案 0 :(得分:2)

这确实是一个带有一个隐藏层的常规前馈神经网络。 (如果我正确地阅读了代码)

关于某些东西是否深层的主要问题是隐藏层的数量。 0-1隐藏层永远不会被认为是深层次的。 2通常不是。 通常是3+。

是否使用了特殊的深度学习方法(例如ConvNet,DBN Pretraining或ReLU)并没有改变网络的深度,但可能有助于获得更好的结果。

顺便说一句,有时候其他与获得良好表现有关的事情也会深入学习,例如为什么Skip-gram来自word2vec。即使它们非常浅薄。