¿Los modelos de aprendizaje automático memorizan o generalizan?
(pair.withgoogle.com)- El grokking observado en modelos pequeños es un fenómeno en el que primero memorizan los datos de entrenamiento y solo después de seguir aprendiendo durante mucho más tiempo empiezan de repente a acertar entradas no vistas, lo que ofrece pistas para distinguir entre memorización y generalización
- El MLP de 1 capa del experimento de suma modular al inicio mostraba pesos ruidosos, pero cuando sube la precisión de prueba forma una estructura periódica y generaliza
- En el experimento con secuencias binarias de 30 dígitos, el modelo que generalizó reduce los pesos de los dígitos finales distractores y se concentra en los primeros 3 dígitos, dejando en evidencia la diferencia entre una solución de memorización y una de generalización
- Las presiones clave de la transición son la minimización de la pérdida y el decaimiento de pesos (weight decay), y aunque la pérdida de prueba parece caer de golpe, internamente los pesos se mueven de forma relativamente suave entre ambas soluciones
- El grokking aparece solo cuando coinciden hiperparámetros como tamaño del modelo, tamaño de los datos y decaimiento de pesos, y sigue abierta la pregunta de si puede interpretarse del mismo modo en modelos grandes
La pregunta que plantea el grokking
- En 2021, investigadores descubrieron en tareas de juguete que modelos pequeños, aun después de acertar los datos de entrenamiento, seguían durante un tiempo sin acertar los datos de prueba y solo tras entrenar más tiempo de repente generalizaban
- A este fenómeno se le llama grokking, y se refiere a una dinámica de aprendizaje en la que la generalización aparece mucho después de ajustar los datos de entrenamiento
- Los modelos de lenguaje grandes pueden parecer que entienden el mundo, pero también podrían estar memorizando y repitiendo parte del enorme volumen de texto con el que fueron entrenados
- Empezar con modelos pequeños facilita construir intuición sobre técnicas de interpretación que no se pueden aplicar directamente a los modelos más grandes de hoy
- El enfoque consiste en observar el proceso de aprendizaje de modelos pequeños y hacer ingeniería inversa de la solución encontrada por el modelo para mostrar un ejemplo de interpretabilidad mecánica
La estructura periódica que aparece en la suma modular
- La suma modular se usa como una tarea pequeña donde es fácil observar grokking
- Dadas dos entradas
a,by un módulo, el problema consiste en predecira + busando aritmética modular - El experimento de ejemplo usa números del 0 al 66, y 67 se eligió para que la visualización no resultara demasiado simple ni demasiado compleja
- Dadas dos entradas
- El modelo del experimento es un MLP de 1 capa con 24 neuronas
- Todos los pares
a, bse dividen aleatoriamente entre datos de entrenamiento y datos de prueba - Los datos de entrenamiento se usan para ajustar los pesos del modelo, y los de prueba solo para verificar si aprendió una solución general
- Todos los pares
- El modelo selecciona y suma las columnas de embedding correspondientes a las entradas
ayb, convierte los valores negativos en 0 y usa como predicción la columna más cercana de la matriz de salida - Al inicio del entrenamiento los pesos tienen mucho ruido, pero cuando la precisión de prueba sube y el modelo generaliza aparecen patrones periódicos
- Al final del entrenamiento, cada neurona alterna varias veces entre valores altos y bajos mientras el número de entrada aumenta de 0 a 66
- Si se agrupan las neuronas según su frecuencia periódica final, este patrón se vuelve más claro
- Esta periodicidad sugiere que el modelo está aprendiendo alguna estructura matemática, y coincide con el momento en que empieza a resolver ejemplos de prueba
Memorización y generalización vistas en una tarea de 0 y 1
- Un experimento todavía más simple consiste en predecir si el número de unos en los primeros 3 dígitos de una secuencia binaria de longitud 30 es impar
- Por ejemplo, si empieza con
000...puede ser 0, y si empieza con010...puede ser 1 - En esencia, es un problema XOR un poco más difícil, y las posiciones del final son ruido distractor
- Por ejemplo, si empieza con
- Un modelo que generaliza debería usar solo los primeros 3 dígitos
- Un modelo que memoriza los datos de entrenamiento también usa las posiciones distractoras del final
- Este experimento también usa un MLP de 1 capa y se entrena con 1,200 secuencias fijas
- Al principio solo aumenta la precisión de entrenamiento, mientras la precisión de prueba se mantiene cerca del azar
- Después la precisión de prueba sube bruscamente y aprende la solución general
- Un modelo que está memorizando muestra pesos densos, ruidosos y de gran magnitud distribuidos sobre muchas entradas
- Cuando termina de generalizar, los pesos conectados a las posiciones distractoras se vuelven muy bajos y el modelo se concentra en las entradas de los primeros 3 dígitos
Cómo el decaimiento de pesos empuja hacia una solución que generaliza
- Durante el entrenamiento, el modelo recibe al mismo tiempo dos presiones
- Debe reducir la pérdida (loss) para asignar alta probabilidad a las etiquetas correctas
- También está bajo el efecto del decaimiento de pesos para mantener bajos los valores de los pesos
- En la tarea binaria, justo antes de que el modelo generalice, la pérdida de entrenamiento aumenta ligeramente
- Esto ocurre porque renuncia a parte de la pérdida que ayudaría a subir la probabilidad correcta, para moverse hacia una solución con pesos más bajos
- La caída repentina de la pérdida de prueba hace parecer que el modelo cambia de golpe a la generalización
- Pero si se observan los pesos durante el entrenamiento, la mayoría interpola suavemente entre la solución de memorización y la de generalización
- La generalización rápida ocurre cuando los últimos pesos conectados a las posiciones distractoras son eliminados por el decaimiento de pesos
Condiciones en las que aparece el grokking
- El grokking no es un fenómeno que aparezca siempre, sino uno dependiente de las condiciones, como el tamaño del modelo, el decaimiento de pesos y el tamaño de los datos
- Si el decaimiento de pesos es demasiado bajo, el modelo no logra salir del sobreajuste a los datos de entrenamiento
- Si se aumenta más el decaimiento, el modelo primero memoriza y luego generaliza
- Si se aumenta todavía más, la pérdida de prueba y la de entrenamiento bajan juntas y el modelo generaliza de inmediato
- Con un decaimiento excesivo, el modelo no aprende nada
- En la tarea binaria se entrenaron más de 1,000 modelos con distintos hiperparámetros y, para tener en cuenta el ruido del entrenamiento, se entrenaron 9 modelos por cada combinación de hiperparámetros
Una solución de suma modular construida con cinco neuronas
- La suma modular es un problema periódico en el que, cuando la suma supera 67, vuelve a empezar
- Si se colocan los números de entrada como puntos sobre un círculo, esa periodicidad puede incorporarse directamente en la estructura del modelo
- Se calculan valores
sinycospara cada número de entrada posible y así se construye la matriz de embeddings
- Se calculan valores
- En un MLP de 1 capa con este punto de partida, si solo se entrenan algunas matrices, se encuentra una solución de precisión perfecta con apenas 5 neuronas
- Al mirar los parámetros entrenados, las neuronas convergen a magnitudes casi iguales, y al graficar los componentes
sinycosquedan ubicadas casi uniformemente sobre el círculo - Si se conectan neuronas adyacentes, aparece un patrón en el que el lado de
unembeddinggira alrededor del círculo al doble de velocidad que el lado de embedding - Esta configuración ofrece una solución de 20 parámetros para resolver la suma modular
El mismo algoritmo dentro de un MLP grande de 1 capa
- El modelo inicial de 3,216 parámetros se entrena desde cero y empieza sin una periodicidad incorporada
- A diferencia de la pequeña solución construida, este modelo usa varias frecuencias
- Con la transformada discreta de Fourier (DFT) se pueden separar los patrones periódicos aprendidos a lo largo de las entradas
- Para cada neurona se obtienen valores
sinycospara cada frecuencia periódica posible del 1 al 33 - Las neuronas pueden agruparse según la frecuencia con el mayor valor de
sinycos
- Para cada neurona se obtienen valores
- A medida que el modelo generaliza, el decaimiento de pesos hace esta representación más dispersa
- Si se agrupan las neuronas por su frecuencia final y se grafican los componentes DFT, aparece la forma de estrella observada en la configuración de cinco neuronas
- El modelo entrenado usa el mismo algoritmo que la solución construida
- Si se observa la contribución de salida de cada grupo de neuronas por frecuencia, se forma una onda que corresponde al cálculo de
a + b mod 67 - Cuando mejora la pérdida de prueba, después de un breve estancamiento cerca del paso 45,000, el grupo de neuronas de frecuencia 7 se alinea en forma de estrella y la salida se parece más a la onda
- Si se observa la contribución de salida de cada grupo de neuronas por frecuencia, se forma una onda que corresponde al cálculo de
- El modelo usa varias frecuencias para reducir la pérdida sin recurrir a pesos más grandes, aprovechando la interferencia constructiva
- Las frecuencias 4, 5, 7 y 26 no son especiales en sí mismas; en otras ejecuciones de entrenamiento se aprenden variantes de este algoritmo
Preguntas que siguen abiertas
- Entrenar directamente un modelo con la forma
W = W_L W_Rno produce generalización en aritmética modular, incluso si se añade decaimiento de pesos- Al menos una de las matrices debe estar factorizada (factoring)
- Después de la DFT, la solución que generaliza es dispersa, pero la matriz combinada tiene una norma grande
- Aplicar decaimiento de pesos directamente a
WyUno proporciona el sesgo inductivo adecuado para esta tarea
- El decaimiento de pesos puede alejar a distintos modelos de la memorización de los datos de entrenamiento
- Otras técnicas para evitar el sobreajuste incluyen dropout, modelos más pequeños y algoritmos de optimización numéricamente inestables
- Estos enfoques interactúan de forma compleja y no lineal, por lo que es difícil predecir de antemano qué configuración inducirá generalización
- Una teoría sobre por qué la memorización ocurre antes que la generalización es que puede haber muchas más maneras de memorizar el conjunto de entrenamiento que de encontrar una solución que generalice
- Sin regularización, o con una regularización débil, estadísticamente es más probable que primero aparezca la memorización
- Técnicas de regularización como el decaimiento de pesos priorizan ciertos tipos de soluciones, como las dispersas, por encima de las densas
- Una representación bien estructurada puede estar relacionada con la generalización, pero no es ni condición necesaria ni suficiente
- Algunas variantes de MLP sin entradas simétricas aprenden representaciones menos circulares al resolver suma modular
- Algunos modelos pequeños entrenados sin decaimiento de pesos empiezan a generalizar, pero luego vuelven a la memorización aun conservando embeddings periódicos
- Con ciertos hiperparámetros incluso puede darse una transición de generalización → memorización → generalización
Interpretabilidad que se extiende a modelos más grandes
- El grokking se observó en tareas algorítmicas con Transformers pequeños y MLP, y después también se encontró dentro de ciertos rangos de hiperparámetros en tareas más complejas con imágenes, texto y datos tabulares
- Es posible que los modelos más grandes, capaces de realizar muchos tipos de tareas, estén haciendo grokking de varias cosas a distintas velocidades durante el entrenamiento
- También existen trabajos que buscan predecir el grokking antes de que ocurra realmente
- Algunos métodos requieren conocer la solución general o el dominio completo de los datos
- Otros usan solo el análisis de la pérdida de entrenamiento y podrían aplicarse a modelos más grandes
- Un camino a futuro es reutilizar repetidamente modelos más simples
- Entrenar modelos simples con un sesgo inductivo más fuerte y menos piezas móviles
- Usarlos para explicar las partes difíciles de interpretar de modelos grandes
- Repetir el proceso cuando sea necesario
- Este enfoque de interpretabilidad mecánica puede ayudar a identificar o automatizar patrones que revelen los algoritmos aprendidos por las redes neuronales
1 comentarios
Opiniones en Hacker News
Creo que la razón por la que la memoria humana es asombrosa es que, aunque no tiene tanta capacidad de almacenamiento como una máquina, posee la capacidad de compresión de patrones, que reduce mucho la información antes de guardarla.
Luego vuelve a agrupar esos patrones con otros patrones y los comprime, y de ahí extrae algo; es una compresión con pérdida enorme, pero cumple su propósito.
El cerebro más bien destila activamente el conocimiento que no necesita memorizar literalmente en sus elementos esenciales, evitando el sobreajuste y obteniendo “intuición y comprensión generalizadas”.
Referencia: https://www.scientificamerican.com/article/new-estimate-boosts-the-human-brain-s-memory-capacity-10-fold/
https://youtu.be/hpTCZ-hO6iI
El límite superior es técnicamente “infinito”, pero existe una relación de compromiso entre la cantidad de conceptos almacenados y la cantidad fundamental de información que se puede almacenar por concepto, similar a otros principios de compromiso como el principio de incertidumbre.
No sé si los cerebros de los animales funcionan igual, pero sospecho que son principalmente algoritmos de compresión para predicción y que no almacenan muchos datos en sí.
La geometría es buena para este tipo de entrenamiento y también suele ser útil en demostraciones de física.
La clave parece ser que el decaimiento de pesos induce esparsidad y ayuda a aprender representaciones “reales” en lugar de representaciones sobreajustadas.
En el cerebro humano también aparece ampliamente un mecanismo que se ve parecido durante el desarrollo: la poda sináptica. Me gustaría escuchar a alguien experto en el área decir si esto inspiró el decaimiento de pesos o, más directamente, la poda de redes neuronales.
La razón por la que funciona el decaimiento de pesos es que, cuando se aplica como regularización, acerca la red a la longitud mínima de descripción (MDL) y reduce el regret durante el entrenamiento. Tiene cierta relación con la poda del cerebro, pero el cerebro parece usar la esparsidad fundamentalmente para inducir representaciones, no para compresión, así que en la práctica es un motivo distinto. Basta pensar en los sesgos implícitos de distintas representaciones y en sus efectos posteriores sobre las representaciones aprendidas o aprendibles.
Pero la mejor cura para el sobreajuste es agrandar el dataset y asegurar diversidad de datos. Los LLM suelen entrenarse solo una época porque sus datasets son enormes.
La regularización L1 genera mucha más esparsidad, pero su rendimiento no es tan bueno.
En el ámbito de la IA están arruinando la palabra grok.
Originalmente significa más o menos “entender completa e íntegramente”, así que usar la misma palabra para generalización significa que no han grokkeado el grokking.
También se discutió en los comentarios de un post que proponía llamar a este fenómeno “recuperación final del sobreajuste”: https://www.lesswrong.com/posts/GpSzShaaf8po4rcmA/qapr-5-grokking-is-maybe-not-that-big-a-deal
Sus connotaciones van desde “beber profundamente”, literal o metafóricamente, hasta consumir el cadáver ausente de un ser amado. Recomiendo mucho Stranger in A Strange Land, y conviene elegir la reedición íntegra de alrededor de 1990.
Parece bastante razonable porque evoca los elementos de comprensión intuitiva y de un aumento repentino y grande de la comprensión, y eso también se parece al cambio que ocurre en la pérdida.
No sé si recuerdo bien, pero en la entrevista de Mindscape a Raphaël Millière creo que decía que, cuando los modelos de aprendizaje automático tienen muchas dimensiones, la distinción entre interpolación y extrapolación no es tan clara como en los dominios en los que solemos razonar.
No estoy seguro de si esto se parece a lo que trata este artículo.
Me da curiosidad cómo se hicieron esos gráficos.
Parece que los habrán generado más o menos a medias con alguna biblioteca y luego los pulieron a mano, pero los SVG animados generados son hermosos.
También hay algunas bibliotecas pequeñas para cosas como anotaciones, mezclar SVG y canvas, y hacer que d3 sea menos verboso.
https://github.com/PAIR-code/ai-explorables/tree/master/source/grokking
https://1wheel.github.io/swoopy-drag/
https://github.com/gka/d3-jetpack
https://roadtolarissa.com/hot-reload/
Si te interesan los detalles de este tema, conviene leer el artículo en una computadora. Hay datos de visualización que no se pueden explorar en móvil.
Primero que nada, es una buena entrada de blog con muchos ejemplos excelentes, y me recordó al viejo distill.pub.
Como dice correctamente el artículo, normalmente al usar decaimiento de pesos L2 se generan muchos pesos de magnitud pequeña. Si uno quiere un modelo que generalice mejor, me pregunto si siempre convendría usar decaimiento de pesos L1 para fomentar la escasez y entrenar durante más tiempo. También me pregunto si un modelo de deep learning que use solo características de Fourier dispersas, en lugar de capas lineales densas, podría funcionar mejor.
La respuesta larga es que los modelos de deep learning normalmente intentan encontrar la base no lineal óptima para representar la entrada. Si la entrada puede expresarse bien, es decir, de forma dispersa, en alguna base conocida de antemano, normalmente ayuda proyectarla sobre esa base, como al aplicar una FFT a una señal de RF. Sin embargo, la base óptima global puede diferir de la base de cualquier mínimo local, así que hace falta algún truco para empujar la red en esa dirección.
Me pregunto qué tan representativa es la función objetivo.
Es común querer que el modelo aprenda las partes importantes de la entrada, pero que solo preste atención a los primeros tres bits de una cadena de bits se siente bastante artificial. No sé si entrenaron con 4,8 millones de muestras una tabla de verdad cuyo tamaño relevante de parámetros es 8, o si estoy entendiendo algo mal.
La razón para usar una tarea simple es poder interpretar qué está ocurriendo internamente cuando pasa algo así.
No había un feed de descubrimiento automático RSS/Atom en el HTML, ni un enlace al feed RSS, pero pude encontrar el feed RSS de “Explorables” adivinando posibles nombres y ubicaciones del feed: https://pair.withgoogle.com/explorables/rss.xml
Parece una célula de cuadrícula.
https://en.wikipedia.org/wiki/Grid_cell
Si se trazara el mapa de calor de las neuronas de la capa oculta en un gráfico 2D con $a$ en un eje y $b$ en el otro, creo que aparecería una cuadrícula triangular. Si funciona como imagino, al mirar otra neurona oculta aparecería otra cuadrícula con distinta orientación y escala. Uniéndolas también se podría construir un sumador en base 67. Además, me cuesta sacarme de la cabeza la intuición de que la relación entre las neuronas W_in-proj y la relación entre las neuronas W_out-proj se parecen al mapeo entre el círculo cromático y el círculo de quintas.
https://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Pitch_class_space_star.svg/220px-Pitch_class_space_star.svg.png