stringtranslate.com

Memoria temporal jerárquica

La memoria temporal jerárquica ( HTM ) es una tecnología de inteligencia artificial biológicamente limitada desarrollada por Numenta . Originalmente descrita en el libro On Intelligence de 2004 de Jeff Hawkins con Sandra Blakeslee , la HTM se utiliza hoy principalmente para la detección de anomalías en la transmisión de datos. La tecnología se basa en la neurociencia y en la fisiología e 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 algoritmos de aprendizaje que pueden almacenar, aprender, inferir y recordar secuencias de orden superior. A diferencia de la mayoría de los demás métodos de aprendizaje automático , HTM aprende constantemente (en un proceso no supervisado ) patrones basados ​​en el tiempo en datos no etiquetados. HTM es resistente al ruido y tiene una gran capacidad (puede aprender múltiples patrones simultáneamente). Cuando se aplica a las computadoras, HTM es muy adecuado para la predicción, [1] detección de anomalías, [2] clasificación y, en última instancia, aplicaciones sensoriomotoras. [3]

HTM ha sido probado e implementado en software a través de aplicaciones de ejemplo de Numenta y algunas aplicaciones comerciales de socios de Numenta [ aclaración necesaria ] .

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 a menudo tienen menos regiones. Los niveles jerárquicos superiores pueden reutilizar patrones aprendidos en los niveles inferiores al combinarlos 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, los datos de los ojos) llegan a las regiones de nivel inferior. En el modo de generación, las regiones de nivel inferior generan 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 más permanentes; estas determinan, o son determinadas por, conceptos más pequeños en niveles inferiores, conceptos que están más restringidos en el tiempo y el espacio [ aclaración necesaria ] . Cuando se configura en modo de inferencia, una región (en cada nivel) interpreta la información que surge de sus regiones "hijas" 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 suelen ocurrir al mismo tiempo). Luego identifica secuencias temporales de patrones espaciales que es probable que ocurran uno tras otro.

Como modelo en evolución

La 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 el neocórtex se incorporan progresivamente al modelo HTM, que cambia con el tiempo en respuesta a ello. Los nuevos hallazgos no invalidan necesariamente las partes anteriores del modelo, por lo que las ideas de una generación no quedan necesariamente excluidas de la siguiente. Debido a la naturaleza evolutiva de la teoría, ha habido varias generaciones de algoritmos HTM, [4] 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. Una gran cantidad de posibles patrones de entrada se reduce a una cantidad manejable de coincidencias conocidas.
  2. La agrupación temporal divide en grupos temporales las coincidencias que probablemente se suceden unas a otras en la secuencia de entrenamiento. 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 muy importantes en los algoritmos HTM actuales. La agrupación temporal aún no se entiende 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 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 "padres" 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, 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 los patrones que se reciben. La salida del nodo no cambiará tanto y se perderá una resolución en el tiempo [ aclaración necesaria ] .

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.

Como la resolución en el espacio y el tiempo se pierde en cada nodo, como se ha descrito anteriormente, las creencias formadas por 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 amplios (por ejemplo, causas, acciones y objetos) se perciben como si cambiaran 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 adaptarse, 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. [5]

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 biológicamente más realista (a menudo también denominado célula , en el contexto de HTM). [6] Hay dos componentes centrales en esta generación de HTM: un algoritmo de agrupamiento espacial , [7] que genera representaciones distribuidas dispersas (SDR), y un algoritmo de memoria de secuencia , [8] 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 [ aclaración necesaria ] . Una minicolumna se entiende como un grupo de células que tienen el mismo campo receptivo . Cada minicolumna tiene una cantidad de células que son capaces de recordar varios estados anteriores. Una célula puede estar en uno de tres estados: activo , inactivo y predictivo .

Agrupamiento 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 nodos. 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 en la proximidad de las activas. Los 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 neurona) de una minicolumna, en cualquier momento, puede estar en 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 estado predictivo (ver a continuación), serán las únicas celdas que se activarán en el intervalo de tiempo actual. Si ninguna de las celdas de la minicolumna activa está en estado predictivo (lo que sucede durante el intervalo de tiempo inicial o cuando no se esperaba la activación de esta minicolumna), todas las celdas se activan.

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

Cuando una célula se activa, va formando conexiones con células cercanas que tienden a estar activas durante varios intervalos de tiempo anteriores. De este modo, una célula aprende a reconocer una secuencia conocida comprobando si las células conectadas están activas. Si hay una gran cantidad de células conectadas activas, esta célula cambia al estado predictivo en previsión de una de las próximas entradas 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 genera una mayor estabilidad temporal en la capa principal.

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 previamente aprendidas. Esto permite que cada capa de 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 superiores. La predicción también ayuda a completar patrones faltantes en la secuencia y a interpretar datos ambiguos al sesgar el sistema para que infiera lo que predijo.

Aplicaciones de los CLA

Actualmente, Numenta ofrece algoritmos de aprendizaje cortical como SaaS comercial (como Grok [9] ).

La vigencia de los CLAs

En septiembre de 2011, Jeff Hawkins recibió la siguiente pregunta en relación con los algoritmos de aprendizaje cortical: "¿Cómo sabes si los cambios que estás haciendo en el modelo son buenos o no?". Jeff respondió: "Hay dos categorías de respuestas: una es mirar la neurociencia y la otra son los métodos para la inteligencia de las máquinas. En el ámbito de la neurociencia, hay muchas predicciones que podemos hacer y que se pueden probar. Si nuestras teorías explican una amplia gama de observaciones de la neurociencia, entonces nos indica 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 está por verse. En la medida en que puedas resolver un problema que nadie pudo resolver antes, la gente se dará cuenta". [10]

Tercera generación: inferencia sensoriomotora

La tercera generación se basa en la segunda generación y añade una teoría de inferencia sensoriomotora en el neocórtex. [11] [12] Esta teoría propone que las columnas corticales en cada nivel 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 la denominó teoría de los mil cerebros. [13]

Comparación de modelos neuronales

Comparación de la red neuronal artificial (A), la neurona biológica (B) y la neurona HTM (C).

Comparación de HTM y neocórtex

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

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

Los nodos HTM intentan modelar una parte de las 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 célula 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 tal como se describió anteriormente. Las diferencias entre los HTM y las neuronas incluyen: [16]

Representaciones distribuidas dispersas

La integración del componente de memoria con las redes neuronales tiene una larga historia que se remonta a las primeras investigaciones en representaciones distribuidas [17] [18] y mapas autoorganizados . Por ejemplo, en la memoria distribuida dispersa (SDM), los patrones codificados por las 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. [19] [20]

Las computadoras almacenan información en representaciones densas , como una palabra de 32 bits , donde son posibles todas las combinaciones de 1 y 0. Por el contrario, los cerebros utilizan representaciones distribuidas dispersas (SDR). [21] 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 dispersa. Similar al SDM desarrollado por la NASA en los años 80 [19] y los modelos de espacio vectorial utilizados en el análisis semántico latente , HTM utiliza representaciones distribuidas dispersas. [22]

Los SDR utilizados en HTM son representaciones binarias de datos que consisten en muchos bits con un pequeño porcentaje de los bits activos (1s); una implementación típica puede tener 2048 columnas y 64K neuronas artificiales donde tan solo 40 pueden estar activas a la vez. Aunque puede parecer menos eficiente que la mayoría de los bits queden "sin usar" en una representación dada, 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 ( disperso ) 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 en todos los bits activos, la similitud entre dos representaciones se puede utilizar como una medida de similitud semántica en los objetos que representan. Es decir, si dos vectores en un SDR tienen 1 en la misma posición, entonces son semánticamente similares en ese atributo. Los bits en los SDR tienen un significado semántico, y ese significado se distribuye entre los bits. [22]

La teoría del plegado semántico [23] se basa en estas propiedades 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

En comparación con una red bayesiana , un HTM comprende una colección de nodos que están dispuestos en una jerarquía con forma de árbol. Cada nodo de la jerarquía descubre una serie de causas en los patrones de entrada y secuencias temporales que recibe. Se utiliza un algoritmo de revisión de creencias bayesiano para propagar creencias de retroalimentación y de avance de nodos secundarios a nodos primarios y viceversa. Sin embargo, la analogía con las redes bayesianas es limitada, porque los HTM pueden autoentrenarse (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 computación cortical jerárquica basada en la propagación de creencias bayesianas . [24] Si bien HTM es en gran parte coherente con estas ideas, agrega detalles sobre el manejo de representaciones invariantes en la corteza visual. [25]

Redes neuronales

Al igual que cualquier sistema que modela detalles del neocórtex, el HTM puede considerarse una red neuronal artificial . La jerarquía en forma de árbol que se utiliza habitualmente 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" del HTM. El objetivo de los HTM actuales es capturar la mayor cantidad posible de funciones de las neuronas y de la red (tal como se las entiende actualmente) dentro de la capacidad de las computadoras típicas y en áreas que pueden resultar fácilmente útiles, como el procesamiento de imágenes. Por ejemplo, no se intenta la retroalimentación de los niveles superiores y el control motor porque aún no se entiende cómo incorporarlos y se utilizan sinapsis binarias en lugar de variables porque se determinó que eran suficientes en las capacidades actuales del HTM.

LAMINART y otras 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 datos neurofisiológicos y psicofísicos. Sin embargo, estas redes son, en la actualidad, demasiado complejas para su aplicación realista. [26]

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

Neocognitrón

Neocognitron , una red neuronal jerárquica multicapa propuesta por el profesor Kunihiko Fukushima en 1987, es uno de los primeros modelos de redes neuronales de aprendizaje profundo . [28]

Véase también

Modelos relacionados

Referencias

  1. ^ Cui, Yuwei; Ahmad, Subutai; Hawkins, Jeff (2016). "Aprendizaje continuo de secuencias en línea con un modelo de red neuronal no supervisada". Neural Computation . 28 (11): 2474–2504. arXiv : 1512.05463 . doi :10.1162/NECO_a_00893. PMID  27626963. S2CID  3937908.
  2. ^ Ahmad, Subutai; Lavin, Alexander; Purdy, Scott; Agha, Zuha (2017). "Detección de anomalías en tiempo real sin supervisión para transmisión de datos". Neurocomputing . 262 : 134–147. doi : 10.1016/j.neucom.2017.04.070 .
  3. ^ "Detalles preliminares sobre el nuevo trabajo teórico sobre la inferencia sensoriomotora". Foro HTM . 2016-06-03.
  4. ^ Retrospectiva de HTM en YouTube
  5. ^ "Documentación antigua de Numenta". numenta.com . Archivado desde el original el 27 de mayo de 2009.
  6. ^ Conferencia de Jeff Hawkins que describe algoritmos de aprendizaje cortical en YouTube
  7. ^ Cui, Yuwei; Ahmad, Subutai; Hawkins, Jeff (2017). "El agrupador espacial HTM: un algoritmo neocortical para codificación distribuida dispersa en línea". Frontiers in Computational Neuroscience . 11 : 111. doi : 10.3389/fncom.2017.00111 . PMC 5712570 . PMID  29238299. 
  8. ^ abc Hawkins, Jeff; Ahmad, Subutai (30 de marzo de 2016). "Por qué las neuronas tienen miles de sinapsis, una teoría de la memoria secuencial en el neocórtex". Portada. Circuitos neuronales . 10 : 23. doi : 10.3389/fncir.2016.00023 . PMC 4811948. PMID  27065813. 
  9. ^ "Página de productos de Grok". grokstream.com . Archivado desde el original el 26 de abril de 2019. Consultado el 12 de agosto de 2017 .
  10. ^ Laserson, Jonathan (septiembre de 2011). "De las redes neuronales al aprendizaje profundo: centrándonos en el cerebro humano" (PDF) . XRDS . 18 (1). doi :10.1145/2000775.2000787. S2CID  21496694.
  11. ^ Hawkins, Jeff; Ahmad, Subutai; Cui, Yuwei (2017). "Una teoría sobre cómo las columnas del neocórtex permiten aprender la estructura del mundo". Frontiers in Neural Circuits . 11 : 81. doi : 10.3389/fncir.2017.00081 . PMC 5661005 . PMID  29118696. 
  12. ^ ¿ Nos hemos perdido la mitad de lo que hace el neocórtex? La ubicación alocéntrica como base de la percepción en YouTube
  13. ^ "Numenta publica una teoría innovadora sobre inteligencia y computación cortical". eurekalert.org . 2019-01-14.
  14. ^ Hawkins, Jeff ; Blakeslee, Sandra . Sobre la inteligencia .
  15. ^ George, Dileep; Hawkins, Jeff (2009). "Hacia una teoría matemática de los microcircuitos corticales". PLOS Computational Biology . 5 (10): e1000532. Bibcode :2009PLSCB...5E0532G. doi : 10.1371/journal.pcbi.1000532 . PMC 2749218 . PMID  19816557. 
  16. ^ "Algoritmos de aprendizaje cortical HTM" (PDF) . numenta.org .
  17. ^ Hinton, Geoffrey E. (1984). Representaciones distribuidas (PDF) (Informe técnico). Departamento de Ciencias de la Computación, Universidad Carnegie-Mellon. CMU-CS-84-157.
  18. ^ Plate, Tony (1991). "Representaciones holográficas reducidas: álgebra de convolución para representaciones distribuidas compositivas" (PDF) . IJCAI .
  19. ^ ab Kanerva, Pentti (1988). Memoria distribuida escasa. Prensa del MIT. ISBN 9780262111324.
  20. ^ Snaider, Javier; Franklin, Stan (2012). Memoria distribuida dispersa de enteros (PDF) . Vigésimo quinto congreso internacional de flairs. S2CID  17547390. Archivado desde el original (PDF) el 29 de diciembre de 2017.
  21. ^ Olshausen, Bruno A.; Field, David J. (1997). "Codificación dispersa con un conjunto de base sobrecompleto: ¿Una estrategia empleada por V1?". Vision Research . 37 (23): 3311–3325. doi : 10.1016/S0042-6989(97)00169-7 . PMID  9425546. S2CID  14208692.
  22. ^ ab Ahmad, Subutai; Hawkins, Jeff (2016). "Numenta NUPIC – representaciones distribuidas dispersas". arXiv : 1601.00720 [q-bio.NC].
  23. ^ De Sousa Webber, Francisco (2015). "Teoría del plegado semántico y su aplicación en la identificación semántica". arXiv : 1511.08855 [cs.AI].
  24. ^ Lee, Tai Sing; Mumford, David (2002). "Inferencia bayesiana jerárquica en la corteza visual". Revista de la Sociedad Óptica de América A . 20 (7): 1434–48. CiteSeerX 10.1.1.12.2565 . doi :10.1364/josaa.20.001434. PMID  12868647. 
  25. ^ George, Dileep (24 de julio de 2010). "Inferencia bayesiana jerárquica en la corteza visual". dileepgeorge.com . Archivado desde el original el 1 de agosto de 2019.
  26. ^ Grossberg, Stephen (2007). Cisek, Paul; Drew, Trevor; Kalaska, John (eds.). Hacia una teoría unificada del neocórtex: circuitos corticales laminares para la visión y la cognición. Informe técnico CAS/CNS-TR-2006-008. Para la neurociencia computacional: de las neuronas a la teoría y viceversa (PDF) (Informe). Ámsterdam: Elsevier. págs. 79–104. Archivado desde el original (PDF) el 29 de agosto de 2017.
  27. ^ "Número de revisión especial". Inteligencia artificial . 169 (2): 103–212. Diciembre de 2005. doi :10.1016/j.artint.2005.10.001.
  28. ^ Fukushima, Kunihiko (2007). "Neocognitron". Scholarpedia . 2 (1): 1717. Bibcode :2007SchpJ...2.1717F. doi : 10.4249/scholarpedia.1717 .

Lectura adicional

Enlaces externos