Estou estudando e tentando implementar redes neurais convolucionais, mas suponho que essa pergunta se aplique aos perceptrons multicamadas em geral.
Os neurônios de saída em minha rede representam a ativação de cada classe: o neurônio mais ativo corresponde à classe prevista para uma determinada entrada. Para considerar um custo de entropia cruzada para o treinamento, estou adicionando uma camada softmax no final da rede, para que o valor de ativação de cada neurônio seja interpretado como um valor de probabilidade.
Minha pergunta é: os neurônios da camada de saída devem aplicar uma função não linear à entrada? Minha intuição é que não é necessário:
- se a entrada para o -ésimo neurônio de saída for o produto escalar x T θ i entre um vetor x (proveniente da camada anterior) e os pesos θ i para esse neurônio,
- e se eu empregar uma função não linear monotônica como o sigmóide ou o ReLU
- então a saída de ativação maior ainda corresponderá ao maior , portanto, deste ponto de vista, a função não linear não mudaria a previsão.
Há algo de errado com essa interpretação? Existem alguns fatores de treinamento que estou ignorando que tornam a não linearidade da saída necessária?
E se eu estiver certo, algo mudaria se, em vez de usar a função sigmóide, eu usasse a função ReLU , que não é estritamente monotônica?
EDITAR
Com referência à resposta de Karel, cuja resposta foi basicamente "depende", aqui está uma descrição mais detalhada da minha rede e dúvida:
Suponha que eu tenha N camadas ocultas e minha camada de saída seja apenas uma camada softmax sobre um conjunto de neurônios que representam classes (portanto, minha saída esperada é a probabilidade de os dados de entrada pertencerem a cada classe). Supondo que as primeiras camadas N-1 tenham neurônios não-lineares, qual é a diferença entre o uso de neurônios não-lineares e lineares na N-ésima camada oculta?