La mejor manera de hacer que un modelo de aprendizaje automático generalice mejor es entrenarlo con más datos. Por supuesto, en la práctica, la cantidad de datos que tenemos es limitada. Una forma de solucionar este problema es crear datos sintéticos y agregarlos al conjunto de datos de entrenamiento. Para algunas tareas de aprendizaje automático, es razonablemente sencillo crear nuevos datos sintéticos.

Este enfoque es más sencillo cuando se trata de resolver una tarea de clasificación. Un clasificador necesita tomar una entrada x de múltiples dimensiones y mapearla a una identidad de categoría única y.

Esto significa que la tarea principal que enfrenta un clasificador es ser invariable para una amplia variedad de transformaciones. Podemos generar nuevos pares (x, y) fácilmente, simplemente hay que transformar las entradas x en nuestro conjunto de entrenamiento.

Este enfoque no es tan fácil de aplicar en muchas otras tareas. Por ejemplo, es difícil generar nuevos datos sintéticos para una tarea de estimación de densidad, a menos que ya hayamos resuelto dicho problema de estimación de densidad.

El aumento del conjunto de datos ha sido una técnica particularmente efectiva para un problema de clasificación específico: el reconocimiento de objetos. Las imágenes son de alta dimensionalidad y se caracterizan por un enorme grado de variabilidad, y muchos de estos efectos de variabilidad se pueden simular fácilmente. Las operaciones como realizar una translación de unos pocos píxeles en diferentes direcciones sobre las imágenes de entrenamiento a menudo pueden mejorar en gran medida la generalización.

https://towardsdatascience.com/image-augmentation-for-deep-learning-histogram-equalization-a71387f609b2

La generación de datos artificiales implica crear conjuntos de datos sintéticos que se asemejen a los datos reales que esperamos que nuestros modelos de visión por computadora puedan analizar y comprender. Estos datos sintéticos se generan utilizando técnicas avanzadas, como la generación de imágenes a través de modelos generativos o la manipulación y transformación de imágenes existentes.

¿Por qué es tan importante generar datos artificiales para entrenar los modelos de visión por computadora? Aquí hay algunas razones clave:

  1. Aumento del tamaño del conjunto de datos: La generación de datos artificiales permite ampliar significativamente el tamaño del conjunto de datos de entrenamiento. Cuanto más grande sea el conjunto de datos, más información podrá aprender el modelo y más generalización podrá lograr. Esto es especialmente valioso cuando los datos reales disponibles son limitados o costosos de recopilar.
  2. Variabilidad y diversidad de los datos: La generación de datos artificiales ofrece la posibilidad de introducir variabilidad y diversidad en el conjunto de datos de entrenamiento. Esto es esencial para enseñar al modelo a manejar diferentes escenarios, condiciones de iluminación, variaciones de posición y otras posibles perturbaciones que puede encontrar en situaciones reales. La exposición a una amplia gama de casos de uso ayuda a mejorar la robustez y la capacidad de generalización del modelo.
  3. Etiquetado y anotación de datos: En muchos casos, el etiquetado manual de grandes conjuntos de datos es costoso y consume mucho tiempo. La generación de datos artificiales permite etiquetar automáticamente los datos generados, lo que acelera el proceso de entrenamiento. Esto puede ser especialmente útil en aplicaciones donde se requiere una gran cantidad de etiquetas precisas y detalladas.
  4. Control de escenarios y condiciones: Al generar datos de forma artificial, podemos tener un control total sobre los escenarios y las condiciones en las que se presentan las imágenes. Esto permite crear conjuntos de datos específicos para casos de uso particulares y diseñar experimentos para evaluar y mejorar el rendimiento del modelo bajo diferentes condiciones.
  5. Privacidad y seguridad: Al trabajar con datos sintéticos, se puede garantizar la privacidad y la seguridad de los datos reales. Esto es especialmente importante en aplicaciones que involucran información confidencial o sensible.

Técnicas de aumento de datos en imágenes

En esta sección, presentamos algunas técnicas de aumento básicas pero poderosas que se usan popularmente.

Voltear

Puede voltear imágenes horizontal y verticalmente. Algunos marcos no brindan funciones para giros verticales. Pero, un giro vertical es equivalente a rotar una imagen 180 grados y luego realizar un giro horizontal. A continuación, se muestran ejemplos de imágenes que están volteadas.

·                   Tiene un factor de aumento de datos = 2 a 4x

https://miro.medium.com/max/900/1*LB5rEOg4WNVaD18gIDM0FA.jpegRotación

Rotar

Una cosa clave a tener en cuenta sobre esta operación es que es posible que las dimensiones de la imagen no se conserven después de la rotación. Si su imagen es un cuadrado, girarla en ángulo recto conservará el tamaño de la imagen. Si es un rectángulo, rotarlo 180 grados preservaría el tamaño. Rotar la imagen en ángulos más finos también cambiará el tamaño final de la imagen. Veremos cómo podemos lidiar con este problema en la siguiente sección. A continuación, se muestran ejemplos de imágenes cuadradas giradas en ángulo recto.

·                   Tiene un factor de aumento de datos = 2 a 4x

https://medium.com/ymedialabs-innovation/data-augmentation-techniques-in-cnn-using-tensorflow-371ae43d5be9

Escalado

La imagen se puede escalar hacia afuera o hacia adentro. Al escalar hacia afuera, el tamaño de la imagen final será mayor que el tamaño de la imagen original. La mayoría de los marcos de imágenes recortan una sección de la nueva imagen, con un tamaño igual al de la imagen original. Nos ocuparemos de escalar hacia adentro en la siguiente sección, ya que reduce el tamaño de la imagen, lo que nos obliga a hacer suposiciones sobre lo que se encuentra más allá del límite. A continuación, se muestran ejemplos o imágenes a escala.

·                   Tiene un factor de aumento de datos = arbitrario

https://github.com/xkumiyu/numpy-data-augmentation

Recortar

A diferencia del escalado, simplemente muestreamos aleatoriamente una sección de la imagen original. Luego cambiamos el tamaño de esta sección al tamaño de la imagen original. Este método se conoce popularmente como recorte aleatorio. A continuación, se muestran ejemplos de recortes aleatorios. Si observa detenidamente, puede notar la diferencia entre este método y el escalado.

·                   Tiene un factor de aumento de datos = arbitrario

Traslación

La traslación solo implica mover la imagen a lo largo de la dirección X o Y (o ambas). En el siguiente ejemplo, asumimos que la imagen tiene un fondo negro más allá de su límite y se traduce adecuadamente. Este método de aumento es muy útil ya que la mayoría de los objetos se pueden ubicar en casi cualquier lugar de la imagen. Esto obliga a su red neuronal convolucional a buscar en todas partes.

·                   Tiene un factor de aumento de datos = arbitrario

https://nanonets.com/blog/data-augmentation-how-to-use-deep-learning-when-you-have-limited-data-part-2

Ruido Gausiano

El ajuste excesivo generalmente ocurre cuando su red neuronal intenta aprender características de alta frecuencia (patrones que ocurren mucho) que pueden no ser útiles. El ruido gaussiano, que tiene media cero, esencialmente tiene puntos de datos en todas las frecuencias, distorsionando efectivamente las características de alta frecuencia. Esto también significa que los componentes de baja frecuencia (por lo general, los datos previstos) también están distorsionados, pero su red neuronal puede aprender a mirar más allá. Agregar la cantidad justa de ruido puede mejorar la capacidad de aprendizaje.

Una versión atenuada de esto es el ruido de sal y pimienta, que se presenta como píxeles aleatorios en blanco y negro repartidos por la imagen. Esto es similar al efecto producido al agregar ruido gaussiano a una imagen, pero puede tener un nivel de distorsión de información más bajo.

·                   Tiene un factor de aumento de datos = 2x

https://medium.com/ymedialabs-innovation/data-augmentation-techniques-in-cnn-using-tensorflow-371ae43d5be9

En conclusión, la generación de datos artificiales es una estrategia poderosa para mejorar la efectividad de los modelos de visión por computadora. Proporciona una solución para los desafíos relacionados con la disponibilidad, diversidad y etiquetado de datos, permitiendo un entrenamiento más eficiente y una mejor capacidad de generalización. Al aprovechar esta técnica, podemos acelerar el desarrollo de modelos de visión por computadora más precisos y robustos, impulsando así el progreso en una amplia gama de aplicaciones, desde reconocimiento de objetos hasta conducción autónoma.