Cómo corregir el sobreajuste

¡Gracias por A2A! Después de leer también las otras respuestas, diría que las formas de evitar el sobreajuste dependen del tipo de algoritmo de entrenamiento que se use y también del tipo de conjuntos de datos que tenga. Creo que los siguientes deberían ser los puntos importantes a considerar:

(1) Aprendizaje profundo (modelos basados ​​en CNN, RNN, LSTM, etc.): la forma estándar aquí para evitar el sobreajuste es emplear un procedimiento de abandono durante el entrenamiento. Esto normalmente se incorpora de forma predeterminada en todas las definiciones de arquitectura de red que puede obtener en GitHub. Además, uno siempre emplea la regularización L2 sobre los pesos de la red durante el entrenamiento. La regularización L1 normalmente no funciona bien con el aprendizaje profundo, y debería evitarse en su mayoría. El abandono con la regularización de L2 generalmente debería ser suficiente.

Para asegurarse de que su modelo no esté entrenando innecesariamente, puede realizar una verificación simultánea del error de validación y el error de entrenamiento. Si ocurre un escenario en el que el error de entrenamiento disminuye pero el error de validación aumenta, indica un sobreajuste (en esa escala temporal), y usted debe reducir la tasa de aprendizaje en algún buen factor (generalmente 10 veces) para asegurarse de que entrenemos en la forma correcta espacio de la función de error. Empíricamente, los modelos de aprendizaje profundo se entrenan con un descenso de gradiente estocástico basado en el momento, por lo que en caso de que uno ni siquiera verifique la validación y el error de entrenamiento, uno aún no se sobreajusta a largo plazo, debido al procedimiento de abandono establecido.

Ahora, la convergencia de entrenamiento aquí depende del tipo de clases en el conjunto de datos que pretendes discriminar. Al igual que para las CNN, en caso de que las clases se puedan separar fácilmente en el espacio de la imagen (como los objetos), la precisión será alta y la convergencia será lenta, ya que la red verá suficientes oportunidades para separar las clases. Por otro lado, para algunas clases que son de naturaleza abstracta (como atributos faciales, atributos de prendas de vestir, clases de grano fino), su discriminación en el espacio de la imagen no es fácil de obtener y, por lo tanto, puede ver una convergencia más rápida, tal vez razonable precisión, pero menor potencial de generalización. Esto no es exactamente un sobreajuste, pero es una especie de sobreajuste. Aquí, la red está aprendiendo solo unos pocos (o incluso incorrectos) aspectos de discriminación, debido a las limitaciones de las operaciones y la arquitectura subyacentes, y no porque el modelo sea complejo o haya demasiados parámetros.

(2) Clasificadores de margen máximo (SVM): el truco principal para evitar el sobreajuste en SVM es ajustar cuidadosamente el parámetro de regularización C, junto con los parámetros del kernel (en caso de que esté ejecutando un SVM de kernel (no lineal)). El ajuste de los parámetros generalmente se realiza mediante validación cruzada o el conjunto de validación.

En general, el aprendizaje conjunto (como el abandono escolar) y la regularización son las formas estándar de reducir el sobreajuste, pero se debe ver qué algoritmo de entrenamiento suscribe a qué y en qué capacidad. Espero que esto ayude !!

No corrige el sobreajuste, pero lo previene. A continuación se detallan algunas de las cosas que debe hacer para evitar el sobreajuste:

  1. Use métodos de regularización (l1, l2, abandono, etc.)
  2. Mantenga la complejidad de su modelo a un nivel razonable.
  3. Usa más datos. Si corresponde, use el aumento.
  4. Si el algoritmo de entrenamiento es iterativo (como el descenso de gradiente), controle el rendimiento en un conjunto de validación y use la detención temprana cuando este rendimiento comience a caer (o se estabilice).

La regularización puede ayudar en el ML tradicional. Ajuste el parámetro de regularización.

Con una red neuronal, use las funciones de activación y pérdida de ReLu (con fugas)

Podría haber varias cosas que puedes hacer aquí …

  1. Proporcionar más datos
  2. Agregue más funciones y use los criterios AIC y BIC
  3. Use la regularización L1 o L2
  4. Realizar ajuste de funciones
  5. Normalizando sus datos
  6. Muestreo correcto de los datos y muchos más.

Eliminar algunas variables.

La gente usará 2/3 de los datos para generar los ajustes y luego los comparará con el otro tercio de los datos.

More Interesting

¿Mi reproductor de caja de ritmo aprendió qué canción tocar a continuación?

Composición musical algorítmica: idea para una investigación

¿Cuál es el propósito del análisis de regresión?

¿Cómo y dónde podemos comenzar a implementar proyectos basados ​​en el aprendizaje automático y qué idioma es preferible para el mismo?

¿Tiene sentido el uso de bosques aleatorios en los datos financieros si se supone que los rendimientos dependen en serie (es decir, que los rendimientos actuales dependen de los rendimientos pasados)?

Cómo crear la línea de regresión de mínimos cuadrados (error cuadrático medio mínimo) en R

Supongamos que reuní a todos los usuarios de Twitter que escribieron tweets con las palabras "aprendizaje automático" en ellos (durante el último mes, por ejemplo), y luego construí un gráfico de red basado en sus seguidores. Además de las diversas medidas de centralidad, ¿qué otras técnicas podría utilizar para identificar a las mejores personas a seguir? ¿Cómo lo hace Klout?

¿Qué título debo tomar para entrar en la investigación de Deep Learning? (Graduado de CS)

¿Por qué algunas personas confunden las estadísticas con el aprendizaje automático?

¿Cuál es el futuro del aprendizaje de refuerzo profundo? ¿Es una buena idea comenzar un doctorado ahora trabajando en ataques adversos en sistemas RL?

¿Qué tipo de trabajo, como ingeniero de software, me apoyaría más para convertirme en Ingeniero / Investigador de Aprendizaje Automático más adelante en mi carrera?

¿Cuáles son las implicaciones de privacidad del reconocimiento facial DeepFace de Facebook?

¿Cuál es el error de la bolsa en bosques aleatorios? Qué significa eso? ¿Cuál es un valor típico, si lo hay? ¿Por qué sería mayor o menor que un valor típico?

Cómo usar el aprendizaje automático en IoT Hardware Security

¿Cuál es una buena forma de buscar artículos en visión artificial y aprendizaje automático?