Estoy usando dos perceptrones de múltiples capas de avance de 3 capas (MLP). Con los mismos datos de entrada (14 neuronas de entrada), hago una clasificación (verdadero / falso) y una regresión (si es verdadera, "cuánto") ¹. Hasta ahora, he usado perezosamente Patternnet y Fitnet de Matlabs , respectivamente. Perezosamente, porque no me he tomado el tiempo para comprender realmente lo que está sucediendo, y debería hacerlo. Además, necesito hacer la transición a una biblioteca OSS (probablemente FANN), que probablemente requerirá más configuración manual que la caja de herramientas Matlab NN. Por lo tanto, estoy tratando de entender con mayor precisión lo que está sucediendo.
Las redes creadas por patternnet
y fitnet
son casi idénticas: 14 neuronas de entrada, 11 neuronas ocultas, 1 neurona objetivo (2 para el fitnet
, pero solo 1 pieza de información). Pero, no son completamente idénticos. Las diferencias por defecto son:
- Matlab utiliza una retropropagación de gradiente conjugado escalado para la red de clasificación (
patternnet
) y la retropropagación de Levenberg-Marquardt para la red de regresión (fitnet
). - La red de clasificación utiliza una función de transferencia sigmoidea tangente hiperbólica entre la capa de entrada y la capa oculta, y entre la capa oculta y la de salida. La red de regresión (
fitnet
) utiliza la función de transferencia sigmoidea tangente hiperbólica entre la capa de entrada y la oculta, y una función de transferencia puramente lineal entre la capa oculta y la de salida.
¿Deberían ser esas diferencias?
¿Qué tipo de funciones de retropropagación son óptimas para la clasificación, y qué tipo de regresión, y por qué?
¿Qué tipo de funciones de transferencia son óptimas para la clasificación, y qué tipo de regresión, y por qué?
Classification La clasificación es para "nublado" o "sin nubes" (2 objetivos complementarios), la regresión es para cuantificar "cuánta nube" (1 objetivo).