Softmax MLP分类器 - 在隐藏层中使用哪些激活功能?

时间:2018-04-19 12:18:50

标签: machine-learning neural-network classification softmax activation-function

我正在从头开始编写单个多层感知器,只有一个输入,隐藏和输出层。输出层将使用softmax激活函数来产生几个互斥输出的概率。

在我的隐藏层中,使用softmax激活功能对我来说没有意义 - 这是正确的吗?如果是这样,我可以使用任何其他非线性激活函数,如sigmoid或tanh?或者我甚至不能在隐藏层中使用任何激活函数,只是将隐藏节点的值保持为输入节点和输入到隐藏权重的线性组合?

2 个答案:

答案 0 :(得分:1)




在我的隐藏层中,使用softmax激活功能对我来说没有意义 - 这是正确的吗?







确实如此。







如果是这样,我可以使用任何其他非线性激活函数,如sigmoid或tanh?







你可以,但大多数现代方法需要整流线性单元(ReLU)或其中一些变种(Leaky ReLU,ELU等)。







或者我甚至不能在隐藏层中使用任何激活函数,只是将隐藏节点的值保持为输入节点和输入到隐藏权重的线性组合?

&#xA; < / BLOCKQUOTE>&#XA;&#XA;

没有。非线性激活确实可以防止(可能很大的)神经网络像单个线性单元一样运行;它可以显示出来(参见Andrew Ng的相关讲座@ Coursera 为什么需要非线性激活函数?):

&#xA;&#xA;
&#xA;

事实证明,如果你使用&#xA;线性激活函数,或&#xA;或者,如果你没有&#xA;激活功能,那么无论如何&#xA;你的神经网络有很多层,&#xA;一直在做的只是计算线性&#xA;激活功能,所以你不妨和#xA;没有任何隐藏层。

&#xA; &#XA;

在&#XA;带回家的是一个线性隐藏层&#xA;或多或少没用,因为&#xA;两个线性函数的组成是&#xA;本身就是线性函数;所以除非你&#xA;然后在那里抛出一个非线性&#xA;你没有计算更有趣&#xA;即使你更深入地了解&#xA;网络。

&#xA;
&#xA;&#xA;

实际上,唯一可以使用线性激活功能的地方是 regression 问题(在上面的讲座中也有解释)。

&#xA;

答案 1 :(得分:0)

您可以使用任何激活功能。只需测试一下,然后选择能产生最佳效果的产品。不要忘记尝试Relu。据我所知,最简单的实际效果非常好。