Estoy estudiando e intentando implementar redes neuronales convolucionales, pero supongo que esta pregunta se aplica a los perceptrones multicapa en general.
Las neuronas de salida en mi red representan la activación de cada clase: la neurona más activa corresponde a la clase predicha para una entrada dada. Para considerar un costo de entropía cruzada para el entrenamiento, estoy agregando una capa softmax al final de la red, para que el valor de activación de cada neurona se interprete como un valor de probabilidad.
Mi pregunta es: ¿deberían las neuronas en la capa de salida aplicar una función no lineal a la entrada? Mi intuición es que no es necesario:
- si la entrada a la neurona de salida -ésima es el producto entre un vector (procedente de la capa anterior) y los pesos para esa neurona,x T θ i x θ i
- y si empleo una función monotónica no lineal como el sigmoide o el ReLU
- entonces la salida de activación más grande seguirá correspondiendo a la , por lo que desde este punto de vista la función no lineal no cambiaría la predicción.
¿Hay algo malo con esta interpretación? ¿Hay algunos factores de entrenamiento que estoy pasando por alto que hacen que la no linealidad de salida sea necesaria?
Y si estoy en lo cierto, ¿cambiaría algo si en lugar de usar la función sigmoideo uso la función ReLU , que no es estrictamente monótona?
EDITAR
Con referencia a la respuesta de Karel, cuya respuesta fue básicamente "depende", aquí hay una descripción más detallada de mi red y dudas:
Supongamos que tengo N capas ocultas, y mi capa de salida es solo una capa softmax sobre un conjunto de neuronas que representan clases (por lo que mi salida esperada es la probabilidad de que los datos de entrada pertenezcan a cada clase). Suponiendo que las primeras capas N-1 tienen neuronas no lineales, ¿cuál es la diferencia entre usar neuronas lineales y no lineales en la enésima capa oculta?