HeadlinesBriefing favicon HeadlinesBriefing.com

Pequeña red comprime datos, atrae al Pentágono

Towards Data Science •
×

No esperaba que apareciera la geometría. Estaba reproduciendo una pequeña parte del artículo de interpretabilidad de Anthropic de 2022, "Modelos de juguete de superposición" [1], principalmente porque la afirmación central sonaba lo suficientemente improbable como para querer verificarla yo mismo en lugar de aceptarla por fe. La afirmación: una red neuronal puede representar más características de las que tiene dimensiones para trabajar, empaquetándolas en ángulos entre sí y tolerando un poco de interferencia.

Pídele que comprima cinco cosas en dos dimensiones bajo las condiciones adecuadas, y no elige dos ganadores y se rinde con el resto. Organiza las cinco en un pentágono perfecto. No tenía PyTorch ni ninguna biblioteca de autograd disponible, ni acceso a Internet para instalar una, así que todo lo siguiente es NumPy puro, y derivé el pase hacia atrás a mano.

Eso resultó ser el tipo correcto de molesto. Derivar los gradientes tú mismo te obliga a entender realmente lo que el modelo está haciendo con los datos, en lugar de confiar en una llamada .backward() en la que nunca has tenido que pensar. Si tienes formación matemática y nunca has derivado manualmente la retropropagación a través de incluso una red pequeña, te lo recomiendo sinceramente como ejercicio.

Son diez minutos de regla de la cadena que hacen que todo lo posterior encaje. Todos los datos en esta publicación son sintéticos. Los genero yo mismo en código, no hay conjunto de datos externo involucrado, que es también como lo hace el artículo original.

Todas las imágenes, salvo que se indique lo contrario, son del autor. El problema que esto intenta explicar: Aquí está el rompecabezas motivador, y es real en la investigación de interpretabilidad. Si miras dentro de una red neuronal entrenada esperando encontrar neuronas individuales que representen limpiamente conceptos individuales, una neurona para "¿es esto un perro?", una para "¿es esto rojo?", principalmente no encuentras eso.

En cambio, encuentras neuronas que parecen responder a varias cosas no relacionadas a la vez, una neurona que se activa tanto para caras de gatos como para frentes de autos, por ejemplo. Esto se llama polisemia, y hace que la interpretabilidad sea mucho más difícil, porque no puedes simplemente leer lo que una red "cree" inspeccionando unidades individuales. La propuesta del artículo es que la polisemia no es ruido o fracaso.

Es una estrategia real que la red usa a propósito, porque tiene más conceptos para representar de los que tiene neuronas para representarlos, y la mayoría de esos conceptos rara vez están activos al mismo tiempo. Si dos características casi nunca están "encendidas" simultáneamente, la red puede permitirse que compartan una dirección en el espacio de activación, ya que la interferencia solo cuesta algo en las raras ocasiones en que ambas coinciden en activarse juntas. Esta estrategia de empaquetado es lo que el artículo llama superposición, y su modelo de juguete está diseñado para ser el entorno más simple posible donde puedes verlo suceder y realmente medirlo.

El modelo, y las matemáticas que tuve que resolver para entrenarlo: La configuración es pequeña a propósito. Tienes n características sintéticas, cada una un número entre 0 y 1 que es cero la mayoría del tiempo (eso es la escasez) y distinto de cero el resto del tiempo. Las comprimes a través de un cuello de botella de m dimensiones ocultas, donde m es menor que n, y luego intentas reconstruir las características originales en la salida a través de una ReLU.

Concretamente, con una única matriz de pesos W de forma (m, n) utilizada tanto para la compresión como para la reconstrucción: h=W⋅x, x̂=ReLU(W⊤⋅h+b). El entrenamiento minimiza un error cuadrático ponderado entre x y x̂, donde cada característica i obtiene un peso de importancia Ii, por lo que se le dice a la red que algunas características importan más para acertar que otras: L=∑i Ii⋅(xi−x̂i)²\m...