Descrição
Este post de blog detalha o artigo "Hopfield Networks is All You Need" e a camada Hopfield em PyTorch que o acompanha. Começa traçando a evolução das Redes Hopfield clássicas, que armazenam e recuperam padrões binários usando uma função de energia e atualizações síncronas ou assíncronas, para as Redes Hopfield modernas. Essas versões modernas, também conhecidas como Memórias Associativas Densas, introduzem uma função de energia generalizada que permite padrões e estados de valor contínuo, aumentando significativamente a capacidade de armazenamento.
A inovação central reside em uma nova função de energia e sua regra de atualização correspondente. Essa nova regra é matematicamente comprovada para convergir para um mínimo local da função de energia. Crucialmente, demonstra-se que essa regra de atualização é equivalente ao mecanismo de auto-atenção encontrado nas redes transformer. Essa conexão permite a integração perfeita de camadas Hopfield em arquiteturas de deep learning, fornecendo-lhes capacidades de memória associativa.
O post introduz três tipos de camadas Hopfield: Hopfield, HopfieldPooling e HopfieldLayer. As camadas Hopfield são projetadas para associar e processar dois conjuntos de dados, semelhante à atenção do transformer. HopfieldPooling atua como uma camada de pooling quando um único padrão de estado estático é usado, aprendendo um padrão protótipo. HopfieldLayer é adequada para armazenar padrões fixos ou aprender protótipos internos, onde os padrões armazenados são estáticos e podem ser aprendidos.
A diferenciabilidade dessas camadas Hopfield contínuas as torna ideais para deep learning. Elas podem ser usadas como substitutos plug-in para camadas existentes ou para aplicações especializadas como aprendizado de múltiplas instâncias, aprendizado baseado em conjuntos e aprendizado associativo. O post também destaca uma aplicação State-Of-The-Art na classificação de repertório imune (DeepRC), onde a alta capacidade de armazenamento das Redes Hopfield modernas é aproveitada para um desafiador problema de aprendizado de múltiplas instâncias em biologia computacional.
As principais propriedades da nova função de energia incluem convergência global para um mínimo local, capacidade de armazenamento exponencial e convergência após um único passo de atualização. O post de blog fornece exemplos práticos e trechos de código para ilustrar o uso dessas novas camadas Hopfield em vários contextos de deep learning, enfatizando sua flexibilidade e poder.
Destaques de Camadas Hopfield
Generaliza as Redes Hopfield clássicas para estados e padrões contínuos.
Introduz uma nova função de energia garantida para convergir para um mínimo local.
A regra de atualização é equivalente à auto-atenção do transformer.
Oferece capacidade de armazenamento exponencial.
Permite convergência rápida, muitas vezes após um único passo de atualização.
Diferenciável, permitindo a integração em arquiteturas de deep learning.
Fornece três tipos de camadas Hopfield: Hopfield, HopfieldPooling e HopfieldLayer.
Suporta a associação de dois conjuntos de dados.
Permite a busca de padrões fixos e operações de pooling.
Facilita o aprendizado de protótipos internos ou o armazenamento de padrões fixos.
Aplicável a aprendizado de múltiplas instâncias e aprendizado baseado em conjuntos.
Usado em aplicações State-Of-The-Art como classificação de repertório imune (DeepRC).
Primeiros passos com Camadas Hopfield
Acessar modelo: Utilize a implementação da camada Hopfield em PyTorch.
Integrar via API: Incorpore camadas Hopfield em arquiteturas de deep learning.
Configurar parâmetros: Ajuste configurações como beta (temperatura inversa) para a dinâmica de aprendizado.
Definir padrões: Insira padrões armazenados (Y) e padrões de estado (R).
Treinar rede: Integre camadas Hopfield em uma rede neural maior para treinamento.
Otimizar: Ajuste fino das configurações da camada para tarefas e conjuntos de dados específicos.
Casos de uso de Camadas Hopfield
- Recuperação de Padrões
- Integração em Deep Learning
- Memória Associativa
- Atenção de Sequência
- Aprendizado de Múltiplas Instâncias
- Aprendizado Baseado em Conjuntos
- Classificação de Repertório Imune
- Operações de Pooling
- Busca de Padrões Fixos
- Aprendizado Associativo







