¿Cuáles son algunas formas de preprocesar imágenes antes de aplicar redes neuronales convolucionales para la tarea de clasificación de imágenes?

Para elaborar sobre la respuesta de Khanis Rok en la que se mencionan correctamente las dos técnicas principales de preprocesamiento: normalización y aumento. Me enfocaré más en la normalización. Pienso en el aumento como una forma de reducir el sobreajuste y expandir su conjunto de datos. A menudo, una solución muy simple y accesible.

La clave para tener en cuenta es que el preprocesamiento excluye la extracción de características. Por lo general, queremos que las redes convolucionales aprendan esto último implícitamente.

¿Por qué necesitamos preprocesar nuestros píxeles?

Los valores de píxel a menudo se encuentran en el rango [0, 255]. Introducir estos valores directamente en una red puede provocar desbordamientos numéricos. También resulta que algunas opciones de activación y funciones objetivas no son compatibles con todo tipo de entrada. La combinación incorrecta da como resultado una red que hace un mal trabajo en el aprendizaje.

Imagine usar funciones de activación sigmoide en su red. Multiplicar sus pesos con valores de píxeles de grandes magnitudes obligará a la neurona a saturarse. “Pero sus pesos eventualmente se actualizarán a valores realmente pequeños para contrarrestar el efecto de la entrada grande”. Desafortunadamente, esto no sucederá, porque los gradientes para las activaciones saturadas serán demasiado pequeños para que ocurra una actualización significativa. Tus pesos terminarán atascados.

Técnicas de preprocesamiento:

  1. resta media de la imagen : funciona bien si sus distribuciones de color o intensidad no son consistentes en toda la imagen (por ejemplo, solo objetos centrados)
  2. normalización por canal (restar media, dividir por desviación estándar), bastante estándar, útil para entradas de tamaño variable donde no se puede usar 1.
  3. resta media por canal : buena para entradas de tamaño variable en las que no puede usar 1 y no desea hacer demasiadas suposiciones sobre la distribución.
  4. blanqueamiento (convierta la distribución en una distribución normal, a veces tan fácil como la normalización, pero solo si ya está distribuida normalmente). Quizás otros puedan influir en los casos en que el blanqueamiento no es una buena idea.
  5. Reducción de la dimensionalidad (por ejemplo, análisis de componentes principales). Básicamente, está transformando sus datos en un espacio comprimido con menos dimensiones, controla la cantidad de pérdida y la usa como su entrada a su red. No es tan común para los enfoques de aprendizaje profundo, pero aplicable de todos modos. Esta publicación de blog tiene algunos argumentos en contra: ¿Debería aplicar PCA a sus datos?
  6. ¿Más? Sí, algunos son tareas específicas, datos específicos, es de esperar que más personas piensen en esto.

¿Cuándo usar cuál?

Los más fáciles son a menudo los más efectivos. Básicamente, desea distribuirlo lo más ampliamente posible. Hacer el menor preprocesamiento posible se alinea con la tendencia a hacer la menor cantidad de suposiciones o alterar sus datos y dejar que el modelo lo descubra en la medida en que las opciones de diseño sean compatibles con el rango de valores de entrada.

En general, cuando usamos redes neuronales profundas, simplemente normalizamos las imágenes y aplicamos transformaciones para aumentar artificialmente el conjunto de datos, como espejos y pequeñas rotaciones.

Esto sucede porque las capas convolucionales de la red neuronal se convertirán gradualmente en extractores de funciones que podrían superar la mayor parte del preprocesamiento manual.

Recientemente, vi este documento sobre redes neuronales convolucionales sin muchos trucos que obtuvieron resultados comparables al estado del arte.

Los autores utilizaron una red neuronal convolucional en el conjunto de datos CIFAR-10, que consta de pequeñas imágenes, para la clasificación de objetos.

Sin ninguna modificación además de la normalización de la entrada, logran una precisión del 90.2%
Aumentando los datos con pequeñas rotaciones, escalado, modificación de color, etc., alcanzan el 95%

More Interesting

¿El aprendizaje automático es un comienzo de invasión de estadísticas?

¿Cuáles son las ventajas y desventajas de utilizar una combinación de impulso + árboles de decisión frente a algún otro enfoque en un problema de clasificación?

¿Qué es un uso subestimado del aprendizaje automático?

¿Es el enlace neuronal una tecnología que podría funcionar?

¿Un doctorado en aprendizaje automático centrado en un tema que no sea el aprendizaje profundo seguirá siendo comercializable (en la industria) en 2020?

¿Qué algoritmo de aprendizaje automático usarías para analizar los datos de los alumnos?

¿Cuáles son algunas buenas ideas para proyectos de aprendizaje automático? Yo uso Python

¿Qué significa realmente el aprendizaje automático en términos reales?

¿Cómo genera el modelo generativo muestras de ruidos?

¿Cuáles son los nuevos modelos de aprendizaje profundo que aparecen en los últimos años?

¿Cuál es su opinión sobre los rastros de elegibilidad para el aprendizaje de la diferencia temporal? ¿Es solo una asignación de crédito o un truco de aceleración?

Quiero construir una copia casi perfecta de Eva de ex machina, entonces, ¿qué curso o área de informática necesito aprender profundamente?

¿Cómo calcular la precisión y recuperación generales? ¿Obtengo la precisión y la recuperación de cada clase y obtengo el promedio

¿Cuál es el resultado de un modelo de omisión de gramo en Word2Vec?

Cómo obtener colores 'visualmente distinguibles' de las imágenes