¿Cómo realizar el modelado de redes neuronales de manera efectiva?

13

¿Cuál debería ser la razón entre el número de observaciones y el número de variables? ¿Cómo detectar el sobreajuste en el modelo de red neuronal y cuáles son las formas de evitar el sobreajuste? Si quiero realizar una clasificación con Neural Network, ¿deberían las clases tener la misma frecuencia? Por favor, ayúdame.

asad.taj
fuente
1
¿Realmente necesitas NN? Este método se considera obsoleto (en parte porque generalmente es muy difícil responder a sus preguntas).
1
@mbq: tal vez esta debería ser una pregunta separada, pero ¿podría ampliar su afirmación de que las redes neuronales se consideran obsoletas? (¿y por quién?)
nada101
1
@ naught101 Este es un comentario de 2010 ... Hoy lamentablemente tenemos un renacimiento de esta locura, así que tendremos que esperar unos años para que las NN vuelvan a estar obsoletas (;
1
@mbq: eso no responde mi pregunta. Pero quizás esto sí: stackoverflow.com/questions/683124/neural-networks-obsolete
naught101

Respuestas:

25

El consejo que daría es el siguiente:

  1. Agote las posibilidades de los modelos lineales (por ejemplo, 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.

  2. Investigue los métodos del núcleo (por ejemplo, Máquinas de vectores de soporte (SVM), regresión logística del núcleo), primero los modelos de proceso gaussianos. En ambos casos, el sobreajuste se controla efectivamente ajustando un pequeño número de hiperparámetros. Para los métodos del núcleo, esto a menudo se realiza mediante validación cruzada, para los modelos de proceso gaussianos se realiza maximizando la probabilidad marginal (también conocida como la "evidencia" bayesiana para el modelo). He descubierto que es mucho más fácil obtener un modelo razonable utilizando estos métodos que con las redes neuronales, ya que los medios para evitar el sobreajuste son mucho más directos.

  3. Si realmente desea 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).

  4. Si usa un MLP, entonces use la regularización. Si lo hace, será menos sensible a las elecciones sobre arquitectura, como la optimización del número de unidades ocultas. En cambio, todo lo que tiene 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 usa la regularización, entonces el número de observaciones y el número de variables se convierte en un problema mucho menor.

Para detectar un ajuste excesivo, simplemente realice una validación cruzada para probar el rendimiento de generalización.

En cuanto a las clases que tienen frecuencias iguales, lo que debe recordar es que si 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 subestima la clase minoritaria. Si usa un clasificador probabilístico como la regresión logística o una red neuronal, siempre puede corregir las probabilidades estimadas para tener en cuenta eso después del entrenamiento. Si su conjunto de datos está muy desequilibrado, recomendaría la 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, normalmente los errores falsos negativos y falsos positivos tienen costos diferentes (por ejemplo, en las pruebas de detección médicas, un falso negativo es mucho peor que un falso positivo). A menudo, todo lo que necesita hacer es incluir los costos de clasificación errónea en la función de error utilizada para capacitar a la red.

Si usted es un usuario de MATLAB (como yo), le recomiendo 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 el libro "Redes neuronales para el reconocimiento de patrones" de Chris Bishop para cualquier persona que se inicie en redes neuronales. Es un libro brillante, y cubre el material con gran claridad y el nivel mínimo de matemáticas requerido para comprender realmente lo que está haciendo, y la mayor parte se implementa en el software NETLAB (que también puede ejecutarse en Octave).

HTH

PD: La mejor forma de modelar con una red neuronal es usar un enfoque bayesiano basado en el híbrido Monte Carlo (HMC), desarrollado por Radford Neal. En general, los problemas comienzan en el modelado cuando intenta optimizar algunos parámetros y termina ajustando demasiado. La mejor solución es nunca optimizar nada y marginar (integrar) sobre los parámetros. Lamentablemente, esta integración no se puede realizar analíticamente, por lo que debe utilizar enfoques basados ​​en muestreo. Sin embargo, esto es (a) computacionalmente costoso y (b) un poco de "arte negro" y requiere una profunda comprensión y experiencia.

Dikran Marsupial
fuente