Cómo aumentar la precisión utilizando redes neuronales convolucionales (CNN / ConvNets) para la regresión

Formas de mejorar una CNN:

Hay dos posibilidades por las cuales su CNN está funcionando con un rendimiento subóptimo, alta varianza y alto sesgo. Llegaría óptimamente a un punto donde el sesgo y la varianza son igualmente bajos.

Para comprender qué debe hacer para mejorar su red, debe determinar si tiene un alto sesgo o variación. Para hacerlo, mira estos tres números:

  1. Precisión de referencia (nivel humano)
  2. Precisión de entrenamiento
  3. Precisión de prueba

En el caso de una gran variación, la diferencia entre la precisión de su punto de referencia y la precisión del entrenamiento será relativamente pequeña en comparación con la precisión del entrenamiento versus la precisión de la prueba. Esto es cuando su modelo está “sobreajustado” a sus datos de entrenamiento.

Entonces, ¿cómo reduzco la varianza? Puede reducir el sesgo aumentando la precisión de la prueba . Para hacerlo, aquí hay algunas cosas que puedes probar.

  1. Obtén más datos
  2. Pruebe la nueva arquitectura de modelo, pruebe algo mejor.
  3. Disminuya la cantidad de funciones (puede que tenga que hacer esto manualmente)
  4. Introducir regularización como la regularización L2
  5. Haga que su red sea menos profunda (menos capas)
  6. Use menos cantidad de unidades ocultas
  7. Asegúrese de que su conjunto de datos de prueba y capacitación provenga de la misma distribución.

Por otro lado, si su modelo sufre un ajuste insuficiente, debe reducir el sesgo aumentando la precisión del entrenamiento. Para hacerlo:

  1. Entrenar más tiempo
  2. Entrenar un modelo más complejo / profundo
  3. Obtenga más funciones
  4. Disminuye la regularización
  5. Aumento de datos

Aunque estos son cambios relativamente pequeños, pueden hacer una gran diferencia en el rendimiento de su modelo. ¡Buena suerte!

Hay algunas maneras de mejorar este escenario actual, Epochs y Dropout. Una forma alternativa de aumentar la precisión es aumentar su conjunto de datos utilizando metodologías tradicionales de CV como volteo, rotación, desenfoque, recorte, conversiones de color, etc. Otra forma de aumentar la precisión de su entrenamiento es aumentar el tamaño del lote por GPU. Sin embargo, si todavía está plagado de un bajo rendimiento, entonces su conjunto de datos podría carecer de suficientes datos.

Aviso : espero que haya modificado los archivos para que puedan leer las etiquetas numeradas flotantes. En general, los CNN se usan con más frecuencia para tareas de clasificación en lugar de regresión, en cuyo caso, las etiquetas son números enteros y no números flotantes.

Asumiendo que has hecho todo correctamente y aún no has llegado a ninguna parte.

Creo que el desenfoque es algo diferente de las aplicaciones normales como el reconocimiento de objetos y acciones. En aplicaciones generales, los filtros se aprenden para reconocer características de imagen como líneas, formas simples, …, objetos completos, jerárquicamente al aumentar el campo receptivo efectivo.

Su caso es aparentemente diferente de estos, ya que desea que la red prediga la cantidad de desenfoque aplicado. Supongo, pero podría estar equivocado, que necesitarías muy pocas capas (menor o igual a 3). Además, su vector de características de salida (de una capa completamente conectada) se habría obtenido al filtrar a través de una combinación de filtros. Por lo tanto, es posible que desee jugar con el diseño de la red, para aprovechar este hecho.

More Interesting

¿Cuáles son algunos ejemplos de buenos regresores e instrumentos para los modelos de regresión IV?

¿Aprender implementando un buen enfoque, o leyendo y usando marcos como TensorFlow?

¿En qué se diferencia un autoencoder (apilado) de un MLP, aparte de que los autoencoders aprenden funciones de identidad aproximadas?

¿El error de clasificación de las redes neuronales se denomina "tasa de error"?

¿Cuándo veremos una base teórica y una base matemática para el aprendizaje profundo?

¿Cuál es la diferencia entre los métodos de gradiente de políticas y los métodos de actor crítico?

¿Qué lenguaje es mejor usar para el aprendizaje automático (R o Python)?

¿Cómo se ve afectada la propagación hacia atrás en NN recurrentes?

¿El análisis de sentimientos basado en léxico se considera un método no supervisado?

¿Por qué los clasificadores Naive Bayes se consideran relativamente inmunes al sobreajuste?

Cómo justificar el rendimiento de un modelo de aprendizaje profundo personalizado (CNN)

¿Cuáles son los pros y los contras comparativos de usar Python, MATLAB / Octave y R para el análisis de datos y el aprendizaje automático?

¿Qué piensan los expertos en sistemas de recomendación sobre el documento 'Estimación del impacto causal de los sistemas de recomendación a partir de datos de observación'?

¿Puede un autoencoder sobreajustar cuando tiene una cantidad mucho menor de neuronas de capa oculta que la capa de entrada y también se usa la deserción?

¿Debo obtener una MacBook Pro con 16 GB de RAM (máximo) para el trabajo de aprendizaje automático, a pesar de que puedo llevar cosas intensas a una instancia de Google Cloud?