¡Hola! Una nueva forma de entrenar redes neuronales: basada en una reorganización de ideas antiguas de IA mezclada con el "save scumming" de videojuegos. Es una forma de forzar un "kick" que puede rescatar ciertos tipos de modelos (especialmente topologías pequeñas o exóticas) cuando están atascados. Ciego. Evolutivo. Presión.
Lo llamo "Frustración": es como reiniciar una partida guardada y volver a intentar la batalla contra el jefe. ¿Cómo? Toma una época del Último Bien Conocido (LKG), ENTONCES matas una neurona. Luego reentrena. A diferencia de Dropout, el daño no es ruido transitorio durante los lotes. Rompemos el modelo DESPUÉS de que mejora.
En Frustración (Ablación Persistente [Estocástica]), el daño es un bache que debe evitarse y rellenarse al mismo tiempo durante la siguiente época. 2 estrategias: eliminar todos los pesos (como en una capa oculta) para una neurona, o solo los que entran (como para un logit de salida).
Probamos con topologías simples de redes MLP, que iban desde millones de parámetros hasta cientos, catalogando su "entrenamiento" en función del ancho (# de neuronas) frente a la profundidad (# de capas). PSA rescató algunos modelos que Dropout & Weight Decay no pudo: un régimen caótico (en azul).
Esto funciona incluso en diseños rotos donde el problema del gradiente nulo hace inútil la retropropagación. (Lo cual, cuando no tienes conexiones de salto, no son tantas capas!) Además, puedes fragmentar el daño y entrenar varios LKG corruptos a la vez entre diferentes GPUs.
El artículo refleja la primera prueba de concepto, y sí, toda la idea tiene *muchas* limitaciones. Especialmente por lo desperdiciador computacional que es el carraquete, o por estar en el conjunto de datos de MNIST (un juguete) y no en ImageNet. ¡Pero buenas noticias! ¡Las primeras pruebas de ResMLP muestran resultados prometedores!
Intentamos ser minuciosos. Probamos 98 topologías, muchas de ellas con configuraciones de coincidencia de parámetros (diferentes dimensiones, mismo conteo de paráminos resultante). Medimos 3 técnicas diferentes de PSA contra 3 controles, más de 10 ensayos cada uno. Un total de 5.880 ensayos. Reproducible.
Incluso en condiciones donde el Problema del Gradiente Nulo debería haber hecho imposible el entrenamiento (como en un MLP simple de 18x18), PSA pudo entrenar atacando los logits de salida en MNIST. ¿No me crees? ¡Pruébalo y verás!
Aquí hay un montón de pequeños momentos chulos de "ajá". Ten en cuenta que ninguna de las ideas subyacentes es nueva. Simplemente los hemos colocado de una forma nueva para probar algo que ahora es realmente viable con las GPUs tan potentes.
Trabajos futuros: • Reproducción de las pruebas originales en ResMLP, CNN y Transformers (ResMLP corrige VGP, pero para topologías patológicas parece que el PSA sigue ayudando) • Probarlo en ImageNet < caro, pero esta es la prueba real que necesitamos.
Observaciones: • Matar el mismo logit de salida de forma consistente crea modelos "anti-expertos", y cuando miras sus matrices de confusión puedes ver la dislexia en acción (matar 2 y la clasificación se desborda a 5, 7 y 8) • No tenemos que limitarnos a ataques estocásticos
¿Por qué es esto valioso? • Si funciona con conjuntos de datos más grandes y arquitecturas de modelos modernas, espero que pueda ser una herramienta valiosa para construir Modelos de Lenguaje Pequeños (SLMs).
GitHub con el artículo y el código aquí:
1.52K