Implementando Memória Associativa
Escrito por Shashata Sawmya e Harveer Singh
Com o advento das grandes redes neurais e os avanços tecnológicos cada vez maiores que levam os métodos atuais ao seu limite absoluto, o foco tem sido criar uma ferramenta abrangente que pretende fazer tudo. No entanto, a maioria das tarefas não precisaria de redes profundas incrivelmente intensivas, mas ainda algo mais versátil do que modelos matemáticos básicos. Uma tarefa potencial que não precisaria da intensidade de redes neurais profundas seria o armazenamento e recuperação de informações chamadas memórias associativas. A ideia aqui é que, dada alguma entrada, gostaríamos de poder recuperar uma saída relacionada de um sistema que associa essas duas e as mantém na “memória”. O nome memória associativa decorre do conceito psicológico de nosso cérebro ser um sistema de armazenamento de memória capaz de vincular conceitos. Um tipo de memória associativa é a memória autoassociativa, na qual fornecemos uma representação parcial de nossa saída desejada como entrada, podendo ser a saída com ruído adicionado ou partes da saída mascaradas. Um exemplo desse tipo de memória em ação seria ver uma imagem parcial de um parente e seu cérebro ser capaz de preencher automaticamente o restante da imagem mentalmente. Outro tipo é a memória heteroassociativa, na qual as saídas podem ser de diferentes categorias da entrada fornecida, mas o modelo se lembra de ligá-las. Imagine ouvir a palavra “cachorro”, seu cérebro é capaz de associá-la automaticamente a outros conceitos como “gato” ou “coleira” [1]. Um exemplo desse tipo de memória em ação seria ver uma imagem parcial de um parente e seu cérebro ser capaz de preencher automaticamente o restante da imagem mentalmente. Outro tipo é a memória heteroassociativa, na qual as saídas podem ser de diferentes categorias da entrada fornecida, mas o modelo se lembra de ligá-las. Imagine ouvir a palavra “cachorro”, seu cérebro é capaz de associá-la automaticamente a outros conceitos como “gato” ou “coleira” [1]. Um exemplo desse tipo de memória em ação seria ver uma imagem parcial de um parente e seu cérebro ser capaz de preencher automaticamente o restante da imagem mentalmente. Outro tipo é a memória heteroassociativa, na qual as saídas podem ser de diferentes categorias da entrada fornecida, mas o modelo se lembra de ligá-las. Imagine ouvir a palavra “cachorro”, seu cérebro é capaz de associá-la automaticamente a outros conceitos como “gato” ou “coleira” [1].
Os sistemas AM (memória associativa) têm uma história rica, mas existem marcos importantes de pesquisa que podem fornecer uma visão geral dos avanços técnicos:
- Rede de Willshaw (Willshaw et al, 1969)
- Rede Hopfield (Hopfield, 1982)
Inspirado pelas propriedades “semelhantes à memória” dos hologramas, em 1969 DJ Willshaw propôs o correlelografo, ou correlograma, e uma abordagem quantitativa da memória associativa.
A figura acima demonstra a convolução dos padrões A e B para criar um novo padrão em C, mais especificamente A e B contêm orifícios dos quais uma fonte de luz (atrás de A) passa para criar um padrão em C que contém informações sobre ambos os padrões de pinholes. A partir disso, veja a figura 2 abaixo, criar orifícios de alfinetes a partir do padrão projetado em C e passar a emissão de luz por trás de C e através de B produz exatamente o mesmo padrão onde os orifícios de A estão localizados.
Durante a construção do correlógrafo, Willshaw notou que se A e B contivessem N pinholes, então o padrão em C seria de tamanho N². Isso levou à proposta da rede associativa, uma interseção de N linhas paralelas (representando A) e N linhas paralelas (representando B).
A construção da rede segue que cada semicírculo no espaço N² é ativado se as entradas esquerda e direita também estiverem ativadas, representando sua associação uma com a outra. Você pode recuperar o padrão A de B seguindo os círculos do lado esquerdo e vendo a quais círculos do topo eles estão associados, vendo quais dos pontos N² estão ativados. É claro que isso funcionaria facilmente com apenas uma associação de pares, mas também é possível aprender vários padrões na mesma rede. Willshaw mostra que o máximo teórico de eficiência da rede é quando 50% dos pontos N² estão ligados, isso diminui a probabilidade de um “acerto espúrio” — sugerindo um ponto em A que não estava originalmente associado ao padrão B [2 ].
Rede Hopfield
Seguindo naturalmente a rede associativa, a principal inovação que estimulou o design moderno de AM ocorreu em 1982, quando John Hopfield, muitas vezes referido como o padrinho das redes neurais, propôs sua rede hopfield. A rede é uma rede totalmente conectada com cada neurônio estando em um estado binário (0 ou 1) e o peso dado entre o valor de entrada e o valor de saída desejado é representado em uma matriz de peso.
Se Tij é a matriz de peso correspondente, então a associação é obtida por:
Onde U em um valor de corte escolhido de forma inteligente para melhorar a precisão.
Para armazenar vários estados de associação, o seguinte algoritmo é fornecido:
Impomos a restrição de que para i=j, o peso é 0 em T. Isso leva à pseudo-ortogonalidade de:
Isso sugere que se Vi for 1, o valor previsto para J é positivo e negativo se for 0. Isso segue a regra de associação anterior em que U é 0.
Esse algoritmo de aprendizado essencialmente calcula a média dos estados estáveis para cada padrão, mas isso força quantos padrões uma determinada rede pode lembrar. Inspirado nos modelos de Ising e minimização de energia, Hopfield propõe que este mecanismo de atualização seja interpretado como minimização de energia. Para uma rede recorrente de N nós, todos os nós estão conectados uns aos outros, pegamos um nó aleatório por vez e usamos a matriz de peso para atualizar esse nó.
Onde s é o número do nó e o valor entre parênteses é o intervalo de tempo.
Ao estudar os pontos estáveis, o algoritmo de atualização é definido por esta regra de energia:
Isso sugere que qualquer alteração em Vi diminui a energia da rede, desde que a alteração em Vi (+ ou -) corresponda ao sinal de saída da multiplicação da matriz.
Os nós são atualizados de forma assíncrona e aleatória seguindo a regra de energia e o limite fornecido. Um estado de energia estável é garantido, pois a regra de atualização só altera um neurônio se diminuir a energia a cada intervalo de tempo. Ao determinar quantos estados estáveis podem existir, foi mostrado que cerca de 0,15N estados existem para N neurônios no modelo, uma escala estritamente o(N) [3]. Também é importante notar que a estrutura desse tipo de rede é propícia ao sucesso em tarefas autoassociativas, mas existem variações como codificações “vetor-matriz-vetor” que também podem implementar memória heteroassociativa [4].
Teorias biológicas
Uma ideia-chave que impulsiona todos os modelos mencionados acima é promover uma conexão se um neurônio corresponder ao padrão que está sendo correspondido. Esse estilo de aprendizado é conhecido como “aprendizagem hebbiana”, que promove uma conexão nas sinapses se os dois neurônios dispararem juntos. Embora a formação da memória no cérebro ainda seja um fenômeno desconhecido, foi demonstrado em laboratório que essa ideia de “disparar fio junto” tem sido biologicamente correta [5].
Implementando memória associativa in silico
A memória associativa é um tipo de memória que permite o armazenamento e a recuperação de informações com base nas relações ou associações entre diferentes partes de dados. O desenvolvimento de modelos computacionais para tal sistema é um problema bem estabelecido na interseção da neurociência e da inteligência artificial. Métodos bem estudados, como redes Hopfield, só podem armazenar padrões binários; no entanto, dados complexos (como imagens e textos) requerem sistemas complexos para resolver o problema.
Métodos baseados em energia são bons modelos computacionais para memória associativa?
Quase todos os modelos de memória associativa baseados em energia armazenam padrões nos mínimos locais de uma função de energia. A ideia principal por trás desses modelos é definir um cenário de energia, onde os padrões armazenados correspondem a estados estáveis com baixa energia. A função de energia é projetada para ter múltiplos mínimos locais, cada um representando um padrão armazenado. Quando o sistema recebe uma entrada, ele atualiza iterativamente seu estado para minimizar a função de energia, eventualmente convergindo para o padrão armazenado mais próximo, que é o mínimo local mais próximo da entrada. Alguns modelos baseados em energia são -
Redes Hopfield [2]: A função de energia nas redes Hopfield é definida como uma função quadrática do estado da rede. Cada padrão armazenado corresponde a um mínimo local desta função de energia. A dinâmica da rede garante que o sistema irá convergir para um desses mínimos locais, recuperando efetivamente o padrão associado.
Máquinas de Boltzmann [6]: Nas máquinas de Boltzmann, a função de energia é definida em termos dos estados dos nós e dos pesos das conexões entre eles. O processo de aprendizagem ajusta os pesos para criar uma paisagem de energia com mínimos locais que correspondem aos padrões armazenados. O sistema então usa dinâmica estocástica para explorar a paisagem de energia e se estabelecer em um mínimo local, recuperando o padrão correspondente.
Abordagens baseadas na teoria de campo médio [7]: Essas abordagens também armazenam padrões nos mínimos locais de uma função de energia. Ao aproximar a dinâmica de um sistema complexo com a teoria do campo médio, os processos de aprendizado e recuperação podem ser analisados e otimizados com mais eficiência.
Esses modelos tradicionais podem lidar com dados de imagem em pequena escala, mas podem ter problemas com imagens maiores e mais complexas devido às suas limitações de capacidade, escalabilidade e complexidade computacional.
A interpolação sozinha pode implementar memória associativa?
A memorização requer que o modelo recupere os dados de treinamento, enquanto a interpolação é a capacidade de ajustar os dados de treinamento perfeitamente. Portanto, a interpolação sozinha não pode implementar a memória associativa. A interpolação pode ser uma técnica útil para aproximar valores entre pontos de dados conhecidos, mas não é suficiente para implementar um sistema de memória associativa completo. Os modelos de memória associativa são projetados para armazenar e recuperar padrões com base em suas associações, geralmente identificando o padrão armazenado mais próximo de uma determinada entrada, mesmo que a entrada seja ruidosa ou incompleta.
Embora a interpolação possa ser usada para estimar valores entre pontos de dados conhecidos, ela não é inerentemente projetada para lidar com ruído, informações incompletas ou reconhecimento de padrões. Métodos de interpolação, como interpolação linear ou polinomial, dependem da suposição de que a função subjacente é suave ou tem uma forma específica, o que pode não ser verdade para muitos problemas de memória associativa do mundo real.
Um método alternativo para memória associativa — sobreparametrização?
A sobreparametrização refere-se a uma situação em que um modelo de aprendizado de máquina possui um grande número de parâmetros (pesos e vieses) em comparação com o tamanho do conjunto de dados de treinamento. Em outras palavras, o modelo é mais complexo do que o necessário para explicar ou capturar os padrões subjacentes nos dados. Foi observado anteriormente que modelos superparametrizados podem interpolar os dados; um estudo recente de Radhakrishnan et al. 2020 [8] mostrou que autoencoders sobreparametrizados também podem ser usados para memorizar e recuperar exemplos de treinamento. O mecanismo é notavelmente simples; — os exemplos podem ser
recuperado simplesmente iterando o mapa aprendido.
Codificadores automáticos! Também sobreparametrizado! Quem são esses?
Um autoencoder é um tipo de rede neural artificial usada para aprendizado não supervisionado de representações de dados eficientes, geralmente com o objetivo de redução de dimensionalidade, aprendizado de recursos ou compactação de dados. Consiste em duas partes principais: o codificador e o decodificador.
O objetivo do treinamento de um autoencoder é minimizar o erro de reconstrução entre os dados de entrada e os dados reconstruídos, que é gerado passando a entrada pelo codificador e depois pelo decodificador.
Simplificando, um autoencoder superparametrizado é um autoencoder com um grande número de parâmetros. Adita et. al. mostraram que autoencoders sobreparametrizados armazenam exemplos de treinamento como pontos fixos ou atuadores. No entanto, ele também aprende o mapa de identidade f(x) = x
Isso é uma desvantagem para a associatividade porque uma pré-condição dela é que a derivada nos exemplos deve ser menor que 1. Adit et. al. 2020trabalhou com a premissa de que os autoencoders superparametrizados são poderosos o suficiente para implementar a memória associativa. Eles mostraram em seu trabalho que autoencoders sobreparametrizados podem ser usados como uma “Memória Associativa baseada em Attractor”. A ideia central por trás dos sistemas baseados em atratores é que a rede deve ser capaz de recuperar um padrão armazenado quando recebe uma versão incompleta ou ruidosa desse padrão. O padrão de entrada serve como uma sugestão, e a dinâmica da rede guia o sistema em direção ao atrator mais próximo, efetivamente “limpando” o ruído ou preenchendo as informações que faltam – basta colocar que o OPA pode implementar memória associativa. As condições matemáticas para ser uma memória associativa baseada em atratores são -
- Os exemplos devem ser pontos fixos.
- Derivadas em exemplos devem ser menores que 1.
Isso realmente acontece?
O artigo fornece ampla evidência empírica de que atratores podem ser encontrados em autoencoders em várias arquiteturas e técnicas de otimização. Os autores demonstraram com sucesso um autoencoder superparametrizado capaz de armazenar 500 imagens do conjunto de dados ImageNet-64 como atratores. Eles confirmaram que todas as 500 imagens de treinamento foram de fato armazenadas como atratores examinando os autovalores da matriz jacobiana para cada exemplo. O estudo também analisou a taxa na qual os exemplos de treinamento podem ser recuperados sob diferentes formas de corrupção, revelando uma taxa de recuperação impressionantemente alta.
Experimentos posteriores mostraram que os autoencoders também podem armazenar exemplos de treinamento como atratores quando treinados com 2.000 imagens do conjunto de dados MNIST e 1.000 imagens em preto e branco do conjunto de dados CIFAR10. Embora atratores espúrios (atratores que não sejam exemplos de treinamento) possam potencialmente existir em autoencoders superparametrizados, os pesquisadores não conseguiram identificar nenhum desses atratores espúrios em seu exemplo ImageNet-64.
Os autores conduziram uma análise abrangente do fenômeno do atrator, examinando várias arquiteturas comuns, métodos de otimização e esquemas de inicialização. Estes incluíram uma variedade de não linearidades, métodos de otimização e esquemas de inicialização. Suas descobertas revelaram que os atratores surgiram em todos os cenários em que o treinamento convergiu para uma perda suficientemente baixa em 1.000.000 de épocas. Significativamente, esse fenômeno não se limitou a redes totalmente conectadas, mas também foi observado em arquiteturas de rede amplamente utilizadas, como redes convolucionais e recorrentes.
Significativamente, esse fenômeno não se limitou a redes totalmente conectadas, como também foi observado em arquiteturas de rede amplamente utilizadas, como redes convolucionais e recorrentes. Para visualizar os atratores 2D, eles treinaram um autoencoder para armazenar seis exemplos de treinamento como atratores e visualizaram suas bacias de atração iterando o mapa do autoencoder treinado, partindo de 10.000 pontos de grade até a convergência. O campo vetorial no experimento indica a direção do movimento dada pela iteração. Cada exemplo de treinamento e sua bacia de atração correspondente são representados por cores diferentes. Curiosamente, o estudo revelou que a métrica aprendida pelo autoencoder para separar as bacias de atração não é a distância euclidiana, que seria indicada por um diagrama de Voronoi.
A codificação de sequência mostra melhores resultados do que a codificação automática.
Alterar ligeiramente a função objetiva dos autoencoders resulta na implementação de memórias associativas. Os pesquisadores mostraram que minimizar a função de perda para um limite suficientemente pequeno e estável codifica as sequências de treinamento como os ciclos limite da rede (um tipo de atrator que exibe comportamento periódico estável).
Nota final
Em conclusão, a memória associativa é um aspecto fascinante da cognição humana que tem sido estudado em vários contextos, incluindo sistemas biológicos, redes de Hopfield e redes neurais superparametrizadas. Nossa compreensão da memória associativa em organismos vivos inspirou o desenvolvimento de modelos computacionais, como as redes de Hopfield, que por sua vez avançaram nos campos da inteligência artificial e do aprendizado de máquina.
Pesquisas recentes sobre redes neurais superparametrizadas descobriram o surgimento de atratores, um fenômeno relacionado à memória associativa, em uma variedade de arquiteturas e técnicas de otimização. Esse desenvolvimento emocionante não apenas solidifica a conexão entre sistemas neurais biológicos e artificiais, mas também abre novas oportunidades para explorar modelos mais eficientes e robustos para armazenamento e recuperação de memória.
À medida que continuamos a descobrir os intrincados mecanismos subjacentes à memória associativa, nossas descobertas alimentarão mais inovações em inteligência artificial, abrindo caminho para modelos avançados de inspiração biológica que podem simular habilidades cognitivas humanas. Essa exploração contínua promete aprimorar nossa compreensão da complexa relação entre biologia e computação, levando a descobertas que podem beneficiar ambos os campos.
Agradecimentos especiais a Nir N. Shavit por sua orientação e discussão útil. Criado como parte da classe 6.S978 do MIT — Tissue vs. Silicon in Machine Learning, primavera de 2023.
Referências
- Smith, J. (2022). O que é memória associativa? Muito bem mente.https://www.verywellmind.com/what-is-associative-memory-5198601
- Willshaw, DJ, Buneman, OP, & Longuet-Higgins, HC (1969). Memória associativa não holográfica. Nature , 222 (5197), 960–962.Yáñez-Márquez, C., López-Yáñez, I., Aldape-Pérez, M., Camacho-Nieto, O., Argüelles-Cruz, AJ, & Villuendas-Rey, Y. (2018). Fundamentos Teóricos para as Memórias Associativas Alfa-Beta: 10 Anos de Extensões Derivadas, Modelos e Aplicações. Neural Processing Letters , 48 (2), 811–847.
- Hopfield, JJ (1982). Redes neurais e sistemas físicos com habilidades computacionais coletivas emergentes. Proceedings of the National Academy of Sciences , 79 (8), 2554–2558.
- Kosko, B. (1988). Memórias associativas bidirecionais. IEEE Transactions on Systems, man, and Cybernetics, 18(1), 49–60.
- McClelland, JL (2006). Até onde você pode ir com o aprendizado de Hebbiano e quando isso o desvia do caminho. Processos de mudança no cérebro e no desenvolvimento cognitivo: atenção e desempenho xxi, 21, 33–69.
- Ackley, David H., Geoffrey E. Hinton e Terrence J. Sejnowski. “Um algoritmo de aprendizado para máquinas de Boltzmann.” Ciência cognitiva 9.1 (1985): 147–169.
- Barabási, Albert-László, Réka Albert e Hawoong Jeong. “Teoria do campo médio para redes aleatórias sem escala.” Physica A: Statistical Mechanics and its Applications 272.1–2 (1999): 173–187.
- Radhakrishnan, Adityanarayanan, Mikhail Belkin e Caroline Uhler. “Redes neurais superparametrizadas implementam memória associativa.” Proceedings of the National Academy of Sciences 117.44 (2020): 27162–27170