Uma rede neural computacional diferenciável (DNC) é um tipo de rede neural artificial aumentada com um banco de memória externo que pode ser lido e gravado de maneira totalmente diferenciável. Diferentemente das redes neurais padrão, que armazenam informações implicitamente em seus pesos e estados ocultos, uma DNC possui uma matriz de memória explícita que pode acessar usando mecanismos de atenção aprendidos. Esse design permite que a rede aprenda a armazenar e recuperar informações ao longo de horizontes de tempo longos, tornando-a adequada para tarefas que envolvem raciocínio algorítmico, resposta a perguntas e manipulação de dados estruturados. A arquitetura foi introduzida por pesquisadores da Google DeepMind em 2016, com base em trabalhos anteriores sobre a máquina neural de Turing.
A principal inovação da DNC é seu acesso diferenciável à memória. O controlador, tipicamente uma rede neural recorrente, emite cabeças de leitura e escrita que produzem distribuições de atenção sobre as localizações de memória. Essas distribuições são calculadas usando funções softmax, o que torna todo o processo de leitura e escrita diferenciável, permitindo que a rede seja treinada de ponta a ponta usando descida de gradiente. A memória é organizada como uma matriz de vetores de valores reais, e o controlador pode gravar novos dados, apagar dados existentes e ler de múltiplas localizações simultaneamente. Para evitar que a rede sobrescreva informações importantes, a DNC também inclui uma matriz de link temporal que rastreia a ordem em que as localizações de memória foram gravadas, permitindo que a rede recorde sequências de operações.
A DNC foi demonstrada em várias tarefas que exigem raciocínio complexo e memória de longo prazo. No artigo original de 2016, os autores treinaram DNCs para responder perguntas sobre histórias, navegar em um labirinto virtual e inferir informações ausentes de grafos. A rede aprendeu com sucesso a copiar sequências de comprimento arbitrário, ordenar listas e realizar travessia de grafos, tarefas difíceis para redes recorrentes padrão. A DNC também mostrou a capacidade de generalizar para tamanhos de entrada maiores do que os vistos durante o treinamento, uma propriedade crucial para tarefas algorítmicas.
Arquitetura e Componentes
A DNC consiste em três componentes principais: um controlador, uma matriz de memória e um conjunto de cabeças de leitura e escrita. O controlador geralmente é uma rede de memória de longo prazo (LSTM) ou uma rede feedforward com conexões recorrentes. A cada passo de tempo, o controlador recebe uma entrada e as saídas das cabeças de leitura do passo de tempo anterior. Ele então produz um conjunto de sinais de controle que determinam como a memória é acessada. Esses sinais incluem a localização de escrita, o conteúdo de escrita, o vetor de apagamento e as localizações de leitura.
A matriz de memória tem dimensões N por M, onde N é o número de localizações de memória e M é o tamanho de cada localização. A cabeça de escrita usa uma combinação de endereçamento baseado em conteúdo e endereçamento baseado em localização. O endereçamento baseado em conteúdo calcula uma similaridade entre a chave de escrita e cada localização de memória, enquanto o endereçamento baseado em localização usa a matriz de link temporal para deslocar a atenção para localizações próximas. As cabeças de leitura operam de maneira semelhante, produzindo pesos de leitura que são usados para calcular uma soma ponderada dos conteúdos de memória.
A matriz de link temporal é uma característica chave da DNC. Ela registra a ordem em que as localizações de memória foram gravadas por último, com entradas indicando se uma localização foi gravada imediatamente após outra. Isso permite que a rede leia a memória em ordem sequencial, o que é essencial para tarefas como copiar uma sequência ou percorrer um grafo. A matriz de link é atualizada a cada passo de tempo com base nos pesos de escrita, e também é usada para calcular um deslocamento para trás e para frente para as cabeças de leitura.
Treinamento e Otimização
A DNC é treinada usando retropropagação padrão através do tempo, com a função de perda tipicamente sendo entropia cruzada ou erro quadrático médio, dependendo da tarefa. Como todas as operações no acesso à memória são diferenciáveis, os gradientes podem fluir através dos mecanismos de atenção e das atualizações de memória. No entanto, treinar uma DNC pode ser desafiador devido ao grande número de parâmetros e à necessidade de inicialização cuidadosa. Os autores usaram uma combinação de recorte de gradiente e um cronograma de taxa de aprendizado para estabilizar o treinamento. Eles também descobriram que usar uma pequena quantidade de ruído durante o treinamento ajudava a rede a generalizar melhor.
Uma das principais dificuldades é que a memória pode ser usada de muitas maneiras diferentes, e a rede deve aprender a alocar memória eficientemente. Para lidar com isso, a DNC inclui uma lista livre que rastreia quais localizações de memória não estão em uso no momento. A cabeça de escrita grava preferencialmente em localizações na lista livre, e após uma escrita, a localização é removida da lista livre até ser lida e então liberada novamente. Esse mecanismo incentiva a rede a reutilizar memória e evita que ela sobrescreva dados importantes.
Aplicações e Limitações
DNCs foram aplicadas a uma variedade de tarefas além das demonstrações originais. Elas foram usadas para síntese de programas, onde a rede aprende a gerar código ou executar programas simples. Também foram exploradas para resposta a perguntas sobre bases de conhecimento, onde a memória pode armazenar fatos e a rede aprende a recuperá-los e combiná-los. No campo do aprendizado de máquina, DNCs são frequentemente citadas como um passo importante em direção a redes neurais que podem realizar raciocínio explícito e manipular dados simbólicos.
No entanto, DNCs têm várias limitações. Elas são computacionalmente caras, pois as operações de acesso à memória exigem tempo O(N^2) por passo devido à matriz de link temporal. Isso torna difícil escalá-las para tamanhos de memória grandes. Elas também têm dificuldade com sequências muito longas, pois a memória pode ficar desordenada e os mecanismos de atenção podem falhar em focar nas localizações corretas. Como resultado, DNCs foram amplamente superadas por outras arquiteturas, como Transformers, que usam autoatenção para acessar informações em toda a sequência de entrada. No entanto, as ideias das DNCs influenciaram trabalhos posteriores sobre redes neurais aumentadas com memória e memória externa em aprendizado profundo.
Relação com Outras Arquiteturas
A DNC é uma extensão da máquina neural de Turing (NTM), que foi introduzida por Alex Graves, Greg Wayne e Ivo Danihelka em 2014. A NTM tinha uma estrutura semelhante, mas carecia da matriz de link temporal e da lista livre, tornando-a menos eficaz em aprender operações sequenciais. A DNC também compartilha similaridades conceituais com redes residuais em que ambas visam melhorar o fluxo de informações, mas operam em domínios diferentes: redes residuais abordam gradientes desaparecendo em redes feedforward profundas, enquanto DNCs abordam memória de longo prazo em redes recorrentes.
No contexto do aprendizado profundo, DNCs fazem parte de uma tendência mais ampla de aumentar redes neurais com componentes externos, como mecanismos de atenção e memória. A atenção de múltiplas cabeças usada em Transformers pode ser vista como uma forma de acesso à memória baseado em conteúdo, mas sem as operações explícitas de escrita e apagamento. DNCs também se relacionam ao aprendizado curricular, pois os autores descobriram que treinar em tarefas de dificuldade crescente ajudava a rede a aprender comportamentos mais complexos.
Legado e Influência
Embora DNCs não sejam amplamente usadas em sistemas de produção hoje, elas tiveram um impacto duradouro no campo da inteligência artificial. Elas demonstraram que redes neurais podem aprender a realizar tarefas algorítmicas que exigem manipulação explícita de memória, algo que antes se pensava estar além do alcance de métodos baseados em gradiente. O conceito de memória diferenciável foi incorporado em vários outros modelos, como redes neurais aumentadas com memória para aprendizado de poucos exemplos e redes neurais computacionais diferenciáveis para raciocínio em grafos. O trabalho também inspirou pesquisa sobre ordenação diferenciável e estruturas de dados diferenciáveis, que têm aplicações em IA generativa e além.
A DNC foi desenvolvida por uma equipe da DeepMind, incluindo Alex Graves, Greg Wayne e outros. Seu artigo, intitulado "Hybrid computing using a neural network with dynamic external memory", foi publicado na Nature em outubro de 2016. O código da DNC foi posteriormente lançado como código aberto, permitindo que pesquisadores experimentassem com a arquitetura. Embora a DNC em si possa ser considerada um marco histórico, seus princípios continuam a informar o design de redes neurais modernas que exigem capacidades de memória de longo prazo e raciocínio.