0

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

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

4

1 回答 1

2

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

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

是否使用特殊的深度学习方法(例如 ConvNet、DBN 预训练或 ReLU)不会改变网络是否深度,但可能有助于获得更好的结果。

顺便说一句,有时与获得良好表示相关的其他事情与深度学习捆绑在一起,例如,为什么是 word2vec 中的 Skip-gram。尽管它们非常浅。

于 2017-01-27T16:07:50.823 回答