HeadlinesBriefing favicon HeadlinesBriefing.com

Rede minúscula comprime dados, atrai o Pentágono

Towards Data Science •
×

Eu não esperava que a geometria aparecesse. Eu estava reproduzindo uma pequena parte do artigo de interpretabilidade de 2022 da Anthropic, "Toy Models of Superposition" [1], principalmente porque a afirmação central parecia implausível o suficiente para eu querer verificar por mim mesmo em vez de aceitar por fé. A afirmação: uma rede neural pode representar mais características do que tem dimensões para trabalhar, empacotando-as em ângulos entre si e tolerando um pouco de interferência.

Peça para comprimir cinco coisas em duas dimensões sob as condições certas, e ela não escolhe dois vencedores e desiste do resto. Ela organiza todas as cinco em um pentágono perfeito. Eu não tinha PyTorch nem nenhuma biblioteca autograd disponível, nem acesso à internet para instalar uma, então tudo abaixo é NumPy puro, e eu derivei a passagem para trás manualmente.

Isso acabou sendo o tipo certo de irritante. Derivar os gradientes você mesmo força você a realmente entender o que o modelo está fazendo com os dados, em vez de confiar em uma chamada .backward() na qual você nunca teve que pensar. Se você tem formação em matemática e nunca derivou manualmente a retropropagação através de até mesmo uma pequena rede, eu genuinamente recomendo como exercício.

São dez minutos de regra da cadeia que fazem tudo subsequente clicar. Todos os dados neste post são sintéticos. Eu mesmo os gero em código, não há conjunto de dados externo envolvido, que é também como o artigo original faz.

Todas as imagens, salvo indicação em contrário, são do autor. O problema que isso está tentando explicar: Aqui está o quebra-cabeça motivador, e é real na pesquisa de interpretabilidade. Se você olhar dentro de uma rede neural treinada esperando encontrar neurônios individuais que representem claramente conceitos individuais, um neurônio para "isto é um cachorro", um para "isto é vermelho", você principalmente não encontra isso.

Em vez disso, você encontra neurônios que parecem responder a várias coisas não relacionadas ao mesmo tempo, um neurônio que dispara tanto para rostos de gatos quanto para frentes de carros, digamos. Isso é chamado de polissemia, e torna a interpretabilidade muito mais difícil, porque você não pode simplesmente ler o que uma rede "acredita" inspecionando unidades individuais. A proposta do artigo é que a polissemia não é ruído ou falha. É uma estratégia real que a rede usa de propósito, porque tem mais conceitos para representar do que neurônios para representá-los, e a maioria desses conceitos raramente está ativa ao mesmo tempo.

Se duas características quase nunca estão "ligadas" simultaneamente, a rede pode se dar ao luxo de deixá-las compartilhar uma direção no espaço de ativação, já que a interferência só custa algo nas raras ocasiões em que ambas disparam juntas. Essa estratégia de empacotamento é o que o artigo chama de superposição, e seu modelo de brinquedo é projetado para ser o cenário mais simples possível onde você pode vê-la acontecer e realmente medi-la. O modelo, e a matemática que tive que resolver para treiná-lo: A configuração é pequena de propósito.

Você tem n características sintéticas, cada uma um número entre 0 e 1 que é zero na maioria das vezes (isso é a esparsidade) e diferente de zero no resto do tempo. Você as comprime através de um gargalo de m dimensões ocultas, onde m é menor que n, e então tenta reconstruir as características originais na saída através de uma ReLU. Concretamente, com uma única matriz de pesos W de forma (m, n) usada tanto para a compressão quanto para a reconstrução: h=W⋅x, x̂=ReLU(W⊤⋅h+b).

O treinamento minimiza um erro quadrático ponderado entre x e x̂, onde cada característica i recebe um peso de importância Ii, então a rede é informada de que algumas características importam mais para acertar do que outras: L=∑i Ii⋅(xi−x̂i)²\m...