【问题标题】:How many output nodes should my Convolutional Neural Network have?我的卷积神经网络应该有多少个输出节点?
【发布时间】:2018-05-17 23:12:57
【问题描述】:

我正在使用 Kaggle 网站上的 Passenger Screening Challenge 进行课程项目。

我已经从本教程中实现了一个开箱即用的卷积神经网络https://www.r-bloggers.com/image-recognition-tutorial-in-r-using-deep-convolutional-neural-networks-mxnet-package/

这是架构教程中的代码:

# 1st convolutional layer
conv_1 <- mx.symbol.Convolution(data = data, kernel = c(5, 5), num_filter = 20)
tanh_1 <- mx.symbol.Activation(data = conv_1, act_type = "tanh")
pool_1 <- mx.symbol.Pooling(data = tanh_1, pool_type = "max", kernel = c(2, 2), stride = c(2, 2))
# 2nd convolutional layer
conv_2 <- mx.symbol.Convolution(data = pool_1, kernel = c(5, 5), num_filter = 50)
tanh_2 <- mx.symbol.Activation(data = conv_2, act_type = "tanh")
pool_2 <- mx.symbol.Pooling(data=tanh_2, pool_type = "max", kernel = c(2, 2), stride = c(2, 2))
# 1st fully connected layer
flatten <- mx.symbol.Flatten(data = pool_2)
fc_1 <- mx.symbol.FullyConnected(data = flatten, num_hidden = 500)
tanh_3 <- mx.symbol.Activation(data = fc_1, act_type = "tanh")
# 2nd fully connected layer
fc_2 <- mx.symbol.FullyConnected(data = tanh_3, num_hidden = 40)
# Output. Softmax output since we'd like to get some probabilities.
NN_model <- mx.symbol.SoftmaxOutput(data = fc_2)

但是,我对fc_2 上的num_hidden 有疑问。在教程中,这个数字是 40,因为有 40 个类。

在我的示例中,我正在确定图像上是否存在威胁。我在最后一个全连接层中的num_hidden 会是 2(存在威胁或没有威胁)还是 1(存在威胁的概率?我是不是想多了?

【问题讨论】:

  • 我认为这可能是非常主观的,并且取决于个人意见

标签: neural-network conv-neural-network convolution mxnet softmax


【解决方案1】:

是的,如果你对二元问题进行分类,那么 fc2 层中的神经元数量应该是 2 而不是 40。

【讨论】:

  • 谢谢!那么,这些是输出节点,而不是隐藏层?不清楚 num_hidden 是什么意思,也许这是开发人员的问题(文档含糊不清)。其次,为什么我的模型在我用 40 num_hidden 运行时仍然将这两个类预测为 0 和 1?
猜你喜欢
  • 2020-08-16
  • 1970-01-01
  • 2018-08-03
  • 2016-04-10
  • 2018-04-06
  • 1970-01-01
  • 1970-01-01
  • 2018-01-24
  • 2017-01-01
相关资源
最近更新 更多