Al hacer clic en “Aceptar todas las cookies”, aceptas el almacenamiento de cookies en tu dispositivo para mejorar la navegación del sitio, analizar el uso del sitio y ayudar en nuestros esfuerzos de marketing. Más información
Configuración de cookies
Al hacer clic en “Aceptar todas las cookies”, aceptas el almacenamiento de cookies en tu dispositivo para mejorar la navegación del sitio, analizar el uso del sitio y ayudar en nuestros esfuerzos de marketing. Más información
Descubra cómo la destilación de conjuntos de datos acelera el entrenamiento de modelos y reduce los costes informáticos al sustituir grandes conjuntos de datos por un conjunto pequeño y optimizado de muestras sintéticas.
Los modelos de entrenamiento pueden parecer la parte más laboriosa del trabajo de un científico de datos. Sin embargo, la mayor parte de su tiempo, a menudo entre el 60 % y el 80 %, se dedica en realidad a preparar los datos: recopilarlos, limpiarlos y organizarlos para su modelización. A medida que los conjuntos de datos crecen, ese tiempo de preparación también aumenta, lo que ralentiza los experimentos y dificulta la iteración.
Para abordar este problema, los investigadores han dedicado años a buscar formas de optimizar el entrenamiento. Enfoques como los datos sintéticos, la compresión de conjuntos de datos y los métodos de optimización mejorados tienen como objetivo reducir el coste y la fricción que supone trabajar con conjuntos de datos a gran escala y acelerar los flujos de trabajo de aprendizaje automático.
Una pregunta clave que esto plantea es si podemos reducir drásticamente un conjunto de datos y seguir obteniendo el mismo rendimiento que al entrenar un modelo con los datos completos. La destilación de conjuntos de datos es una respuesta prometedora.
Crea una versión compacta de un gran conjunto de datos de entrenamiento, al tiempo que conserva los patrones esenciales que el modelo necesita para aprender de manera eficaz. Proporciona una vía para un entrenamiento más rápido, menores necesidades de computación y una experimentación más eficiente. Se puede considerar como una chuleta de estudio para el modelo, un pequeño conjunto de ejemplos de datos sintéticos diseñados para enseñar los mismos patrones básicos que el conjunto de datos completo.
En este artículo, exploraremos cómo funciona la destilación de conjuntos de datos y cómo respalda el aprendizaje automático y el aprendizaje profundo escalables en aplicaciones del mundo real. ¡Empecemos!
Comprender la destilación de conjuntos de datos
La destilación de conjuntos de datos es un proceso mediante el cual un gran conjunto de datos de entrenamiento se condensa en un conjunto mucho más pequeño que sigue enseñando al modelo prácticamente la misma información que el conjunto de datos original. Muchos investigadores también se refieren a este proceso como condensación de conjuntos de datos, ya que el objetivo es capturar los patrones esenciales que aparecen en todo el conjunto de datos completo.
Un conjunto de datos destilados es diferente de los datos sintéticos generados aleatoriamente o de la simple selección de un subconjunto más pequeño de imágenes reales. No se trata de un conjunto de datos falsos aleatorios ni de una copia recortada del original.
En cambio, se optimiza deliberadamente para capturar los patrones más importantes. Durante este proceso, cada píxel y cada característica se ajusta y optimiza para que una red neuronal entrenada con los datos destilados aprenda casi como si se hubiera entrenado con todo el conjunto de datos.
Esta idea apareció por primera vez en un artículo de arXiv de 2018 escrito por Tongzhou Wang, Jun-Yan Zhu, Antonio Torralba y Alexei A. Efros. Las primeras pruebas utilizaron conjuntos de datos sencillos como MNIST y CIFAR-10, lo que facilitaba demostrar que unas pocas muestras destiladas podían sustituir a miles de imágenes reales.
Fig. 1. Uso de la destilación de conjuntos de datos para datos de imágenes (Fuente)
Desde entonces, el trabajo de seguimiento ha impulsado aún más la destilación de conjuntos de datos, incluyendo métodos publicados en ICML e ICLR que hacen que la condensación sea más eficiente y escalable.
La importancia de la destilación de conjuntos de datos
La destilación de conjuntos de datos mejora la eficiencia del entrenamiento y acelera los ciclos de desarrollo. Al reducir la cantidad de datos que un modelo necesita para aprender, disminuye los requisitos computacionales.
Esto resulta especialmente útil para el aprendizaje continuo, en el que los modelos se actualizan con el tiempo, la búsqueda de arquitectura neuronal, en la que se prueban muchos diseños de modelos, y el entrenamiento periférico, en el que los modelos se ejecutan en dispositivos pequeños con memoria y potencia limitadas. En general, estas ventajas hacen que la destilación de conjuntos de datos sea una excelente opción para la inicialización rápida, el ajuste rápido y la creación de prototipos iniciales en muchos flujos de trabajo de aprendizaje automático.
Una visión general de cómo funciona la destilación de conjuntos de datos
La destilación de conjuntos de datos crea muestras de entrenamiento sintéticas o generadas artificialmente. Estas muestras ayudan al modelo a aprender de una forma muy similar al entrenamiento con datos reales. Funciona mediante el seguimiento de tres factores clave durante el entrenamiento normal.
En primer lugar está la función de pérdida, que es la puntuación de error del modelo que muestra lo erróneas que son sus predicciones. En segundo lugar están los parámetros del modelo, que son los pesos internos de la red que se actualizan a medida que aprende.
En tercer lugar está la trayectoria de entrenamiento, que describe cómo cambian el error y los pesos paso a paso a lo largo del tiempo. A continuación, las muestras sintéticas se optimizan para que, cuando un modelo se entrena con ellas, su error disminuya y sus pesos se actualicen de la misma manera que lo harían con el conjunto de datos completo.
Una mirada paso a paso a la destilación de conjuntos de datos
A continuación, se explica con más detalle cómo funciona el proceso de destilación de conjuntos de datos:
Paso 1: inicializar píxeles sintéticos. El proceso comienza con imágenes sintéticas que actúan como entradas aprendibles. Al principio, estas imágenes tienen poca estructura y parecen lienzos en blanco. Con el tiempo, se optimizan hasta convertirse en ejemplos informativos.
Paso 2: optimizar con coincidencia de gradientes y retropropagación. A medida que el modelo se entrena con estas imágenes sintéticas, produce gradientes que indican cómo debe cambiar cada píxel para ajustarse mejor al comportamiento de entrenamiento de los datos reales. La retropropagación es el método que utiliza la red para aprender de los errores. Envía el error hacia atrás a través del modelo para averiguar qué píxeles y pesos lo causaron, y luego los actualiza ligeramente. Utilizando esos gradientes, la retropropagación ajusta las imágenes sintéticas paso a paso para que sean más informativas para el entrenamiento.
Paso 3: Emparejamiento del comportamiento en los pasos de entrenamiento: El método también empareja las trayectorias de entrenamiento, es decir, los cambios paso a paso que experimenta el modelo durante el aprendizaje. Esto garantiza que el conjunto de datos destilado guíe al modelo a través de una ruta de aprendizaje similar a la que seguiría con el conjunto de datos completo.
Paso 4: validación y generalización. Por último, el conjunto de datos destilados se evalúa con datos de validación reales para comprobar el rendimiento del modelo entrenado con nuevos ejemplos. De este modo, se comprueba que los datos sintéticos enseñan patrones amplios y funcionales, en lugar de hacer que el modelo memorice muestras específicas.
Fig. 2. Una mirada a la destilación de conjuntos de datos (Fuente)
Metodologías clave para la destilación de conjuntos de datos
Todos los métodos de destilación de conjuntos de datos se basan en la misma idea central, aunque utilicen algoritmos diferentes para lograrlo. La mayoría de los enfoques se dividen en tres categorías: coincidencia de rendimiento, coincidencia de distribución y coincidencia de parámetros.
A continuación, veamos cada uno de ellos y cómo funciona.
Equivalencia de rendimiento
La correspondencia de rendimiento en la destilación de conjuntos de datos se centra en crear un conjunto de entrenamiento pequeño y optimizado que permita al modelo alcanzar prácticamente la misma precisión que si se hubiera entrenado con el conjunto de datos original completo. En lugar de seleccionar un subconjunto aleatorio, las muestras destiladas se optimizan para que un modelo entrenado con ellas obtenga predicciones similares, un comportamiento de pérdida similar durante el entrenamiento o una precisión final similar a la de un modelo entrenado con el conjunto de datos original.
El metaaprendizaje es un método habitual utilizado para mejorar este proceso. El conjunto de datos destilado se actualiza mediante episodios de entrenamiento repetidos, por lo que resulta eficaz en muchas situaciones posibles.
Durante estos episodios, el método simula cómo un modelo estudiante aprende a partir de las muestras destiladas actuales, comprueba el rendimiento de ese estudiante con datos reales y, a continuación, ajusta las muestras destiladas para que sean mejores profesores. Con el tiempo, el conjunto destilado aprende a favorecer un aprendizaje rápido y una generalización sólida, incluso cuando el modelo estudiante parte de pesos iniciales diferentes o utiliza una arquitectura diferente. Esto hace que el conjunto de datos destilado sea más fiable y no esté vinculado a una única ejecución de entrenamiento.
Por su parte, la distribución coincidente genera datos sintéticos que coinciden con los patrones estadísticos del conjunto de datos real. En lugar de centrarse únicamente en la precisión final de un modelo, este enfoque se centra en las características internas que genera una red neuronal durante el aprendizaje.
A continuación, veamos las dos técnicas que impulsan la correspondencia de distribución.
Distribución de una sola capa
La distribución de una sola capa se centra en una sola capa de una red neuronal y compara las características que produce para datos reales frente a datos sintéticos. Esas características, también llamadas activaciones, capturan lo que el modelo ha aprendido en ese punto de la red.
Al hacer que los datos sintéticos produzcan activaciones similares, el método fomenta que el conjunto de datos destilado refleje los mismos patrones importantes que el conjunto de datos original. En la práctica, las muestras sintéticas se actualizan repetidamente hasta que las activaciones en la capa elegida coinciden estrechamente con las de las imágenes reales.
Este enfoque es relativamente sencillo, ya que alinea solo un nivel de representación a la vez. Funciona especialmente bien con conjuntos de datos más pequeños o tareas en las que no es necesario hacer coincidir jerarquías de características profundas y de múltiples etapas. Al alinear claramente un espacio de características, la coincidencia de una sola capa proporciona una señal estable y significativa para el aprendizaje con el conjunto de datos destilado.
Emparejamiento de distribución multicapa
La correspondencia de distribución multicapa se basa en la idea de comparar datos reales y sintéticos haciéndolo en varias capas de una red neuronal en lugar de solo en una. Las diferentes capas capturan diferentes tipos de información, desde simples bordes y texturas en las primeras capas hasta formas y patrones más complejos en las capas más profundas.
Al hacer coincidir las características entre estas capas, el conjunto de datos destilado se impulsa para reflejar lo que el modelo aprende en múltiples niveles. Dado que alinea las características en toda la red, este enfoque ayuda a que los datos sintéticos conserven señales más ricas en las que se basa el modelo para distinguir las clases.
Esto resulta especialmente útil en la visión artificial, es decir, en tareas en las que los modelos aprenden a comprender imágenes y vídeos, ya que los patrones útiles se distribuyen por muchas capas. Cuando las distribuciones de características coinciden bien en varias profundidades, el conjunto de datos destilado actúa como un sustituto más sólido y fiable de los datos de entrenamiento originales.
Métodos de coincidencia de parámetros
Otra categoría clave en la destilación de conjuntos de datos es la coincidencia de parámetros. En lugar de hacer coincidir la precisión o las distribuciones de características, hace coincidir cómo cambian los pesos de un modelo durante el entrenamiento. Al hacer que el entrenamiento en el conjunto de datos destilado produzca actualizaciones de parámetros similares a las del entrenamiento con datos reales, el modelo sigue una ruta de aprendizaje casi idéntica.
A continuación, veremos los dos métodos principales de coincidencia de parámetros.
Coincidencia en un solo paso
La correspondencia en un solo paso compara lo que ocurre con los pesos de un modelo tras un solo paso de entrenamiento con datos reales. A continuación, se ajusta el conjunto de datos destilado para que un modelo entrenado en él durante un paso produzca una actualización de pesos muy similar. Dado que solo se centra en esta única actualización, el método es sencillo y rápido de ejecutar.
La desventaja es que un solo paso no refleja todo el proceso de aprendizaje, especialmente en tareas más difíciles en las que el modelo necesita muchas actualizaciones para crear características más completas. Por eso, la correspondencia de un solo paso tiende a funcionar mejor en problemas más sencillos o en conjuntos de datos más pequeños, en los que se pueden detectar rápidamente patrones útiles.
Coincidencia de parámetros en varios pasos
Por el contrario, la coincidencia de parámetros en varios pasos analiza cómo cambian los pesos de un modelo a lo largo de varios pasos de entrenamiento, no solo uno. Esta secuencia de actualizaciones es la trayectoria de entrenamiento del modelo.
El conjunto de datos destilados se construye de manera que, cuando un modelo se entrena con muestras sintéticas, su trayectoria sigue de cerca la que seguiría con datos reales. Al igualar un tramo más largo de aprendizaje, el conjunto destilado captura más de la estructura del proceso de entrenamiento original.
Dado que refleja cómo se desarrolla el aprendizaje a lo largo del tiempo, la correspondencia en varios pasos suele funcionar mejor con conjuntos de datos más grandes o complejos, en los que los modelos necesitan muchas actualizaciones para detectar patrones útiles. Requiere más computación, ya que tiene que track pasos, pero a menudo produce conjuntos de datos destilados que se generalizan mejor y ofrecen un mejor rendimiento que la correspondencia en un solo paso.
Cómo funciona la generación y optimización de conjuntos de datos sintéticos
Ahora que comprendemos mejor los principales enfoques de destilación, podemos ver cómo se crean los datos sintéticos. En la destilación de conjuntos de datos, las muestras sintéticas se optimizan para capturar la señal de aprendizaje más importante, de modo que un conjunto pequeño puede sustituir a un conjunto de datos mucho más grande.
A continuación, veremos cómo se generan y evalúan estos datos destilados.
Creación y evaluación de imágenes destiladas
Durante la destilación del conjunto de datos, los píxeles sintéticos se actualizan a lo largo de muchos pasos de entrenamiento. La red neuronal aprende de las imágenes sintéticas actuales y envía información basada en gradientes, que muestra cómo debe cambiar cada píxel para ajustarse mejor a los patrones del conjunto de datos real.
Esto funciona porque el proceso es diferenciable (lo que significa que cada paso es fluido y tiene gradientes bien definidos, por lo que pequeños cambios en los píxeles dan lugar a cambios predecibles en la pérdida), lo que permite al modelo ajustar con fluidez los datos sintéticos durante el descenso del gradiente.
A medida que avanza la optimización, las imágenes sintéticas comienzan a formar una estructura significativa, incluyendo formas y texturas que el modelo reconoce. Estas imágenes sintéticas refinadas se utilizan a menudo para tareas de clasificación de imágenes, ya que capturan las claves visuales que un clasificador necesita aprender.
Los conjuntos de datos destilados se evalúan entrenando modelos con ellos y comparando los resultados con modelos entrenados con datos reales. Los investigadores miden la precisión de la validación y comprueban si el conjunto sintético conserva las características discriminativas (los patrones o señales en los que se basa el modelo para distinguir una clase de otra) necesarias para separar las clases. También comprueban la estabilidad y la generalización en diferentes ejecuciones o configuraciones de modelos para asegurarse de que los datos destilados no den lugar a un sobreajuste.
Aplicaciones reales de la destilación de datos
A continuación, analizaremos más detenidamente algunos ejemplos que muestran cómo los conjuntos de datos destilados aceleran el entrenamiento y reducen los costes de computación, al tiempo que mantienen un rendimiento sólido, incluso cuando los datos son limitados o muy especializados.
Uso de la destilación de conjuntos de datos para aplicaciones de visión artificial
En lo que respecta a la visión artificial, el objetivo es entrenar modelos para que comprendan datos visuales como imágenes y vídeos. Estos modelos aprenden patrones como bordes, texturas, formas y objetos, y luego utilizan esos patrones para tareas como la clasificación de imágenes, la detección de objetos o la segmentación. Dado que los problemas de visión suelen presentar grandes variaciones en cuanto a iluminación, fondos y puntos de vista, los sistemas de visión artificial suelen necesitar grandes conjuntos de datos para generalizar bien, lo que hace que el entrenamiento sea costoso y lento.
Fig. 4. Ejemplo de destilación de conjuntos de datos (Fuente)
Cuando se trata de casos de uso de clasificación de imágenes, como exploraciones médicas, supervisión de la fauna silvestre o detección de defectos en fábricas, los modelos suelen enfrentarse a una difícil disyuntiva entre la precisión y el coste de entrenamiento. Estas tareas suelen implicar conjuntos de datos masivos.
La destilación de conjuntos de datos puede comprimir el conjunto de entrenamiento original en un pequeño número de imágenes sintéticas que siguen conteniendo las señales visuales más importantes para el clasificador. En grandes bancos de pruebas como ImageNet, se ha demostrado que los conjuntos destilados que utilizan solo alrededor del 4,2 % de las imágenes originales mantienen una gran precisión de clasificación. Esto significa que un pequeño proxy sintético puede sustituir a millones de muestras reales con un consumo computacional mucho menor.
Búsqueda de arquitectura neuronal
La búsqueda de arquitectura neuronal, o NAS, es una técnica que explora automáticamente muchos diseños posibles de redes neuronales para encontrar el que mejor se adapta a una tarea. Dado que la NAS tiene que entrenar y evaluar un gran número de modelos candidatos, ejecutarla con conjuntos de datos completos puede ser lento y requerir una gran capacidad de cálculo.
La destilación de conjuntos de datos ayuda a crear un pequeño conjunto de entrenamiento sintético que sigue conteniendo la señal de aprendizaje principal de los datos originales, por lo que cada arquitectura candidata puede probarse mucho más rápido. Esto permite al NAS comparar diseños de manera eficiente, al tiempo que mantiene la clasificación de arquitecturas buenas y malas razonablemente fiable, lo que reduce el coste de la búsqueda sin sacrificar en gran medida la calidad del modelo final.
Aprendizaje continuo e implementación de vanguardia
Los sistemas de aprendizaje continuo, es decir, los modelos que se actualizan continuamente a medida que llegan nuevos datos en lugar de entrenarse una sola vez, necesitan actualizaciones rápidas y eficientes en términos de memoria. Los dispositivos periféricos, como cámaras, teléfonos y sensores, se enfrentan a limitaciones similares, ya que cuentan con recursos informáticos y de almacenamiento muy limitados.
La destilación de conjuntos de datos ayuda en ambos casos al comprimir un gran conjunto de entrenamiento en uno sintético más pequeño, de modo que los modelos pueden adaptarse o reentrenarse utilizando un pequeño conjunto de reproducción en lugar del conjunto de datos completo. Por ejemplo, el trabajo de metaaprendizaje basado en kernel demostró que solo 10 muestras destiladas pueden alcanzar una precisión superior al 64 % en CIFAR-10, un punto de referencia estándar para la clasificación de imágenes. Dado que el conjunto de reproducción es tan compacto, las actualizaciones se vuelven mucho más rápidas y prácticas, especialmente cuando los modelos deben actualizarse con frecuencia.
La destilación de conjuntos de datos también puede funcionar junto con la destilación de conocimientos para modelos de lenguaje grandes. Un pequeño conjunto de datos destilado puede conservar las señales de tareas más importantes del modelo maestro, de modo que un modelo alumno comprimido puede entrenarse o actualizarse de manera más eficiente sin perder mucho rendimiento. Dado que estos conjuntos de datos son muy pequeños, resultan especialmente útiles para su uso en dispositivos periféricos o integrados, donde el almacenamiento y la capacidad de cálculo son limitados, pero se desea que el modelo mantenga su precisión después de las actualizaciones.
Ventajas y desventajas de la destilación de datos
A continuación se enumeran algunas ventajas de utilizar la destilación de conjuntos de datos:
Ideal para experimentos rápidos. Puedes probar nuevas arquitecturas, pérdidas o hiperparámetros sin tener que volver a entrenar con un enorme conjunto de datos cada vez.
Ventaja potencial en materia de privacidad. Compartir muestras sintéticas destiladas puede ser más seguro que compartir datos reales de usuarios, ya que los ejemplos sin procesar no quedan directamente expuestos.
A menudo es más eficaz que la simple selección de subconjuntos. En lugar de limitarse a seleccionar ejemplos, la destilación los optimiza activamente para que sean lo más informativos posible.
Aunque la destilación de conjuntos de datos ofrece varias ventajas, hay algunas limitaciones que hay que tener en cuenta:
Sobreajuste: Los datos destilados suelen funcionar mejor para la arquitectura utilizada durante la destilación y pueden transferirse mal a modelos muy diferentes.
Sensible a los hiperparámetros. Los resultados pueden depender en gran medida de factores como la tasa de aprendizaje, la inicialización o el número de pasos de destilación.
Más difícil de adaptar a la complejidad del mundo real. Los métodos que funcionan bien en pruebas comparativas pueden perder precisión en conjuntos de datos grandes, desordenados o de alta resolución.
Conclusiones clave
La destilación de conjuntos de datos permite que un pequeño conjunto de muestras sintéticas enseñe a un modelo casi con la misma eficacia que un conjunto de datos completo. Esto hace que el aprendizaje automático sea más rápido, más eficiente y más fácil de escalar. A medida que los modelos crecen y requieren más datos, los conjuntos de datos destilados ofrecen una forma práctica de reducir los costes de computación sin sacrificar la precisión.