Memoria temporal jerárquica - Hierarchical temporal memory

La memoria temporal jerárquica ( HTM ) es una tecnología de inteligencia artificial biológicamente limitada desarrollada por Numenta . Originalmente descrito en el libro de 2004 On Intelligence de Jeff Hawkins con Sandra Blakeslee , HTM se utiliza principalmente en la actualidad para la detección de anomalías en la transmisión de datos. La tecnología se basa en la neurociencia y la fisiología y la interacción de las neuronas piramidales en el neocórtex del cerebro de los mamíferos (en particular, el humano ).

En el núcleo de HTM se encuentran los algoritmos de aprendizaje que pueden almacenar, aprender, inferir y recordar secuencias de alto orden. A diferencia de la mayoría de los otros métodos de aprendizaje automático , HTM aprende constantemente (en un proceso sin supervisión ) patrones basados ​​en el tiempo en datos no etiquetados. HTM es resistente al ruido y tiene una gran capacidad (puede aprender varios patrones simultáneamente). Cuando se aplica a las computadoras, HTM es muy adecuado para la predicción, la detección de anomalías, la clasificación y, en última instancia, las aplicaciones sensoriomotoras.

HTM se ha probado e implementado en software a través de aplicaciones de ejemplo de Numenta y algunas aplicaciones comerciales de los socios de Numenta.

Estructura y algoritmos

Una red HTM típica es una jerarquía de niveles en forma de árbol (que no debe confundirse con las " capas " del neocórtex , como se describe a continuación ). Estos niveles están compuestos por elementos más pequeños llamados regiones (o nodos). Un solo nivel en la jerarquía posiblemente contenga varias regiones. Los niveles jerárquicos superiores suelen tener menos regiones. Los niveles jerárquicos superiores pueden reutilizar patrones aprendidos en los niveles inferiores combinándolos para memorizar patrones más complejos.

Cada región HTM tiene la misma función básica. En los modos de aprendizaje e inferencia, los datos sensoriales (por ejemplo, datos de los ojos) llegan a las regiones del nivel inferior. En el modo de generación, las regiones de nivel inferior generan el patrón generado de una categoría determinada. El nivel superior suele tener una única región que almacena las categorías (conceptos) más generales y permanentes; éstos determinan, o están determinados por, conceptos más pequeños en niveles inferiores, conceptos que están más restringidos en el tiempo y el espacio. Cuando se establece en modo de inferencia, una región (en cada nivel) interpreta la información que proviene de sus regiones "secundarias" como probabilidades de las categorías que tiene en la memoria.

Cada región HTM aprende identificando y memorizando patrones espaciales, combinaciones de bits de entrada que a menudo ocurren al mismo tiempo. Luego identifica secuencias temporales de patrones espaciales que probablemente ocurran una tras otra.

Como modelo en evolución

HTM es el componente algorítmico de la Teoría de la inteligencia de los mil cerebros de Jeff Hawkins . Por lo tanto, los nuevos hallazgos sobre la neocorteza se incorporan progresivamente al modelo HTM, que cambia con el tiempo en respuesta. Los nuevos hallazgos no invalidan necesariamente las partes anteriores del modelo, por lo que las ideas de una generación no están necesariamente excluidas en la sucesiva. Debido a la naturaleza evolutiva de la teoría, ha habido varias generaciones de algoritmos HTM, que se describen brevemente a continuación.

Primera generación: zeta 1

La primera generación de algoritmos HTM a veces se denomina zeta 1 .

Capacitación

Durante el entrenamiento , un nodo (o región) recibe una secuencia temporal de patrones espaciales como entrada. El proceso de aprendizaje consta de dos etapas:

  1. La agrupación espacial identifica (en la entrada) patrones observados con frecuencia y los memoriza como "coincidencias". Los patrones que son significativamente similares entre sí se tratan como la misma coincidencia. Un gran número de posibles patrones de entrada se reduce a un número manejable de coincidencias conocidas.
  2. La agrupación temporal divide las coincidencias que probablemente se sucedan en la secuencia de entrenamiento en grupos temporales. Cada grupo de patrones representa una "causa" del patrón de entrada (o "nombre" en On Intelligence ).

Los conceptos de agrupación espacial y agrupación temporal siguen siendo bastante importantes en los algoritmos HTM actuales. La agrupación temporal aún no se comprende bien y su significado ha cambiado con el tiempo (a medida que evolucionaron los algoritmos HTM).

Inferencia

Durante la inferencia , el nodo calcula el conjunto de probabilidades de que un patrón pertenezca a cada coincidencia conocida. Luego calcula las probabilidades de que la entrada represente a cada grupo temporal. El conjunto de probabilidades asignadas a los grupos se denomina "creencia" de un nodo sobre el patrón de entrada. (En una implementación simplificada, la creencia de node consta de un solo grupo ganador). Esta creencia es el resultado de la inferencia que se pasa a uno o más nodos "padres" en el siguiente nivel superior de la jerarquía.

Los patrones "inesperados" del nodo no tienen una probabilidad dominante de pertenecer a ningún grupo temporal, pero tienen probabilidades casi iguales de pertenecer a varios de los grupos. Si las secuencias de patrones son similares a las secuencias de entrenamiento, entonces las probabilidades asignadas a los grupos no cambiarán tan a menudo como se reciban los patrones. La salida del nodo no cambiará tanto y se perderá una resolución en el tiempo.

En un esquema más general, la creencia del nodo se puede enviar a la entrada de cualquier nodo en cualquier nivel, pero las conexiones entre los nodos siguen siendo fijas. El nodo de nivel superior combina esta salida con la salida de otros nodos secundarios formando así su propio patrón de entrada.

Dado que la resolución en el espacio y el tiempo se pierde en cada nodo como se describió anteriormente, las creencias formadas por nodos de nivel superior representan un rango aún mayor de espacio y tiempo. Esto está destinado a reflejar la organización del mundo físico tal como lo percibe el cerebro humano. Se percibe que los conceptos más grandes (por ejemplo, causas, acciones y objetos) cambian más lentamente y consisten en conceptos más pequeños que cambian más rápidamente. Jeff Hawkins postula que los cerebros desarrollaron este tipo de jerarquía para igualar, predecir y afectar la organización del mundo externo.

Se pueden encontrar más detalles sobre el funcionamiento de Zeta 1 HTM en la documentación antigua de Numenta.

Segunda generación: algoritmos de aprendizaje cortical

La segunda generación de algoritmos de aprendizaje HTM, a menudo denominados algoritmos de aprendizaje cortical ( CLA ), fue drásticamente diferente de zeta 1. Se basa en una estructura de datos llamada representaciones distribuidas dispersas (es decir, una estructura de datos cuyos elementos son binarios, 1 o 0, y cuyo número de 1 bits es pequeño en comparación con el número de 0 bits) para representar la actividad cerebral y un modelo de neurona más realista desde el punto de vista biológico (a menudo también denominado célula , en el contexto de HTM). Hay dos componentes centrales en esta generación HTM: un algoritmo de agrupación espacial , que genera representaciones distribuidas dispersas (SDR), y un algoritmo de memoria de secuencia , que aprende a representar y predecir secuencias complejas.

En esta nueva generación, se abordan y modelan parcialmente las capas y minicolumnas de la corteza cerebral . Cada capa HTM (que no debe confundirse con un nivel HTM de una jerarquía HTM, como se describió anteriormente ) consta de una serie de minicolumnas altamente interconectadas. Una capa HTM crea una representación distribuida dispersa a partir de su entrada, de modo que un porcentaje fijo de minicolumnas están activas en cualquier momento. Se entiende por minicolumna un grupo de células que tienen el mismo campo receptivo . Cada minicolumna tiene varias celdas que pueden recordar varios estados anteriores. Una celda puede estar en uno de tres estados: estado activo , inactivo y predictivo .

Agrupación espacial

El campo receptivo de cada minicolumna es un número fijo de entradas que se seleccionan aleatoriamente de un número mucho mayor de entradas de nodo. Según el patrón de entrada (específico), algunas minicolumnas estarán más o menos asociadas con los valores de entrada activos. La agrupación espacial selecciona un número relativamente constante de las minicolumnas más activas e inactiva (inhibe) otras minicolumnas cercanas a las activas. Patrones de entrada similares tienden a activar un conjunto estable de minicolumnas. La cantidad de memoria utilizada por cada capa se puede aumentar para aprender patrones espaciales más complejos o disminuir para aprender patrones más simples.

Células activas, inactivas y predictivas

Como se mencionó anteriormente, una célula (o una neurona) de una minicolumna, en cualquier momento, puede estar en un estado activo, inactivo o predictivo. Inicialmente, las células están inactivas.

¿Cómo se activan las células?

Si una o más celdas de la minicolumna activa están en el estado predictivo (ver más abajo), serán las únicas celdas que se activarán en el paso de tiempo actual. Si ninguna de las celdas de la minicolumna activa está en el estado predictivo (lo que ocurre durante el paso de tiempo inicial o cuando no se esperaba la activación de esta minicolumna), todas las celdas se activan.

¿Cómo se vuelven predictivas las células?

Cuando una célula se activa, forma gradualmente conexiones con las células cercanas que tienden a estar activas durante varios pasos de tiempo previos. Por tanto, una célula aprende a reconocer una secuencia conocida comprobando si las células conectadas están activas. Si un gran número de celdas conectadas están activas, esta celda cambia al estado predictivo en previsión de una de las pocas entradas siguientes de la secuencia.

La salida de una minicolumna

La salida de una capa incluye minicolumnas tanto en estado activo como predictivo. Por lo tanto, las minicolumnas están activas durante largos períodos de tiempo, lo que conduce a una mayor estabilidad temporal vista por la capa madre.

Inferencia y aprendizaje en línea

Los algoritmos de aprendizaje cortical pueden aprender continuamente de cada nuevo patrón de entrada, por lo que no es necesario un modo de inferencia independiente. Durante la inferencia, HTM intenta hacer coincidir el flujo de entradas con fragmentos de secuencias aprendidas previamente. Esto permite que cada capa HTM prediga constantemente la probable continuación de las secuencias reconocidas. El índice de la secuencia predicha es la salida de la capa. Dado que las predicciones tienden a cambiar con menos frecuencia que los patrones de entrada, esto conduce a una mayor estabilidad temporal de la salida en niveles jerárquicos más altos. La predicción también ayuda a completar los patrones que faltan en la secuencia y a interpretar datos ambiguos al sesgar el sistema para inferir lo que predijo.

Aplicaciones de los CLA

Los algoritmos de aprendizaje cortical se ofrecen actualmente como SaaS comercial por Numenta (como Grok).

La validez de los CLA

La siguiente pregunta se le hizo a Jeff Hawkins en septiembre de 2011 con respecto a los algoritmos de aprendizaje cortical: "¿Cómo saber si los cambios que está realizando en el modelo son buenos o no?" A lo que la respuesta de Jeff fue: "Hay dos categorías para la respuesta: una es mirar la neurociencia y la otra son los métodos para la inteligencia artificial. En el ámbito de la neurociencia, hay muchas predicciones que podemos hacer y esas pueden ser probadas. Si nuestras teorías explican una amplia gama de observaciones de neurociencia, entonces nos dice que estamos en el camino correcto. En el mundo del aprendizaje automático, eso no les importa, solo lo bien que funciona en problemas prácticos. En nuestro caso, eso queda por ver. En la medida en que se pueda resolver un problema que nadie pudo resolver antes, la gente se dará cuenta ".

Tercera generación: inferencia sensoriomotora

La tercera generación se basa en la segunda generación y agrega una teoría de inferencia sensoriomotora en el neocórtex. Esta teoría propone que las columnas corticales en todos los niveles de la jerarquía pueden aprender modelos completos de objetos a lo largo del tiempo y que las características se aprenden en ubicaciones específicas de los objetos. La teoría se amplió en 2018 y se denominó Teoría de los mil cerebros.

Comparación de modelos de neuronas

Comparando la red neuronal artificial (A), la neurona biológica (B) y la neurona HTM (C).
Comparación de modelos de neuronas
Red neuronal artificial (ANN) Neurona piramidal neocortical ( neurona biológica ) Neurona modelo HTM
  • Pocas sinapsis
  • Sin dendritas
  • Suma de entrada × pesos
  • Aprende modificando el peso de las sinapsis
  • Miles de sinapsis en las dendritas
  • Dendritas activas: la célula reconoce cientos de patrones únicos
  • La coactivación de un conjunto de sinapsis en un segmento dendrítico provoca un pico de NMDA y despolarización en el soma
  • Fuentes de entrada a la celda:
    1. Entradas de retroalimentación que forman sinapsis proximales al soma y conducen directamente a potenciales de acción.
    2. Picos de NMDA generados en el basal más distal
    3. Dendritas apicales que despolarizan el soma (generalmente no son suficientes para generar un potencial de acción somático)
  • Aprende desarrollando nuevas sinapsis
  • Inspirado en las células piramidales de las capas 2/3 y 5 del neocórtex
  • Miles de sinapsis
  • Dendritas activas: la célula reconoce cientos de patrones únicos
  • Modela dendritas y picos de NMDA con cada conjunto de detectores coincidentes que tienen un conjunto de sinapsis
  • Aprende modelando el crecimiento de nuevas sinapsis

Comparando HTM y neocorteza

HTM intenta implementar la funcionalidad que es característica de un grupo jerárquicamente relacionado de regiones corticales en la neocorteza. Una región del neocórtex corresponde a uno o más niveles en la jerarquía HTM, mientras que el hipocampo es remotamente similar al nivel HTM más alto. Un solo nodo HTM puede representar un grupo de columnas corticales dentro de una determinada región.

Aunque se trata principalmente de un modelo funcional, se han realizado varios intentos para relacionar los algoritmos del HTM con la estructura de conexiones neuronales en las capas del neocórtex. La neocorteza está organizada en columnas verticales de 6 capas horizontales. Las 6 capas de células en la neocorteza no deben confundirse con niveles en una jerarquía HTM.

Los nodos HTM intentan modelar una porción de columnas corticales (80 a 100 neuronas) con aproximadamente 20 "células" HTM por columna. Los HTM modelan solo las capas 2 y 3 para detectar características espaciales y temporales de la entrada con 1 celda por columna en la capa 2 para la "agrupación" espacial, y de 1 a 2 docenas por columna en la capa 3 para la agrupación temporal. Una clave para los HTM y la corteza es su capacidad para lidiar con el ruido y la variación en la entrada que es el resultado de usar una "representación distributiva dispersa" donde solo alrededor del 2% de las columnas están activas en un momento dado.

Un HTM intenta modelar una parte del aprendizaje y la plasticidad de la corteza como se describe anteriormente. Las diferencias entre HTM y neuronas incluyen:

  • señales y sinapsis estrictamente binarias
  • sin inhibición directa de sinapsis o dendritas (pero simuladas indirectamente)
  • actualmente solo modelos de capas 2/3 y 4 (no 5 o 6)
  • sin control de "motor" (capa 5)
  • sin retroalimentación entre regiones (capa 6 de alta a capa 1 de baja)

Representaciones distribuidas dispersas

La integración del componente de memoria con redes neuronales tiene una larga historia que se remonta a las primeras investigaciones en representaciones distribuidas y mapas autoorganizados . Por ejemplo, en la memoria distribuida dispersa (SDM), los patrones codificados por redes neuronales se utilizan como direcciones de memoria para la memoria direccionable por contenido , y las "neuronas" sirven esencialmente como codificadores y decodificadores de direcciones.

Las computadoras almacenan información en representaciones densas , como una palabra de 32 bits , donde son posibles todas las combinaciones de unos y ceros. Por el contrario, los cerebros utilizan representaciones distribuidas escasas (SDR). El neocórtex humano tiene aproximadamente 16 mil millones de neuronas, pero en un momento dado solo un pequeño porcentaje está activo. Las actividades de las neuronas son como bits en una computadora, por lo que la representación es escasa. Al igual que el SDM desarrollado por la NASA en los años 80 y los modelos espaciales vectoriales utilizados en el análisis semántico latente , HTM utiliza representaciones distribuidas dispersas.

Los SDR utilizados en HTM son representaciones binarias de datos que constan de muchos bits con un pequeño porcentaje de bits activos (1); una implementación típica podría tener 2048 columnas y 64K neuronas artificiales donde tan solo 40 podrían estar activas a la vez. Aunque puede parecer menos eficiente que la mayoría de los bits no se utilicen en una representación determinada, los SDR tienen dos ventajas principales sobre las representaciones densas tradicionales. Primero, los SDR son tolerantes a la corrupción y la ambigüedad debido a que el significado de la representación se comparte ( distribuye ) en un pequeño porcentaje ( escaso ) de bits activos. En una representación densa, invertir un solo bit cambia completamente el significado, mientras que en un SDR un solo bit puede no afectar mucho el significado general. Esto conduce a la segunda ventaja de los SDR: debido a que el significado de una representación se distribuye entre todos los bits activos, la similitud entre dos representaciones puede usarse como una medida de similitud semántica en los objetos que representan. Es decir, si dos vectores en un SDR tienen unos en la misma posición, entonces son semánticamente similares en ese atributo. Los bits en SDR tienen un significado semántico y ese significado se distribuye entre los bits.

La teoría del plegamiento semántico se basa en estas propiedades de SDR para proponer un nuevo modelo para la semántica del lenguaje, donde las palabras se codifican en SDR de palabras y la similitud entre términos, oraciones y textos se puede calcular con simples medidas de distancia.

Similitud con otros modelos

Redes bayesianas

Comparado con una red bayesiana , un HTM comprende una colección de nodos que están dispuestos en una jerarquía en forma de árbol. Cada nodo de la jerarquía descubre una serie de causas en los patrones de entrada y las secuencias temporales que recibe. Se utiliza un algoritmo de revisión de creencias bayesianas para propagar creencias de retroalimentación y retroalimentación de los nodos secundarios a los principales y viceversa. Sin embargo, la analogía con las redes bayesianas es limitada, porque los HTM pueden auto-entrenarse (de modo que cada nodo tenga una relación familiar inequívoca), lidiar con datos sensibles al tiempo y otorgar mecanismos para la atención encubierta .

Tai Sing Lee y David Mumford propusieron anteriormente una teoría de la computación cortical jerárquica basada en la propagación de creencias bayesianas . Si bien HTM es mayormente consistente con estas ideas, agrega detalles sobre el manejo de representaciones invariantes en la corteza visual.

Redes neuronales

Como cualquier sistema que modela detalles de la neocorteza, HTM puede verse como una red neuronal artificial . La jerarquía en forma de árbol que se usa comúnmente en los HTM se asemeja a la topología habitual de las redes neuronales tradicionales. Los HTM intentan modelar columnas corticales (de 80 a 100 neuronas) y sus interacciones con menos "neuronas" HTM. El objetivo de los HTM actuales es capturar la mayor parte de las funciones de las neuronas y la red (como se entienden actualmente) dentro de la capacidad de las computadoras típicas y en áreas que pueden ser fácilmente útiles, como el procesamiento de imágenes. Por ejemplo, no se intenta la retroalimentación de niveles superiores y el control del motor porque aún no se comprende cómo incorporarlos y se utilizan sinapsis binarias en lugar de variables porque se determinó que eran suficientes en las capacidades actuales de HTM.

LAMINART y redes neuronales similares investigadas por Stephen Grossberg intentan modelar tanto la infraestructura de la corteza como el comportamiento de las neuronas en un marco temporal para explicar los datos neurofisiológicos y psicofísicos. Sin embargo, estas redes son, en la actualidad, demasiado complejas para una aplicación realista.

HTM también está relacionado con el trabajo de Tomaso Poggio , incluido un enfoque para modelar la corriente ventral de la corteza visual conocida como HMAX. Las similitudes de HTM con varias ideas de IA se describen en la edición de diciembre de 2005 de la revista Artificial Intelligence.

Neocognitron

Neocognitron , una red neuronal jerárquica de múltiples capas propuesta por el profesor Kunihiko Fukushima en 1987, es uno de los primeros modelos de redes neuronales de aprendizaje profundo .

Plataforma NuPIC y herramientas de desarrollo

La Plataforma Inteligente Numenta de Informática (NuPIC) es uno de los varios disponibles implementaciones HTM . Algunos son proporcionados por Numenta , mientras que otros son desarrollados y mantenidos por la comunidad de código abierto HTM .

NuPIC incluye implementaciones de Spatial Pooling y Temporal Memory tanto en C ++ como en Python. También incluye 3 API . Los usuarios pueden construir sistemas HTM usando implementaciones directas de los algoritmos , o construir una red usando la API de red , que es un marco flexible para construir asociaciones complicadas entre diferentes capas de corteza.

NuPIC 1.0 se lanzó en julio de 2017, después de lo cual la base de código se puso en modo de mantenimiento. La investigación actual continúa en las bases de código de investigación de Numenta .

Aplicaciones

Las siguientes aplicaciones comerciales están disponibles usando NuPIC:

  • Grok: detección de anomalías para servidores de TI, consulte www.grokstream.com
  • Cortical.io: procesamiento avanzado del lenguaje natural, consulte www.cortical.io

Las siguientes herramientas están disponibles en NuPIC:

Las siguientes aplicaciones de ejemplo están disponibles en NuPIC, consulte numenta.com/applications/ :

  • HTM para acciones: ejemplo de seguimiento de anomalías en el mercado de valores (código de muestra)
  • Detección de comportamiento deshonesto: ejemplo de cómo encontrar anomalías en el comportamiento humano (documento técnico y código de muestra)
  • Seguimiento geoespacial: ejemplo de cómo encontrar anomalías en objetivos que se mueven a través del espacio y el tiempo (documento técnico y código de muestra)

Ver también

Modelos relacionados

Referencias

enlaces externos

Oficial

Otro