Memória temporal hierárquica - Hierarchical temporal memory

A memória temporal hierárquica ( HTM ) é uma tecnologia de inteligência de máquina biologicamente restrita desenvolvida pela Numenta . Descrito originalmente no livro de 2004 On Intelligence de Jeff Hawkins com Sandra Blakeslee , HTM é usado principalmente hoje para detecção de anomalias em dados de streaming. A tecnologia é baseada na neurociência e na fisiologia e interação de neurônios piramidais no neocórtex do cérebro de mamíferos (em particular, humano ).

No núcleo do HTM estão os algoritmos de aprendizagem que podem armazenar, aprender, inferir e recuperar sequências de alta ordem. Ao contrário da maioria dos outros métodos de aprendizado de máquina , o HTM aprende constantemente (em um processo não supervisionado ) padrões baseados no tempo em dados não rotulados. HTM é robusto ao ruído e tem alta capacidade (pode aprender vários padrões simultaneamente). Quando aplicado a computadores, o HTM é adequado para previsão, detecção de anomalias, classificação e, em última instância, aplicações sensório-motoras.

O HTM foi testado e implementado em software por meio de aplicativos de exemplo da Numenta e alguns aplicativos comerciais de parceiros da Numenta.

Estrutura e algoritmos

Uma rede HTM típica é uma hierarquia de níveis em forma de árvore (não deve ser confundida com as " camadas " do neocórtex , conforme descrito abaixo ). Esses níveis são compostos de elementos menores chamados de regiões (ou nós). Um único nível na hierarquia possivelmente contém várias regiões. Níveis de hierarquia mais altos geralmente têm menos regiões. Os níveis de hierarquia mais altos podem reutilizar os 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 aprendizagem e inferência, os dados sensoriais (por exemplo, dados dos olhos) chegam às 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 mais permanentes; estes determinam, ou são determinados por, conceitos menores em níveis inferiores - conceitos que são mais restritos no tempo e no espaço. Quando definida no modo de inferência, uma região (em cada nível) interpreta as informações provenientes de suas regiões "filhas" como probabilidades das categorias que possui na memória.

Cada região HTM aprende identificando e memorizando padrões espaciais - combinações de bits de entrada que geralmente ocorrem ao mesmo tempo. Em seguida, identifica sequências temporais de padrões espaciais que provavelmente ocorrerão um após o outro.

Como um modelo em evolução

HTM é o componente algorítmico da Teoria da Inteligência dos Mil Cérebros de Jeff Hawkins . Portanto, novas descobertas sobre o neocórtex são progressivamente incorporadas ao modelo HTM, que muda com o tempo em resposta. As novas descobertas não invalidam necessariamente as partes anteriores do modelo, portanto, as ideias de uma geração não são necessariamente excluídas da geração seguinte. Devido à natureza evolutiva da teoria, houve várias gerações de algoritmos HTM, que são brevemente descritos a seguir.

Primeira geração: zeta 1

A primeira geração de algoritmos HTM às vezes é chamada de zeta 1 .

Treinamento

Durante o treinamento , um nó (ou região) recebe uma sequência temporal de padrões espaciais como sua entrada. O processo de aprendizagem consiste em duas etapas:

  1. O agrupamento espacial identifica (na entrada) padrões frequentemente observados e os memoriza como "coincidências". Os padrões que são significativamente semelhantes entre si são tratados como a mesma coincidência. Um grande número de padrões de entrada possíveis é reduzido a um número gerenciável de coincidências conhecidas.
  2. As coincidências das partições de agrupamento temporal que provavelmente se seguirão 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 com o tempo (conforme os algoritmos HTM evoluíram).

Inferência

Durante a inferência , o nó calcula o conjunto de probabilidades de que um padrão pertence a cada coincidência conhecida. Em seguida, ele calcula as probabilidades de que a entrada represente cada grupo temporal. O conjunto de probabilidades atribuídas aos grupos é chamado de "crença" de um 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 é passada para um ou mais nós "pais" no próximo nível superior 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 as sequências de padrões forem semelhantes às sequências de treinamento, as probabilidades atribuídas aos grupos não mudarão com a mesma frequência que os padrões são recebidos. A saída do nó não mudará tanto e uma resolução será perdida no tempo.

Em um esquema mais geral, a crença do nó pode ser enviada para a entrada de qualquer nó (s) em qualquer nível (s), mas as conexões entre os nós ainda são fixas. O nó de nível superior combina esta saída com a saída de outros nós filhos, formando assim seu próprio padrão de entrada.

Uma vez que a resolução no espaço e no tempo é perdida em cada nó conforme descrito acima, as crenças formadas por nós de nível superior representam uma gama ainda maior de espaço e tempo. O objetivo é refletir a organização do mundo físico conforme é 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 desenvolveram esse tipo de hierarquia para corresponder, prever e afetar a organização do mundo externo.

Mais detalhes sobre o funcionamento do Zeta 1 HTM podem ser encontrados na documentação antiga da Numenta.

Segunda geração: algoritmos de aprendizagem cortical

A segunda geração de algoritmos de aprendizagem HTM, muitas vezes referidos como algoritmos de aprendizagem cortical ( CLA ), era drasticamente diferente de zeta 1. Ela se baseia em uma estrutura de dados chamada representações distribuídas esparsas (ou seja, uma estrutura de dados cujos elementos são binários, 1 ou 0, e cujo número de 1 bits é pequeno em comparação com o número de 0 bits) para representar a atividade cerebral e um modelo de neurônio mais biologicamente realista (muitas vezes também referido como célula , no contexto de HTM). Existem dois componentes principais nesta geração HTM: um algoritmo de agrupamento espacial , que emite 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 endereçadas e parcialmente modeladas. Cada camada HTM (não deve ser confundida com um nível HTM de uma hierarquia HTM, conforme descrito acima ) consiste em várias minicolunas altamente interconectadas. Uma camada HTM cria uma representação distribuída esparsa a partir de sua entrada, de forma que uma porcentagem fixa de minicolunas esteja ativa a qualquer momento. Uma minicoluna é entendida como um grupo de células que possuem o mesmo campo receptivo . Cada minicoluna possui várias células que são capazes de lembrar vários estados anteriores. Uma célula pode estar em um de três estados: estado ativo , inativo e preditivo .

Agrupamento espacial

O campo receptivo de cada minicoluna é um número fixo de entradas que são selecionadas aleatoriamente a partir de um número muito maior de entradas de nós. Com base no padrão de entrada (específico), algumas minicolunas serão mais ou menos associadas aos valores de entrada ativos. O agrupamento espacial seleciona um número relativamente constante das minicolunas mais ativas e inativa (inibe) outras minicolunas na vizinhança das ativas. Padrões de entrada semelhantes tendem a ativar um conjunto estável de minicolunas. A quantidade de memória usada por cada camada pode ser aumentada para aprender padrões espaciais mais complexos ou diminuída para aprender padrões mais simples.

Células ativas, inativas e preditivas

Como mencionado acima, uma célula (ou um neurônio) de uma minicoluna, em qualquer momento, pode estar em um estado ativo, inativo ou preditivo. Inicialmente, as células estão inativas.

Como as células se tornam ativas?

Se uma ou mais células na minicoluna ativa estiverem no estado preditivo (veja abaixo), elas serão as únicas células a se tornarem ativas no intervalo de tempo atual. Se nenhuma das células na minicoluna ativa estiver no estado preditivo (o que acontece durante o intervalo de tempo inicial ou quando a ativação desta minicoluna não era esperada), todas as células são ativadas.

Como as células se tornam preditivas?

Quando uma célula se torna ativa, ela gradualmente forma conexões com células próximas que tendem a estar ativas durante várias etapas de tempo anteriores. Assim, uma célula aprende a reconhecer uma sequência conhecida, verificando se as células conectadas estão ativas. Se um grande número de células conectadas estiver ativo, esta célula muda para o estado preditivo em antecipação a uma das próximas entradas da sequência.

A saída de uma minicoluna

A saída de uma camada inclui minicolunas nos estados ativo e preditivo. Assim, as minicolunas ficam ativas por longos períodos de tempo, o que leva a uma maior estabilidade temporal vista pela camada pai.

Inferência e aprendizagem online

Os algoritmos de aprendizagem cortical são capazes de aprender continuamente a partir de cada novo padrão de entrada, portanto, nenhum modo de inferência separado é necessário. Durante a inferência, o HTM tenta combinar o fluxo de entradas com fragmentos de sequências aprendidas anteriormente. Isso permite que cada camada HTM preveja constantemente a provável continuação das sequências reconhecidas. O índice da sequência prevista é a saída da camada. Como as previsões tendem a mudar com menos frequência do que os padrões de entrada, isso leva ao aumento da estabilidade temporal da saída em níveis hierárquicos mais altos. A previsão também ajuda a preencher os padrões ausentes na sequência e a interpretar dados ambíguos, enviesando o sistema para inferir o que ele previu.

Aplicações dos CLAs

Algoritmos de aprendizagem cortical estão sendo oferecidos atualmente como SaaS comercial pela Numenta (como Grok).

A validade dos CLAs

A seguinte pergunta foi feita a Jeff Hawkins em setembro de 2011 com relação aos algoritmos de aprendizagem cortical: "Como você sabe se as mudanças que está fazendo no modelo são boas ou não?" Ao que a resposta de Jeff foi: "Existem duas categorias para a resposta: uma é olhar para a neurociência e a outra é métodos para inteligência de máquina. No reino da neurociência, há muitas previsões que podemos fazer e essas podem ser testadas. Se nossas teorias explicam uma vasta gama de observações neurocientíficas, então isso nos diz que estamos no caminho certo. No mundo do aprendizado de máquina, eles não se importam com isso, apenas se ele funciona bem em problemas práticos. No nosso caso, isso continua a ser visto. Na medida em que você pode resolver um problema que ninguém foi capaz de resolver antes, as pessoas vão notar. "

Terceira geração: inferência sensório-motora

A terceira geração baseia-se na segunda geração e adiciona uma teoria de inferência sensório-motora no neocórtex. Essa teoria propõe que as colunas corticais em todos os níveis da hierarquia podem aprender modelos completos de objetos ao longo do tempo e que os recursos são aprendidos em locais específicos dos objetos. A teoria foi expandida em 2018 e conhecida como Teoria dos Mil Cérebros.

Comparação de modelos de neurônios

Comparando a rede neural artificial (A), o neurônio biológico (B) e o neurônio HTM (C).
Comparação de modelos de neurônios
Rede Neural Artificial (ANN) Neurônio Piramidal Neocortical ( Neurônio Biológico ) HTM Model Neuron
  • Poucas sinapses
  • Sem dendritos
  • Soma de entrada × pesos
  • Aprende modificando pesos de sinapses
  • Milhares de sinapses nos dendritos
  • Dendritos ativos: a célula reconhece centenas de padrões únicos
  • A coativação de um conjunto de sinapses em um segmento dendrítico causa um pico de NMDA e despolarização no soma
  • Fontes de entrada para a célula:
    1. Entradas feedforward que formam sinapses proximais ao soma e levam diretamente a potenciais de ação
    2. Picos de NMDA gerados na parte basal mais distal
    3. Dendritos apicais que despolarizam o soma (geralmente não são suficientes para gerar um potencial de ação somático)
  • Aprende aumentando novas sinapses
  • Inspirado nas células piramidais nas camadas 2/3 e 5 do neocórtex
  • Milhares de sinapses
  • Dendritos ativos: a célula reconhece centenas de padrões únicos
  • Modelos de dendritos e picos de NMDA com cada matriz de detectores coincidentes tendo um conjunto de sinapses
  • Aprende modelando o crescimento de novas sinapses

Comparando HTM e neocórtex

A HTM tenta implementar a funcionalidade característica de um grupo hierarquicamente relacionado de regiões corticais no neocórtex. Uma região do neocórtex corresponde a um ou mais níveis na hierarquia HTM, enquanto o hipocampo é remotamente semelhante ao nível HTM mais alto. Um único nó HTM pode representar um grupo de colunas corticais dentro de uma determinada região.

Embora seja principalmente um modelo funcional, várias tentativas têm sido feitas para relacionar os algoritmos do HTM com a estrutura das conexões neuronais nas camadas do neocórtex. O neocórtex é organizado em colunas verticais de 6 camadas horizontais. As 6 camadas de células no neocórtex não devem ser confundidas com níveis em uma hierarquia HTM.

Os nós HTM tentam modelar uma porção das colunas corticais (80 a 100 neurônios) com aproximadamente 20 "células" HTM por coluna. Os HTMs modelam apenas as camadas 2 e 3 para detectar características espaciais e temporais da entrada com 1 célula por coluna na camada 2 para "agrupamento" espacial e 1 a 2 dúzias por coluna na camada 3 para agrupamento temporal. Uma chave para HTMs e do córtex é sua capacidade de lidar com ruído e variação na entrada, que é o resultado do uso de uma "representação distributiva esparsa", onde apenas cerca de 2% das colunas estão ativas em um determinado momento.

Um HTM tenta modelar uma parte do aprendizado e da plasticidade do córtex, conforme descrito acima. As diferenças entre HTMs e neurônios incluem:

  • sinais e sinapses estritamente binários
  • sem inibição direta de sinapses ou dendritos (mas simulado indiretamente)
  • atualmente, apenas modelos das camadas 2/3 e 4 (no 5 ou 6)
  • sem controle de "motor" (camada 5)
  • sem feedback entre as regiões (camada 6 de alta para a camada 1 de baixa)

Representações distribuídas esparsas

A integração de componentes de memória com redes neurais tem uma longa história que remonta às primeiras pesquisas em representações distribuídas e mapas auto-organizados . Por exemplo, na memória distribuída esparsa (SDM), os padrões codificados por redes neurais são usados ​​como endereços de memória para memória endereçável por conteúdo , com "neurônios" servindo essencialmente como codificadores e decodificadores de endereços.

Os computadores armazenam informações em representações densas , como uma palavra de 32 bits , onde todas as combinações de 1s e 0s são possíveis. Em contraste, os cérebros usam representações distribuídas esparsas (SDRs). O neocórtex humano tem cerca de 16 bilhões de neurônios, mas a qualquer momento apenas uma pequena porcentagem está ativa. As atividades dos neurônios são como bits em um computador e, portanto, a representação é esparsa. Semelhante ao SDM desenvolvido pela NASA nos anos 80 e aos modelos de espaço vetorial usados ​​na análise semântica latente , o HTM usa representações distribuídas esparsas.

Os SDRs usados ​​em HTM são representações binárias de dados que consistem em muitos bits com uma pequena porcentagem dos bits ativos (1s); uma implementação típica pode ter 2048 colunas e 64 mil neurônios artificiais, onde apenas 40 podem estar ativos ao mesmo tempo. Embora possa parecer menos eficiente para a maioria dos bits ficar "sem uso" em qualquer representação, os SDRs têm duas vantagens principais sobre as representações densas tradicionais. Em primeiro lugar, os SDRs são tolerantes à corrupção e ambigüidade devido ao significado da representação que está sendo compartilhada ( distribuída ) em uma pequena porcentagem ( esparsa ) de bits ativos. Em uma representação densa, inverter um único bit muda completamente o significado, enquanto em um SDR um único bit pode não afetar muito o significado geral. Isso leva à segunda vantagem dos SDRs: como o significado de uma representação é distribuído por todos os bits ativos, a similaridade entre duas representações pode ser usada como uma medida de similaridade semântica nos objetos que representam. Ou seja, se dois vetores em um SDR têm 1s na mesma posição, eles são semanticamente semelhantes nesse atributo. Os bits em SDRs têm significado semântico e esse significado é distribuído entre os bits.

A teoria do dobramento semântico se baseia nessas propriedades SDR para propor um novo modelo para a semântica da linguagem, onde as palavras são codificadas em palavras-SDRs e a similaridade entre termos, frases e textos pode ser calculada com medidas de distância simples.

Similaridade com outros modelos

Redes bayesianas

Comparado a uma rede bayesiana , um HTM compreende uma coleção de nós que são organizados em uma hierarquia em forma de árvore. Cada nó na hierarquia descobre uma série de causas nos padrões de entrada e sequências temporais que recebe. Um algoritmo de revisão de crenças bayesiano é usado para propagar crenças de feed-forward e feedback de nós filhos para pais e vice-versa. No entanto, a analogia com as redes bayesianas é limitada, porque os HTMs podem ser autotreinadas (de forma que cada nó tenha um relacionamento familiar inequívoco), lidam com dados sensíveis ao tempo e concedem mecanismos para atenção encoberta .

Uma teoria da computação cortical hierárquica baseada na propagação da crença Bayesiana foi proposta anteriormente por Tai Sing Lee e David Mumford . Embora o HTM seja mais consistente com essas idéias, ele adiciona detalhes sobre como lidar com representações invariáveis ​​no córtex visual.

Redes neurais

Como qualquer sistema que modele detalhes do neocórtex, o HTM pode ser visto como uma rede neural artificial . A hierarquia em forma de árvore comumente usada em HTMs se assemelha à topologia usual das redes neurais tradicionais. HTMs tentam modelar colunas corticais (80 a 100 neurônios) e suas interações com menos "neurônios" HTM. O objetivo dos HTMs atuais é capturar o máximo das funções dos neurônios e da rede (como são atualmente entendidas) dentro da capacidade de computadores típicos e em áreas que podem ser prontamente úteis, como o processamento de imagens. Por exemplo, o feedback de níveis superiores e o controle do motor não são tentados porque ainda não é compreendido como incorporá-los e as sinapses binárias em vez de variáveis ​​são usadas porque foram determinadas como suficientes nas capacidades HTM atuais.

O LAMINART e redes neurais semelhantes pesquisadas por Stephen Grossberg tentam modelar a infraestrutura do córtex e o comportamento dos neurônios em uma estrutura temporal para explicar os dados neurofisiológicos e psicofísicos. No entanto, essas redes são, no momento, muito complexas para uma aplicação realista.

HTM também está relacionado ao trabalho de Tomaso Poggio , incluindo uma abordagem para modelar o fluxo ventral do córtex visual conhecido como HMAX. Semelhanças de HTM com várias idéias de IA são descritas na edição de dezembro de 2005 do jornal Artificial Intelligence.

Neocognitron

Neocognitron , uma rede neural hierárquica de múltiplas camadas proposta pelo Professor Kunihiko Fukushima em 1987, é um dos primeiros modelos de Redes Neurais de Aprendizado Profundo .

Plataforma NuPIC e ferramentas de desenvolvimento

A Plataforma Numenta para Computação Inteligente (NuPIC) é uma das várias implementações HTM disponíveis . Alguns são fornecidos pela Numenta , enquanto outros são desenvolvidos e mantidos pela comunidade de código aberto HTM .

NuPIC inclui implementações de Spatial Pooling e Temporal Memory em C ++ e Python. Também inclui 3 APIs . Os usuários podem construir sistemas HTM usando implementações diretas dos algoritmos ou construir uma rede usando a API de rede , que é uma estrutura flexível para construir associações complicadas entre diferentes camadas do córtex.

NuPIC 1.0 foi lançado em julho de 2017, após o qual a base de código foi colocada em modo de manutenção. A pesquisa atual continua nas bases de código de pesquisa da Numenta .

Formulários

Os seguintes aplicativos comerciais estão disponíveis usando o NuPIC:

  • Grok - detecção de anomalias para servidores de TI, consulte www.grokstream.com
  • Cortical.io - processamento avançado de linguagem natural, consulte www.cortical.io

As seguintes ferramentas estão disponíveis no NuPIC:

Os aplicativos de exemplo a seguir estão disponíveis no NuPIC, consulte numenta.com/applications/ :

  • HTM para ações - exemplo de rastreamento de anomalias no mercado de ações (código de amostra)
  • Detecção de comportamento desonesto - exemplo de localização de anomalias no comportamento humano (papel branco e código de amostra)
  • Rastreamento geoespacial - exemplo de localização de anomalias em objetivos movendo-se no espaço e no tempo (papel branco e código de amostra)

Veja também

Modelos relacionados

Referências

links externos

Oficial

Outro