Les presento una serie de artículos sobre redes neuronales, conceptualmente cercanos a una serie de artículos de Alexei Redozubov . Para comprender el material, se recomienda que se familiarice con todo el ciclo de sus artículos. El enlace contiene solo un artículo del ciclo, útil para este texto.
Los modelos descritos de redes neuronales (en lo sucesivo, NS) serán de un nivel ligeramente superior al de Aleksei. Esto nos permite simplificar la presentación y la comprensión de los procesos que ocurren en el NS, lo que nos permitirá pasar a un ajuste más fino del NS de nivel inferior. Además, trabajar en estos NS hace posible usarlos más rápidamente. En particular, los usé para analizar textos, simular que el mouse camina por un laberinto e interpretar un lenguaje similar al lisp, puede haber muchas otras aplicaciones. Abordaremos este comportamiento complejo sin problemas hacia el final del ciclo.Comencemos ilustrando un enfoque de nivel tan alto. El artículo de Alexey sobre el hipocampo tiene una frase: "el hipocampo forma identificadores únicos para los recuerdos". Comencemos con un código simple que realizará estas acciones: cree un identificador único y conéctelo a los eventos descritos. Código C ++. Todavía no subo el código fuente; sin explicaciones preparatorias, todavía tienen poco uso.NC & hippocampNewId = newNC ();
, — /. — NC ( NeuroCluster). ( — ), operator new — . newNC, , . , NC, .
Conceptualmente, este código corresponde aproximadamente a este enfoque: en la Asamblea Nacional hay muchas columnas neuronales, es necesario asignar la siguiente columna de uso débil, y será responsable del nuevo identificador. Detallar la forma en que ocurrirá dicho aislamiento es una tarea de nivel inferior para los especialistas en hipocampo. También es interesante, tengo pensamientos sobre cómo resolverlo, pero esa tarea es de muy bajo nivel, por lo que seguiremos adelante.Escribamos un ciclo de paso a través de todos los neuroclusters:para (NC y nc: _listNC) {
if (nc.isActive ())
// aquí necesitamos conectar de alguna manera este neurocluster con hippocampNewId
}
— , , , .
, — . — (- ), , , . — :
for(NC& nc: _listNC) {
if(nc.isActive())
hippocampNewId.createLinkTo(nc);
}
, :
hippocampNewId.createTimeLinkTo(_prevHippocampId);
Y finalmente, para el próximo ciclo, reemplazaremos: _prevHippocampId = hippocampNewId;
Por supuesto, esto sigue siendo un pseudocódigo. Se entiende que este es un código en la clase ANN. Por lo tanto, la función newNC es una función miembro de la clase HC. Si una variable comienza con un guión bajo, esta variable es un miembro de la clase (algo así como el prefijo m_, simplemente no tiene que pronunciar la letra m, lo que hace que la programación sea más conveniente).El mérito de Alexei es que su descubrimiento le permite escribir código como createLinkTo. Antes de sus artículos, uno solo podía adivinar cómo unir rápidamente los dos recuerdos. Después de todo, el cerebro no puede germinar instantáneamente una conexión desde el axón de una neurona al otro hemisferio, y así cien veces por segundo. La tecnología de Alexey convierte todo el cerebro con el hipocampo en un interruptor que puede crear rápidamente asociaciones arbitrarias. Hace unos 15 años, acepté la existencia de tal mecanismo como algo dado, y trabajé con la esperanza de que algún día se abriera. Solo quedaba escribir el código con algunas dudas, pero ¿cuánto es todo esto biológicamente plausible? Varios hechos apuntaron a la existencia de tal mecanismo, y finalmente, se revelaron detalles.Bueno, de alguna manera conectamos los recuerdos actuales más activos y la nueva etiqueta del hipocampo. ¿Qué nos da esto? Hagámoslo para que al recibir una serie de eventos similares al que se recordó anteriormente, las marcas de tiempo memorizadas puedan reconocer estas nuevas series como algo que ya se ha encontrado. Entonces será posible hacer cosas diferentes, por ejemplo, comenzar a hacer pronósticos basados en la experiencia.Para hacer esto, pasa temporalmente a otra tarea. Deje que la corteza del sensor de ANN (NS artificial) perciba letras. Por ejemplo, los lee de un archivo. La tarea es crear cadenas neuronales que reconozcan la palabra, por ejemplo, la palabra "reconocido". Además, este reconocimiento debe provenir de varios componentes: de tres cadenas separadas de "razas", "poses", "efectivo"., , , Hierarchical Temporal Memory . ( ):

1) , (
), 3 , , 4. , — , .
2) Esta ventana, la pestaña "cadena 2d", crea una visualización conveniente de parte de la red neuronal. Es incómodo mirar la red neuronal como se ve en la primera imagen del artículo. Y esta ventana le permite especificar un neurocluster separado, analiza sus conexiones y muestra solo aquellos clústeres a los que las conexiones pueden acceder desde el seleccionado. Organiza los grupos en una fila, muestra los signos secundarios a continuación, tiene conexiones temporales horizontalmente. Ahora es más fácil ver que esta cadena analiza la palabra "reconocido".3) Se puede ver que diferentes grupos tienen diferentes tipos, diferentes tipos están pintados en diferentes colores. La imagen muestra los neuroclusters habituales (si) y sensoriales (sensor): corresponden a la corteza sensorial. Las comunicaciones del grupo de sensores al sensor real no se modelan por falta de necesidad. En este caso, se necesita un tipo separado de clúster solo para facilitar la depuración, por ejemplo, no pensar, "¿por qué este clúster no reconoce ningún signo? ¿Es inútil?" No, no es inútil, reconoce la letra indicada en el comentario.4) En la información emergente verde emergente (al pasar el mouse), se muestran diferentes campos. En la parte inferior de la información sobre herramientas, se muestra un esquema de visualización de clúster. Diferentes modelos ANN pueden visualizar grupos de diferentes maneras., ( , . .), , , .
5) «». 6, 7 9, 8 10. , , 10.
6) , , 10 «» 20 , , . « », , , . , , . .
7) , , «» «». . , , «». , , .
8) , , , — ,
9) Un formato de tiempo complejo (tiempo de creación de una neurona de tipo 0: 0.0-0) se describirá más adelante. Dado que este NS se genera para ilustración, el tiempo de creación de todas las neuronas es el mismo aquí. En circuitos reales, esta vez mostrará el reloj en el que una determinada columna neuronal se sintonizó para reconocer un atributo particular. Este es el momento en que se llama a la nueva función NC. Esta información se puede usar para depurar y más.10) , , ( ). , . , , . . , — , , , , . lisp, car/cdr . lisp — cell , cell , . — = cell, , lisp .
La siguiente parte discute algunos algoritmos para resaltar reflejos condicionados.