La memoria temporal jerárquica (HTM) es una tecnología de inteligencia artificial con restricciones biológicas desarrollada por Numenta. Descrita originalmente en el libro de 2004 On Intelligence de Jeff Hawkins con Sandra Blakeslee, la HTM se utiliza hoy principalmente para la detección de anomalías en datos en streaming. La tecnología se basa en la neurociencia y en la fisiología e interacción de las neuronas piramidales en la neocorteza del cerebro de los mamíferos (en particular, el humano).
En el núcleo de la HTM se encuentran 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, la HTM aprende constantemente (en un proceso no supervisado) patrones basados en el tiempo en datos no etiquetados. La HTM es robusta al ruido y tiene una alta capacidad (puede aprender múltiples patrones simultáneamente). Cuando se aplica a computadoras, la HTM es adecuada para la predicción, la detección de anomalías, la clasificación y, en última instancia, aplicaciones sensoriomotoras.
Estructura y algoritmos
Una red HTM típica es una jerarquía en forma de árbol de niveles (que no deben confundirse con las "capas" de la neocorteza, 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 puede contener varias regiones. Los niveles superiores de la jerarquía suelen tener menos regiones. Los niveles 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 del nivel inferior producen el patrón generado de una categoría dada. El nivel superior suele tener una sola región que almacena las categorías (conceptos) más generales y permanentes; estas determinan, o son determinadas por, conceptos más pequeños en niveles inferiores - conceptos más restringidos en tiempo y espacio. Cuando se configura en modo de inferencia, una región (en cada nivel) interpreta la información que llega de sus regiones "hijas" como probabilidades de las categorías que tiene en memoria.
Cada región HTM aprende identificando y memorizando patrones espaciales - combinaciones de bits de entrada que ocurren a menudo al mismo tiempo. Luego identifica secuencias temporales de patrones espaciales que es probable que ocurran uno después de otro.
Como modelo en evolución
La HTM es el componente algorítmico de la Teoría de los Mil Cerebros de la inteligencia de Jeff Hawkins. Así, 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 se excluyen necesariamente en la siguiente. 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.
#### Entrenamiento
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:
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.
La agrupación temporal divide las coincidencias que es probable que se sigan entre sí 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 cada grupo temporal. El conjunto de probabilidades asignadas a los grupos se denomina "creencia" del nodo sobre el patrón de entrada. (En una implementación simplificada, la creencia del nodo consiste en un solo grupo ganador). Esta creencia es el resultado de la inferencia que se pasa a uno o más nodos "padre" en el siguiente nivel superior de la jerarquía.
Los patrones "inesperados" para el nodo no tienen una probabilidad dominante de pertenecer a ningún grupo temporal, sino que 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 reciben los patrones. La salida del nodo no cambiará tanto, y se pierde una resolución en el tiempo.
En un esquema más general, la creencia del nodo puede enviarse a la entrada de cualquier nodo(s) en cualquier nivel(es), pero las conexiones entre los nodos siguen siendo fijas. El nodo de nivel superior combina esta salida con la salida de otros nodos hijos formando así su propio patrón de entrada.
Dado que la resolución en espacio y tiempo se pierde en cada nodo como se describió anteriormente, las creencias formadas por los nodos de nivel superior representan un rango aún mayor de espacio y tiempo. Esto pretende reflejar la organización del mundo físico tal como lo percibe el cerebro humano. Los conceptos más grandes (por ejemplo, causas, acciones y objetos) se perciben como que cambian más lentamente y consisten en conceptos más pequeños que cambian más rápidamente. Jeff Hawkins postula que los cerebros evolucionaron 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 la HTM Zeta 1 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 denominada 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 bits 1 es pequeño en comparación con el número de bits 0) para representar la actividad cerebral y un modelo de neurona más realista biológicamente (a menudo también denominado célula, en el contexto de la HTM). Hay dos componentes centrales en esta generación de HTM: un algoritmo de agrupación espacial, que produce representaciones distribuidas dispersas (SDR), y un algoritmo de memoria de secuencias, 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) consiste en una serie de minicolumnas altamente interconectadas. Una capa HTM crea una representación distribuida dispersa a partir de su entrada, de modo que un número fijo de bits está activo para cualquier entrada dada. Esta representación se alimenta luego a la memoria de secuencias, que aprende transiciones entre patrones a lo largo del tiempo. La memoria de secuencias utiliza una forma de dinámica neuronal inspirada en neuronas piramidales, incluyendo dendritas distales y plasticidad sináptica.
Aplicaciones e implementaciones
La HTM ha sido probada e implementada en software a través de aplicaciones de ejemplo de Numenta y algunas aplicaciones comerciales de los socios de Numenta. El caso de uso comercial principal es la detección de anomalías en datos en streaming, como métricas de servidores, transacciones financieras o lecturas de sensores. La capacidad de la HTM para aprender continuamente sin datos etiquetados la hace adecuada para detectar patrones inusuales en sistemas en tiempo real. Numenta ha lanzado implementaciones de código abierto, incluida la biblioteca NuPIC (Plataforma Numenta para Computación Inteligente), que proporciona herramientas para construir sistemas basados en HTM. Aunque no está tan ampliamente adoptada como los enfoques de aprendizaje profundo, la HTM se ha utilizado en aplicaciones de nicho donde el aprendizaje en línea y la robustez al ruido son críticos.
Relación con otros enfoques de IA
La HTM difiere fundamentalmente de los métodos convencionales de inteligencia artificial como el aprendizaje profundo y los modelos basados en transformadores. El aprendizaje profundo típicamente requiere grandes cantidades de datos etiquetados y entrenamiento fuera de línea, mientras que la HTM aprende continuamente de manera no supervisada. Los transformadores, que impulsan los modelos de lenguaje grandes, dependen de mecanismos de atención y no están inspirados biológicamente de la misma manera. El enfoque de la HTM en secuencias temporales y estructura jerárquica se alinea más estrechamente con las teorías de la computación neuronal en el cerebro. Sin embargo, la HTM no ha logrado el mismo nivel de éxito comercial que el aprendizaje profundo, y su escalabilidad a tareas complejas como el procesamiento del lenguaje natural sigue siendo limitada. Los investigadores en instituciones como Numenta (la empresa) continúan desarrollando la teoría, pero la HTM sigue siendo un área de nicho dentro del aprendizaje automático.