Modelo matemático de la memoria.
La memoria distribuida dispersa ( SDM ) es un modelo matemático de la memoria humana a largo plazo introducido por Pentti Kanerva en 1988 mientras estaba en el Centro de Investigación Ames de la NASA . [1]
Esta memoria exhibe comportamientos, tanto en teoría como en experimentos, que se asemejan a aquellos que antes no eran abordados por las máquinas (por ejemplo, reconocimiento rápido de rostros u olores, descubrimiento de nuevas conexiones entre ideas aparentemente no relacionadas, etc.). La memoria dispersa y distribuida se utiliza para almacenar y recuperar grandes cantidades de información. Cantidades ( bits ) de información sin centrarse en la exactitud sino en la similitud de la información. [2] Existen algunas aplicaciones recientes en navegación de robots [3] y manipulación de robots basada en experiencias. [4]
Principio general
Es una memoria de acceso aleatorio (RAM) generalizada para palabras binarias largas (por ejemplo, 1.000 bits). Estas palabras sirven como direcciones y datos para la memoria. El principal atributo de la memoria es la sensibilidad a la semejanza. Esto significa que una palabra se puede volver a leer no sólo dando la dirección de escritura original sino también dando una cercana a ella, medida por el número de bits no coincidentes (es decir, la distancia de Hamming entre direcciones de memoria ). [1]
SDM implementa la transformación del espacio lógico al espacio físico mediante la representación y el almacenamiento de datos distribuidos, de manera similar a los procesos de codificación en la memoria humana. [5] Un valor correspondiente a una dirección lógica se almacena en muchas direcciones físicas. Esta forma de almacenar es robusta y no determinista. No se accede directamente a una celda de memoria. Si los datos de entrada (direcciones lógicas) están parcialmente dañados, aún podemos obtener datos de salida correctos. [6]
La teoría de la memoria es matemáticamente completa [1] y ha sido verificada mediante simulación por ordenador . Surgió de la observación de que las distancias entre puntos de un espacio de alta dimensión se asemejan a las relaciones de proximidad entre conceptos en la memoria humana. La teoría también es práctica porque las memorias basadas en ella se pueden implementar con elementos de memoria de acceso aleatorio convencionales . [7]
Definición
La memoria humana tiene una tendencia a congregar recuerdos basándose en similitudes entre ellos (aunque pueden no estar relacionados), como "los camiones de bomberos son rojos y las manzanas son rojas". [8] La memoria distribuida dispersa es una representación matemática de la memoria humana y utiliza un espacio de alta dimensión para ayudar a modelar las grandes cantidades de memoria que imita la de la red neuronal humana. [9] [10] Una propiedad importante de espacios de tan alta dimensión es que dos vectores elegidos al azar están relativamente lejos uno del otro, lo que significa que no están correlacionados. [11] SDM puede considerarse una realización de hash sensible a la localidad .
La idea subyacente detrás de un SDM es el mapeo de una enorme memoria binaria en un conjunto más pequeño de ubicaciones físicas, las llamadas ubicaciones físicas . Como pauta general, esas ubicaciones físicas deben distribuirse uniformemente en el espacio virtual , para imitar la existencia del espacio virtual más grande con la mayor precisión posible. Cada dato se almacena distribuido por un conjunto de ubicaciones físicas y se recupera promediando esas ubicaciones. Por lo tanto, el recuerdo puede no ser perfecto y la precisión depende de la saturación de la memoria.
La propuesta de Kanerva se basa en cuatro ideas básicas: [12]
- El espacio booleano , o puntos en dimensiones, exhibe propiedades que son similares a las nociones intuitivas de los humanos sobre las relaciones entre los conceptos. Esto significa que tiene sentido almacenar datos como puntos del espacio mencionado donde cada elemento de memoria se almacena como un vector de n bits.
![{\displaystyle \{0,1\}^{n}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle 2^{n}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle 10^{0}<n<10^{5}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- Las neuronas con n entradas se pueden utilizar como decodificadores de direcciones de una memoria de acceso aleatorio
- Principio unificador: los datos almacenados en la memoria se pueden utilizar como direcciones de la misma memoria. La distancia entre dos puntos es una medida de similitud entre dos elementos de memoria. Cuanto más cerca estén los puntos, más similares serán los vectores almacenados.
- El tiempo se puede rastrear en la memoria en función del lugar donde se almacenan los datos, si los datos están organizados como secuencias de eventos.
El espacio binario norte
El SDM trabaja con vectores de n dimensiones con componentes binarios. Dependiendo del contexto, los vectores se denominan puntos, patrones, direcciones, palabras, elementos de memoria, datos o eventos. Esta sección trata principalmente sobre las propiedades del espacio vectorial N = . Sea n el número de dimensiones del espacio. El número de puntos, o posibles elementos de memoria, es entonces . Denotaremos este número por N y usaremos N y para representar también el espacio mismo. [6]![{\displaystyle \{0,1\}^{n}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle 2^{n}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle 2^{n}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Conceptos relacionados con el espacio N:
[6]
- Origen , 0: El punto con todas las coordenadas 0 se llama origen, 0 = 000...00.
- Complemento , 'x: El complemento, u opuesto, del punto x es la n-tupla que tiene unos donde x tiene ceros y viceversa.
- Norma , |x|: La norma del punto x es el número de unos en su representación binaria.
- Diferencia , x − y: La diferencia de dos puntos xey es la n-tupla que tiene unos donde xey difieren y ceros en otros lugares. Es el ' exclusivo o ' bit a bit: x − y = x ⊕ y. La diferencia conmuta: x − y = y − x.
- Distancia , d(x, y) La distancia entre dos puntos xey es el número de dimensiones en las que xey difieren. Se llama distancia de Hamming (su raíz cuadrada es la distancia euclidiana ) y se expresa en bits. La distancia es la norma de la diferencia: d(x, y) = |x − y|
- Intermediación , x:y:z: El punto y está entre los puntos x y z si y sólo si la distancia de x a z es la suma de las distancias de x a y y de y a z; es decir, x:y:z ⇔ d(x, z) = d(x, y) + d(y, z). Se ve fácilmente que cada bit de un punto intermedio es una copia del bit correspondiente de un punto final.
- Ortogonalidad , x ⊥ y: El punto x es ortogonal al punto y, o los dos son perpendiculares o indiferentes, si y sólo si la distancia entre los dos es la mitad del número de dimensiones: x ⊥ y ⇔ d(x, y) = n /2. La distancia n/2 se llama distancia de indiferencia del espacio N. Si x es ortogonal a y, también es ortogonal a su complemento 'y (x está a medio camino entre y e 'y).
- Círculo , O(r,x) Un círculo con radio r y centro x es el conjunto de puntos que están como máximo a r bits de x: O(r,x) = {y | d(x, y) ≤r}.
Propiedades del espacio N:
[1] [6]
El espacio N puede representarse mediante los vértices del cubo unitario en el espacio euclidiano de n dimensiones . Los vértices se encuentran en la superficie de una esfera n-dimensional con radio (métrico euclidiano) . Esto da lugar a la analogía de la esfera . Llamaremos esférico a un espacio si![{\displaystyle {\sqrt {n}}/2}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- cualquier punto x tiene un opuesto único 'x,
- todo el espacio está entre cualquier punto x y su opuesto 'x, y
- todos los puntos son "iguales" (lo que significa que para dos puntos cualesquiera xey hay una distancia que preserva el automorfismo del espacio que asigna xey, de modo que desde cualquiera de sus puntos el espacio "parece" igual).
La superficie de una esfera (en el espacio 3D euclidiano) es claramente esférica. Según la definición, N también es esférico, ya que y ⊕ x ⊕ (…) es un automorfismo que asigna x a y. Como N es esférico, resulta útil considerarlo como la superficie de una esfera con circunferencia 2n. Todos los puntos de N están igualmente calificados como puntos de origen, y un punto y su complemento son como dos polos a una distancia n entre sí, con todo el espacio entre ellos. Los puntos intermedios entre los polos y perpendiculares a ellos son como el ecuador.
- Distribución del espacio N
El número de puntos que son exactamente d bits de un punto arbitrario x (digamos, del punto 0) es el número de formas de elegir d coordenadas de un total de n coordenadas y, por lo tanto, viene dado por el coeficiente binomial : ![{\displaystyle {\binom {n}{d}}={\frac {n!}{d!(nd)!}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
La distribución de N, por tanto, es la distribución binomial con parámetros n y p, donde p = 1/2. La media de la distribución binomial es n/2 y la varianza es n/4. Esta función de distribución se denotará por N(d). La distribución normal F con media n/2 y desviación estándar es una buena aproximación: N(d) = Pr{d(x, y) ≤ d} ≅ F{(d − n / 2)/ }![{\displaystyle {\sqrt {n}}/2}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle {\sqrt {n/4}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- Tendencia a la ortogonalidad
Una propiedad sobresaliente de N es que la mayor parte se encuentra aproximadamente a la distancia media (indiferencia) n/2 de un punto (y su complemento). En otras palabras, la mayor parte del espacio es casi ortogonal a cualquier punto dado, y cuanto mayor es n, más pronunciado es este efecto.
Como red neuronal
El SDM puede considerarse como una extensión direccionable por contenido de una memoria de acceso aleatorio (RAM) clásica o como un tipo especial de red neuronal de tres capas . Las principales alteraciones del SDM en la RAM son: [13]
- El SDM calcula distancias de Hamming entre la dirección de referencia y cada dirección de ubicación. Para cada distancia que sea menor o igual al radio dado, se selecciona la ubicación correspondiente.
- La memoria está representada por contadores (donde n es el número de ubicaciones y m es la longitud de los datos de entrada) en lugar de elementos de almacenamiento de un solo bit.
- Escribir en la memoria, en lugar de sobrescribir, es el siguiente:
- si el i-bit de los datos de entrada es 1, los contadores correspondientes (contadores en las ubicaciones (filas) seleccionadas y en las i-ésimas columnas) se incrementan,
- si el i-bit de los datos de entrada es 0, los contadores correspondientes disminuyen.
- Leer (o recuperar) de la memoria es similar:
- El contenido de las ubicaciones seleccionadas se suma en columnas.
- Cada suma tiene un umbral. Si la suma es mayor o igual que el valor umbral, el bit de salida correspondiente se establece en 1; en el caso contrario, se borra. Tenga en cuenta que los umbrales pueden ser cero si los vectores de entrada de entrenamiento están cerrados a los ortogonales.
modelo de neurona
Una descripción idealizada de neurona es la siguiente: una neurona tiene un cuerpo celular con dos tipos de ramas: dendritas y un axón . Recibe señales de entrada de otras neuronas a través de dendritas, las integra (suma) y genera su propia señal de salida (eléctrica) que se envía a las neuronas externas a través del axón. Los puntos de contacto eléctrico entre neuronas se llaman sinapsis .
Cuando una neurona genera una señal, se está disparando y después de dispararse debe recuperarse antes de volver a dispararse. La importancia relativa de una sinapsis para la activación de una neurona se denomina peso sináptico (o coeficiente de entrada ). Hay dos tipos de sinapsis: excitadoras , que activan la activación de las neuronas , e inhibidoras , que dificultan la activación. La neurona es excitadora o inhibidora según los tipos de sinapsis que realiza su axón. [14]
Una neurona se activa cuando la suma de entradas excede un umbral específico . Cuanto más alto es el umbral, más importante es que las sinapsis excitadoras tengan aportes mientras que las inhibidoras no. [15] El hecho de que una neurona recuperada realmente se active depende de si recibió suficiente información excitadora (más allá del umbral) y no demasiada información inhibidora dentro de un período determinado.
El modelo formal de neurona hace suposiciones aún más simplificadoras. [16] Una neurona de n entradas se modela mediante una función de umbral lineal de la siguiente manera:![{\displaystyle F:\{0,1\}^{n}->\{0,1\}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Para donde n es el número de entradas, sea la salida en el momento t : y sea la i -ésima entrada en el momento t : . Sea el peso de la i -ésima entrada y sea el umbral.![{\displaystyle i=0,...,n-1}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle F_{t}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle F_{t}\en \{0,1\}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle x_{i,t}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle x_{i,t}\en \{0,1\}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle w_{i}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle c}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
La suma ponderada de las entradas en el momento t se define por![{\displaystyle S_{t}=\sum _ {i=0}^{n-1}w_{i}x_{i,t}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
La salida de la neurona en el momento t se define como una función booleana : ![{\displaystyle \mathbf {F} _{t}={\begin{casos}1&{\text{if }}S_{t}>=c,\\0&{\text{de lo contrario }}.\end{casos }}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Donde F t =1 significa que la neurona se activa en el momento t y F t =0 que no lo hace, es decir, para que la neurona se active la suma ponderada debe alcanzar o superar el umbral. Las entradas excitatorias aumentan la suma y las inhibidoras la disminuyen.
Neurona como decodificador de direcciones
La tesis clave de Kanerva [1] es que ciertas neuronas podrían tener sus coeficientes y umbrales de entrada fijos durante toda la vida de un organismo y usarse como decodificadores de direcciones donde n -tupla de coeficientes de entrada (el patrón al que las neuronas responden más fácilmente) determina la n Dirección de memoria de bits, y el umbral controla el tamaño de la región de patrones de direcciones similares a los que responde la neurona.
Este mecanismo es complementario a las sinapsis ajustables o pesos ajustables en una red neuronal ( perceptron convergence learning), ya que este mecanismo de acceso fijo sería un marco de referencia permanente que permitiría seleccionar las sinapsis en las que se almacena la información y de las que se recupera. bajo un conjunto dado de circunstancias. Además, una codificación de la presente circunstancia serviría como dirección.
La dirección a de una neurona con coeficientes de entrada w donde se define como un patrón de entrada de n bits que maximiza la suma ponderada. El máximo ocurre cuando las entradas inhibidoras son ceros y las entradas excitadoras son unos. El i -ésimo bit de dirección es:![{\ Displaystyle w_ {0},.., w_ {n_ {1}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
(suponiendo que los pesos sean distintos de cero)
La suma ponderada máxima es entonces la suma de todos los coeficientes positivos: ![{\displaystyle S(w)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle S(w)=\sum _ {w_ {i}>0}w_ {i}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Y la suma mínima ponderada correspondería a un punto opuesto a la dirección de la neurona a`:![{\displaystyle s(w)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\ Displaystyle s (w) = \ sum _ {w_ {i} <0} w_ {i}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Cuando el umbral c está dentro del rango, la salida de la neurona es 0 para algunas direcciones (patrones de entrada) y 1 para otras. Si el umbral está por encima de S, la salida es siempre 0, si está por debajo de s, la salida siempre es 1. Entonces, mediante una elección adecuada del umbral, una neurona responde solo a una sola dirección. Cuando el umbral es S (el máximo para la suma ponderada), la neurona responde sólo a su propia dirección y actúa como un decodificador de direcciones de una memoria de acceso aleatorio convencional .![{\displaystyle s(w)<c<S(w)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Ubicación de la memoria
SDM está diseñado para hacer frente a patrones de direcciones que abarcan un enorme espacio de direcciones (orden de ). SDM supone que los patrones de direcciones que realmente describen situaciones físicas de interés están escasamente dispersos por todo el espacio de entrada. Es imposible reservar una ubicación física separada correspondiente a cada posible entrada; SDM implementa solo un número limitado de ubicaciones físicas o físicas . La ubicación física se denomina ubicación de memoria (o ubicación física ). [7]![{\displaystyle 2^{1000}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Cada ubicación física tiene asociados dos elementos:
- una dirección fija fija, que es la dirección de N bits de la ubicación
- una porción de contenido que tiene una anchura de M bits y que puede acumular múltiples patrones de datos de M bits escritos en la ubicación. La porción del contenido no es fija; se modifica mediante patrones de datos escritos en la memoria.
En SDM, una palabra podría almacenarse en la memoria escribiéndola en una ubicación de almacenamiento libre y al mismo tiempo proporcionando a la ubicación el decodificador de dirección apropiado. Una neurona como decodificador de direcciones seleccionaría una ubicación en función de la similitud de la dirección de la ubicación con la señal de recuperación. A diferencia de las máquinas de Turing convencionales , SDM aprovecha la computación paralela mediante los decodificadores de direcciones . El mero acceso a la memoria se considera computación, cuya cantidad aumenta con el tamaño de la memoria. [1]
Patrón de dirección
Un vector de N bits utilizado para escribir y leer en la memoria. El patrón de dirección es una descripción codificada de un estado ambiental. (por ejemplo, N = 256.)
Patrón de datos
Un vector de M bits que es objeto de las operaciones de escritura y lectura. Al igual que el patrón de dirección, es una descripción codificada de un estado ambiental. (por ejemplo, M = 256.)
Escribiendo
Escribir es la operación de almacenar un patrón de datos en la memoria utilizando un patrón de dirección particular. Durante una escritura, la entrada a la memoria consta de un patrón de dirección y un patrón de datos. El patrón de dirección se utiliza para seleccionar ubicaciones de memoria física cuyas direcciones físicas se encuentran dentro de una cierta distancia límite del patrón de dirección. El patrón de datos se almacena en cada una de las ubicaciones seleccionadas.
Lectura
La lectura es la operación de recuperar un patrón de datos de la memoria utilizando un patrón de dirección particular. Durante una lectura, se utiliza un patrón de dirección para seleccionar una cierta cantidad de ubicaciones de memoria dura (al igual que durante una escritura). El contenido de las ubicaciones seleccionadas se suma bit a bit y se establece un umbral para derivar un patrón de datos de M bits. Esto sirve como salida leída de la memoria.
Cadenas de punteros
Todos los elementos están vinculados en una única lista (o matriz) de punteros a ubicaciones de memoria y se almacenan en la RAM. Cada dirección en una matriz apunta a una línea individual en la memoria. Luego se devuelve esa línea si es similar a otras líneas. Las neuronas se utilizan como decodificadores y codificadores de direcciones, de manera similar a la forma en que funcionan las neuronas en el cerebro, y devuelven elementos de la matriz que coinciden o son similares.
Distancia crítica
El modelo de memoria de Kanerva tiene el concepto de punto crítico : antes de este punto, un elemento previamente almacenado puede recuperarse fácilmente; pero más allá de este punto no se puede recuperar un artículo. Kanerva ha calculado metódicamente este punto para un conjunto particular de parámetros (fijos). La distancia crítica correspondiente de una memoria distribuida dispersa se puede evaluar aproximadamente minimizando la siguiente ecuación con la restricción y . La prueba se puede encontrar en [17] [18]![{\displaystyle d\en N}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle d\leqslant n}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle {\tilde {f}}(d)=\left\{{\frac {1}{2}}\cdot \left[1-N\left(z<{\frac {w\cdot compartido( d)}{\sqrt {\theta }}}\right)+N\left(z<{\frac {-w\cdot compartido(d)}{\sqrt {\theta }}}\right)\right] -{\frac {d}{n}}\right\}^{2}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Dónde:
: es la distancia al objetivo;
: es el número de dimensiones;
: es la distribución normal normalizada con media cero y varianza uno;
: es el número de veces que se escribió en la memoria la cadena de bits de destino;
: es el total de cadenas de bits aleatorias en todas las ubicaciones físicas activadas por una operación de lectura; es decir, el tamaño de un conjunto de celdas;![{\displaystyle h}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
: es el número medio de ubicaciones físicas compartidas activadas por dos cadenas de bits alejadas una de otra. Se pueden encontrar algunos valores para un SDM de 1000 dimensiones en el libro de Kanerva, Tabla 7.1, p. 63, o las ecuaciones para calcular cualquier SDM en el Apéndice B, p. 125 del mismo libro.![{\displaystyle d}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Interpretación probabilística
Un sistema de memoria asociativa que utiliza representaciones dispersas y distribuidas puede reinterpretarse como un muestreador de importancia , un método de Monte Carlo para aproximar la inferencia bayesiana . [19] El SDM puede considerarse una aproximación de Monte Carlo a una integral de probabilidad condicional multidimensional . El SDM producirá respuestas aceptables a partir de un conjunto de entrenamiento cuando esta aproximación sea válida, es decir, cuando el conjunto de entrenamiento contenga datos suficientes para proporcionar buenas estimaciones de las probabilidades conjuntas subyacentes y haya suficientes muestras de Monte Carlo para obtener una estimación precisa de la integral. . [20]
plausibilidad biológica
La codificación escasa puede ser una estrategia general de los sistemas neuronales para aumentar la capacidad de la memoria. Para adaptarse a sus entornos, los animales deben aprender qué estímulos están asociados con recompensas o castigos y distinguir estos estímulos reforzados de otros similares pero irrelevantes. Tal tarea requiere implementar memorias asociativas específicas de estímulos en las que sólo unas pocas neuronas de una población responden a un estímulo determinado y cada neurona responde sólo a unos pocos estímulos de todos los estímulos posibles.
El trabajo teórico sobre SDM de Kanerva ha sugerido que la codificación escasa aumenta la capacidad de la memoria asociativa al reducir la superposición entre representaciones. Experimentalmente, se han observado escasas representaciones de información sensorial en muchos sistemas, incluida la visión, [21] la audición, [22] el tacto, [23] y el olfato. [24] Sin embargo, a pesar de la evidencia acumulada de una codificación dispersa generalizada y de los argumentos teóricos sobre su importancia, hasta hace poco faltaba una demostración de que la codificación dispersa mejora la especificidad del estímulo de la memoria asociativa.
En 2014 , el laboratorio de Gero Miesenböck en la Universidad de Oxford logró algunos avances al analizar el sistema olfativo de Drosophila . [25]
En Drosophila, se cree que la escasa codificación de olores por parte de las células de Kenyon del cuerpo del hongo genera una gran cantidad de ubicaciones direccionables con precisión para el almacenamiento de recuerdos de olores específicos. Lin et al. [26] demostraron que la escasez está controlada por un circuito de retroalimentación negativa entre las células de Kenyon y la neurona lateral emparejada anterior (APL) GABAérgica . La activación y el bloqueo sistemáticos de cada tramo de este circuito de retroalimentación muestran que las células de Kenyon activan la APL y la APL inhibe las células de Kenyon. La interrupción del circuito de retroalimentación de las células de Kenyon-APL disminuye la escasez de las respuestas de olor de las células de Kenyon, aumenta las correlaciones entre olores y evita que las moscas aprendan a discriminar olores similares, pero no diferentes. Estos resultados sugieren que la inhibición de la retroalimentación suprime la actividad de las células de Kenyon para mantener una codificación de olores escasa y descorrelacionada y, por lo tanto, la especificidad del olor de los recuerdos. Una publicación de 2017 en Science [27] mostró que el circuito olfativo de la mosca implementa una versión mejorada del hash binario sensible a la localidad a través de proyecciones aleatorias dispersas.
Aplicaciones
En aplicaciones de la memoria, las palabras son patrones de rasgos. Algunas características son producidas por un sistema sensorial, otras controlan un sistema motor. Hay un patrón actual (de, por ejemplo, 1000 bits), que es el contenido actual del foco del sistema . Los sensores se alimentan del foco, los motores son accionados desde el foco y se accede a la memoria a través del foco.
Lo que sucede en el mundo –la experiencia “subjetiva” del sistema– está representado internamente por una secuencia de patrones en el foco. La memoria almacena esta secuencia y puede recrearla más adelante en el foco si se aborda con un patrón similar a uno encontrado en el pasado. Así, la memoria aprende a predecir lo que está por suceder. Amplias aplicaciones de la memoria serían en sistemas que manejan información del mundo real en tiempo real.
Las aplicaciones incluyen visión (detección e identificación de objetos en una escena y anticipación de escenas posteriores), robótica , detección y verificación de señales y aprendizaje y control adaptativos . Desde el punto de vista teórico, el funcionamiento de la memoria puede ayudarnos a comprender la memoria y el aprendizaje en humanos y animales. [7] [28]
La mejor búsqueda de coincidencias
SDM se puede aplicar al problema de encontrar la mejor coincidencia con una palabra de prueba en un conjunto de datos de palabras almacenadas. [1] [29] o, en otras palabras, el problema de búsqueda del vecino más cercano .
Considere una memoria con N ubicaciones donde . Supongamos que cada ubicación tenga capacidad para una palabra de n bits (por ejemplo, N = 2 100 palabras de 100 bits) y que la decodificación de direcciones la realicen N neuronas decodificadoras de direcciones. Establezca el umbral de cada neurona x en su suma ponderada máxima y use un parámetro común d para ajustar todos los umbrales al acceder a la memoria. El umbral efectivo de la neurona x será entonces, lo que significa que la ubicación x es accesible cada vez que la dirección x está dentro de d bits de la dirección presentada en la memoria (es decir, la dirección mantenida por el registro de direcciones). Con tenemos una memoria de acceso aleatorio convencional . Supongamos además que cada ubicación tiene un bit de ubicación ocupada especial al que se puede acceder de la misma manera que los bits de referencia normales. Escribir una palabra en una ubicación establece este bit de ubicación ocupada . Supongamos que sólo se puede leer la ubicación ocupada.![{\displaystyle N=2^{n}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle |x|}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle x-|d|}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle d=0}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Para archivar los datos en la memoria, comience configurando y emitiendo un comando para borrar el bit de ubicación ocupada . Esta única operación marca toda la memoria como desocupada independientemente de los valores del registro de direcciones. Luego configure y escriba cada palabra y del conjunto de datos con y como dirección. Observe que cada operación de escritura afecta solo a una ubicación: la ubicación y . Por tanto, el tiempo de archivo es proporcional al número de palabras del conjunto de datos.![{\displaystyle d=n}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle d=0}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Encontrar la mejor coincidencia para una palabra de prueba z implica colocar z en el registro de direcciones y encontrar la distancia mínima d para la cual hay una ubicación ocupada. Podemos iniciar la búsqueda configurando e incrementando d sucesivamente hasta encontrar una ubicación ocupada. Este método proporciona tiempos de búsqueda promedio que son proporcionales al número de bits de dirección o ligeramente menores que [1] porque se puede esperar que la ubicación ocupada más cercana esté justo debajo de los bits de z (con la búsqueda binaria en d esto sería O(log( norte)).![{\displaystyle d=0}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle n/2}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle n/2}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Con palabras de 100 bits se necesitarían 2.100 posiciones, es decir, una memoria enormemente grande. Sin embargo, si construimos la memoria mientras almacenamos las palabras del conjunto de datos, solo necesitamos una ubicación (y un decodificador de dirección) para cada palabra del conjunto de datos. No es necesario que esté presente ninguno de los lugares desocupados. Esto representa el aspecto de escasez en SDM.
Reconocimiento de voz
El SDM se puede aplicar en la transcripción del habla , y el entrenamiento consiste en "escuchar" un gran corpus de lenguaje hablado . Dos problemas difíciles con el habla natural son cómo detectar los límites de las palabras y cómo adaptarse a diferentes hablantes. La memoria debería poder manejar ambos. Primero, almacena secuencias de patrones como cadenas de punteros. En el entrenamiento (al escuchar el habla) construirá una estructura probabilística con la mayor incidencia de ramificaciones en los límites de las palabras. Al transcribir el habla, estos puntos de ramificación se detectan y tienden a dividir la secuencia en segmentos que corresponden a palabras. En segundo lugar, la sensibilidad de la memoria a la similitud es su mecanismo para adaptarse a diferentes hablantes... y a las variaciones en la voz del mismo hablante. [7]
"Darnos cuenta del olvido"
En la Universidad de Memphis, Uma Ramamurthy, Sidney K. D'Mello y Stan Franklin crearon una versión modificada del sistema de memoria distribuida dispersa que representa "realizar el olvido". Utiliza una ecuación de desintegración para mostrar mejor la interferencia en los datos. El sistema de memoria distribuida escasa distribuye cada patrón en aproximadamente una centésima parte de las ubicaciones, [ se necesita aclaración ] por lo que la interferencia puede tener resultados perjudiciales. [30]
Se presentan dos posibles ejemplos de deterioro de esta memoria distribuida dispersa modificada.
Mecanismo de caída exponencial:![{\displaystyle \!f(x)=1+e^{-ax}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Mecanismo de desintegración sigmoidea traducida negada:![{\displaystyle f(x)=1-[{\frac {1}{1+e^{-a(xc)}}}]}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
En la función de caída exponencial, se acerca a cero más rápidamente a medida que x aumenta, y a es una constante (normalmente entre 3 y 9) y c es un contador. Para la función sigmoide traducida negada , la caída es similar a la función de caída exponencial cuando a es mayor que 4. [30]
A medida que el gráfico se acerca a 0, representa cómo se olvida la memoria mediante mecanismos de decadencia.
Memoria distribuida escasa genética
Ashraf Anwar, Stan Franklin y Dipankar Dasgupta de la Universidad de Memphis; propuso un modelo para la inicialización de SDM utilizando algoritmos genéticos y programación genética (1999).
La memoria genética utiliza algoritmos genéticos y memoria distribuida escasa como una red neuronal pseudoartificial. Se ha considerado su uso en la creación de vida artificial. [31]
Predicción estadística
SDM se ha aplicado a la predicción estadística , la tarea de asociar vectores de estado de percepción extremadamente grandes con eventos futuros. En condiciones de casi o exceso de capacidad, donde el comportamiento de la memoria asociativa del modelo se rompe, el procesamiento realizado por el modelo puede interpretarse como el de un predictor estadístico y cada contador de datos en un SDM puede verse como una estimación independiente. de la probabilidad condicional de que una función binaria f sea igual al conjunto de activación definido por la ubicación de memoria del contador. [32]
Inteligencia artificial general
- LIDA utiliza memoria distribuida escasa para ayudar a modelar la cognición en sistemas biológicos. La escasa memoria distribuida en el espacio recuerda o reconoce el objeto que tiene en relación con otros objetos. Fue desarrollado por Stan Franklin, el creador del sistema de memoria distribuida dispersa modificada "realizando el olvido". [33] Las memorias episódicas y declarativas transitorias tienen representaciones distribuidas en LIDA (basado en una versión modificada de SDM [34] ), hay evidencia de que este también es el caso en el sistema nervioso. [35]
- CMatie es un agente de software "consciente" desarrollado para gestionar anuncios de seminarios en el Departamento de Ciencias Matemáticas de la Universidad de Memphis . Se basa en SDM aumentado con el uso de algoritmos genéticos como memoria asociativa . [36]
- La memoria temporal jerárquica utiliza SDM para almacenar representaciones distribuidas dispersas de los datos.
Aprendizaje reforzado
Los SDM proporcionan un esquema de aproximación de función local lineal , diseñado para funcionar cuando un espacio de entrada (direcciones) muy grande o de alta dimensión debe asignarse a una memoria física mucho más pequeña . En general, las arquitecturas locales, incluidos los SDM, pueden estar sujetas a la maldición de la dimensionalidad , ya que algunas funciones objetivo pueden requerir, en el peor de los casos, un número exponencial de unidades locales para aproximarse con precisión en todo el espacio de entrada. Sin embargo, se cree ampliamente que la mayoría de los sistemas de toma de decisiones necesitan una alta precisión sólo alrededor de variedades de baja dimensión del espacio de estados , o "autopistas" de estados importantes. [37] El trabajo de Ratitch et al. [38] combinaron el modelo de memoria SDM con las ideas del aprendizaje basado en memoria , que proporciona un aproximador que puede adaptar dinámicamente su estructura y resolución para localizar regiones del espacio de estados que son "más interesantes" [39] y asignar proporcionalmente más recursos de memoria para modelarlos con precisión.
Indexación de objetos en visión por computadora.
El laboratorio de Dana H. Ballard [40] demostró una técnica de indexación de objetos de uso general para visión por computadora que combina las virtudes del análisis de componentes principales con las propiedades de coincidencia favorables de espacios de alta dimensión para lograr un reconocimiento de alta precisión. El algoritmo de indexación utiliza un sistema de visión activo junto con una forma modificada de SDM y proporciona una plataforma para aprender la asociación entre la apariencia de un objeto y su identidad.
Extensiones
Se han propuesto muchas extensiones y mejoras de SDM, por ejemplo:
- Espacio de memoria ternaria: Permite utilizar la memoria como Memoria Episódica Transitoria (TEM) en agentes de software cognitivo . TEM es una memoria con alta especificidad y baja retención, utilizada para eventos que tienen características de un tiempo y lugar en particular. [41] [42]
- SDM de enteros que utiliza vectores enteros aritméticos modulares en lugar de vectores binarios. Esta extensión mejora las capacidades de representación de la memoria y es más robusta con respecto a la normalización. También se puede ampliar para admitir el olvido y el almacenamiento confiable de secuencias. [11]
- Uso de vectores de palabras de mayor tamaño que los vectores de direcciones: esta extensión conserva muchas de las propiedades deseables del SDM original: autoasociabilidad, direccionabilidad de contenido, almacenamiento distribuido y robustez frente a entradas ruidosas. Además, añade nuevas funcionalidades, permitiendo un almacenamiento autoasociativo eficiente de secuencias de vectores, así como de otras estructuras de datos como árboles. [43]
- Construcción de SDM a partir de neuronas puntiagudas : A pesar de la semejanza biológica del SDM, la mayor parte del trabajo realizado para demostrar sus capacidades hasta la fecha ha utilizado modelos neuronales altamente artificiales que abstraen el comportamiento real de las neuronas en el cerebro . Un trabajo reciente del laboratorio de Steve Furber en la Universidad de Manchester [44] [45] [46] propuso adaptaciones al SDM, por ejemplo, incorporando códigos de rango N-de-M [47] [48] en cómo las poblaciones de neuronas pueden codificar información, que puede hacer posible construir una variante de SDM a partir de componentes biológicamente plausibles. Este trabajo se ha incorporado a SpiNNaker (Spiking Neural Network Architecture), que se utiliza como plataforma de computación neuromórfica para el Proyecto Cerebro Humano . [49]
- Distribución no aleatoria de ubicaciones: [50] [51] Aunque las ubicaciones de almacenamiento se distribuyen inicialmente de forma aleatoria en el espacio binario de direcciones N, la distribución final de ubicaciones depende de los patrones de entrada presentados y puede no ser aleatoria, lo que permite una mayor flexibilidad. y generalización . El patrón de datos se almacena primero en las ubicaciones más cercanas a la dirección de entrada. La señal (es decir, el patrón de datos) luego se propaga por toda la memoria y un pequeño porcentaje de la intensidad de la señal (por ejemplo, 5%) se pierde en cada ubicación posterior encontrada. Distribuir la señal de esta manera elimina la necesidad de seleccionar un radio de lectura/escritura, una de las características problemáticas del SDM original. Todas las ubicaciones seleccionadas en una operación de escritura no reciben ahora una copia del patrón binario original con la misma fuerza. En su lugar, reciben una copia del patrón ponderado con un valor real de 1,0->0,05 para almacenar en contadores de valor real (en lugar de contadores binarios en el SDM de Kanerva). Esto recompensa a las ubicaciones más cercanas con una mayor intensidad de señal y utiliza la arquitectura natural del SDM para atenuar la intensidad de la señal. De manera similar, al leer de la memoria, la salida de las ubicaciones más cercanas recibe un peso mayor que la de las ubicaciones más distantes. El nuevo método de señal permite utilizar la intensidad total de la señal recibida por una ubicación como medida de la idoneidad de una ubicación y es flexible para variar la entrada (ya que no es necesario cambiar el factor de pérdida para patrones de entrada de diferentes longitudes).
- SDMSCue (memoria distribuida dispersa para señales pequeñas): Ashraf Anwar y Stan Franklin de la Universidad de Memphis, introdujeron una variante de SDM capaz de manejar señales pequeñas; a saber, SDMSCue en 2002. La idea clave es utilizar múltiples lecturas/escrituras y proyecciones espaciales para alcanzar una señal sucesivamente más larga. [52]
Patentes relacionadas
- Método y aparato para un sistema de memoria distribuida dispersa US 5113507 A, Universities Space Research Association , 1992 [53]
- Método y dispositivo para almacenar y recuperar información implementando un sistema de memoria Kanerva US 5829009 A, Texas Instruments , 1998 [54]
- Memoria digital, Furber, Stephen. Estados Unidos 7512572 B2, 2009 [55]
Implementación
Ver también
Referencias
- ^ abcdefgh Kanerva, Pentti (1988). Memoria distribuida escasa . La prensa del MIT. ISBN 978-0-262-11132-4.
- ^ Kanerva, Pentti (1988). Memoria distribuida escasa . La prensa del MIT. ISBN 978-0-262-11132-4.
- ^ Mendes, Mateus; Crisóstomo, Manuel; Coímbra, A. Paulo (2008). "Navegación del robot utilizando una memoria distribuida escasa". Conferencia Internacional IEEE 2008 sobre Robótica y Automatización . págs. 53–58. doi :10.1109/ROBOT.2008.4543186. ISBN 978-1-4244-1646-2. S2CID 10977460.
- ^ Jockel, S.; Lindner, F.; Jian Wei Zhang (2009). "Memoria distribuida escasa para la manipulación de robots basada en experiencias". Conferencia Internacional IEEE 2008 sobre Robótica y Biomimética . págs. 1298-1303. doi :10.1109/ROBIO.2009.4913187. ISBN 978-1-4244-2678-2. S2CID 16650992.
- ^ Rissman, Jesse; Wagner, Anthony D. (2012). "Representaciones distribuidas en la memoria: conocimientos de imágenes cerebrales funcionales". Revista Anual de Psicología . 63 : 101–28. doi : 10.1146/annurev-psych-120710-100344. PMC 4533899 . PMID 21943171.
- ^ abcd Grebeníček, František. "Análisis de datos de patrones de memoria distribuida escasa. URL: http://www.fit.vutbr.cz/~grebenic/Publikace/mosis2000.pdf"
- ^ abcde Flynn, Michael J., Pentti Kanerva y Neil Bhadkamkar. "Prototipo de memoria distribuida escasa: principios y funcionamiento". (1989).
- ^ C. George Boeree (2002). "Psicología General". Universidad de Shippensburg.
- ^ Pentti Kanerva (1993). "Memoria distribuida escasa y modelos relacionados". Universidad Estatal de Pensilvania: 50–76. CiteSeerX 10.1.1.2.8403 .
- ^ MJ Flynn; P. Kanerva y N. Bhadkamkar (diciembre de 1989). "Memoria distribuida escasa: principios y funcionamiento" (PDF) . Universidad Stanford . Consultado el 1 de noviembre de 2011 .[ enlace muerto permanente ]
- ^ ab Snaider, Javier y Stan Franklin. "Memoria distribuida dispersa y entera Archivado el 2 de agosto de 2021 en Wayback Machine ". Vigésima quinta conferencia internacional de estilos. 2012.
- ^ Mendes, Mateus Daniel Almeida. "Navegación robótica inteligente utilizando una memoria distribuida escasa". Tesis doctoral, (2010). URL: https://eg.sib.uc.pt/handle/10316/17781 Archivado el 4 de marzo de 2016 en Wayback Machine.
- ^ Grebenıcek, František. Redes neuronales como memorias asociativas. Disentimiento. Universidad Tecnológica de Brno, 2001. URL: http://www.vutium.vutbr.cz/tituly/pdf/ukazka/80-214-1914-8.pdf Archivado el 4 de marzo de 2016 en Wayback Machine.
- ^ Kandel, Eric R., James H. Schwartz y Thomas M. Jessell, eds. Principios de la ciencia neuronal. vol. 4. Nueva York: McGraw-Hill, 2000.
- ^ Eccles, John G. "Bajo el hechizo de la sinapsis". Las neurociencias: caminos de descubrimiento, I. Birkhäuser Boston, 1992. 159-179.
- ^ McCulloch, Warren S.; Pitts, Walter (1943). "Un cálculo lógico de las ideas inmanentes a la actividad nerviosa". Boletín de Biofísica Matemática . 5 (4): 115-133. doi :10.1007/bf02478259.
- ^ Brogliato, Marcelo Salhab (2012). Comprensión de la distancia crítica en la memoria distribuida escasa (Tesis). hdl :10438/13095.
- ^ Brogliato, Marcelo Salhab; Chada, Daniel de Magalhães; Linhares, Alexandre (2014). "Memoria distribuida dispersa: comprensión de la velocidad y solidez de la memoria experta". Fronteras de la neurociencia humana . 8 (222): 222. doi : 10.3389/fnhum.2014.00222 . PMC 4009432 . PMID 24808842.
- ^ Abbott, Joshua T., Jessica B. Hamrick y Thomas L. Griffiths. "Aproximación a la inferencia bayesiana con un sistema de memoria distribuida escasa". Actas de la 35ª conferencia anual de la sociedad de ciencia cognitiva. 2013.
- ^ Anderson (1989). "Una interpretación de probabilidad condicional de la escasa memoria distribuida de Kanerva". Conferencia conjunta internacional sobre redes neuronales . vol. 1. págs. 415–417. doi :10.1109/ijcnn.1989.118597. S2CID 13935339.
- ^ Vinje, NOSOTROS; Galán, JL (2000). "Codificación escasa y descorrelación en la corteza visual primaria durante la visión natural" (PDF) . Ciencia . 287 (5456): 1273–1276. Código Bib : 2000 Ciencia... 287.1273V. CiteSeerX 10.1.1.456.2467 . doi : 10.1126/ciencia.287.5456.1273. PMID 10678835. S2CID 13307465. Archivado desde el original (PDF) el 11 de septiembre de 2017.
- ^ Hromádka, T; Deweese, señor; Zador, AM (2008). "Escasa representación de sonidos en la corteza auditiva no anestesiada". PLOS Biol . 6 (1): e16. doi : 10.1371/journal.pbio.0060016 . PMC 2214813 . PMID 18232737.
- ^ Ganchillo, S; Poulet, JFA; Kremer, Y; Petersen, CCH (2011). "Mecanismos sinápticos subyacentes a la escasa codificación del tacto activo". Neurona . 69 (6): 1160-1175. doi : 10.1016/j.neuron.2011.02.022 . PMID 21435560. S2CID 18528092.
- ^ Ito, yo; Ong, RCY; Ramán, B; Stopfer, M (2008). "Escasa representación de olores y aprendizaje olfativo". Nat Neurosci . 11 (10): 1177–1184. doi :10.1038/nn.2192. PMC 3124899 . PMID 18794840.
- ^ Una memoria escasa es una memoria precisa. Blog de ciencia de Oxford. 28 de febrero de 2014. http://www.ox.ac.uk/news/science-blog/sparse-memory-precise-memory
- ^ Lin, Andrés C.; et al. (2014). "La codificación de olores escasa y descorrelacionada en el cuerpo del hongo mejora la discriminación de olores aprendida". Neurociencia de la Naturaleza . 17 (4): 559–568. doi :10.1038/nn.3660. PMC 4000970 . PMID 24561998.
- ^ Dasgupta, Sanjoy; Stevens, Charles F.; Navlakha, Saket (2017). "Un algoritmo neuronal para un problema informático fundamental". Ciencia . 358 (6364): 793–796. Código Bib : 2017 Ciencia... 358..793D. doi : 10.1126/ciencia.aam9868 . PMID 29123069.
- ^ Denning, Peter J. Memoria distribuida escasa. Instituto de Investigación de Ciencias de la Computación Avanzada [Centro de Investigación Ames de la NASA], 1989.
- ^ Minsky, Marvin y Papert Seymour. "Perceptrones". (1969). "Tiempo versus memoria para una mejor coincidencia: un problema abierto" p. 222–225
- ^ ab Uma Ramamurthy; Sidney K. D'Mello; Stan Franklin. "Darse cuenta del olvido en un sistema de memoria distribuida dispersa modificado" (PDF) . Departamento de Informática e Instituto de Sistemas Inteligentes . La Universidad de Menfis. págs. 1992-1997. Archivado desde el original el 5 de abril de 2012 . Consultado el 1 de noviembre de 2011 .
{{cite web}}
: CS1 maint: bot: original URL status unknown (link) - ^ Rocha LM, Hordijk W (2005). "Representaciones materiales: del código genético a la evolución de los autómatas celulares". Vida artificial . 11 (1–2): 189–214. CiteSeerX 10.1.1.115.6605 . doi :10.1162/1064546053278964. PMID 15811227. S2CID 5742197. Archivado desde el original el 20 de septiembre de 2013 . Consultado el 2 de agosto de 2013 .
- ^ Rogers, David. "Predicción estadística con la escasa memoria distribuida de Kanerva". Avances en los sistemas de procesamiento de información neuronal. 1989.
- ^ Rao, RPN; Fuentes, O. (1998). "Aprendizaje jerárquico de comportamientos de navegación en un robot autónomo utilizando una memoria distribuida dispersa predictiva". Aprendizaje automático . 31 : 87-113. doi : 10.1023/a:1007492624519 . S2CID 8305178.
- ^ Franklin, Stan y col. "El papel de la conciencia en la memoria". Cerebros, mentes y medios 1.1 (2005): 38.
- ^ Shastri, Lokendra (2002). "Memoria episódica e interacciones cortico-hipocámpicas" (PDF) . Tendencias en Ciencias Cognitivas . 6 (4): 162–168. doi :10.1016/s1364-6613(02)01868-5. PMID 11912039. S2CID 15022802.
- ^ Anwar, Ashraf; Franklin, Stan (2003). "Escasa memoria distribuida para agentes de software 'conscientes'". Investigación de sistemas cognitivos . 4 (4): 339–354. doi :10.1016/s1389-0417(03)00015-9. S2CID 13380583.
- ^ Ratitch, Bohdana, Swaminathan Mahadevan y Doina Precup . "Memorias dispersas distribuidas en el aprendizaje por refuerzo: estudios de casos". Proc. del Taller sobre Aprendizaje y Planificación en Procesos de Markov-Avances y Desafíos. 2004.
- ^ Precopa de Ratitch, Bohdana y Doina. "Memorias dispersas distribuidas para el aprendizaje por refuerzo basado en valores en línea Archivado el 24 de agosto de 2015 en Wayback Machine ". Aprendizaje automático: ECML 2004. Springer Berlin Heidelberg, 2004. 347-358.
- ^ Bouchard-Côté, Alexandre. "Detección de estructuras de memoria escasa". (2004).
- ^ Rao, Rajesh PN y Dana H. Ballard. "Indización de objetos utilizando una memoria distribuida escasa icónica". Computer Vision, 1995. Actas., Quinta Conferencia Internacional sobre. IEEE, 1995.
- ^ D'Mello, Sidney K., Ramamurthy, U. y Franklin, S. 2005. Eficiencia de codificación y recuperación de datos episódicos en un sistema de memoria distribuida dispersa modificado. En actas de la 27ª reunión anual de la Sociedad de Ciencias Cognitivas. Stresa, Italia
- ^ Ramamaurthy, U., Sidney K. D'Mello y Stan Franklin. "Memoria distribuida dispersa modificada como memoria episódica transitoria para agentes de software cognitivo [ enlace muerto ] ". Sistemas, Hombre y Cibernética, Conferencia Internacional IEEE 2004 sobre. vol. 6.IEEE, 2004.
- ^ Snaider, Javier; Franklin, Stan (2012). "Almacenamiento de secuencias y memoria distribuida dispersa extendida". Computación cognitiva . 4 (2): 172–180. doi :10.1007/s12559-012-9125-8. S2CID 14319722.
- ^ Furber, Steve B.; et al. (2004). "Memoria distribuida escasa que utiliza códigos N de M". Redes neuronales . 17 (10): 1437-1451. doi :10.1016/j.neunet.2004.07.003. PMID 15541946.
- ^ Sharp, Thomas: "Aplicación de memoria distribuida escasa al problema del péndulo invertido". Disentimiento. Universidad de Manchester, 2009. URL: http://studentnet.cs.manchester.ac.uk/resources/library/thesis_abstracts/MSc09/FullText/SharpThomas.pdf
- ^ Bosé, alegría. Ingeniería de una máquina de secuencia a través de neuronas que emplean códigos de orden de rango [ enlace muerto ] . Disentimiento. Universidad de Manchester, 2007.
- ^ Simon Thorpe y Jacques Gautrais. Codificación por orden de clasificación. En Neurociencia computacional: tendencias en la investigación, páginas 113-118. Prensa plenaria, 1998.
- ^ Furber, Stephen B.; et al. (2007). "Memoria distribuida escasa que utiliza códigos neuronales de orden de rango". Transacciones IEEE en redes neuronales . 18 (3): 648–659. CiteSeerX 10.1.1.686.6196 . doi :10.1109/tnn.2006.890804. PMID 17526333. S2CID 14256161.
- ^ Calimera, A; Maci, E; Poncino, M (2013). "El Proyecto Cerebro Humano y la computación neuromórfica". Neurología Funcional . 28 (3): 191–6. PMC 3812737 . PMID 24139655.
- ^ Hola, Tim; Willshaw, David J.; Hayes, Gillian M. (1997). "Un nuevo enfoque para la escasa memoria distribuida de Kanerva". Transacciones IEEE en redes neuronales . 8 (3): 791–794. doi : 10.1109/72.572115. PMID 18255679. S2CID 18628649.
- ^ Caraig, Lou Marvin. "Un nuevo algoritmo de entrenamiento para la memoria distribuida escasa de Kanerva". Preimpresión de arXiv arXiv:1207.5774 (2012).
- ^ Anwar, Ashraf; Franklin, Stan (1 de enero de 2005). Ng, Michael K.; Doncescu, Andrei; Yang, Laurence T.; Leng, Tau (eds.). Una memoria distribuida escasa capaz de manejar pequeñas señales, SDMSCue . IFIP: Federación Internacional para el Procesamiento de la Información. Springer Estados Unidos. págs. 23–38. doi :10.1007/0-387-24049-7_2. ISBN 978-0-387-24048-0. S2CID 10290721.
- ^ Método y aparato para un sistema de memoria distribuida dispersa US 5113507 A, por Louis A. Jaeckel, Universities Space Research Association, 1992, URL: https://patents.google.com/patent/US5113507
- ^ Método y dispositivo para almacenar y recuperar información implementando un sistema de memoria kanerva US 5829009 A, por Gary A. Frazier, Texas Instruments Incorporated, 1998, URL: https://patents.google.com/patent/US5829009
- ^ Furber, Stephen B. "Memoria digital". Patente de EE.UU. nº 7.512.572. 31 de marzo de 2009. URL: https://patents.google.com/patent/US7512572
- ^ Emruli, Blerim; Sandín, Fredrik; Delsing, Jerker (2015). "Arquitectura del espacio vectorial para la interoperabilidad emergente de sistemas aprendiendo de la demostración". Arquitecturas cognitivas de inspiración biológica . 11 : 53–64. doi :10.1016/j.bica.2014.11.015.
- ^ Emruli, Blerim; Sandin, Fredrik (2014). "Mapeo analógico con memoria distribuida escasa: un modelo simple que aprende a generalizar a partir de ejemplos". Computación cognitiva . 6 (1): 74–88. doi :10.1007/s12559-013-9206-3. S2CID 12139021.
- ^ Berchtold, Martín. "Procesamiento de datos de sensores con Common Sense Toolkit (CSTK)". *(2005).
- ^ The Mind Wanders por B. Hayes, 2018. URL: http://bit-player.org/2018/the-mind-wanders
- ^ ab Brogliato, Marcelo S.; Chada, Daniel M.; Linhares, Alexandre (2014). "Memoria distribuida escasa: comprensión de la velocidad y solidez de la memoria experta". Fronteras de la neurociencia humana . 8 : 222. doi : 10.3389/fnhum.2014.00222 . PMC 4009432 . PMID 24808842.
- ^ Surkan, Alvin J. (1992). "WSDM: prototipo de memoria distribuida dispersa ponderada expresada en APL". ACM SIGAPL APL Cotización Cuádruple . 23 : 235–242. doi :10.1145/144052.144142.
- ^ Turk, Andreas y Günther Görz. "La escasa memoria distribuida de Kanerva: una implementación orientada a objetos en la máquina de conexión". IJCAI. 1995.
- ^ Silva; Tadeu Pinheiro, Marco; Pádua Braga, Antônio; Soares Lacerda, Wilian (2004). "Coprocesador reconfigurable para la escasa memoria distribuida de Kanerva" (PDF) . Microprocesadores y Microsistemas . 28 (3): 127-134. doi :10.1016/j.micpro.2004.01.003.
- ^ Brown, Robert L. (junio de 1987). "Dos demostradores y un simulador para una memoria distribuida escasa" (PDF) . Archivo de informes técnicos de la NASA .