我正在使用 Kaggle 网站上的乘客筛选挑战来进行课程项目。
我已经在本教程中实现了一个开箱即用的卷积神经网络: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)
但是,我对num_hidden
上的fc_2
有疑问。在本教程中,这个数字是40,因为有40个类。
在我的例子中,我正在确定图像上是否存在威胁。我的num_hidden
在最后一个完全连接的层中是2(威胁存在或没有威胁)还是1(存在威胁的可能性?我是否过度思考?
非常感谢您的帮助。
答案 0 :(得分:1)
是的,如果你要对二进制问题进行分类,那么fc2层中的神经元数量应该是2而不是40。