¿Cuáles son buenas técnicas de aumento de datos para un conjunto de datos de imágenes pequeñas?

Aumentar pequeños conjuntos de datos es importante y desafiante. No está agregando mucha información nueva a la red, pero al aumentar los datos está entrenando a la red para que no ajuste demasiado su conjunto de datos con respecto al tipo de aumento.

En una tarea de clasificación de imágenes (por ejemplo, clasificación binaria de perro / gato), si gira la imagen en varios ángulos, está entrenando a la red para que sea invariable a la rotación de los objetos en las imágenes. (Lo mismo para augementation de escala / simulaciones de obstrucción / ruido aleatorio)

Entonces, aunque no se agrega nueva información “auténtica” a la red, el aumento de datos “sintéticos” agregado a la red puede mejorar los resultados obtenidos de la red y permitir la capacitación con menos datos.

Es importante tener en cuenta que el aumento solo es útil cuando es semánticamente correcto. No hay razón para aumentar las imágenes de los peatones que cruzan la calle para estar pies arriba cabeza abajo … en datos reales, tal escena es increíblemente improbable, ya que tal aumento de los datos de entrenamiento podría dañar sus resultados.

Buena suerte

Intenté NNets enrevesadas para modelar datos de MNIST recientemente, y me ayudó en ese caso.

Sin el aumento de datos, me quedé atascado con una precisión de prueba del 99.3% por un tiempo … dada la tecnología que tenía disponible, etc.

Con el aumento de datos en los datos de entrenamiento en el mismo algoritmo, pude exprimir un poco más y llegué al 99.5%.

MNIST tiene un total de 70K registros etiquetados, disponibles para entrenamiento y prueba. Por lo tanto, el aumento de datos para un algoritmo hambriento de datos como el anterior también tenía sentido intuitivo.

Intenté los siguientes aumentos de datos: rotar a izquierda y derecha, hacer zoom, estirar vertical y horizontalmente, acercar / alejar, deformaciones elásticas. Esto último es particularmente interesante, ya que, en un sentido amplio, nos permite crear más variantes de escritura a mano legítima que las originalmente disponibles en el entrenamiento.