Observe cómo las muestras seleccionadas capturan estilos de escritura más variados y casos de borde.
En algunos ejemplos, como el clúster 1, 3 y 8, el punto más alejado parece un ejemplo más variado del centro prototípico.
Cluster 6 es un punto interesante, que muestra cómo algunas imágenes son difíciles incluso para un humano adivinar qué es. Pero aún puedes entender cómo esto podría estar en un clúster con el centroide como un 8.
Investigación reciente sobre Leyes de escala neuronal Ayuda a explicar por qué la poda de datos utilizando un enfoque de “más lejos del centroide” funciona, especialmente en el conjunto de datos MNIST.
Redundancia de datos
Muchos ejemplos de capacitación en grandes conjuntos de datos son altamente redundantes.
Piense en Mnist: ¿Cuántos 7 casi idénticos necesitamos realmente? La clave para la poda de datos no es tener más ejemplos: es tener los ejemplos correctos.
Estrategia de selección frente a tamaño del conjunto de datos
Uno de los hallazgos más interesantes del documento anterior es cómo cambia la estrategia de selección de datos óptima en función del tamaño de su conjunto de datos:
- Con “muchos” datos : Seleccione más duro, más diverso Ejemplos (más lejos de los centros de conglomerados).
- Con datos escasos: Seleccione más fácil, más típico Ejemplos (más cercano a los centros de clúster).
Esto explica por qué nuestra estrategia “más lejos del centroide” funcionó tan bien.
Con los 60,000 ejemplos de capacitación de Mnist, estábamos en el régimen de “datos abundantes” donde la selección de ejemplos diversos y desafiantes resultó más beneficioso.
Inspiración y metas
Me inspiró estos dos artículos recientes (y el hecho de que soy ingeniero de datos):
Ambas exploran varias formas en que podemos usar estrategias de selección de datos para capacitar a los modelos performantes en menos datos.
Metodología
Yo usé Lenet-5 como mi arquitectura modelo.
Luego, utilizando una de las estrategias a continuación, podé el conjunto de datos de capacitación de Mnist y entrené un modelo. Las pruebas se realizaron contra el conjunto de pruebas completas.
Debido a las limitaciones de tiempo, solo ejecuté 5 pruebas por experimento.
Código completo y resultados Disponible aquí en Github.
Estrategia #1: línea de base, conjunto de datos completo
- Arquitectura estándar de Lenet-5
- Capacitado utilizando el 100% de los datos de entrenamiento
Estrategia #2: muestreo aleatorio
- Muestra al azar imágenes individuales del conjunto de datos de capacitación
Estrategia #3: K-means se agrupa con diferentes estrategias de selección
Así es como funcionó esto:
- Preprocese las imágenes con PCA para reducir la dimensionalidad. Esto solo significa que cada imagen se redujo de 784 valores (28×28 píxeles) en solo 50 valores. PCA hace esto mientras conserva los patrones más importantes y elimina la información redundante.
- Clúster usando k-means. El número de grupos se fijó en 50 y 500 en diferentes pruebas. Mi pobre CPU no pudo manejar mucho más allá de 500 dados todos los experimentos.
- Luego probé diferentes métodos de selección una vez que los datos fueron clúster:
- Más cercano al centroide: representan un ejemplo “típico” del clúster.
- Más lejos del centroideo: más representativo de los casos de borde.
- Aleatorio de cada grupo: seleccione aleatoriamente dentro de cada clúster.
- PCA redujo el ruido y el tiempo de cálculo. Al principio solo estaba aplanando las imágenes. Los resultados y el calculador mejoraron con PCA, así que lo guardé para el experimento completo.
- Cambié de la agrupación estándar de K a MinibatchkMeans para una mejor velocidad. El algoritmo estándar era demasiado lento para mi CPU dada todas las pruebas.
- Configurar un arnés de prueba adecuado fue clave. Mover Experiment Configs a un YAML, guardando automáticamente los resultados en un archivo y hacer que O1 escriba mi código de visualización hizo la vida mucho más fácil.
Precisión media y tiempo de ejecución
Aquí están los resultados medios, comparando nuestro Lenet-5 de base entrenado en el conjunto de datos completo con dos estrategias diferentes que usaban el 50% del conjunto de datos.
Precisión frente al tiempo de ejecución resultados completos
Los siguientes cuadros muestran los resultados de mis cuatro estrategias de poda en comparación con la línea de base en rojo.
Hallazgos clave en múltiples ejecuciones:
- Más lejos del centroideo superó constantemente otros métodos
- Definitivamente hay un punto óptimo entre el tiempo de cálculo y la precisión del modelo si desea encontrarlo para su caso de uso. Se debe hacer más trabajo aquí.
Todavía estoy sorprendido de que la reducción al azar del conjunto de datos proporcione resultados aceptables si la eficiencia es lo que buscas.
Planes futuros
- Probar esto en Mi segundo cerebro. Quiero ajustar un LLM en mi obsidiana completa y la poda de datos de prueba junto con el resumen jerárquico.
- Explore otros métodos de incrustación para la agrupación. Puedo intentar entrenar a un codificador automático para incrustar las imágenes en lugar de usar PCA.
- Pruebe esto en conjuntos de datos más complejos y más grandes (CIFAR-10, Imagenet).
- Experimente con cómo la arquitectura del modelo afecta el rendimiento de las estrategias de poda de datos.
Estos hallazgos sugieren que necesitamos repensar nuestro enfoque para la curación del conjunto de datos:
- Más datos no siempre son mejores: parece que hay retornos decrecientes a datos más grandes/ modelos más grandes.
- La poda estratégica en realidad puede mejorar los resultados.
- La estrategia óptima depende del tamaño de su conjunto de datos inicial.
A medida que las personas comienzan a sonar la alarma de que nos estamos quedando sin datos, no puedo evitar preguntarme si menos datos son realmente la clave para modelos útiles y rentables.
Tengo la intención de seguir explorando el espacio, comuníquese si encuentra esto interesante, feliz de conectarse y hablar más 🙂