¡Hola! Una nueva forma de entrenar redes neuronales: basada en un rearrangement de viejas ideas de IA mezcladas con el "save scumming" de los 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 un videojuego guardado y volver a intentar la batalla contra el jefe. ¿Cómo? Toma una época de Último Conocido Bueno (LKG), ENTONCES matas una neurona. Luego reentrenas. A diferencia de Dropout, el daño no es un ruido transitorio durante los lotes. Rompe el modelo DESPUÉS de que mejora.
En Frustración (Ablación [Estocástica] Persistente), el daño es un bache que debe ser evitado y rellenado al mismo tiempo durante la próxima época. 2 estrategias: eliminar todos los pesos (como en una capa oculta) para una neurona, o solo los entrantes (como para un logit de salida).
Probamos con topologías de redes MLP simples, que van desde millones de parámetros hasta cientos, catalogando su "entrenabilidad" en función del ancho (# de neuronas) frente a la profundidad (# de capas). PSA rescató algunos modelos que Dropout y Weight Decay no pudieron: un régimen caótico (en azul).
Esto funciona incluso en diseños defectuosos donde el Problema del Gradiente Desvanecido hace que la retropropagación sea inútil. (¡Lo cual, cuando no tienes conexiones de salto, no son tantas capas!) Además, puedes fragmentar el daño y entrenar múltiples LKGs corruptos a la vez en diferentes GPUs.
El documento refleja la primera prueba de concepto, y sí, toda la idea tiene *muchas* limitaciones. Especialmente lo derrochador que es computacionalmente el mecanismo de trinquete, o que se realizó en el conjunto de datos MNIST (un juguete) y no en ImageNet. ¡Pero buenas noticias! ¡Las primeras pruebas de ResMLP muestran resultados prometedores!
Intentamos ser exhaustivos. Probamos 98 topologías, muchas de ellas con configuraciones de coincidencia de parámetros (diferentes dimensiones, mismo conteo de parámetros resultante). Medimos 3 técnicas de PSA diferentes contra 3 controles, en más de 10 ensayos cada una. Un total de 5,880 ensayos. Reproducible.
Incluso en condiciones donde el Problema del Gradiente Desvanecido debería haber hecho que el entrenamiento fuera imposible (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!
Hay un montón de momentos "aha" geniales aquí. Ten en cuenta que ninguna de las ideas subyacentes es nueva. Solo las hemos organizado de una manera nueva para intentar algo que realmente solo es factible ahora que las GPU son tan potentes.
Trabajo futuro: • Reproducción de las pruebas originales en ResMLP, CNN y Transformers (ResMLP soluciona VGP, pero para topologías patológicas parece que PSA sigue ayudando) • Probarlo en ImageNet <- costoso, pero esta es la verdadera prueba que necesitamos.
Observaciones: • Matar el mismo logit de salida crea consistentemente 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 ceñirnos a ataques estocásticos
¿Por qué es esto valioso? • Si funciona en conjuntos de datos más grandes y arquitecturas de modelos modernos, espero que pueda ser una herramienta valiosa para construir Modelos de Lenguaje Pequeños (SLMs).
GitHub con el documento y el código aquí:
1,4K