Autor: José Luis Prado – España

«En el Universo lógico está el cambio de la misma, el viaje al corazón de la Inteligencia Artificial, la comprensión que nace del conocimiento, el origen de toda inteligencia«

La gran transformación. Esa es la verdadera cuestión, el gran reto al que nos enfrentamos en la actualidad, el desarrollo de una «una lógica de unificación» que pueda unir y cohesionar, embeber, las dos perspectivas computacionales que se han ido desarrollando a nivel matemático y tecnológico década tras década, en ese intento continuo por dar solución con la tecnología a todo tipo de retos lógicos de la propia tecnología, pero principalmente todos aquellos relacionados con el mundo que nos rodea que en definitiva incide directamente en nuestras vidas, de eso se trata, el uso de la tecnología para que aporte un valor como revolución en nuestra evolución hacia el progreso y consecuente futuro.

Desde el siglo pasado la lógica e incluso más atrás con todo tipo de proyecciones muchas de las mismas en el ámbito de la filosofía y el más puro conexionismo funcional, siempre ha sido planteada como una forma de razonamiento formal y de una manera más simbólica a posterior con el paso del tiempo, que intentaba unir diferentes piezas o tokens sin entrar en el detalle en sus características, sino únicamente centrados en su funcionalidad, dar sentido a sus relaciones, secuenciar y ordenar las mismas desde una perspectiva coherente que permitiera resolver problemas o retos asociados a necesidades por ejemplo; un sistema electromecánico conexionista basado en relés o contactores interconectados de una manera lógica para resolver el problema de mando y control en un ascensor, esa amalgama de cables que a simple vista no obedecen a ningún orden o incluso, en función de la menor o mayor profesionalidad del instalador en aparente caos, pero que en su esencia, en lo subyacente esa lógica funcional está ahí, no funcionaría nada si la misma no está presente.

Este sencillo y clarificador ejemplo de la influencia de la lógica en los sistemas automáticos sin intervención humana, nos lleva a replantearnos la necesidad de comprender exactamente de qué estamos hablando, cuál es y ha sido su influencia en todo el proceso de transformación de las tecnologías que tenemos en la actualidad y las que están por llegar sobre todo las relacionadas con el marco de la Inteligencia Artificial y que en mi opinión, será la máxima expresión de la misma.

Generar la conciencia para que la comunidad científica y de investigadores en este campo de la tecnología se tome en serio de una vez por todas la necesidad de incluir la lógica en los procesos de aprendizaje de los algoritmos, es el debate actual de los gurús del campo, es clave. Esos átomos lógicos que nos permitan resolver problemas de una naturaleza simple o compleja y a veces profusa en lo que a información se refiere desde una perspectiva más simbólica y no tanto desde una perspectiva «forzada» a nivel de contexto en la búsqueda de coincidencias de estructuras recurrentes en los datos, esos patrones tan de moda, fruto de orígenes de datos tan heterogéneos como por ejemplo, sistemas de Visión Artificial, sistemas de análisis de señales de guerra electrónica, aeroespacial, etc.

El viaje de la lógica nace de la continua necesidad de buscar comprensión basado en el razonamiento, esa lógica inferencial que a día de hoy las máquinas o sistemas de Inteligencia Artificial carecen y que necesitan de la intervención humana por activa y por pasiva para obtener resultados confiables. Este aspecto es clave, principalmente si hablamos de sistemas en donde la vida y la seguridad física de las personas esté en juego o mismamente la privacidad, una problemática en la actualidad sobre todo el emerger de nuevas tecnologías y sus usos.

Todo ello nos lleva a esta gran paradoja:

“Intentamos resolver problemas o retos complejos de naturaleza sistémica, no lineal y combinacional con algoritmos de aprendizaje de naturaleza local, con procesos simulados no lineales y secuenciales”

Centrándonos en la mecanización de los desarrollos computacionales, el desarrollo de software, y sin entrar en el origen de toda lógica clásica que siempre estará latente en todo razonamiento de naturaleza humana, el tokenizado formal y funcional de todo problema que es en si mismo un «sistema formal», un reduccionismo funcional simple que intenta representar principalmente todos aquellos aspectos semánticos y alineados en la búsqueda de respuestas resolutivas, esa «lógica formal» o explicativa, nos ha ido llevando con el paso de los años hacia una lógica más indicativa o simbólica. A la par de esta evolución lógica y del pensamiento de todas aquellas personas partícipes en toda esta transformación, se empezó a intentar resolver problemas desde una perspectiva condicional, condición-implicación, una manera de representar conceptos de una forma lógica muy simple, sistemas formales implicativos definidos por las cláusulas de Kowalski, Horn, entre muchos otros, esa «lógica clausal» que derivó en la aparición y desarrollo de lenguajes de definición lógicos implicativos o de razonamiento como por ejemplo, Prolog; me pasé años y años codificando pequeños y limitados retos sobretodo relacionados con los entresijos del lenguaje natural. Muy divertido.

A la par de la evolución de los sistemas operativos y los lenguajes de desarrollo de software se fueron desarrollando sobretodo en el ámbito académico y siguen en ello, definiciones y proyecciones relacionadas con una perspectiva más resolutiva hacia una «lógica simbólica» con un mismo y único objetivo, resolver.

Ello permitió desarrollar sistemas de software orientados a la definición, poder codificar con esos lenguajes de antaño que empezaron siendo puramente secuenciales 10..,20.., 30.. como por ejemplo, el Qbasic, entre otros, -ya no hablo del ensamblador-, que iban resolviendo pequeños cálculos, -las matemáticas siempre han estado ahí latentes en el desarrollo de software-, pero no dejaban de ser lineales, consumían infinidad de recursos en los ya de por sí limitados sistemas o equipos de antaño lo que llevó a la necesidad de estructurar los mismos en la búsqueda de la aprovechar mejor los recursos y resolver los retos de una manera más eficiente, romper esa linealidad, -aunque ciertamente nunca lo han sido de facto, ni en la actualidad, es algo lógico relacionado con el ordenamiento y la encapsulación de la información, siguen siendo secuenciales y no combinacionales-, que dio lugar a la aparición de lenguajes de desarrollo más definidos, nacen los lenguajes procedimentales, basados en la encapsulación de la información según las diferentes funcionalidad, aparecen los procedimientos y las funciones, lenguajes como Pascal en los que tuve la suerte de codificar son un ejemplo temprano del emerger de este tipo de lenguajes, por cierto un lenguaje que me encantó. Aparecen los bucles y con ello se nos disparó la imaginación. La evolución o cambio de paradigma de codificación y estructuración de la información y el desarrollo de esa lógica de definición en paralelo nos llevó a la creación de aplicaciones basadas en reglas o condicionadas.

Se desató la fiebre por los sistemas simbólicos, se empezó a pensar que todo, absolutamente todo, podría ser resuelto usando esa «lógica simbólica» y que sumada o embebida en el nuevo paradigma del lenguaje nos abriría definitivamente las puertas de la la tan ansiada Inteligencia Artificial. El gran error.

La emoción que generaron todos estos cambios nos llevó a un concepto actual muy potente y relacionado con la definición, en nuestros días la de los datos tal y cómo veremos, los conjuntos o dominios resolutivos basados en reglas, aparecieron los «Sistemas expertos», casi nada, sistemas basados en reglas implicativas lógicas que permitían dar solución a retos bajo un mismo contexto o especialización, principalmente usados en el ámbito médico donde más se han utilizado.

La explosión de este concepto reforzó la creencia de que estábamos ante un nuevo paradigma resolutivo, pero nada más lejos de la realidad, a la generación de expectativas y emociones, apareció la frustración, dichos sistemas formales y simbólicos que respondían de una manera óptima o aceptable frente a retos resolutivos sencillos no terminaban de funcionar bien frente a todos aquellos retos de naturaleza compleja, multidimensional y en la que la profusión de los datos era considerable; las tasas de error y tiempos de procesado se volvieron insostenibles, de hecho, la alimentación de nuevas reglas y reglas al dominio de la definición se volvió igualmente insostenible por no hablar que era directamente proporcional la inserción de las mismas para dar solución a las nuevos requerimientos a la bajada de rendimiento de los sistemas computacionales expertos. Un despropósito.

Un golpe de realidad que propició la búsqueda de otras alternativas, de hecho, se siguieron desarrollando soluciones fracaso tras fracaso frente a retos complejos. Paralelamente a la lógica simbólica se fueron proyectando desde décadas atrás en el tiempo numerosas técnicas matemáticas y proposiciones de arquitecturas que pudieran dar solución a estos retos donde la naturaleza de la información no era estructural, principalmente por investigadores del ámbito universitario, apareciendo ese concepto tan de moda, las «redes neuronales». Infinidad de técnicas matemáticas que pudieran dar solución a problemas por ejemplo, de clasificación de la información, que parece una tarea sencilla pero no lo es tanto si pensamos en retos donde no existen linealidades, lo que lo complica todo. Hablo de la antesala, el origen del aprendizaje automático que no apareció de repente aunque lo pueda parecer, ha sido y es un proceso de cambio.

En definitiva; tres líneas convergentes, por un lado el cambio de paradigma de los lenguajes de desarrollo más estructurales y encapsulados, el desarrollo teórico de una lógica simbólica para resolver problemas sencillos de naturaleza lineal y todas aquellas técnicas en la búsqueda de sistemas que se enfrentarán de una manera mejor u óptima a retos de naturaleza no lineal.

El bajón que supuso y el emerger de nuevos lenguajes más estructurales y encapsulados y el emerger de las diferentes técnicas matemáticas comentadas, llevó a la comunidad de desarrolladores, empresas, centros de investigación, etc.-, a ir poco a poco descartando o abandonando los desarrollos basados en conceptos formales de definición consistentes en reglas, no en el ámbito académico, el gran error y en mi opinión, de la comunidad de Inteligencia Artificial. Ahora es justamente eso lo que nos hace falta.

La evolución de los lenguajes de desarrollo, la encapsulación de la información, nos lleva con el paso de los años o décadas a un cambio de paradigma, aparece por primera vez el concepto de «objeto» y que enlaza perfectamente con el mundo que observamos y que intentamos representar y resolver, el paradigma orientado a objetos, el tan conocido POO, lo actual, que en sí mismo es un paradigma lógico simbólico, de hecho, lo es con un matiz; asociamos el lenguaje a la lógica de las cosas. Aparece una lógica simbólica real pero que no debe confundirse con esas otras lógicas comentadas basadas en la condición-implicación relacionada con el razonamiento; la lógica de los lenguaje de desarrollo con paradigma POO está más relacionada con la definición, la estructuración y la contextualización, el razonamiento que se embebe en el desarrollo depende del desarrollador, es decir, no algo automático, ahí está el matiz para que se comprenda bien el concepto.

En definitiva, se produce el primer salto, pasamos de una lógica más formal a una más simbólica con el matiz observado, una transformación conceptual.

El continuo desarrollo de las técnicas matemáticas y la búsqueda de arquitecturas para resolver retos no lineales, hablemos ya del aprendizaje automático, ML en este artículo, nos lleva con el paso del tiempo al concepto de «adquisición», un nuevo cambio, otra manera de hacer las cosas, que nos orienta hacia una lógica de características, a la necesidad cada vez más urgente, –estamos actualmente en ello-, de la adquisición de datos relacionados con todo aquello que se desea representar y resolver y bajo ese concepto comentado y que apareció con los sistemas expertos de una manera práctica en el mundo de la computación, sobre todo gracias a teorías como la de conjuntos de Fergie ya conocidas y estudiadas, con muchos matices expuestos por el que es para mi el gran genio del siglo pasado en lo que a lógica matemática se refiere, Kurt Godel, que expuso sin saberlo los límites del ML y que desarrollaré en otro artículo que escribiré más adelante, etc.

¿Y cuál es el cambio de concepto?

La manera en que codificamos, si en la codificación clásica incluida el POO por lo que os he comentado, introducimos en la lógica todas aquellas posibilidades representativas y que nos vale para resolver problemas de naturaleza simple y no dimensional como ya sabemos, aún así con infinidad de reglas condicional-implicativa y relaciones, reglas de facto, en los sistema de ML no codificamos las mismas, sino introducimos en este tipo de arquitecturas las mismas, las denominadas en el argot como «muestras» en el caso del ML y el aprendizaje supervisado por buscar un ejemplo, -no entraré en los tipos de aprendizaje y arquitecturas para no desviarme del objetivo del artículo-, marcando cada una de las mismas bajo la intervención humana indicando al sistema en función de las características de qué tipo de objeto se trata por ejemplo, en un sistema de clasificación de objetos.

Aparecen los sistemas computacionales basados en una lógica predictiva que vienen a dar solución en parte y con limitaciones a la problemática comentada relacionada con los sistemas formales simbólicos frente a retos complejos y profusos, de hecho, estos sistemas ML presentan una características diferencial; al ser sistemas orientados a la búsqueda de estructuras recurrentes marcadas o patrones en los datos pueden enfrentarse muy bien a todas aquellas variables estocásticas no presentes en su aprendizaje e inducidas por el dominio representativo o dataset, es decir, pueden resolver, en nuestro ejemplo, clasificar objetos aunque nos los tengan representados, algo imposible con el mecanicismo formal, por no hablar de su vertiente más avanzada el DeepLearning, que permite abstraernos de todas aquellas variables estocásticas por ejemplo, del medio de observación en un sistema de visión artificial, de los cambios de luz, distorsiones climatológicas, etc.-. Siempre y cuando el Know represente todo el dominio de posibilidades, o las más generales y bien diferenciales, de hecho, el proceso de representación está más en la naturaleza de los datos y su estructuración que en el estado del arte tecnológico, el sistema será capaz de generalizar de una manera predictiva eficaz e identificar los objetos. Hay matices, lo sé de primera mano, en mi caso trabajé años desarrollando estos sistemas y necesitamos algo más pero ya es un buen comienzo. Nos falta la lógica asociativa a la identificación.

Otra transformación. De una lógica semántica formal basada en tokens, a otra simbólica racional y limitada, a otra predictiva con capacidad de generalización. Nace la programación orientada a datos POD.

Aquí estamos. Sistemas de aprendizaje que nos meten de lleno en un nuevo paradigma, un gran cambio de concepto en lo que a desarrollo de software se refiere es decir; se unen en el tiempo esa lógica simbólica estructural basada en el encapsulamiento de la información POO que puede resolver problemas previa codificación, con aquella otra lógica más probabilística que se enfrenta de una manera mejor a retos más complejos, pero hay un problema, los procesos lógicos están disociados, separados, no existe una unificación en los procesos de aprendizaje y que nos lleva al gran reto que necesitamos resolver en las próximas décadas:

¿Cómo inferimos el razonamiento lógico en los sistemas de aprendizaje necesarios para buscar una interpretación en el universo de posibilidades dentro de un contexto, por ejemplo, una escena de observación con una cámara en un sistema inteligente de Visión Artificial?

La respuesta no es sencilla. Por una parte sabemos que los sistemas basados en una lógica simbólica resuelven retos sencillos basados en reglas implicativas, por otro lado sabemos que los sistemas basados en el aprendizaje generalizan y resuelven de una manera aceptable retos complejos y profusos, y que ambos espacios resolutivos no son autónomos, lo que nos lleva, a la comunidad científica de investigadores, matemáticos y desarrolladores a aceptar que no estamos antes sistemas inteligentes, sino representativos, que aún estamos muy lejos de sistemas de razonamiento básico, de una «lógica inferencial» real, que tenemos la necesidad de unificar en el aprendizaje esa lógica relacional formal para construir sistemas computaciones que sean capaces de «deducir» de los contextos o dominios de los mismos construcciones lógicas de razonamiento y con ello llevarnos a una Inteligencia Artificial diferente basada en la identificación y el universo de posibilidades, el viaje a la interpretación de todo suceso o acontecimiento recurrente, el verdadero patrón en los datos que necesitamos encontrar; la interpretación, la base de toda inteligencia que nace del conocimiento y la estructuración, la atomización e inferencia lógica contextualizada de la información observable.

«La Inteligencia es una pequeña parte de la lógica observable,
pero es un buen comienzo hacia la identificación»