10

我猜DNN在意思上使用的TensorFlow意思是“深度神经网络”。但我发现这非常令人困惑,因为“深度”神经网络的概念似乎在其他地方被广泛使用,以表示通常具有多个卷积和/或相关层(ReLU、池化、dropout 等)的网络。

相比之下,很多人会遇到这个术语的第一个实例(在tfEstimator Quickstart 示例代码中)我们发现:

# Build 3 layer DNN with 10, 20, 10 units respectively.
  classifier = tf.estimator.DNNClassifier(feature_columns=feature_columns,
                                          hidden_units=[10, 20, 10],
                                          n_classes=3,
                                          model_dir="/tmp/iris_model")

这听起来很肤浅,甚至更像是老式多层感知器 ( MLP ) 网络。但是,没有提及DNN作为该接近确定来源的替代术语。那么DNNTensorFlowtf.estimator上下文中的 a 实际上是 aMLP吗?有关参数的文档hidden_units表明是这种情况:

  • hidden_​​units:每层隐藏单元数的可迭代。所有层都是完全连接的。前任。[64, 32] 表示第一层有 64 个节点,第二层有 32 个。

上面写满了 MLP。这种理解正确吗?因此是DNN用词不当,如果是这样,DNNClassifier理想情况下应该弃用MLPClassifier吗?还是代表深度神经网络DNN以外的东西?

4

2 回答 2

7

给我你对“深度”神经网络的定义,你就会得到答案。

但是,是的,它只是一个 MLP,正确的命名确实是 MLPclassifier。但这听起来不像现在的名字那么酷。

于 2018-01-25T06:25:41.657 回答
1

首先,您对 DNN 的定义有点误导

深度神经网络有几种架构。包容性深度前馈网络只不过是一个多层 MLP,加上一些使其具有吸引力的技术

一些作品使用“DNNs”来跨越所有深度学习架构,然而,按照惯例,“DNNs”用于指代使用深度前向传播网络的架构,也称为深度前馈网络

深度学习模型最重要的例子是深度网络前馈或多层感知器 (MLP)。MLP 只是一个将一些输入值集映射到输出值的数学函数。该函数由许多更简单的函数组合而成。您可以关联不同数学函数的每个应用程序,以提供输入的新表示。

因此,这个估计器被称为 DNNClassifier 是有道理的

我的建议是在这里阅读这本书

于 2018-05-06T14:42:12.497 回答