您可以在不使用softmax的情况下在神经网络中使用多个输出层吗?

时间:2012-11-26 20:35:53

标签: classification neural-network

我正在为一个类项目实现神经网络,我只是想知道是否可以在不使用softmax的情况下使用神经网络进行多类分类?当我向TA询问这个时,他说有多个输出层在数学上并不合理,但后来我看到Andrew Ng在他的UFLDL自动编码器教程中包含了一个具有多个输出的神经网络的图片,然后我看到了很多人们谈论神经网络的多类分类,而没有提到softmax。所以我想我想知道的是,在不使用softmax的情况下使用多个输出层是否合适,如果是这样,你将如何做到这一点以及如何解释结果。

UFLDL链接:http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial

3 个答案:

答案 0 :(得分:1)

很晚,但也许有人会发现它很有用:

您不必使用softmax图层。例如,您可以使用多个逻辑回归层或具有多个逻辑回归输出的单个图层。不同之处在于softmax表示类是最可能的,而多个逻辑回归输出可以同时将数据点分配给多个类。

另一种方法是对神经网络输出值(即特征)使用任意分类器(SVM,随机森林,提升)。

我最近忘了将一个softmax图层放在卷积神经网络的顶部,我使用了一个完全连接(内部产品)图层作为输出,也有非常好的结果!

答案 1 :(得分:0)

神经网络也可以有多个输出单元。例如,这里是一个网络,其中有两个隐藏层L2和L3,以及层L4中的两个输出单元:

http://ufldl.stanford.edu/tutorial/images/Network3322.png

您可以在本教程中查看更多详细信息: http://ufldl.stanford.edu/tutorial/supervised/MultiLayerNeuralNetworks/

答案 2 :(得分:-1)

我对深度学习并不十分熟悉。当你说多个图层时,你的意思是多个输出节点吗?

典型的方法是将所有输出节点放在同一层上(除非您正在进行某种递归神经网络)。您可以在输出上使用softmax,但肯定没有必要。 Softmax 可以让学习变得更好。

但是,您可以通过为每个输出神经元分配一个类进行分类,然后根据哪个神经元的激活值最高来进行分类。