Memória temporal hierárquica (HTM) é uma tecnologia de inteligência de máquina biologicamente restrita, desenvolvida pela Numenta. Descrita originalmente no livro de 2004 On Intelligence, de Jeff Hawkins com Sandra Blakeslee, a HTM é usada hoje principalmente para detecção de anomalias em dados de streaming. A tecnologia é baseada na neurociência e na fisiologia e interação dos neurônios piramidais no neocórtex do cérebro de mamíferos (em particular, o humano).
No núcleo da HTM estão algoritmos de aprendizado que podem armazenar, aprender, inferir e recordar sequências de alta ordem. Diferentemente da maioria dos outros métodos de aprendizado de máquina, a HTM aprende constantemente (em um processo não supervisionado) padrões baseados no tempo em dados não rotulados. A HTM é robusta a ruídos e tem alta capacidade (pode aprender múltiplos padrões simultaneamente). Quando aplicada a computadores, a HTM é bem adequada para previsão, detecção de anomalias, classificação e, em última instância, aplicações sensoriomotoras.
Estrutura e algoritmos
Uma rede HTM típica é uma hierarquia em forma de árvore de níveis (não confundir com as "camadas" do neocórtex, como descrito abaixo). Esses níveis são compostos por elementos menores chamados regiões (ou nós). Um único nível na hierarquia pode conter várias regiões. Níveis hierárquicos mais altos frequentemente têm menos regiões. Níveis hierárquicos mais altos podem reutilizar padrões aprendidos nos níveis mais baixos, combinando-os para memorizar padrões mais complexos.
Cada região HTM tem a mesma função básica. Nos modos de aprendizado e inferência, dados sensoriais (por exemplo, dados dos olhos) entram nas regiões de nível inferior. No modo de geração, as regiões de nível inferior produzem o padrão gerado de uma determinada categoria. O nível superior geralmente tem uma única região que armazena as categorias (conceitos) mais gerais e permanentes; estas determinam, ou são determinadas por, conceitos menores em níveis inferiores - conceitos mais restritos em tempo e espaço. Quando configurada no modo de inferência, uma região (em cada nível) interpreta as informações que sobem de suas regiões "filhas" como probabilidades das categorias que tem em memória.
Cada região HTM aprende identificando e memorizando padrões espaciais - combinações de bits de entrada que frequentemente ocorrem ao mesmo tempo. Em seguida, identifica sequências temporais de padrões espaciais que provavelmente ocorrem um após o outro.
Como um modelo em evolução
A HTM é o componente algorítmico da Teoria dos Mil Cérebros da Inteligência, de Jeff Hawkins. Assim, novas descobertas sobre o neocórtex são progressivamente incorporadas ao modelo HTM, que muda ao longo do tempo em resposta. As novas descobertas não invalidam necessariamente as partes anteriores do modelo, então ideias de uma geração não são necessariamente excluídas na sucessiva. Devido à natureza evolutiva da teoria, houve várias gerações de algoritmos HTM, descritas brevemente abaixo.
Primeira geração: zeta 1
A primeira geração de algoritmos HTM é às vezes referida como zeta 1.
#### Treinamento
Durante o treinamento, um nó (ou região) recebe uma sequência temporal de padrões espaciais como entrada. O processo de aprendizado consiste em duas etapas:
O agrupamento espacial identifica (na entrada) padrões observados com frequência e os memoriza como "coincidências". Padrões significativamente semelhantes entre si são tratados como a mesma coincidência. Um grande número de possíveis padrões de entrada é reduzido a um número gerenciável de coincidências conhecidas.
O agrupamento temporal particiona coincidências que provavelmente se seguem umas às outras na sequência de treinamento em grupos temporais. Cada grupo de padrões representa uma "causa" do padrão de entrada (ou "nome" em On Intelligence).
Os conceitos de agrupamento espacial e agrupamento temporal ainda são bastante importantes nos algoritmos HTM atuais. O agrupamento temporal ainda não é bem compreendido, e seu significado mudou ao longo do tempo (à medida que os algoritmos HTM evoluíram).
#### Inferência
Durante a inferência, o nó calcula o conjunto de probabilidades de que um padrão pertença a cada coincidência conhecida. Em seguida, calcula as probabilidades de que a entrada represente cada grupo temporal. O conjunto de probabilidades atribuídas aos grupos é chamado de "crença" do nó sobre o padrão de entrada. (Em uma implementação simplificada, a crença do nó consiste em apenas um grupo vencedor). Essa crença é o resultado da inferência que é passado para um ou mais nós "pais" no próximo nível mais alto da hierarquia.
Padrões "inesperados" para o nó não têm uma probabilidade dominante de pertencer a qualquer grupo temporal, mas têm probabilidades quase iguais de pertencer a vários dos grupos. Se sequências de padrões são semelhantes às sequências de treinamento, então as probabilidades atribuídas aos grupos não mudarão com tanta frequência quanto os padrões são recebidos. A saída do nó não mudará tanto, e uma resolução no tempo é perdida.
Em um esquema mais geral, a crença do nó pode ser enviada para a entrada de qualquer nó(s) em qualquer nível(is), mas as conexões entre os nós ainda são fixas. O nó de nível superior combina essa saída com a saída de outros nós filhos, formando assim seu próprio padrão de entrada.
Como a resolução no espaço e no tempo é perdida em cada nó, como descrito acima, as crenças formadas por nós de nível superior representam uma faixa ainda maior de espaço e tempo. Isso visa refletir a organização do mundo físico como percebido pelo cérebro humano. Conceitos maiores (por exemplo, causas, ações e objetos) são percebidos como mudando mais lentamente e consistem em conceitos menores que mudam mais rapidamente. Jeff Hawkins postula que os cérebros evoluíram esse tipo de hierarquia para corresponder, prever e afetar a organização do mundo externo.
Mais detalhes sobre o funcionamento da HTM Zeta 1 podem ser encontrados na documentação antiga da Numenta.
Segunda geração: algoritmos de aprendizado cortical
A segunda geração de algoritmos de aprendizado HTM, frequentemente referida como algoritmos de aprendizado cortical (CLA), foi drasticamente diferente da zeta 1. Ela depende de uma estrutura de dados chamada representações distribuídas esparsas (isto é, uma estrutura de dados cujos elementos são binários, 1 ou 0, e cujo número de bits 1 é pequeno comparado ao número de bits 0) para representar a atividade cerebral e um modelo de neurônio mais biologicamente realista (frequentemente também referido como célula, no contexto da HTM). Há dois componentes centrais nesta geração HTM: um algoritmo de agrupamento espacial, que produz representações distribuídas esparsas (SDR), e um algoritmo de memória de sequência, que aprende a representar e prever sequências complexas.
Nesta nova geração, as camadas e minicolunas do córtex cerebral são abordadas e parcialmente modeladas. Cada camada HTM (não confundir com um nível HTM de uma hierarquia HTM, como descrito acima) consiste em um número de minicolunas altamente interconectadas. Uma camada HTM cria uma representação distribuída esparsa a partir de sua entrada, de modo que um número fixo de bits está ativo para qualquer entrada dada. Essa representação é então alimentada à memória de sequência, que aprende transições entre padrões ao longo do tempo. A memória de sequência usa uma forma de dinâmica neural inspirada em neurônios piramidais, incluindo dendritos distais e plasticidade sináptica.
Aplicações e implementações
A HTM foi testada e implementada em software por meio de aplicações de exemplo da Numenta e algumas aplicações comerciais de parceiros da Numenta. O principal caso de uso comercial é a detecção de anomalias em dados de streaming, como métricas de servidores, transações financeiras ou leituras de sensores. A capacidade da HTM de aprender continuamente sem dados rotulados a torna adequada para detectar padrões incomuns em sistemas em tempo real. A Numenta lançou implementações de código aberto, incluindo a biblioteca NuPIC (Plataforma Numenta para Computação Inteligente), que fornece ferramentas para construir sistemas baseados em HTM. Embora não seja tão amplamente adotada quanto as abordagens de aprendizado profundo, a HTM tem sido usada em aplicações de nicho onde o aprendizado online e a robustez a ruídos são críticos.
Relação com outras abordagens de IA
A HTM difere fundamentalmente dos métodos convencionais de inteligência artificial, como aprendizado profundo e modelos baseados em transformadores. O aprendizado profundo tipicamente requer grandes quantidades de dados rotulados e treinamento offline, enquanto a HTM aprende continuamente de maneira não supervisionada. Os transformadores, que alimentam modelos de linguagem de grande escala, dependem de mecanismos de atenção e não são biologicamente inspirados da mesma maneira. O foco da HTM em sequências temporais e estrutura hierárquica alinha-se mais de perto com teorias de computação neural no cérebro. No entanto, a HTM não alcançou o mesmo nível de sucesso comercial que o aprendizado profundo, e sua escalabilidade para tarefas complexas como processamento de linguagem natural permanece limitada. Pesquisadores em instituições como a Numenta (a empresa) continuam a desenvolver a teoria, mas a HTM permanece uma área de nicho dentro do aprendizado de máquina.