
Servidor junto al proyecto KITT
Leo en Amazings sobre una lucha entre dos pesos pesados de la I.A. y revisando los comentarios descubro este enlace sobre el estado actual de la llamada Ingeniería Inversa del Cerebro, una rama de investigación que pretende emular computacionalmente y desde un enfoque que podríamos denominar emulación biológica (por diferenciar de una emulación conceptual) el funcionamiento del cerebro humano mediante el método conocido como ingeniería inversa. Por emulación biológica entiendo aquella que pretende copiar literalmente todos y cada uno de los procesos bioquímicos del cerebro incluyendo la misma organización estructural, por emulación conceptual entiendo aquella que abstrae el conjunto de entradas/salidas convirtiéndolas en reglas que proporcionen el mismo comportamiento aunque internamente difieran del original.
Paradójicamente la descripción del estado actual de la Ingeniería Inversa del Cerebro describe simulaciones alejadas de la definición de ingeniería inversa y se próxima más a la muy personal definición de emulación biológica. Esta paradoja puede deberse a que estas investigaciones suelen ser conducidas por neurólogos que después le piden lo que ellos creen que necesitan a programadores sumisos.
Tengo una espinita clavada desde años y cada vez que reviso el estado de los proyecto sobre IA no dejo de rumiar el que al menos debería dejar constancia de cierta incursión furtiva y amateur en este campo.
Esta historia arranca en febrero de 2005. El contexto no es relevante pero sí le da la historia cierto saborcillo freak del que no quiero prescindir: dos amigos compran un Pontiac TransAm de 1982 por eBay con la intención de restaurarlo y convertirlo en una réplica de El Coche Fantástico original.
Dado que el proyecto requería de ciertos conocimientos en electrónica para la implementación mediante circuitos integrados de algunas de las funciones a emular estos amigos decidieron contactar conmigo.
En un momento dado, con el coche desguazado camino del chapista y todas las ideas en la pizarra a uno de mis amigos, llamémosle J., se le ocurrió que sería interesante dotar a la criatura de un sistema de reconocimiento de voz que sirviera para activar ciertas funciones.
A los dos (el tercer amigo intervino en esta historia sólo como socio-capitalista) nos pareció una buena idea y yo, inocente de mí, le pregunté que qué pensaba hacer: si buscar las librerías de algún Dragon Dictate o similar o directamente crear un “macro-front-end” para “atacar a saco” a un software de reconocimiento de voz.
J. dijo que no, que lo que el quería era programar un software de reconocimiento de voz de pe a pa.
Aquí hay que hacer un alto en el camino: J. tiene, en mi opinión, el perfil del empresario inventor. Le considero una persona muy inteligente e imaginativa hasta el extremo de caer en una cierta falta de realismo, siendo frecuentes sus proyectos inconclusos. Por contra un servidor es más pragmático y busca siempre la solución más sencilla para cada necesidad sin renunciar a fantasear e imaginar cuanto pueda requerir una buena tormenta de ideas. Lo que J. no sabía es mi pasión autodidacta por la filosofía en general y la estructura del pensamiento y la inteligencia en particular. Por lo tanto, cuando lanzó su órdago intuí desde el primer momento que nos íbamos a pasar muchas noches sin dormir. Y así fue. Tanto que me mudé, literalmente, a su casa / garaje durante varias semanas, puede que hasta fueran meses (recuerdo todo aquel entusiasmo como una larga borrachera). Y sí, siempre hay un garaje en estas historias. Si no tienes garaje, estás jodido.
J. poseía muy buenos conocimientos de programación amén de una capacidad innata para aprender cualquier lenguaje, desde el primer momento tuvo claro que .NET sería la plataforma óptima de trabajo. Consumía muchos recursos y no es ni de lejos tan optimizable como un lenguaje de más bajo nivel pero nos permitiría testar nuestras propias funciones de reconocimiento rápidamente, después, si funcionaban, las optimizaría reprogramándolas “a pelo” si fuera necesario.
Matizar que nuestra intención inicial no era inventar nada nuevo, simplemente ver si éramos capaces de crear un software de reconocimiento como los que ya existían por aquel entonces.
El primer objetivo era crear un programa capaz de identificar fonemas y más adelante palabras. Después de debatir sobre cómo abordar el problema la opción de crear una red neuronal adaptativa parecía la mejor.
J. se puso manos a la obra y comenzó a empollar sobre el tema devorando todo lo que encontraba sobre programación de redes de ese tipo, yo no podía serle de mucha ayuda a la hora de teclear en .NET ya que mis conocimientos de programación se limitaban al ensamblador, sin embargo sí podía aportar a la hora de definir las estrategias de programación al estar familiarizado con la abstracción común a todos los lenguajes computacionales.
La pizarra comenzó a llenarse con los diagramas habituales en este tipo de programación: todo eran circulitos y vectores uniendo dichos circulitos (neuronas y su sinapsis).
Al poco tiempo me quité la máscara (J. no sabía nada de mi extrema afición por estos temas) y le espeté en una larga perorata lo que pensaba sobre el reconocimiento de patrones, el funcionamiento del cerebro humano y cómo podíamos emularlo, lo que sigue es una remasterización de un mail que envié este año a un conocido bloguero:
(…)
No pienses que hay un tono melodramático detrás de estas afirmaciones, sólo pretendo crear un torpe preámbulo (aunque verídico) con un irresistible tufillo fast-food-wiseful-thinking-looser para captar mejor tu atención (espero X-D)
(…)
Sin más dilación ¿cuáles son esas ideas?
Para mí el actual estadio de la programación de redes neuronales enfoca el problema de crear una inteligencia artificial de una forma excesivamente compleja que nunca terminará por materializar una mente verdaderamente pensante.
¿Por qué hago esta afirmación?
Por establecer una comparación: si la inteligencia es un estado armónico en movimiento como pueda serlo un motor de explosión en funcionamiento todos los programadores de redes neuronales que conozco están tratando de construir ese motor… ¡¡en marcha!! Lo que ellos consideran “fase de aprendizaje” parte de una complejidad excesiva que imprime un aumento exponencial de la red que, entre otros problemas, presenta el de ser inmanejable por cualquier ordenador actual. Además y dentro del conjunto “otros problemas” existen obstáculos asociados a ese planteamiento que están destinados a impedir el crecimiento apropiado de la red que se pretende crear.
Tenemos una caja negra en cuanto a su software se refiere: el cerebro (y no sólo el humano, como podrá deducirse más adelante).
Tenemos claro cómo son y qué forma tienen las piezas (las neuronas) pero no entendemos el “mágico” comportamiento que rige su prodigiosa capacidad para crear y destruir sinápsis únicas que terminan, de alguna forma, formando pensamientos, obras de arte y asesinatos en masa. “El cerebro es una demasiado complejo para que podamos entenderlo o replicarlo” dicen.
Sin embargo sí sabemos que sin estímulos las sinapsis no alcanzan los niveles propios de un ser pensante y se quedan irremediablemente a la altura de las lechugas.
Otras preguntas en las que deberíamos centrarnos desde un punto de vista más abstracto y menos bioquímico es ¿cuántos estímulos hacen falta para prender la chispa de “la inteligencia”? ¿Qué nivel de actividad neuronal tiene un sordo de nacimiento? ¿Y un ciego? ¿Y un mudo? ¿Y diferentes combinaciones de esas carencias? Cuando los neurólogos estudian al más bajo nivel cerebros dañados para poder extraer conclusiones por comparación con la E/S de un cerebro sano lo hacen bajo el aumento de un microscopio electrónico, sin embargo cuando lo hacen al nivel de lo que sería su “programación orientada a objetos” se van a una máquina de resonancia para observar su idea de “big picture” sin embargo nadie parece creer que desde un diagrama de flujo tipo “black-box” pueda extrapolarse una regla o función que defina el equilibrio de la creación sináptica y por ende la tan anhelada clave de la misma inteligencia. Aún así autodenominan identifican su método de trabajo como Ingeniería Inversa, un error de concepto si nos atenemos a las definiciones.
Existen infinidad de estudios al respecto que vienen a dibujar la siguiente metáfora: la información, o mejor dicho “configuración”, almacenada en un cerebro normal se crea en su mayoría a partir a partir de la experiencia adquirida, esta experiencia viene a través de los estímulos procedentes de los sentidos los cuales, como una columna de gelatina, se apoyan sobre las patas de la mesa que la sostiene. Si la mesa tiene muchas patas puede mantener el equilibrio aunque algunas de estas patas se debilite o incluso desaparezca, pero es una cuestión de masa crítica, de tener “suficientes” patas y “suficientemente” fuertes la que termina por estabilizar el sistema. Esta parte puede resultar un poco confusa, he estado tentado de copiarla y pegarla un poco más abajo. Al final me ha podido el novelista barato que hay en mí XD.
Bien, dados esos gruesos brochazos en una esquina del lienzo doy un salto a otra zona de la tela… espero que al final logre dibujar algo con sentido para alguien más que para mí.
Un niño sano y recién nacido tiene la capacidad de aprender cualquier idioma y adaptarse a cualquier sociedad, lo pongamos donde lo pongamos se adapta, sus neuronas se adaptan a diferentes lenguajes y sonidos sin problema… y al menos según los principios de la lógica y la computación cuanto mayor es la capacidad de adaptación de un sistema más sencillo debe ser el principio que la rige.
Un niño en sus primeras etapas de desarrollo sensorial no “ve” o mejor dicho: no entiende. No porque sus ojos o sus oídos no funcionen o no estén conectados al cerebro sino porque las neuronas están luchando por encontrar patrones que tengan algún sentido en medio de lo que en un principio no es más que un galimatías. Las neuronas necesitan tiempo para crear, destruir y volver a crear enlaces que más adelante, “mágicamente” desde nuestra actual ignorancia, terminen dando respuestas “inteligentes”. Esta reiteración y la velocidad con la que se ejecuten son una de las patas esenciales para que la mesa conserve el equilibrio. No es un parámetro que podamos dejar prefijado y obviar para centrarnos en elaborar complejos algoritmos que fuercen su buen funcionamiento porque el equilibrio adquirido será rigido y poco adaptable.
El firmware de un cerebro es extremadamente sencillo porque de no serlo, de llevar demasiadas funciones preestablecidas y más si éstas son demasiado complejas, sencillamente no podría adaptarse a las infinitas y sutiles combinaciones que la realidad ofrece. Es esencial entender la lógica irrefutable detrás de esta afirmación, quienes afirman que “el cerebro es demasiado complejo / todavía desconocemos muchas cosas” están haciendo una aproximación imposible al objetivo final ya que este no se esconde al nivel molecular causante de esa aparente complejidad sino a un nivel meramente conceptual más sencillo de abstraer.
Un cerebro no es CISC, es extremadamente RISC de hecho es “tan” RISC que las pocas funciones que requiere están implícitas en los propios cables de los mismos transistores, es como si cada neurona y cada dendrita fueran sencillos microcontroladores ejecutando un código de a penas dos o tres líneas, una especia de granja de ordenadores con la potencia distribuida de una forma absurda para los estándares actuales y no por la potencia total resultante sino por la extrema y aparente “descompensación” entre la despreciable potencia de cada procesador en comparación con los billones de procesadores instalados. Esa es una de las incompatibilidades que hasta ahora nos han puesto en inferioridad a la hora de crear una emulación virtual del tejido vivo, eso y que no tenemos claro como se agrupa en funciones las especificaciones técnicas del tejido nervioso (especificaciones insisto que pueden eliminarse de la ecuación si le damos un enfoque meramente conceptual).
El cerebro es de alguna forma un ordenador a caballo entre la computación actual y esa futura computación cuántica en la que todos los estados se comprueban simultánea e instantáneamente, matizo: en realidad, opino, es más como un granja de procesadores trabajando en paralelo pero que nunca pueden activarse al 100% a la vez por motivos comentados más adelante sumados al hecho que el equilibrio químico de las neuronas no lo permitiría: todas las neuronas del cerebro no pueden estimularse simultáneamente y cuando se aproximan a ese estado (con niveles disparados de dopamina, por ejemplo) la locura, el ruido y la destrucción de los patrones tan laboriosamente creados suelen ser desastrosos e incluso irreversibles.
Es un EQUILIBRIO impreso, o destilado si se quiere, por el tiempo y la evolución (que no es sino ese mismo proceso operando a otro nivel) en la misma naturaleza del comportamiento químico de cada neurona en función del ser vivo que gobiernan y lo que podríamos llamar la escala de tiempo en la que se mueven: dicho equilibrio o ecualización varían en función de la capacidad total de la red así como la velocidad de los estímulos a los que se ve sometida. Por ejemplo: un elefante o una ballena tienen una gran capacidad teórica que, se especula, les permite comunicarse con cierta complejidad; sin embargo el universo de estímulos y reacciones en el que viven distan mucho de la inmediatez constante a la que se ven sometidas las diminutas redes de una mosca. Esos son los dos elementos más importantes a la hora de buscar el equilibrio correcto que rige la actividad asociativa que la sinapsis representa, pueden ser sólo esos dos factores definiendo una situación similar a la de dos niños jugando en un balancín o puede que esté descuidando alguno más que convierta el balancín rectilíneo en un plano, en cualquier caso creo que el símil es válido.
Por observación deduzco que sólo las capas más profundas y primitivas del cerebro vienen preconfiguradas con una suerte de sencillo preconexionado, en esas zonas las neuronas se rigen por otro código mucho más rígido y crean lo que es más un órgano genéticamente prediseñado que un verdadero cerebro dada su limitada capacidad de aprendizaje.
La evolución es una increíble, inevitable y termodinámicamente paradójica espasmódica pulsión, quizás condenamente efímera, que ha creado una búsqueda fractal de coincidencias a la que llamamos patrones, conceptos, ideas y de cuya coincidente asociación nace ese inasible concepto que es la inteligencia en sí misma.
Cuando los estímulos bombardean el cerebro de un niño este, cerebralmente virgen aún, es extremadamente sensible, crea y deshecha conexiones en su superficie (en esta hipótesis el cerebro es como un poliedro en el que canales de entrada y salida de información se conectan a unas caras u otras, la proximidad entre esas caras forma parte del equilibrio necesario para que funcione y son resultado, como no, del mecanismo de prueba y error de la evolución) con una gran facilidad, en una primera fila de un imaginario batallón de neuronas las primeras neuronas se “encienden” cada vez que reciben un estímulo… es hora de ver como funcionaba el oído de KITT:
En nuestros experimentos el sonido procedente del micrófono se procesaba de forma que sólo se digitalizaba un ancho de banda reducido porque después de todo una persona que escuche entre 300 hz y 3khz puede entender perfectamente lo que le dicen ¿para qué queremos desperdiciar potencia de proceso? La idea era hacer “teclas” separadas por 10hz unidas a una neurona de la primera columna del batallón, la fila dependería de la frecuencia, una de las dudas era si el volumen o intensidad se traduciría como diferentes niveles de activación o si mayor volumen debería encender más o menos neuronas de esa misma fila, en cualquier caso tenía claro que esa duda formaba parte de la ecualización del equilibrio necesario (muchas pruebas y errores en el horizonte) y que el principio realmente importante era que:
“Toda la inteligencia no es sino el resultado de un largo proceso asociativo de estímulos coincidentes en el tiempo”. Punto pelota, equilibrio, paciencia y deduccción / intuición. Es decir, pienso firmemente (¡ahí va mi apuesta!) que la primera inteligencia artificial que replique nuestro cerebro tendrá que pasar por un proceso educativo tan largo como el de un niño.
Ya, ya… es un órdago insultante para los que llevan 10 años mirando un neurotransmisor esperando que un día se les encienda la bombilla, si su ego o su escepticismo se lo permite les ruego que no se levanten de la silla todavía, siempre pueden tomárselo como una delirante fantasía de un ignorante seguir con lo suyo ¿eh?.
Una vez creada y gracias a que sí somos capaces copiar el esquema resultante por estar depositado en un sustrato digital sí seremos capaces de copiar esas “mentes” que comenzarán a diverger en el mismo instante en que se produzca la duplicidad (esto me recuerda a “Mis doble, mi mujer y yo” X-D), habremos llevado la inteligencia a un terreno replicable al contrario que su estado biológico actual del que no somos, de momento, capaces de replicar (aunque intuyo por aquello del contruir el “motor en marcha” que hay una imposibilidad estadística dificilmente salvable ¿cómo se puede copiar una maraña de conexiones sin haberse aproximado al problema de entender la regla que las creó y, suponiendo que no se nos pase ninguna, esperar que siga haciendo su trabajo careciendo de dicha regla?).
Mientras que los programadores de redes neuronales crean acartonados cerebros que aprenden en a lo sumo pocas horas a conservar la verticalidad o distinguir un tanque enemigo dentro de una imagen termal de alta resolución la realidad que no parecen terminar de intuir es que si quieren crear un verdadero cerebro virtual tendrán que destilar el principio de asociación que rige a las neuronas a título individual y empezar a “hablarle” con la misma repetición e insistencia con la que se le habla a un humano durante MESES para que finalmente articule UNA palabra. Y, vaticino también, dicho cerebro sólo será capaz de distinguir patrones de forma “intuitiva” (resolviendo a bajo nivel) si el canal empleado es siempre el mismo que aquel con el que se inició el aprendizaje. Igual que nosotros no podemos “conectar” nuestro cerebro directamente a un radiotelescopio tampoco podrá hacerlo una IA de este tipo una vez superada cierta fase de aprendizaje y aún que lo hiciéramos antes tampoco obtendríamos a un ser inteligente al no encontrar una correlación entre ese estímulo procedente de un lugar lejano donde los tiempos son astronómicos… claro que aquí conectamos con la idea del Universo como autómata celular, a lo mejor si viviéramos millones de años descubriríamos una capa de inteligencia que opera a un nivel cósmico… si sigo por ahí me saldrá un cuento de Asimov, je je… Por cierto, en el último enlace hay un Nobel de física (ya sé que últimamente el carisma de esos premios ha caído bastante) diciendo no-se-qué-de-una-interpretación-determinista-del-entrelazamiento-cuántico, lo comento por si “alguien” me está leyendo
Claro que eso no es tan “trekie”, ni tan “molón” porque al final tendríamos a un programador padre de un niño encerrado dentro de un ordenador… monstruoso ¿no? Además, dado que sabemos que sutiles desequilibrios dan lugar a infinitas enfermedades mentales de nacimiento terminaría siendo más un Doctor Menguele que un programador… y sin embargo…
Por reforzar aún más el símil las redes neuronales más avanzadas de hoy en día son para mí como si hubieran extraido la función de una zona del cerebro, insisto sólo la función ni mucho menos que repliquen la lógica biológica de su funcionamiento, y la hubieran puesto sumergida en una solución salida con cuatro cables de entrada y salida. Si de ahí esperan que algún día salga, por pura acumulación y potencia de proceso, una mente pensante mínimamente parecida a la de una persona…. pueden esperar sentados.
El sustrato virtual tiene que autoconexionarse en base a las sencillas toma decisiones ejecutada por sus neuronas durante muchísimos ciclos antes de poder apreciarse grandes estructuras piramidales (más adelante) emergidas de ese ingente batallón de filas y columnas de neuronas (realmente es un cubo 3D de neuronas).
Las capas que forman el sustrato ascendente de cada pirámide son sinápsis de diferentes neuronas cuya estimulación ha coincidido en el equilibrio justo de intensidad y coincidencia temporal como para crear un vínculo persistente entre neuronas conectadas a diferentes canales sensoriales.
Imagina en una línea de tiempo a un padre repitiéndole “pa-pá” al hijo que sostiene en sus brazos, hora tras hora, día tras día el bebé ve una mancha que pronuncia un sonido, mientras que una zona de su cerebro se acomoda al repetitivo sonido otra comienza a asociar la presencia de mancha con la presencia de estimulación auditiva, a distinguir la mancha de la no-mancha y más adelante las diferentes manchas entre sí, “casualmente” cuando la madre le dice “ma-má” está pronunciando un sonido que provoca una estimulación en principio similar: sonido parecido, mancha parecida… Cuando los niños pronuncian sus primeros balbuceos no estamos viendo más que el resultado de un largo y paciente proceso de realimentación por el que hay que pasar, no podemos intentar abreviarlo, igual que un micro conectado accidental y esporádicamente a un altavoz, el niño tiene que balbucear mucho para escucharse muchas veces y que sus neuronas comiencen a emparejarse ante la coincidencia, cuando los primeros y torpes “ma-má” o “pa-pá” tienen lugar en presencia de alguien no siempre es el padre o la madre y cuando lo hacen suelen provocar que las manchas cambien ligeramente (se inicia la detección de gestos), sonrían y le agasajen con estímulos tales como cosquillas, abrazos y vertiginosos zarandeos que provocan excitación, placer… “bueeeeno” dicen las neuronas bajo un chute de dopamina que contribuye a reforzar las sinápsis más recientes, “sonrisa-tacto-vértigo intensos… vamos por buen camino”. Reforzando una y otra vez mediante el simple mecanismo de la recompensa sensorial esa pequeña pirámide que vincula su primera palabra con una imagen todavía indefinida se crea una de las primeras “pirámides neuronales” que representan una idea. De esta forma nacen los conceptos y su procesado no es complejo sino instantáneo… y de ahí podríamos saltar al debate sobre el libre albedrío y como nuestras respuestas a menudo preceden a nuestro consciente.
¡Si pudiéramos ver como las neuronas se han unido como lo hace un “une los puntos” veríamos una pirámide encerrada en el cubo/batallón 3D de neuronas! ¡Estaríamos viendo la representación material del significante-significado! ¡La base de las ideas! Sin embargo lo único que vemos es una fabulosa maraña de dentritas porque estamos empleando la herramienta inadecuada. (Siguiendo esta progresión de exclamaciones puede intuirse que la psique, el alma y todas esas nociones de las que muchos defienden una naturaleza supra-material en realidad son tan palpables como una taza de desayuno: no hay nada sobrenatural en la consciencia, sólo coincidencias que aún no hemos descubierto y trasladado a nuestra mente).
Ahora sólo basta con decir o escuchar “ma-má” y una rápida descarga va desde la base hasta la punta de la pirámide, sólo decirlo ya es excitante porque la experiencia de la recompensa bioquímica también tiene su reflejo en forma de neuronas aparajedas pero si la mancha del padre o de quién sea no aparece el cerebro experimenta una sensación de privación química exactamente igual que un drogodependiente privado de sus drogas (de hecho es el mismo mecanismo): ¿dónde está mi excitante dosis de abrazos y carantoñas? ¿dónde están mis endorfinas? ¿Dónde han metido la dopamina? El llanto es una de esas pocas funciones comunicativas que vienen de serie, tanto su emisión como su recepción (¿neuronas espejo?) y está predefinido que una sobreexcitación o depresión del conjunto del cubo 3D desencadena su activación. Por eliminación de los sujetos que no lo aprendieron el emitir mucho ruido cuando hay privación para llamar la atención de quienes ya han configurado su sistema neuronal para sobrevivir en el entorno fue lo que terminó por sedimentar la función del llanto, filtrándose desde una práctica y casual asociación neuronal hasta fijarse en nuestros genes.
Tormenta de brochazos:
- Las neuronas del cerebro necesitan estimularse repetida y coincidentemente para crear un vínculo sólido.
- Los individuos de una población necesitan repetir el éxito de una asociación neuronal antes de que se produzca la fijación genética.
- Nuestros genes son un cerebro ecualizado para aprender a través de la intensidad, repetición y coincidencia temporal apropiados.
- Los genes son neuronas perezosas.
- La velocidad… la neurona biológica funciona a la velocidad justa que requiere el medio para el que la evolución ha demostrado ser útil…. igual que un gen no refleja el primer cambio que requiera el medio una neurona no se engancha irremediablemente a la primera coincidencia que se produce, es tan importante el equilibrio de la creación de uniones como el de la destrucción de las mismas.
… quizás un ordenador no sea menos potente que un cerebro, quizás sea demasiado potente o el software tenga una lógica de funcionamiento mal calibrada… a destiempo….
¿Qué hay detrás de frases como “entiendo mucho mejor cuando hablan en inglés en una película (en comparación con un medio sólo auditivo como la radio o el teléfono), el contexto escénico me ayuda a entender el significado”? Es obvio… ¿has seguido esa feedback-sentencia del cerebro alguna vez hasta el final de su razonamiento lógico? Prueba… dimensiónalo, ejecuta la simulación 3D que seguro intuyes se esconde detrás de tan complejo fenómeno cognitivo. Si no entiendes esta propuesta da igual, no te pares, sigue leyendo. Estuve tentado de eliminarla en la “remasterización” de este texto pero me pareció una invitación interesante que quizás alguien responda.
“Sólo usamos el 10% de nuestra capacidad neuronal” ¿Legamos a esa conclusión porque el 90% de la masa neuronal del córtex superior no presenta actividad y/o sinápsis significativas en comparación con las que sí se estimulan al hablar o caminar? En la dinámica de funcionamiento del cubo 3D de neuronas hacen falta neuronas que se queden “en la cuneta” para que la fase de formación de sinapsis sea eficaz, hacen falta huecos en el sentido espacial y literal de la palabra para que esas pirámides de neuronas puedan conectarse entre sí, la punta de una pirámide, resultado de un sonido coincidente se une con otra punta para formar una palabra y esta a su vez con la pirámide que hay cerca de la zona conectada al ojo y que germinó a base de ver el objeto asociado o incluso a una piramide “interna” fruto de una combinación de significados metaasociados para crear una pirámide geométricamente indistinguible para un observador… un concepto abstracto ha nacido y su reprensentación es la confluencia mediante la unión de esas puntas en una neurona que al activarse significa “X”.
Necesitamos “desperdiciar” neuronas dejándolas sin uso aparente, la evolución no las ha puesto ahí para que un día descubramos como “activarlas”, ya se activaron y desactivaron pero es necesario su desaprovechamiento para que el juego de la asociación de sus frutos… en este punto es curioso recordar que el código genético también tiene un gran porcentaje “desaprovechado” cuyan función todos los expertos tratan de descubrir y que quizás sea el necesario equivalente de esas neuronas “inútil”. De nuevo coincidencia entre ambos cerebros (el neuronal y el genético, el rápido y el lento)…
Locura asociada a grandes cerebros de la historia que puede estar dándonos pistas: ¿Cuál es el número mínimo de neuronas “desperdiciadas” que necesitamos para poder seguir procesando correctamente? ¿Serán los genios propensos a la locura porque en el delicado equilibrio de la creación de sinapsis por asociación una pequeña disminución del espacio libre comience a entorpecer la correcta asociación de ideas? Al mismo tiempo ¿podrá una excesiva facilidad para crear asociaciones dar increíbles pirámides en un principio y un apretado amontonamiento posterior que tenga como resultado salidas de información incoherentes?
Las neuronas al cerebro lo que los genes al organismo lo que las personas a la sociedad, necesidad de sincronía, de espacio libre y “desaprovechado” para poder realizar las funciones biológicas con normalidad…
Más diferencias entre las redes actuales en este enlace y la propuesta que hago:
Sencillo, nadie, que yo sepa, ha tenido la santa paciencia de intentar entrenar una red neuronal regida por tan pocos parámetros y funciones como las que intuyo rigen un cerebro.
Claro, eso y que en la mayoría de las gráficas como las del enlace el proceso es unidireccional, es decir, se estimula la red por un sólo lado y no por varios de forma simultánea con diferentes tipos de estímulo, incluída una función de respuesta primitiva que produzca un cierto grado de retroalimentación pero sin llegar a “acoplar” o “saturar” toda la red. Insisto que el proceso de ajuste tiene algo de ingeniero de sonido trabajando en la mesa de mezclas, suena un poco alquímico… I know… ¿pero no lo es también la intuición que guía las investigaciones? Tómese toda esta hipótesis como un propuesta divertida para jugar y quizás aprender algo.
En cualquier caso los pocos ejemplos de “multi-estimulación” (ahora no doy con los enlaces que vi en su día) vuelcan su activación en una red regida por algoritmos excesivamente complejos y limitadamente adaptables.
Al margen de su eficiencia y/o desfase con el tempo de la realidad o si los parámetros que usan son muchos o pocos, o si el algoritmo es lo suficientemente simple verás si te fijas en la topología de los diferentes tipos de redes que todas desarrollan pirámides apuntando en una misma dirección, falta su reflejo simétrico provocado por un estímulo coincidente, dos pirámides unidas por su cima en un espacio lo suficiente amplio como permitir el crecimiento de otras pirámides que pudieran conectarse a ellas así como pirámides cuya base sea la cima de otras pirámides. Para eso las neuronas no deben crearse a medida que la red aprende sino que ya deben existir, quizás si esta hipótesis se confirmara plenamente y descubriéramos la configuración adecuada de los diversos parámetros que intervienen descubriríamos que de poder inducir una mitosis neuronal, como bien sabrás algo que no se produce en un adulto, no estaríamos sino “destrozando” su buen funcionamiento ya que el funcionamiento de cada cerebro, intuyo, se acomoda a sus dimensiones y topología durante los primeros meses de vida igual que un músico afina su instrumento con los primeros compases.
Tampoco he encontrado casos en los que se preste la atención que merece la cuestión de la celeridad en la respuesta, es decir: la realidad en la que vivimos tiene una velocidad que no es ni la de los árboles ni la de las moscas y nuestro cerebro es una consecuencia “gallina-huevo” de este hecho. Si procesa demasiado rápido o demasiado lento se encontrará desfasado con respecto al sistema de aprendizaje que el entorno social le ofrece y por lo tanto no aprenderá nada porque sencillamente se perderá los detalles que debieran componer los patrones. Si tomáramos los patrones que rigen el cerebro de una mosca de la fruta y aplicaramos sus parámetros a un cerebro humano dejaríamos de tener un cerebro humano, no creo que se comportara como una mosca sino que el desequilibrio entre dimensión física y velocidad darían una masa inerte incapaz de adapatarse a nada. Cada animal se rige por una sencillez similar pero sutilmente adaptada a donde la evolución le ha puesto, su volumen cerebral y las distancias a salvar por las neuronas, su capacidad de interacción… si todas las ideas no son sino buenas macros edificadas por nuestras neuronas en realidad la inteligencia es una constante del mismo valor en todos los cerebros del reino animal, cada uno es lo más eficiente de lo que es capaz para un instante dado de la evolución… en el caso de los humanos en esa evolución compartimos esa misma e idéntica tendencia hacia la máxima eficiencia y nos ha llevado a la conquista del tiempo libre y el exceso energético hiperestimulando y consecuentemente hipertrofiando el órgano cerebral que ahora puede entregarse a buscar asociaciones no sólo en el exterior sino también en su interior alumbrando o quizás simplemente agrandando las estructuras abstractas que juntas dan lugar al “yo”…
Tampoco he encontrado casos en los que se preste la atención que merece la cuestión del tamaño de la masa cerebral, algo un tanto incomprensible ya que los estudios antropológicos nos dicen que con cada salto evolutivo el hombre ¿es más listo porque es más cabezón? (o viceversa, retroalimentación entre los dos cerebros: genético/neuronal que desemboca en recompensa fisiológica = hipertrofia) sin embargo la cuestión del aprovechamiento del cerebro hace que cuando alguien programa una red neuronal las neuronas se van creando a medida que surge la asociación, no he visto redes neuronales en las que previamente al comienzo del aprendizaje preexista una red “virgen” de neuronas con un número muy superior a las que suponen los programadores van a necesitar sino que estas se van creando a medida que las asociaciones se producen. Otra cuestión son las simulaciones cerebrales fisiológicamente literales pero, como ya hemos dicho y siempre desde la perspectiva de esta hipótesis, no tiene futuro.
La red de neuronas virtual tiene que existir como matriz tridimensional previamente al entrenamiento y el algoritmo que revisa si han recibido estímulo aquellas conectadas a terminaciones sensoriales debe ser capaz de repasarlas con la celeridad apropiada para que la creación y destrucción de sinapsis sea ni muy rápida, ni muy lenta.
Si analizamos como pensamos y respondemos a los estímulos nos daremos cuenta de que nuestro cerebro no funcoina al 100% como una Real Time Machine, cuando tenemos que serlo o al menos reducir el tiempo de respuestas no intuitivas (aquellas que exigen más ciclos de reloj) prescindimos de muchos detalles en el análisis de la información, si la situación exige una atención extrema por parte del cerebro sube la adrenalina, se amplifica la percepción sensorial hasta niveles de saturación y sólo se procesan las pirámides más grandes y sólidas, aquellas vinculadas por asociación a situaciones de estrés a su vez ligadas al peligro (peligro de que te coma el león o de que te despidan, estrés y tensión que crean asociaciones directas y sin atajos), sin embargo cuando estamos tranquilos e introspectivos nos desligamos del mundo exterior, desviamos la potencia de proceso a otra zona y nos zambullimos de forma introspectiva en las estructuras creadas sin contacto directo con los canales de entrada y salida. Si no se produce una llamada o interrupción clara no volvemos al modo “presente”, siguiendo esta senda algunos nunca vuelven y ahí tenemos diferentes ejemplos: autistas, aficionados a las drogas sintéticas y otros indivíduos con problemas para comunicarse con el exterior.
A nosotros se nos ocurrió simplificar el proceso para hacer pruebas preeliminares más rápidas. No es plan de estar 18 meses hablándole a un ordenador para descubrir finalmente que está mal programado.
Simplificar es necesario para intentar destilar la esencia del equilibrio correcto (aunque luego no pudiéramos extrapolarlo directamente a una red más compleja por los motivos expuestos anteriormente) o en cualquier caso era el único camino abordable porque de otra forma (creíamos erróneamente) sería imposible que con la potencia de la que disponíamos entonces pudiéramos revisar con la celeridad requerida al menos la simplificación de un cerebro con la cantidad suficiente de neuronas, de tal forma que nos inventamos lo que sería una “muestra microtómica” absolutamente bidimensional: una matriz de 3 x 255 si no recuerdo mal, en un extremo tenía tres entradas y en el otro otras tres.
El objetivo era que una de las entradas fuera el equivalente del oído (un canal unidireccional, OJO: no limitamos o “capamos” el que la red pudiera tratar de estimular desde dentro las neuronas de una entrada simplemente le quitamos a la primera fila de neuronas asociadas a una entrada la capacidad de retroalimentar la red ya que si las calibrábamos bien al ser un intento sin éxito esos “caminos” nunca cogerían fuerza y a medida que aparecieran estructuras más eficientes serían desechadas, la estimulación nunca podía ser unidireccional si queríamos ser coherentes con esta teoría de estructuras neuronales piramidales simétricas unidas por la punta) y la otra entrada estaba conectada a otras teclas del teclado, no recuerdo qué número de ellas hay en el ejemplo de código que te envío pero la idea es que representaran el significado resultado de asociar diferentes combinaciones de las teclas del “oído”. De esta forma estimulábamos a la red desde dos frentes en lo que podían considerarse una hipersimplificación de un oído y la vista. Por lo tanto y siendo coherentes con lo dicho hasta ahora el equilibrio, de conseguirse, no sería extrapolable a un cerebro más grande pero, al menos, sería un apoyo parcial a esta hipótesis.
Creamos una tabla de conceptos simples en las que diferentes combinaciones de teclas del “oído” se pulsaban de forma simultánea a una tecla de la “vista” y empezamos a afinar las funciones: creación de enlace, fuerza de ese enlace (probando con diferentes configuraciones de neuronas: sólo con 3 niveles de fortaleza en el enlace, con 4…, probando con diferentes niveles de status: no estimulada y estimulada, niveles intermedios más o menos numerosos; diferentes niveles de velocidad en la transición de subida y bajada en el estatus de estimulación. Algunos parámetros resultaban útiles y otros aparentemente no, claro que en esta alquimia, por mucho que intentáramos tabular los resultados, las verdades absolutas era más bien esquivas.
Al final las combinaciones más eficientes (no sé de todas las pruebas que hicimos si los ficheros que envío tiene la mejor de todas, insisto que hace varios años de todo esto) las neuronas eran vectores apuntando a una o varias neuronas, con predilección por tener un sólo enlace de gran fortaleza y en consecuencia mayor poder de estimulación aunque sin descartar pequeños axones hacia o desde otras neuronas. En resumen tenían a penas 4 o 5 parámetros cada uno de los cuales se regía por una función lógica y aritmética extremadamente sencilla que iba recorriendo secuencialmente todo el “tejido”, uno de los parámetros fundamentales era el marcador de tiempo, cada neurona tenía un reloj que permitía comparar su estado en el mismo “instante virtual” que el de sus vecinas más próximas.
Es importante entender que en el algoritmo que mantenía esta red todas las neuronas tienden a bajar su nivel de estimulación por defecto, es decir: si la estimulas se conectará a unas cuantas pero a medida que te alejas del estímulo la intensidad decae y si no se culmina enganchándose a otra red o no se reincide lo suficiente como para alcanzar lo que en ese momento estaba configurado como unión permanente (otro parámetros con el que íbamos jugando) la estructura terminaba por marchitarse y desaparecer.
Esto puede parecer engañosamente similar a lo que hacen muchas simulaciones neuronales, la diferencia no es solamente la mayor simplicidad sino el entender lo que se ha repetido ya varias veces, lo que se espera de una red en función de su tamaño y que con el tamaño suficiente la activación de un neurona apoyada sobre suficientes meta-estructuras piramidales ES por sí misma la representación de un concepto abstracto.
Viéndolo retrospectivamente hay un detalle importante del que carecía el algoritmo y si bien no es importante para la simulación de una muestra de tejido sí es una gran carencia en el caso de un cerebro completo. Intuyo que el algoritmo tiene que ir modificando su comportamiento con el tiempo, es decir: a medida que van emergiendo pirámides aquí y allá las zonas van “especializándose” y según la zona puede ser un factor decisivo en el equilibrio el que las reglas que rigen el sistema se maticen en intensidad… el algoritmo debe tener al menos unos pocos parámetros que modifiquen ligeramente su funcionamiento, esta idea la estoy sopesando según escribo el párrafo así que tendré que darle más vueltas ya que quizás el aumento de la población de pirámides deba verse compensando por una ralentización en la creación de sinapsis lo cual parece coherente con la curva de aprendizaje inicial en los niños y la disminución posterior de esta capacidad así como el evitar colapsar el espacio libre necesario para operar (¿pendiente de la curva de aprendizaje / capacidad craneana / niveles de creación de estructuras?)
En una fase a la que creo recordar no llegamos pretendíamos conectar tres neuronas a una zona intermedia de la mini-red a modo de “boca” que no era sino una réplica de las entradas del “oído” pero sin “castrar”, es decir: lo que decía la boca debía ser esuchado por el oído.
Un punto importante es que en la red inducíamos un cierto nivel (otra variable a tabular) de ruido inherente, igual que la ténue oscilación que observamos en el brillo de las estrellas en la noche, las neuronas tenían cierto rumor de fondo que hacía que cuando un estímulo exterior estimulaba la red las uniones consecuentes no siempre dibujaban el mismo “camino” ya que si la función que comprobaba su estatus tenía que elegir entre unir una neurona muy estimulada u otra que que en ese momento estaba completamente “tranquila” optaba por siempre por la más estimulada o en cualquier caso se “recompensaba” ese enlace con un +1 de fortaleza.
Después de muchas pruebas afinando nuestra pequeña muestra bajo el microscopio finalmente logramos que el castillo de naipes tuviera cierto equilibrio y que además el algoritmo fuese hipersimple, tanto que el nivel de retardo que tuvimos que introducir fue considerable ya que de lo contrario el ordenador lo procesaba demasiado rápido.
Al cabo de un tiempo humanamente razonable la red creó y fijó los conceptos de la tabla y además cuando el ruido estimulaba alguna de las neuronas de la base de las piramides se producían espontáneos encendidos de las puntas de las pirámides que resumían dichas combinaciones de estimulos de entrada lo que producía un cierto grado de recompensa por nuestra parte y que a su vez contribuía a reforzar aún más la estructura. Esa noche el tejido virtual funcionó como se esperaba y esa noche se jodió el invento, a mi amigo, el verdadero programador que durante todo el proceso no terminaba de tener fe en que todo aquello funcionara pero que le dedicó todo ese tiempo porque le encantaba jugar al “inventor chiflado” le cambió la cara, te aseguro que esa cara la tengo grabada a fuego. Dijo que con una risa floja que aquello era imposible, que la red era demasiado simple y al final dijo que estaba muy cansado y que mañana veríamos.
Nunca se retomó el proyecto, que yo sepa claro. (Tiruriru…)
Con el tiempo me cansé de que tampoco se terminaran otras ideas de negocios, recogí los bártulos y me fui.
Meses después contrató a un amigo mío de infancia que con el tiempo terminó enfadado con el porque no le pagaba y cuando tiempo después tuve que invitar a mi amigo de infancia a mi boda descubrí que si invitaba al “empresario inventor” mi amigo de infancia no vendría porque no podía ni verlo así que corte por lo sano y no le invité. Sé que pasado más tiempo se enteró de que me casé y no le hizo mucha gracia que no le invitara.
Hasta el día de hoy sólo sé por vagas referencias que ha montado una empresa que hace software para el iPhone con capital ajeno y que aparentemente le va bien o al menos sus empleados cobran a final de mes. Me alegro por él.
Los mails, como todas las comunicaciones en diferido, son perfectos para que las personas no se entiendan por la tendencia natural que tenemos a proyectar e imponer nuestra perspectiva sobre los escritos, aunque escribiera como Cervantes, está claro que no es el caso, cada persona extraería una conclusión diferente después de leer un texto así.
Espero que entiendas el tono apasionado, curioso, muy introspectivo y sincero con el que escribo esto. De pequeño mi madre, psicóloga, estaba muy preocupada porque presentaba algunos rasgos autistas, mi padre me hizo varios TACs porque le alarmaban mis “ausencias” y todavía hoy tengo una facilidad preocupante para “desparecer” de la realidad. Con todo y hasta la fecha siempre he sido capaz de “volver” y de ganarme la vida pero te cuento esto para que entiendas, como seguro alguien con la experiencia vital que tienes tú entenderá, el tipo de persona que soy y así puedas encajar mejor toda esta parrafada.
En cuanto a la crediblidad que le des a todo esto estadísticamente está comprobado que pensarás que estoy reinventando la rueda, que los matices que puedan diferenciar mi deslabazada teoría no son muy diferentes del algunas redes neuronales existentes y que quizás sólo soy, como diría Fuckowski, un “pirita” divertido e inofensivo.
Me da igual si piensas eso, tú eres libre y yo no escribo esto por ninguna necesidad egocéntrica.
Obviamente me alegraría mucho que me tomaras en serio porque no hay nada más exicatante para una red neuronal que establecer un vínculo inalámbrico, es el primer paso hacia una conciencia colectiva…
… sin embargo sino logramos alcanzara ese grado de empatía pensaré que son cosas del “algoritmo supremo” y no le daré más importancia, después de todo, sólo soy una neurona… X-D
P.S.: Lo que sí espero es que al menos no me pongas en la misma categoría que el zumbado aquel con el que quedaste hace unos cuantos posts, je je…
P.P.S.: ¿Se te da bien algún lenguaje de programación apropiado?
–
A raíz de este mail tuvimos una interesante conversación que no llegó a nada tangible, no tenemos un ser inteligente encerrada en nuestro ordenador y cada uno ha seguido con lo suyo, lo que en mi caso se traduce en seguir sin adquirir los conocimientos de programación necesarios para seguir con estos experimentos mientras lucho por sobrevivir en este mundo tan divertido que nos hemos inventado.
No obstante necesitaba poner estas reflexiones a disposición de todo el mundo por si a alguien le sirven de inspiración para abrir una nueva nueva vía de aproximación al desafío IA.