DNN 在 TensorFlow Estimator.DNNClassifier 中意味着什么?

What does DNN mean in a TensorFlow Estimator.DNNClassifier?

我猜 DNNTensorFlow 中使用的意思是“deep neural network”。但我发现这非常令人困惑,因为 "deep" 神经网络的概念似乎在其他地方广泛使用,指的是通常具有多个卷积 and/or 关联层(ReLU、池化、dropout 等)的网络。

相比之下,很多人第一次遇到这个词时(在tfEstimator Quickstart example code)我们发现:

# 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 作为该接近权威来源的替代术语。那么 TensorFlow tf.estimator 上下文中的 DNN 实际上是 MLP 吗? hidden_units 参数的文档表明是这种情况:

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

给我你对 "deep" 神经网络的定义,你就会得到答案。

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

首先你对DNN的定义是bit misleading.

深度神经网络有多种架构。 Inclusive Deep Feedforward Networks 只不过是一个多层 MLP,加上 some techniques to make them attractive.

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

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

因此,将此估计器称为 DNNClassifier

是有道理的

我的建议是阅读 this book here