1

나는 수업 프로젝트를 위해 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) 

그러나, 나는 fc_2num_hidden에 대해 질문이 있습니다 : 여기

는 아키텍처에 대한 튜토리얼의 코드입니다. 이 자습서에서는 40 개의 클래스가 있었기 때문에이 수가 40이었습니다.

예를 들어, 이미지에 위협이 있는지 여부를 판단하고 있습니다. 내 num_hidden 마지막 완전히 연결 레이어 2 (위협 존재 또는 전혀 위협) 또는 위협의 존재가 있다는 것을 1 (확률겠습니까? 내가 어떤 도움을 너무 많이?

감사를 지나친입니다.

+0

이것은 대단히 주관적 일 수 있으며 개인적인 의견으로 생각할 수 있습니다 –

답변

1

예, 이진 문제를 분류하는 경우 fc2 계층의 뉴런 수는 40 대신 2가되어야합니다.

+0

감사합니다! 따라서 출력 노드는 숨겨진 레이어가 아닙니다. # num_hidden이 의미하는 바는 분명하지 않지만 어쩌면 개발자를위한 질문 일 수 있습니다 (문서가 모호합니다). 둘째, 실행했을 때도 내 모델이 두 클래스를 0과 1로 예측하는 이유는 무엇입니까? 40 num_hidden? – Lee