¿Cuál debe ser la relación entre el número de observaciones y el número de variables? ¿Cómo se detecta el sobreajuste en el modelo de red neuronal y cuáles son las formas de evitarlo? Si quiero realizar una clasificación con una red neuronal, ¿las clases deben tener la misma frecuencia? Por favor, ayúdenme.
Respuesta
¿Demasiados anuncios?El consejo que yo daría es el siguiente:
-
Agote las posibilidades de los modelos lineales (por ejemplo, la regresión logística) antes de pasar a las redes neuronales, especialmente si tiene muchas características y no demasiadas observaciones. Para muchos problemas, una red neuronal no supera a los clasificadores lineales simples, y la única forma de averiguar si su problema está en esta categoría es probarlo y ver.
-
Investigue primero los métodos de núcleo (por ejemplo, las máquinas de vectores de apoyo (SVM), la regresión logística de núcleo) y los modelos de procesos gaussianos. En ambos casos, el sobreajuste se controla eficazmente ajustando un pequeño número de hiperparámetros. En el caso de los métodos kernel, esto suele realizarse mediante validación cruzada, mientras que en el caso de los modelos de procesos gaussianos se realiza maximizando la probabilidad marginal (también conocida como la "evidencia" bayesiana del modelo). He comprobado que es mucho más fácil conseguir un modelo razonable con estos métodos que con las redes neuronales, ya que los medios para evitar el sobreajuste son mucho más sencillos.
-
Si realmente quiere utilizar una red neuronal, comience con una red de función de base radial (regularizada), en lugar de una red de tipo Perceptrón Multicapa (MLP).
-
Si utilizas un MLP, utiliza la regularización. Si lo haces, será menos sensible a las decisiones sobre la arquitectura, como la optimización del número de unidades ocultas. En cambio, todo lo que tienes que hacer es elegir un buen valor para el parámetro de regularización. El "marco de evidencia" bayesiano de MacKay proporciona un buen método para establecer el parámetro de regularización. Si se utiliza la regularización, el número de observaciones y el número de variables se convierte en un problema mucho menor.
Para detectar el sobreajuste, basta con realizar una validación cruzada para comprobar el rendimiento de la generalización.
En cuanto a las clases con frecuencias iguales, hay que recordar que si se entrena un modelo con un conjunto de entrenamiento equilibrado, pero las clases no están equilibradas en los datos operativos, es muy probable que el modelo no prediga la clase minoritaria. Si se utiliza un clasificador probabilístico, como la regresión logística o una red neuronal, siempre se pueden corregir las probabilidades estimadas para tener en cuenta este hecho después del entrenamiento. Si su conjunto de datos está muy desequilibrado, recomendaría una ponderación diferencial de los patrones de las clases positivas y negativas, con los factores de ponderación seleccionados por validación cruzada.
Sin embargo, cuando las clases están muy desequilibradas, lo normal es que los errores falsos negativos y falsos positivos tengan costes diferentes (por ejemplo, en las pruebas de detección médica, un falso negativo es mucho peor que un falso positivo). Por lo tanto, lo único que hay que hacer es incluir los costes de clasificación errónea en la función de error utilizada para entrenar la red.
Si eres un usuario de MATLAB (como yo) puedo recomendar encarecidamente el software NETLAB (Ian Nabney y Chris Bishop) o el software que acompaña al libro Gaussian Process for Machine Learning de Rasmussen y Williams. También puedo recomendar encarecidamente el libro "Neural networks for pattern recognition" de Chris Bishop para cualquiera que se inicie en las redes neuronales. Es un libro brillante, y cubre el material con gran claridad y el nivel mínimo de matemáticas necesario para entender realmente lo que se está haciendo, y la mayor parte se implementa en el software NETLAB (que también puede funcionar con Octave).
HTH
P.D. La mejor forma de modelar con una red neuronal es probablemente utilizar un enfoque bayesiano basado en el Monte Carlo Híbrido (HMC), como el desarrollado por Radford Neal. En general, los problemas comienzan en la modelización cuando se intenta optimizar algunos parámetros y se acaba ajustando en exceso. La mejor solución es no optimizar nunca nada y marginar (integrar) los parámetros. Lamentablemente, esta integración no puede realizarse de forma analítica, por lo que es necesario utilizar enfoques basados en el muestreo. Sin embargo, esto es (a) costoso desde el punto de vista informático y (b) un poco de "arte negro" y requiere un profundo conocimiento y experiencia.