Keras 中密集层和激活层的区别

Difference between Dense and Activation layer in Keras

我想知道 Keras 中的激活层和密集层有什么区别。

由于激活层似乎是一个全连接层,而密集层有一个参数来传递一个激活函数,最佳做法是什么?

让我们想象一个像这样的虚构网络: 输入 -> 密集 -> 丢弃 -> 最后一层 最后一层应该是:Dense(activation=softmax) 还是 Activation(softmax)? 什么最干净,为什么?

谢谢大家!

使用 Dense(activation=softmax) 在计算上等同于先添加 Dense 然后添加 Activation(softmax)。然而,第二种方法有一个优点——您可以从这种定义的模型中检索最后一层(激活前)的输出。在第一种方法中 - 这是不可能的。

正如@MarcinMożejko 所说,它是等价的。我只想解释为什么。如果你查看 Dense Keras documentation page,你会看到默认的激活函数是 None.

致密层在数学上是:

a = g(W.T*a_prev+b)

其中 g 激活函数。当使用 Dense(units=k, activation=softmax) 时,它一次计算所有数量。在执行 Dense(units=k) 然后执行 Activation('softmax) 时,它首先计算数量 W.T*a_prev+b(因为默认激活函数是 None),然后将指定为输入的激活函数应用到Activation层到计算数量。