Memoria distribuida escasa - Sparse distributed memory

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 . Es una memoria de acceso aleatorio (RAM) generalizada para palabras binarias largas (por ejemplo, 1000 bits). Estas palabras sirven como direcciones y datos para la memoria. El principal atributo de la memoria es la sensibilidad a la similitud, lo que significa que una palabra se puede leer no solo dando la dirección de escritura original, sino también dando una cercana, medida por el número de bits no coincidentes (es decir, la distancia de Hamming entre direcciones de memoria ).

SDM implementa la transformación del espacio lógico al espacio físico utilizando la representación y el almacenamiento de datos distribuidos, de manera similar a los procesos de codificación en la memoria humana. Un valor correspondiente a una dirección lógica se almacena en muchas direcciones físicas. Esta forma de almacenamiento es robusta y no determinista. Una celda de memoria no se direcciona directamente. Si los datos de entrada (direcciones lógicas) están parcialmente dañados, aún podemos obtener datos de salida correctos.

La teoría de la memoria es matemáticamente completa y ha sido verificada mediante simulación por computadora . 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 en el sentido de que las memorias basadas en ella se pueden implementar con elementos de memoria de acceso aleatorio convencionales .

Definición

La memoria humana tiene una tendencia a congregar recuerdos basados ​​en similitudes entre ellos (aunque pueden no estar relacionados), como "los camiones de bomberos son rojos y las manzanas son rojas". 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. Una propiedad importante de estos espacios dimensionales es que dos vectores elegidos al azar están relativamente lejos uno del otro, lo que significa que no están correlacionados. SDM se puede considerar una realización de hash sensible a la localidad .

La idea subyacente detrás de un SDM es el mapeo de una gran memoria binaria en un conjunto más pequeño de ubicaciones físicas, las llamadas ubicaciones fijas . Como pauta general, esas ubicaciones difíciles 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 fijas y se recupera promediando esas ubicaciones. Por lo tanto, la recuperación puede no ser perfecta, la precisión depende de la saturación de la memoria.

La propuesta de Kanerva se basa en cuatro ideas básicas:

  • 1. El espacio booleano , o puntos en dimensiones, exhibe propiedades que son similares a las nociones intuitivas de relaciones entre los conceptos de los humanos. 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.
  • 2. Las neuronas con n entradas se pueden utilizar como decodificadores de direcciones de una memoria de acceso aleatorio.
  • 3. Principio unificador: los datos almacenados en la memoria se pueden utilizar como direcciones en la misma memoria. La distancia entre dos puntos es una medida de similitud entre dos elementos de memoria. Cuanto más cercanos estén los puntos, más similares serán los vectores almacenados.
  • 4. El tiempo se puede rastrear en la memoria en función de dónde se almacenan los datos, si los datos están organizados como secuencias de eventos.

El espacio binario N

El SDM trabaja con vectores n-dimensionales 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 con N y usaremos N y para representar también el espacio en sí.

Conceptos relacionados con el espacio N:

  • 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 el resto. 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 solo si la distancia de xay es la suma de las distancias de xay 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 solo 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 ay, 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 tienen como máximo r bits de x: O (r, x) = {y | d (x, y) ≤ r}.

Propiedades del espacio N:

El espacio N se puede representar mediante los vértices del cubo unitario en el espacio euclidiano n-dimensional . Los vértices se encuentran en la superficie de una esfera de n dimensiones con radio (métrico euclidiano) . Esto da lugar a la analogía de la esfera . Llamaremos esférico a un espacio si

  • 1. cualquier punto x tiene un único opuesto 'x,
  • 2. todo el espacio está entre cualquier punto x y su opuesto 'x, y
  • 3. todos los puntos son "iguales" (lo que significa que para dos puntos cualesquiera xey hay una distancia que preserva el automorfismo del espacio que mapea xay, 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 mapea xay. Debido a que N es esférico, es útil pensar en él 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 a medio camino 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 forman un punto arbitrario x (digamos, desde el 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 :

Por tanto, la distribución de N es la distribución binomial con los 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 indicará con N (d). La distribución normal F con media n / 2 y desviación estándar es una buena aproximación a ella: N (d) = Pr {d (x, y) ≤ d} ≅ F {(d - n / 2) / }

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 más grande 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 alimentación de tres capas . Las principales alteraciones de SDM a la RAM son:

  • El SDM calcula las distancias de Hamming entre la dirección de referencia y la dirección de cada 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 seleccionadas (filas) y en las i-ésimas columnas) se incrementan,
    • si el bit i de los datos de entrada es 0, los contadores correspondientes se reducen.
  • Leer (o recordar) 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 de 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 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 denominan sinapsis .

Cuando una neurona genera una señal, está disparando y, después de disparar, debe recuperarse antes de volver a disparar . La importancia relativa de una sinapsis para el disparo de una neurona se llama peso sináptico (o coeficiente de entrada ). Hay dos tipos de sinapsis: excitatorio que se disparan las neuronas de fuego y inhibitoria que dificultan la cocción. La neurona es excitadora o inhibidora según los tipos de sinapsis que produce su axón.

Una neurona se activa cuando la suma de las entradas excede un umbral específico . Cuanto más alto sea el umbral, más importante es que las sinapsis excitadoras tengan entrada, mientras que las inhibitorias no. El hecho de que una neurona recuperada se active realmente depende de si recibió suficiente entrada excitadora (más allá del umbral) y no demasiada entrada inhibitoria dentro de un período determinado.

El modelo formal de neurona hace suposiciones que simplifican aún más. Una neurona de entrada n se modela mediante una función de umbral lineal de la siguiente manera:

Para donde n es el número de entradas, deje que sea la salida en el momento t : , y dejar que sea el i de entrada-ésimo en el momento t : . Sea el peso de la i -ésima entrada y sea ​​el umbral.

La suma ponderada de las entradas en el tiempo t está definida por

La salida de la neurona en el tiempo t se define entonces como una función booleana :

Donde F t = 1 significa que la neurona dispara en el tiempo ty F t = 0 que no lo hace, es decir, para que la neurona dispare, la suma ponderada debe alcanzar o superar el umbral. Las entradas excitadoras aumentan la suma y las entradas inhibitorias la disminuyen.

Neuron como decodificador de direcciones

La tesis clave de Kanerva es que ciertas neuronas podrían tener sus coeficientes de entrada y umbrales fijos durante toda la vida de un organismo y usarse como decodificadores de direcciones donde n -tuple de coeficientes de entrada (el patrón al que las neuronas responden más fácilmente) determina la memoria de n- bits. dirección, 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 ( aprendizaje de convergencia de perceptrón ), ya que este mecanismo de acceso fijo sería un marco de referencia permanente que permite seleccionar las sinapsis en las que se almacena la información y de donde se recupera. en un conjunto dado de circunstancias. Además, una codificación de la circunstancia actual 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:

(asumiendo que los pesos son distintos de cero)

La suma ponderada máxima es entonces la suma de todos los coeficientes positivos:

Y la suma mínima ponderada correspondería a un punto opuesto a la dirección de la neurona a`:

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 es siempre 1. Por lo tanto, 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 solo a su propia dirección y actúa como un decodificador de direcciones de una memoria de acceso aleatorio convencional .

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 asume que los patrones de dirección 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 que corresponda a cada entrada posible; Implementos SDM sólo un número limitado de físicos o duras lugares. La ubicación física se denomina ubicación de memoria (o de disco duro ).

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 un ancho de M bits y que puede acumular múltiples patrones de datos de M bits escritos en la ubicación. La porción de contenido no es fija; es modificado por 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 la ubicación con el decodificador de dirección apropiado. Una neurona como decodificador de direcciones seleccionaría una ubicación basándose en 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 está aprovechando la computación en paralelo de los decodificadores de direcciones . El mero acceso a la memoria se considera computación, cuya cantidad aumenta con el tamaño de la memoria.

Patrón de dirección

Un vector de N bits que se utiliza 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 el 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 usando un patrón de dirección particular. Durante una escritura, la entrada a la memoria consiste en un patrón de dirección y un patrón de datos. El patrón de dirección se usa para seleccionar ubicaciones de memoria rígida cuyas direcciones rígidas están dentro de una cierta distancia de corte del patrón de dirección. El patrón de datos se almacena en cada una de las ubicaciones seleccionadas.

Leer

La lectura es la operación de recuperar un patrón de datos de la memoria usando un patrón de dirección particular. Durante una lectura, un patrón de dirección se utiliza para seleccionar un cierto número de duras posiciones de memoria (al igual que durante una escritura). Los contenidos de las ubicaciones seleccionadas se suman bit a bit y se establecen umbrales para derivar un patrón de datos de M bits. Esto sirve como salida leída de la memoria.

Cadenas de puntero

Todos los elementos están vinculados en una sola 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, esa línea se devuelve si es similar a otras líneas. Las neuronas se utilizan como decodificadores y codificadores de direcciones, de forma similar a como funcionan las neuronas en el cerebro, y devuelven elementos de la matriz que coinciden o son similares.

Distancia critica

El modelo de memoria de Kanerva tiene el concepto de un punto crítico : antes de este punto, un elemento previamente almacenado se puede recuperar fácilmente; pero más allá de este punto, no se puede recuperar un elemento. 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,

Dónde:

  • : es la distancia al objetivo;
  • : es el número de ubicaciones fijas activadas durante las operaciones de lectura y escritura (este valor depende de los valores del radio de acceso);
  • : es el número total de cadenas de bits almacenadas en la memoria;
  • : es el número de ubicaciones fijas en la memoria;
  • : es el número de veces que se escribió la cadena de bits de destino en la memoria;
  • : es el total de cadenas de bits aleatorias en todas las ubicaciones fijas activadas por una operación de lectura;
  • : es el número medio de ubicaciones fijas compartidas activadas por dos cadenas de bits separados entre sí. 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 a cualquier SDM en el Apéndice B, p. 125 del mismo libro.

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 . El SDM puede considerarse una aproximación de Monte Carlo a una integral de probabilidad condicional multidimensional . El SDM producirá respuestas aceptables 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. .

Plausibilidad biológica

La codificación escasa puede ser una estrategia general de los sistemas neuronales para aumentar la capacidad de memoria. Para adaptarse a su entorno, los animales deben aprender qué estímulos se asocian 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ímulo en las que solo unas pocas neuronas de una población responden a cualquier estímulo dado y cada neurona responde solo a unos pocos estímulos de todos los estímulos posibles.

El trabajo teórico de Kanerva sobre SDM ha sugerido que la codificación dispersa 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, incluidos la visión, la audición, el tacto y el olfato. Sin embargo, a pesar de la evidencia acumulada de una codificación escasa generalizada y de argumentos teóricos sobre su importancia, hasta hace poco no se ha demostrado que la codificación escasa mejora la especificidad del estímulo de la memoria asociativa.

En 2014 , el laboratorio de Gero Miesenböck de la Universidad de Oxford ha realizado algunos avances en el análisis del sistema olfativo de Drosophila . En Drosophila, se cree que la codificación de olores dispersos por las células de Kenyon del cuerpo del hongo genera una gran cantidad de ubicaciones direccionables con precisión para el almacenamiento de recuerdos específicos de olores. Lin y col. demostraron que la escasez está controlada por un circuito de retroalimentación negativa entre las células de Kenyon y la neurona lateral anterior apareada (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 ciclo de retroalimentación de células de Kenyon-APL disminuye la escasez de 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 por retroalimentación suprime la actividad de las células de Kenyon para mantener una codificación de olor escasa y descorrelacionada y, por lo tanto, la especificidad de olor de los recuerdos. Una publicación de 2017 en Science mostró que el circuito olfativo de mosca implementa una versión mejorada del hash sensible a la localidad binaria a través de proyecciones aleatorias dispersas.

Interpretación mecánica cuántica

La superposición cuántica establece que cualquier sistema físico existe simultáneamente en todos sus estados posibles , cuyo número es exponencial en el número de entidades que componen el sistema. La fuerza de presencia de cada estado posible en la superposición, es decir, la probabilidad con la que se observaría si se midiera, está representada por su coeficiente de amplitud de probabilidad . La suposición de que estos coeficientes deben representarse físicamente de manera disjunta entre sí, es decir, localmente, es casi universal en la literatura sobre teoría cuántica / computación cuántica . Alternativamente, como sugirió recientemente Gerard Rinkus en la Universidad de Brandeis , estos coeficientes se pueden representar usando representaciones distribuidas dispersas (SDR) en línea con el diseño SDM de Kanerva, donde cada coeficiente está representado por un pequeño subconjunto de una población total de unidades representacionales y los subconjuntos pueden superposición.

Específicamente, si consideramos un modelo SDR en el que la población general consta de Q conglomerados, cada uno de los cuales tiene K unidades binarias, de modo que cada coeficiente está representado por un conjunto de Q unidades, uno por conglomerado. Entonces podemos considerar que el estado del mundo particular, X, cuya representación del coeficiente, R (X), es el conjunto de Q unidades activas en el tiempo t para tener la probabilidad máxima y las probabilidades de todos los demás estados, Y, para corresponder al tamaño de la intersección de R (Y) y R (X). Por tanto, R (X) sirve simultáneamente como representación del estado particular, X, y como distribución de probabilidad entre todos los estados. Cuando cualquier código dado, por ejemplo, R (A), está activo, todos los demás códigos almacenados en el modelo también están físicamente activos en proporción a su intersección con R (A). Por lo tanto, SDR proporciona una realización clásica de superposición cuántica en la que las amplitudes de probabilidad se representan directa e implícitamente por tamaños de intersecciones de conjuntos . Si existen algoritmos para los cuales el tiempo que lleva almacenar (aprender) nuevas representaciones y encontrar la representación almacenada más cercana ( inferencia probabilística ) permanece constante a medida que se almacenan representaciones adicionales, esto cumpliría el criterio de la computación cuántica . (Ver también cognición cuántica y memoria asociativa cuántica )

Aplicaciones

En aplicaciones de la memoria, las palabras son patrones de características. 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 alimentan el foco, los motores se controlan 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 al encontrado en el pasado. Así, la memoria aprende a predecir lo que está a punto de suceder. Las aplicaciones amplias de la memoria estarí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 . En el aspecto teórico, el funcionamiento de la memoria puede ayudarnos a comprender la memoria y el aprendizaje en humanos y animales.

La mejor búsqueda de coincidencias

El SDM se puede aplicar al problema de encontrar la mejor coincidencia con una palabra de prueba en un conjunto de datos de palabras almacenadas. o, en otras palabras, el problema de búsqueda del vecino más cercano .

Considere una memoria con N ubicaciones donde . Deje que cada ubicación tenga la capacidad para una palabra de n bits (por ejemplo, N = 2 100 palabras de 100 bits), y deje que la decodificación de direcciones se realice mediante N neuronas decodificadoras de direcciones. Establezca el umbral de cada neurona x en su máxima suma ponderada y utilice 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 los d bits de la dirección presentada a la memoria (es decir, la dirección contenida en el registro de direcciones). Con tenemos una memoria convencional de acceso aleatorio . Suponga además que cada ubicación tiene un bit especial de ubicación ocupada al que se puede acceder de la misma manera que los bits de referencia regulares. Escribir una palabra en una ubicación establece este bit de ubicación ocupada . Suponga que solo se puede leer la ubicación ocupada.

Para archivar los datos en la memoria, comience por configurar y emitir 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 presentación es proporcional al número de palabras del conjunto de datos.

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 que hay una ubicación ocupada. Podemos comenzar 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 un poco menos que porque se puede esperar que la ubicación ocupada más cercana esté justo debajo de los bits de z (con búsqueda binaria en d, esto sería O (log (n)) .

Con palabras de 100 bits se necesitarían 2 100 ubicaciones, es decir, una memoria enormemente grande. Sin embargo, si construimos la memoria a medida que 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. Ninguna de las ubicaciones desocupadas necesita estar presente. 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 del 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, en la escucha del 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 el flujo 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.

"Darse cuenta de olvidar"

Funciones de decaimiento
La función de decaimiento exponencial
La función sigmoidea traducida negada

En la Universidad de Memphis, Uma Ramamurthy, Sidney K. D'Mello y Stan Franklin crearon una versión modificada del sistema de memoria dispersa distribuida que representa "darse cuenta del olvido". Utiliza una ecuación de desintegración para mostrar mejor la interferencia en los datos. El escaso sistema de memoria distribuida distribuye cada patrón en aproximadamente una centésima parte de las ubicaciones, por lo que la interferencia puede tener resultados perjudiciales.

Se presentan dos posibles ejemplos de deterioro de esta memoria distribuida dispersa modificada

Mecanismo de desintegración exponencial:

Mecanismo de desintegración sigmoidea traducida negada:

En la función de disminución exponencial, se acerca a cero más rápidamente a medida que x aumenta, y a es una constante (generalmente entre 3-9) yc es un contador. Para la función sigmoidea traducida negada , la desintegración es similar a la función de desintegración exponencial cuando a es mayor que 4.

A medida que el gráfico se acerca a 0, representa cómo se está olvidando la memoria mediante mecanismos de degradación.

Memoria distribuida escasa genética

Ashraf Anwar, Stan Franklin y Dipankar Dasgupta en 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 un algoritmo genético y una memoria distribuida escasa como una red neuronal pseudo artificial. Se ha considerado su uso en la creación de vida artificial.

Predicción estadística

El 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 sobrecapacidad, 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.

Inteligencia artificial general

  • LIDA utiliza una memoria distribuida escasa para ayudar a modelar la cognición en los sistemas biológicos. La escasa memoria distribuida coloca al espacio recordando o reconociendo el objeto que tiene en relación con otros objetos. Fue desarrollado por Stan Franklin, el creador del sistema de memoria distribuida dispersa modificado "darse cuenta del olvido". Las memorias transitorias episódicas y declarativas han distribuido representaciones en LIDA (basadas en la versión modificada de SDM), hay evidencia de que este también es el caso en el sistema nervioso.
  • 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 .
  • La memoria temporal jerárquica utiliza SDM para almacenar representaciones distribuidas dispersas de los datos.

(Consulte también Arquitectura cognitiva e inteligencia artificial general para obtener una lista de proyectos relacionados con SDM)

Aprendizaje reforzado

Los SDM proporcionan un esquema de aproximación de función local lineal, diseñado para funcionar cuando un espacio de entrada (dirección) muy grande / de alta dimensión debe mapearse en 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 de destino pueden requerir, en el peor de los casos, una aproximación precisa de un número exponencial de unidades locales 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 solo alrededor de las variedades de baja dimensión del espacio estatal o "carreteras" estatales importantes. El trabajo de Ratitch et al. combinó el modelo de memoria SDM con las ideas del aprendizaje basado en la memoria , lo que proporciona un aproximador que puede adaptar dinámicamente su estructura y resolución para ubicar regiones del espacio de estados que son "más interesantes" y asignar proporcionalmente más recursos de memoria para modelarlas precisamente.

Indexación de objetos en visión artificial

El laboratorio de Dana H. Ballard demostró una técnica de indexación de objetos de propósito 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 activa 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 al SDM, por ejemplo:

  • Espacio de memoria ternaria: permite utilizar la memoria como una 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.
  • 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 sobre la normalización. También se puede ampliar para admitir el olvido y el almacenamiento de secuencias fiable.
  • 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 sobre entradas ruidosas. Además, agrega nueva funcionalidad, permitiendo un almacenamiento autoasociativo eficiente de secuencias de vectores, así como de otras estructuras de datos como árboles.
  • Construcción de SDM a partir de Spiking Neurons : a pesar de la semejanza biológica de SDM, la mayor parte del trabajo realizado para demostrar sus capacidades hasta la fecha ha utilizado modelos de neuronas 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 propuso adaptaciones a SDM, por ejemplo, incorporando códigos de rango N-de-M en cómo las poblaciones de neuronas pueden codificar información, lo que puede hacer posible construir una variante de SDM a partir de biológicamente plausible componentes. Este trabajo se ha incorporado a SpiNNaker (Spiking Neural Network Architecture) que se está utilizando como la Plataforma de Computación Neuromórfica para el Proyecto del Cerebro Humano .
  • Distribución no aleatoria de ubicaciones: aunque las ubicaciones de almacenamiento se distribuyen inicialmente de forma aleatoria en el espacio de direcciones N binario, la distribución final de ubicaciones depende de los patrones de entrada presentados y puede ser no aleatoria, lo que permite una mejor 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) se propaga a través de la memoria y un pequeño porcentaje de la intensidad de la señal (por ejemplo, el 5%) se pierde en cada ubicación subsiguiente encontrada. Distribuir la señal de esta manera elimina la necesidad de un radio de lectura / escritura seleccionado, una de las características problemáticas del SDM original. Todas las ubicaciones seleccionadas en una operación de escritura ahora no reciben 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 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 que la intensidad total de la señal recibida por una ubicación se utilice como una medida de la idoneidad de una ubicación y es flexible para variar la entrada (ya que el factor de pérdida no tiene que cambiarse 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.

Patentes relacionadas

  • Método y aparato para un sistema de memoria dispersa distribuida US 5113507 A, Universities Space Research Association , 1992
  • Método y dispositivo para almacenar y recuperar información implementando un sistema de memoria kanerva US 5829009 A, Texas Instruments , 1998
  • Memoria digital, Furber, Stephen. Estados Unidos 7512572 B2, 2009
  • Memoria temporal con representación distribuida dispersa US 20110225108 A1 Numenta , 2011

Implementación

Modelos relacionados

Referencias