Aumento de datos, algoritmos de ML y nuevas tecnologías
December 09, 2024 | 5 minutes read
Aunque en los últimos años los algoritmos de aprendizaje automático han llevado a la creación de productos y servicios de software punteros y de vanguardia, los conjuntos de datos que permiten la creación de estas tecnologías pueden ser prohibitivamente caros y largos de crear. Dado que la precisión de un modelo de aprendizaje automático depende en gran medida de la amplitud de los datos de entrenamiento que se han utilizado para crearlo, la capacidad de aprovechar grandes conjuntos de datos es fundamental para crear modelos que puedan funcionar de manera eficiente y precisa. Debido a este hecho, muchos productos tecnológicos populares que utilizan algoritmos de aprendizaje automático son creados por grandes empresas tecnológicas como Apple y Microsoft, ya que estas corporaciones tienen el dinero, el alcance y los datos necesarios para entrenar sus modelos de aprendizaje automático en consecuencia.
A pesar de este hecho, la práctica del aumento de datos es un método que las pequeñas empresas y negocios pueden utilizar cuando buscan entrenar un algoritmo de aprendizaje automático de una manera más rentable. Como su nombre indica, el aumento de datos consiste en realizar ligeros incrementos o alteraciones en un conjunto de datos etiquetados con el objetivo de aumentar la diversidad del conjunto de datos. Si bien estos aumentos pueden ser sencillos y poco extraordinarios cuando se miran desde una perspectiva humana, las máquinas no tienen la misma comprensión y los mismos matices de la mente humana, y como tal, los desarrolladores de software pueden cambiar los datos dentro de un conjunto de datos para lograr objetivos que podrían incurrir en grandes costes cuando se utiliza otra técnica o método pertinente.
¿Cómo funciona el aumento de datos?
Para dar un ejemplo básico de cómo funciona el aumento de datos, consideremos un conjunto de datos que contiene 20 imágenes que muestran los hechos de los gatos. Dicho esto, un desarrollador de software que desee aumentar estos datos podría crear primero copias de estas 20 imágenes y, a continuación, voltearlas horizontalmente. En el contexto de un algoritmo de aprendizaje automático, estas imágenes horizontales representarían 20 nuevas imágenes para la máquina, duplicando así la cantidad de datos de entrenamiento que el desarrollador de software en cuestión podría utilizar para entrenar su modelo. Aunque voltear horizontalmente un grupo de imágenes es sólo un ejemplo de la forma en que se puede aplicar el aumento de datos, los conjuntos de datos se pueden alterar de muchas maneras diferentes.
Siguiendo con el ejemplo de un desarrollador de software que trabaja con un grupo de 20 imágenes que muestran las caras de gatos, este desarrollador de software también podría recortar estas imágenes en lugar de voltearlas horizontalmente en un intento de duplicar la cantidad de datos de entrenamiento que puede utilizar. Es más, el aumento de datos no se limita a la manipulación de las propiedades físicas de una imagen concreta, ya que también se puede añadir ruido a una imagen o utilizar el zoom de una cámara para cambiar el punto de vista de la imagen.
Dicho esto, el aumento de datos se ha convertido en una práctica habitual para los ingenieros de software que crean algoritmos de aprendizaje automático y profundo para aplicaciones de visión por ordenador. Este es particularmente el caso de los modelos de aprendizaje automático supervisado, ya que este enfoque ya depende de datos de entrenamiento etiquetados. Además, el enfoque de aumento de datos también puede aplicarse a otros tipos de conjuntos de datos. Por ejemplo, un desarrollador de software que quiera crear un programa de reconocimiento de voz podría sustituir algunos de los sustantivos, adjetivos y verbos de su modelo de entrenamiento por sinónimos de estas palabras, lo que le permitiría aumentar sus datos de entrenamiento sin tener que gastar recursos adicionales.
Las limitaciones del aumento de datos
A pesar de la flexibilidad que el enfoque de aumento de datos proporciona a los desarrolladores e ingenieros de software, la naturaleza inherente del aprendizaje automático significa que existen ciertas limitaciones asociadas a dichas técnicas. Para ilustrar mejor este punto, consideremos el caso de un desarrollador de software que desea crear un algoritmo de aprendizaje automático capaz de identificar cheques. Dado que en Estados Unidos los cheques deben ajustarse a ciertas normas establecidas por los sectores bancario y financiero, respectivamente, voltear verticalmente un grupo de cheques no sería una forma eficaz de entrenar un algoritmo de aprendizaje automático para identificar dichos cheques, ya que en casi todos los casos los cheques tendrán un formato horizontal.
A la inversa, el enfoque de aumento de datos no puede utilizarse para abordar el nivel innato de sesgo que puede contener un conjunto de datos concreto. Por ejemplo, consideremos un modelo de aprendizaje automático creado para ayudar a un bufete de abogados a contratar nuevos empleados. Si el conjunto de datos que se utilizó para entrenar dicho modelo contenía una cantidad abrumadora de nombres asociados a hombres, como Mike o Mark, aumentar estos datos para incluir nombres similares como Maxwell o Miguel no cambiaría el hecho de que hubiera muy pocos nombres asociados a mujeres dentro del conjunto de datos. Hasta este punto, la práctica del aumento de datos se utiliza mejor como un medio para mejorar el rendimiento de un algoritmo de aprendizaje automático que ya ha sido entrenado en un conjunto diverso de datos.
Cuando se utiliza correcta y adecuadamente, el aumento de datos puede servir para mejorar en gran medida la capacidad de un algoritmo de aprendizaje automático para detectar e identificar objetos, palabras o información en una amplia gama de soportes. Además, es una técnica que también se puede utilizar para reducir la barrera de entrada en los campos del aprendizaje profundo, el aprendizaje automático, la inteligencia artificial y la visión por ordenador, ya que el proceso de aumento de datos no es tan caro ni tedioso como tener que etiquetar manualmente miles de imágenes individuales dentro de un conjunto de datos. Asimismo, aunque el aumento de datos es solo un método que los ingenieros de software pueden utilizar para extraer valor adicional de los conjuntos de datos con los que trabajan, seguramente se desarrollarán nuevos métodos en un futuro próximo.