lunes, 30 de enero de 2023

Sobre el problema del control de la inteligencia artificial

Cuando se habla de los avances de la inteligencia artificial y, sobre todo, de la eventual llegada de la superinteligencia o Inteligencia Artificial General (AGI, 'Artificial general Intelligence'), una de las problemáticas que se plantea es el llamado 'problema del control'.  


El problema del control de la Inteligencia Artificial


Del problema del control ya hablamos hace tiempo a propósito del libro 'Human Compatible' de Stuart Russell que, de forma significativa, se subtitulaba 'AI and the problem of control'. Russell es uno de los autores que considera posible el advenimiento de esa superinteligencia y que piensa que debemos centrarnos en que actúe de acuerdo con los objetivos e intereses humanos y que permanezca bajo nuestro control.

En esencia, el problema del control consiste en asegurar que los seres humanos conserven un cierto poder sobre las máquinas y sobre su autonomía, pudiendo abortar o reorientar comportamientos inapropiados.

Estos comportamientos inadecuados se pueden producir por una eventualmente incorrecta o incompleta formulación de objetivos para una máquina. como sería el caso del experimento mental propuesto por Nick Bostrom en que una superinteligencia cuyo objetivo es maximizar la producción de clips, sin más restricciones, y la máquina puede acabar considerando que la propia existencia de los humanos le dificulta maximizar esa producción de clips... y actúa en consecuencia. 

Aunque este experimento mental es en sí mismo poco creíble, sin embargo el trasfondo de lo que quiere exponer sí que lo es. Si un algoritmo no está suficientemente bien formulado y eventualmente limitado, puede producir resultados adversos imprevistos. Por ello es necesario mantener control.

En otra visión más fantasiosa, es necesario mantener el control para evitar una eventual rebelión de las máquinas como se describe en tantas películas y novelas de ciencia ficción. En este caso no se trata de un algoritmo inadecuadamente formulado sino de una eventual voluntad consciente de dominio por parte de las máquinas. Este escenario es dudoso a largo plazo y claramente imposible a corto, pero crea inquietudes y, si se opina que realmente la superinteligencia llegará y tendrá alguna forma de voluntad, es evidente que la raza humana estaría en peligro y querríamos mantener el control.

El segundo escenario es poco relevante a corto y medio plazo, pero con el primero, trasladado a situaciones más reales (ejemplo, control de armas tácticas o ciberguerra) y no tanto al experimento mental de Nostrom, creo que es suficiente para darle importancia a ese problema del control. 


Formas de control de la inteligencia artificial


En el libro 'This is technology ethics: an introduction' de Sven Nyholm se aborda el problema del control. Se trata de un libro sobre ética y, por tanto un libro de filosofía escrito por un filósofo. Sin embargo, algo que caracteriza a este autor y que me gusta mucho es que, sin dejar de ser filósofo, parece entender muy bien la tecnología y no cae en concepciones erróneas ni fantasiosas tan comunes en otras fuentes, sino que sus razonamientos, siempre filosóficos, se ajustan muy bien a la realidad técnica.

Pues bien, en ese libro, Nyholm nos habla de cuatro formas de control. Son las siguientes:


  • Control de capacidad: Es quizá la forma de control en que primero pensamos. Adopta dos variantes. La primera, que es la que más se corresponde con el nombre, consiste en limitar lo que el algoritmo o la máquina puede hacer, evitando los daños y la pérdida de control. La otra variante, quizá la más popular es, simplemente, el 'botón de apagado', es decir, la capacidad para desactivar una máquina o algoritmo si ésta empieza a comportarse de manera inadecuada.

  • Encierro ('box in'): Algo relacionada con la primera variante anterior, consiste en establecer unos límites fuera de los cuales la máquina no puede actuar o a los que no puede extenderse.

  • Oráculos: En este caso, en paralelo con el sistema a controlar, y antes de su puesta en funcionamiento, ponemos otro sistema de inteligencia artificial cuya misión es predecir lo que el sistema más potente a controlar pudiera ser capaz de hacer. De esta forma, se podría evitar construir algo que, por decirlo de alguna manera, 'se nos pueda ir de las manos'.


Como nos explica Nyholm, sobre estas tres formas de control pesa de todas formas la sospecha de que, seguramente, pueden funcionar bien frente a una inteligencia artificial todavía relativamente modesta (considero modesta la que tenemos hoy en día, aunque algunas cosas que consiga sean asombrosas), pero que pudieran ser superados por una superinteligencia realmente general, potente y autónoma.


Las teorías de Yampolskiy sobre control de la inteligencia artificial


Nyholm nos resume también brevemente el pensamiento de Roman Yampolskiy, autor de libros y artículos sobre seguridad en Inteligencia Artificial. Yampolskiy piensa en un curioso equilibro según el cual, si queremos una inteligencia artificial segura no podemos controlarla completamente y si preferimos optar por el control, esa inteligencia artificial no sería tan segura.

Yampolskiy, aplicando el control al caso de vehículos autónomos y del caso en que un humano quiera que el coche se detenga, indica que serían posibles cuatro opciones de implementación de ese control:


  • Control explícito: El coche se detiene de forma inmediata cuando recibe el comando de parar, lo cual, sin embargo, no es probablemente lo realmente deseado si nos encontramos en una autopista a alta velocidad y sería realmente peligroso.

  • Control implícito: El coche se detiene pero buscando una forma segura de hacerlo, por ejemplo, cuando pueda desviarse a una gasolinera. Es más segura, pero da al coche una cierta capacidad de decisión propia.

  • Control alineado: El coche interpreta que es lo que realmente quiere el humano, por ejemplo, ir al baño y entonces se detiene cuando ese objetivo subyacente se pueda satisfacer, lo que en este caso podría llevar a detenerse, de nuevo, desviándose a una gasolinera. Hemos dado otro gran paso en la autonomía del coche, y por ende menor control por el humano.

  • Control delegado: El coche no recibe una instrucción explícita sino que tiene iniciativa para deducir lo que es mejor para el humano. En este caso el control es prácticamente nulo.


Se observa formas paradójicas, por ejemplo, el caso del control explícito, en que el mantener el control, sin embargo, conduce a una forma menos segura de inteligencia artificial y parece que, sin embargo, podemos aumentar la seguridad delegando más capacidad de decisión, más autonomía al vehículo y menos control, si se quiere, al humano.

Según esta paradoja, Yampolskiy piensa que, quizá, el problema del control podría ser un problema realmente irresoluble.


Conclusión


El problema del control de la inteligencia artificial, a pesar de lo que en una visión a bote pronto pueda parecer, es un problema complejo.

Las teorías expuestas hablan del control de una forma que considero rigurosa pero todavía en alto nivel y en un planteamiento casi filosófico. Para ir a realidades necesitaríamos bajar al plano técnico esas ideas, analizando su implementación real. Estoy seguro que llegando a ese nivel, en algún caso el problema se podría simplificar, pero también, y más probable aún, que descubriríamos nuevas dificultades y nuevas paradojas.

Pero incluso en el alto nivel que hemos adoptado, ya se percibe que el problema del control es menos evidente y sencillo de lo que parece.

Y sin embargo, vale la pena, y mucho, desarrollarlo, no tanto por las visiones de ciencia ficción de rebelión de las máquinas, sino porque ya algoritmos y máquinas inteligentes, dada su cierta autonomía, podrían causar efectos adversos no previstos y es necesario conseguir disponer de máquinas y algoritmos seguros.


viernes, 27 de enero de 2023

Bailando con Qubits y con Robert Sutor

'Dancing with Qubits' pretende dar una visión introductoria al mundo de la computación cuántica, válida para toda persona con suficiente interés en las matemáticas y en esta forma de computación, un libro que sirva como puerta de entrada para textos más avanzados. Esa el, al menos, la intención que el autor declara en el prefacio.

Se inicia el libro con un primer capítulo, '1. Why Quantum Computing?:' en que primero se explica lo que es un qubit, luego argumenta por qué la computación cuántica es diferente de la clásica y finaliza esbozando aplicaciones en los campos de la inteligencia artificial, servicios financieros y criptografía.

Tras esto, el resto de los doce capítulos que componen el libro, se agrupan en dos secciones como sigue:
  • 'I. FOUNDATIONS:' Una sección entera que no es propiamente de computación cuántica sino que recuerda una serie de ideas, fundamentalmente de carácter matemático, imprescindibles para la computación cuántica, propiamente dicha, que es objeto de la segunda sección. Esta sección la conforman cinco capítulos:

    • '2. They're Not Old. They're Classics:' En este capítulo se repasan los conceptos de la computación digital tradicional, desde fundamentos de arquitectura de computadores, concepto de bit, operaciones lógicas y compuertas y circuitos lógicos. También habla de algoritmos y complejidad algorítmica concentrándose en algoritmos de ordenación y búsqueda.

    • '3. More Numbers than You Can Imagine:' Todavía de una forma un poco introductoria y de aportación de contexto, repasa distintos tipos de números usados en matemáticas: naturales, enteros, racionales y complejos así como estructuras algebráicas como grupos, anillos o campos.

    • '4. Planes, and Circles, and Spheres. Oh My:' Si el capítulo anterior se centraba en álgebra, éste recuerda elementos de geometría. Así, se habla primero de funciones, luego del plano real, o de conceptos de distancia y longitud. Finalmente se revisan elementos de trigonometría, coordenadas polares y el plano complejo.

    • '5. Dimensions:' Añade elementos ya algo más avanzados de álgebra lineal. Comienza hablando de espacios vectoriales, de transformaciones lineales, de matrices y de álgebra matricial. Se explican también el producto cartesiano, los cambios de base, los autovalores y los homomorfismos, entre otras cosas.

    • '6. What Do You Mean, "Probably"?:' Finaliza esta parte de introducción y contexto con elementos de probabilidad. Se dan algunos conceptos básicos de probabilidad, de aleatoriedad, esperanza matemática y así como algún resultado más específico como la desigualdad de Markov o la ley de los grandes números.

  • 'II. QUANTUM COMPUTING:' Sección en que se trata la computación cuántica propiamente dicha y que se compone de seis capítulos:

    • '7. One Qubit:' Un primer capítulo específico de computación cuántica donde primero vuelve a explicar lo que es un qubit, introduce algo de notación y luego ya entra en elementos matemáticos, bastante complejos, asociados a un simple qubit. Presenta la muy clarificadora esfera de Bloch y durante el resto del capítulo explica una larga serie de compuertas cuánticas que se aplican a un único qubit y que luego se usarán en circuitos cuánticos.

    • '8. Two Qubits, Three:' Si en el capítulo anterior nos centrábamos en un único qubit, aquí iremos a por casos que combinan dos o tres. Primero se presentan una serie de conceptos como el producto tensorial o el entrelazamiento cuántico para luego presentar siete compuertas.

    • '9. Wiring Up the Circuits:' Si hasta ahora se han visto las compuertas de manera aislada, en este capítulo se combinan formando circuitos. Por el camino se explica algún concepto como el teleportado y durante buena parte de la extensión del capítulo se explican algoritmos basados en circuitos cuánticos: algoritmos de amplificación, de búsqueda, el algoritmo Deutsch-Jozsa o el de Simon.

    • '10. From Circuits to Algorithms:' Se enfoca aún más en los algoritmos y habla por ejemplo de la transformada de Fourier cuántica, de la factorización, de la estimación de fase o el algoritmo de Shor. Un capítulo realmente complejo.

    • '11. Getting Physical:' Tras unos capítulos de naturaleza muy lógica y matemática, en este se mira hacia el hardware aunque no por ello deja de ser bastante complejo y abstracto, porque no se trata de un hardware al uso sino, más bien, problemáticas físicas a resolver o tener en cuenta. Habla de la luz, los fotones y la polarización; habla de la decoherencia ('decoherence'), de corrección de errores etc. Y al final presenta una pila de software y conceptos de simulación.

    • '12. Questions About The Future:' Para cerrar, y en un capítulo bastante corto, se apuntan algunas posibilidades de futuro en materias como las aplicaciones, el hardware. la educación, etc.
'Dancing with Qubits' es, creo, un buen libro, pero que me parece falla en lo que era su objetivo fundamental, según yo he entendido: explicar la computación cuántica de forma sencilla y asequible. Aunque al principio parece que va a ser así, aunque creo que el autor se empeña en ello, a pesar del tono ligero que sobre todo al principio adopta, lo cierto es que en cuanto se avanza en el libro, sobre todo en la segunda parte dedicada a la computación cuántica propiamente dicha, el tema se vuelve muy abstracto y complejo. Tal vez sea inevitable. Tal vez la computación cuántica sea en sí misma demasiado compleja para simplificarla o tal vez el autor al final no ha acertado a conseguir esa simplificación. Lo cierto es que, aunque tengo buena opinión de la obra, no me parece realmente divulgativa sino para, o bien tener una base muy sólida de partida, o bien leerlo y estudiarlo muy lentamente, afianzando cuidadosamente lo aprendido antes de dar el siguiente paso.
 
Robert S. Sutor

(Fuente: Traducción y ligera elaboración propia de su perfil en su página oficial)

Robert Sutor ha sido directivo y líder técnico en el sector IT durante más de 40 años.

Su papel en la industria ha sido el de impulsar las tecnologías cuánticas mediante la construcción de fuertes ecosistemas educativos, técnicos, de socios y de negocios. Su particular objetivo es evolucionar lo cuántico para ayudar a resolver problemas computacionales críticos que aborda la sociedad hoy en día. Robert es ampliamente citado en la prensa, imparte conferencias y trabaja con analistas e inversores para acelerar el entendimiento y la adopción de las tecnologías cuánticas.

Sutor es actualmente vicepresidente y Chief Quantum Advocate en Infleqtion / ColdQuanta, una compañía de hardware y software que trabaja en computación y sensorización cuántica.

Más de dos décadas de la experiencia profesional de Robert transcurrieron en IBM Research en New York. Durante esa época trabajó o dirigió los esfuerzos en computación simbólica matemáica, optimización, inteligencia artificial, blockchain y computación cuántica. También fue directivo en la parte software de IBM en áreas que incluyeron middleware, software sobre Linux, movilidad, open source y estándares industriales emergentes.

Robert es matemático teórico de formación, tiene un doctorado por la Princeton Universit y un grado de Harvard College.

Es autor de un libro sobre computación cuántica titulado 'Dancing with Qubits' publicado a finales de 2019. Es también autor del libro publicado en 2021 'Dancing with Python', una introducción a la odificación en Python tanto clásica como cuántica.

Puedes saber más del autor visitando su página oficial o su perfil en LinkedIn.
    
Ficha técnica:

EDITORIAL: Packt
AÑO: 2019 
ISBN: 978-1838827366
PAGINAS: 516

Artículos de este blog relacionados

miércoles, 25 de enero de 2023

Comportamientos reactivos y los conceptos de inteligencia e inteligencia artificial

Este post es, en cierto sentido una divagación mental, una exploración de ideas que, seguramente, podría hacer algo más rigurosa repasando lecturas del pasado, buscando información o referencias o, quizá, elaborando más mis propias ideas.

Pero he preferido, casi, hacer esta especie de 'bote pronto' a expensas de que, en el futuro, vuelva a este mismo tema de manera más ordenada y científica. Y he querido, simplemente, reflejar alguna reflexión que me ha sugerido con la lectura del libro 'Introduction to AI robotics' de Robin R. Murphy cuando habla de comportamientos reactivos o, simplemente, comportamientos ('behaviors') en robots.


Comportamientos reactivos en robots


Los comportamientos reactivos en robots son acciones que realiza el robot como respuesta inmediata a una percepción que recibe a través de sus sensores. Por inmediata queremos decir que la aparición de un evento provoca de forma directa la acción que sea, sin que exista ninguna forma de planificación o de razonamiento sobre el evento. Simplemente, el evento E provoca la acción A. Por ejemplo, la detección de un obstáculo por un sensor de impacto o distancia en un robot aspirador, provoca, por ejemplo un giro de X grados.

Estaríamos hablando, pues, de la capa reactiva que vimos al hablar de la arquitectura operativa de robots inteligentes.


Comportamientos reactivos en humanos


Estos comportamientos reactivos en robots tienen un claro paralelismo y seguramente inspiración, en los actos reflejos humanos y de los seres vivos. Si algo nos pincha o nos quema, inmediatamente apartamos la mano, por ejemplo.

Si el pensamiento racional consciente parece alojarse en el neocórtex, este tipo de comportamientos reflejos se centran en partes más internas y primitivas de nuestro cerebro o sistema nervioso.


Inteligencia


Lo anterior me lleva a preguntarme qué es exactamente la inteligencia. Es en este punto donde, seguramente, debería hacer una revisión bibliográfica, que no he hecho, en materiales de neurociencia, psicología e incluso filosofía.

Intuitivamente, tendemos a asociar la inteligencia al pensamiento consciente, a la planificación, a la resolución de problemas, a cálculos, etc pero sabemos que el 'pensamiento' inconsciente y en buena medida reflejo, aquel que tiene que ver con la percepción (vista, oido, tacto, etc), con la homeostasis o regulación interna, con gran parte de la actividad motora e incluso, creo, con buena parte de nuestras capacidades lingüísticas, es muy complejo, muy sofisticado.

Es muy complejo y, además, es fundamental para nuestra adaptación a nuestro entorno, para la percepción del mismo y la toma de acciones que garanticen nuestra supervivencia y bienestar. 

¿No es eso inteligente?

Aunque, claro, esas capacidades, si exceptuamos las lingüísticas, las exhiben también los animales y quizá por ello nos resistimos a considerarlas inteligencia. O quizá, precisamente por ser inconscientes no percibimos su verdadera magnitud y sofisticación.

¿Qué es entonces la inteligencia?


Inteligencia artificial


Hago ahora un pequeño paréntesis, para preguntarme qué es la inteligencia artificial.

John McCarthy. Fuente: Wikipedia

En algunas clases que doy al respecto recuerdo la definición / explicación que dio en su momento John McCarthy, uno de los padres de la inteligencia artificial, y que decía que lo que estaban intentando era conseguir que 'las máquinas se comportasen de una manera que consideraríamos inteligente si un humano se comportase de la misma forma'.

Y suelo hacer ver que esa definición, muy clara y sencilla como formulación y aspiración, no refleja bien lo que hoy día consideramos inteligencia artificial, porque mediante una programación basada en reglas muy claras y deterministas, podemos conseguir en  máquinas esos comportamientos externamente inteligentes. Pero eso no se suele considerar inteligencia artificial. Y es que esas reglas las aporta, en tiempo de desarrollo, el propio programador. Por decirlo de alguna manera, es el programador el que es inteligente, no la máquina. Lo que solemos considerar inteligencia artificial incluye ciertas capacidades de adaptación, aprendizaje  y autonomía no en tiempo de desarrollo, sino de ejecución.

Cuando eso se traslada al machine learning y a las redes neuronales, la cosa queda bastante clara.

Pero ¿y en el caso de algoritmos de búsqueda? ¿Y en el caso de algoritmos de planificación? Es cierto que estos algoritmos permiten adaptación y autonomía en tiempo de ejecución pero ¿No le estamos proporcionando al algoritmos reglas suficientemente claras como para considerar que, de nuevo, el inteligente es el programador y no el algoritmo?

Y si eso fuese así, ¿Qué es entonces la inteligencia artificial?


Reactividad de inteligencia 


Y todo esto me ha venido a la mente a propósito de los comportamientos reactivos. Porque, si observamos un robot programado sólo con comportamientos reactivos, sus manifestaciones externas pueden ser bastante, bastante inteligentes, o al menos parecerlo. 

El resultado externo, la adecuación de la acción del robot a la situación del entorno y a sus propios objetivos, es dinámica y más que razonable.

¿Es eso inteligencia...artificial?

Según McCarthy, debería serlo.

¿Lo es?


Conclusión. La pregunta abierta.


Como este es un post exploratorio y 'de bote pronto', no voy a cerrar una contestación. 

Realmente, quiero estudiar más, ver más opiniones y reflexionarlo yo mismo.

De momento ahí queda la pregunta: el comportamiento reactivo / reflejo en robots y humanos ¿Es inteligencia?

Y más difícil todavía ¿Qué es exactamente la inteligencia? y ¿Qué es exactamente la inteligencia artificial?


lunes, 23 de enero de 2023

Subsistemas en la arquitectura de un robot inteligente

En el post anterior ya hablamos de arquitecturas de robots y entramos algo más en la arquitectura operativa o funcional.

En este artículo vamos a profundizar un poquitos más y ver algo más de la estructuración de las funcionalidades de un robot. 


Subsistemas


Damos ese paso que nos acerca más a lo técnico, hablando de subsistemas, es decir, grandes módulos o divisiones de un sistema, en este caso un robot, y donde vamos a ubicar los diferentes componentes o librerías que formen parte de su implementación.

De alguna forma, los subsistemas forman parte de la arquitectura operativa (pues la subdivisión es funcional), pero nos acerca ya a una arquitectura técnica, con la división de módulos hadrware y software.

Y seguimos también en este caso con la argumentación que hace Robin R. Murphy en su libro 'Introduction to AI robotics' y que, en este caso se apoya, a su vez, en una arquitectura que se propuso en 2003 para el caso de  vehículos móviles no tripulados usados por el ejército norteamericano: 'Technology Development for Army Unmanned Ground Vehicles', una estructuración en subsistemas que, a pesar de su origen, se puede extender casi a cualquier tipo de robot aunque se observará que hay varios elementos que tienen relación precisamente con la navegación y el movimiento.


Cinco subsistemas para robots


 Los cinco subsistemas que se proponen en ese documento y que Murphy acoge como propios, son:


  • Planificación: Genera y monitoriza objetivos, acciones y asigna recursos. En el caso de robots móviles, como es el caso donde surgió esta arquitectura, además aporta la visión geoespacial asociada a los objetivos y acciones. Muchos de los algoritmos tradicionales de planificación y de asignación de recursos, se ubican en este subsistema  que concentra de alguna forma la parte nuclear de la función deliberativa.

  • Navegación: Tiene sentido realmente en el caso de robots móviles, y se encarga de generar los caminos a seguir en el movimiento y asigna recursos para conseguir los movimientos necesarios. Suele incluir algoritmos de planificación de caminos del tipo A*, D* o SLAM ('Simultaneous Localization And Mapping').

  • Cartografía: Actúa como un modelo del mundo que se representa como un mapa y que no deja de ser, como sugeríamos en un post anterior, una forma especializada de representación del conocimiento. Un subsistema que, de nuevo, tiene sentido en robots móviles autónomos y no tanto (o no en absoluto) en robots fijos como los brazos robóticos industriales.

  • Esquema motor: Subsistema que incluye los módulos que gestionan motores y actuadores. Se suele considerar que incluye las funciones de carácter reactivo en que el robot, sin responder a ningún plan de alto nivel, reacciona a eventos o percepciones recibidas de sus sensores. Cuando hay función deliberativa, ésta se implementaría en el subsistema de planificación.

  • Percepción: Incluye los algoritmos para el procesamiento de la información procedentes de los sensores (cámaras, sensores de distancia, de contacto, etc). También incluye cierta capacidad de elegir los sensores más adecuados de acuerdo con la acción en que estamos.


Como se puede apreciar, los subsistemas de navegación y cartografía tiene sentido en robots móviles autónomos. Se trata ésta de los robots móviles autónomos, de todas formas, de una categoría muy amplia, donde podemos encontrar robots industriales o de servicio para el transporte de materiales, los propios vehículos autónomos y, en cierto sentido, los drones autónomos así como también robots humanoides o zoomórficos con capacidad de movimiento autónomo e incluso en otros robots del tipo de robots aspiradora. 

Es decir, aunque algunos robots muy comunes como los de tipo de manipulador industrial que permanecen fijos no necesitarían de esos dos subsistemas, si son una capacidad suficientemente generalista como para considerar la presencia de la Navegación y Cartografía dentro de una especie de arquitectura de referencia.


Conclusión


Esta división en subsistemas supone un paso más en la estructuración de la funcionalidad de robots y su 'mapeo' a módulos software y sirve, por una parte, para poner orden en la implementación pero también, desde un punto de vista casi pedagógico, para conocer un poco más a los robots.


miércoles, 18 de enero de 2023

Sobre la arquitectura operativa de robots inteligentes

No pretende este artículo, a pesar de que el título pueda sugerir otra cosa, ser excesivamente técnico, sino más bien recoger un esquema que, aunque técnico, ayuda a entender mejor internamente los robots inteligentes, y lo que es más, dar forma también nuestro conocimiento sobre el propio ser humano y su estructuración cognitiva. 

Recojo, en el fondo, una propuesta arquitectural que hace Robin R. Murphy en su libro 'Introduction to AI robotics' y que, aunque creo que no es de aceptación universal, sí tiene mucho puntos en común con otros esquemas y arquitecturas.

Una arquitectura, representa de alguna manera un diseño técnico de alto nivel (a veces de muy alto nivel) y que, con frecuencia, se queda en una estructuración en bloques interrelacionados del elemento técnico, máquina, software o lo que sea, de que se trate.

Murphy concibe la arquitectura como una especie de plantilla, casi diría que unas buenas prácticas en el diseño, en este caso, de robots inteligentes.


Tipos de arquitecturas


Pero en realidad, tenemos más de un tipo de arquitectura. Así, la autora adopta en su descripción una tipología de arquitecturas propuesta por Alex Levis en 2001, a la sazón Chief Scientist de la fuerza aérea norteamericana y que es la siguiente:


  • Arquitectura operativa: Una descripción funcional de alto nivel, que indica qué es lo que hace en este caso el robot pero no cómo lo hace. La autora indica que una arquitectura operativa debe indicar, de alguna forma, cómo las siete áreas de la inteligencia artificial que vimos en un post anterior, se enlazan para proporcionar la funcionalidad deseada.

  • Arquitectura de sistemas: Describe la descomposición del sistema en subsistemas. Busca características propias de la ingeniería software como la modularidad o la extensibilidad.

  • Arquitectura técnica: Describe los detalles de la implementación. Describe algoritmos e incluso lenguajes de programación.


Muchos lectores, especialmente los más avezados en sistemas y arquitectura de sistemas, notarán que esta tipología de arquitecturas no es, para nada, especialmente 'robótica' sino que vale para casi cualquier sistema. Y en el fondo me parece bueno y razonable que sea así. Al fin y al cabo, un robot no deja de ser un sistema, con su hardware y su software.


Tres capas en la arquitectura operativa


Centrándonos ya en la capa operativa, la autora nos explica la convergencia histórica, no ausente de fuerte debate previo, en una arquitectura que distingue entre una visión reactiva y otra deliberativa. Y, al final, suma una tercera visión para hablarnos de las siguientes tres capas, de una arquitectura operativa:


  • Capa reactiva: Recoge comportamientos en que no existe una planificación. Es decir, el robot percibe un estímulo o una información del exterior mediante sus sensores y capacidades perceptivas y, simplemente, reacciona conforme tiene programado hacerlo.

  • Capa deliberativa: En este caso, el robot si ejecuta planes. Dispone de un módulo planificador y de un modelo del mundo. Conforme a ese plan, la capa deliberativa instruye a la reactiva acerca de los comportamientos asociar a una percepción. En esta capa se generan planes, se seleccionan los recursos necesarios para ellos, se implementan y se monitoriza su ejecución.

  • Capa interactiva: Esta capa permite la interacción de un robot con otros agentes, incluidos, claro, otros robots o los propios seres humanos. Es una capa algo peor entendida y objeto de más investigación y que, creo, nos lleva a campos como, por ejemplo, Human-Robot Interaction o  swarm robotics.


Las tres ofrecen muchos detalles y áreas de estudio. Tengo especial interés en mencionar alguna reflexión al respecto de la capa reactiva, pero eso lo dejaré para un próximo artículo.


La inspiración biológica


Y no quisiera dejar de destacar, la clara inspiración biológica que hay tras estas capas arquitecturales, algo que deja patente una vez más la fructífera interacción entre la inteligencia artificial y la robótica con otras disciplinas como la psicología o la neurociencia, y cómo las segundas (fisiología, psicología, neurociencia) inspiran modelos y arquitecturas en las áreas técnicas y cómo, a su vez, la inteligencia artificial y la robótica pueden servir como 'campo de pruebas' de conceptos psicológicos o neurocientíficos.

Así, y como la autora explicita, estas capas se relacionan con el comportamiento del ser humano. La propia autora aporta la siguiente figura para explicarlo:


Autora: Robin R. Murphy

La capa reactiva se relaciona con comportamientos reflejos que se producen en la espina dorsal o en las partes más primitivas e internas del cerebro humano. La capa deliberativa, por el contrario, refiere a la actividad cognitiva que tiene lugar en la corteza cerebral. La capa interactiva, finalmente, se refiere a comportamientos sociales, en muchos casos conscientes pero también tendría que ver con los movimientos de enjambres o manadas que observamos en animales, como bancos de peces o de estorninos.


Conclusión


Las arquitecturas, nos proporcionan un diseño de alto nivel pero también, especialmente si hablamos de una arquitectura funcional, operativa, un marco para la estructuración y entendimiento de una solución o de un fenómeno, que en este caso abarca tanto los procesos nerviosos y mentales de los seres humanos como de los robots inteligentes.


lunes, 16 de enero de 2023

Automatización vs. autonomía

Uno de los elementos constitutivos de la inteligencia y, sobre todo, uno de los elementos que, al menos en mi opinión, caracterizan a los robots es el de la autonomía.

Sobre la autonomía de los robots


Por autonomía, y sin entrar en definiciones formales o académicas, me refiero al hecho de que el robot es capaz de funcionar de manera independiente sin necesidad de ser manejado por un ser humano. Eso los distingue, por ejemplo, de una herramienta como un martillo neumático.

La característica de la autonomía ya la puse de relieve en mi libro 'Robots en la sombra' al intentar caracterizar a los robots en general y a los robots software en particular. En ese contexto, y de forma muy sencilla y gráfica, decía que autonomía significaba que 'funcionan ellos solos'. 

Esta característica de la autonomía también la he enunciado más recientemente en uno de los vídeos de mi proyecto 'The robot notes' en el que identifico, de nuevo, las características que habitualmente encontramos en los robots:



En el vídeo hablo de los robots como agentes inteligentes y digo que autónomo ('autonomous') significa:


[the agent] is capable of working by itself without being handled or used by a human being at least for some periods of time.


Esta es mi forma de hablar de autonomía, una forma realmente simple, pero voy a mostrar otra que es algo más elaborada que nos aporta Robin R. Murphy en su libro 'Introduction to AI robotics'.


Automatización frente autonomía en la visión de Robin Murphy


La autora hace una distinción entre automatización y autonomía.

Para ella, automatización hace referencia a la realización de tareas de manera completamente determinista y claramente marcadas de antemano, mientras que la autonomía introduce algoritmos no deterministas que permiten a un robot moverse en un mundo abierto y superar posibles omisiones u errores.

Sin embargo, Murphy sugiere que, más que unas fronteras claras entre una situación u otra, existen cuatro aspectos que se mueven un rango continuo de posibilidades, algunas más cercanas a la automatización y otras más cercanas a la autonomía. Esos cuatro aspectos son:


  • Planes: En el caso de automatización, los planes, es decir, la serie de acciones a realizar para conseguir un objetivo, están definidos de antemano y el robot se limita a aplicarlos. En el caso de autonomía, el propio robot genera sus planes para responder en variaciones en el entorno o en los objetivo.

  • Acciones: En este caso nos movemos entre acciones deterministas (que sólo pueden producir un resultado en una situación dada) en el caso de la automatización, frente a no deterministas, presentes en la autonomía, en donde las salidas posibles de un algoritmo son múltiples y la elección de una u otra depende de otros factores o eventos.

  • Modelos: Los algoritmos, sistemas o robots necesitan crear un modelo del mundo para entenderlo. En el caso de automatización estos modelos son de mundo cerrado ('closed world') en que todo lo que es posible conocer del mundo se sabe a priori y no aparecen sorpresas. Por el contrario, en el caso de la autonomía hablamos de modelos abiertos ('open world') donde todos los estados, objetos o condiciones del mundo no pueden ser conocidos a priori, por lo que el modelo del mundo se debe ir actualizando.

  • Representación del conocimiento: En este caso se contraponen el uso de señales (que marcan a la aparición de situaciones o datos ante los que el robot responde) en el caso de la automatización frente al uso de símbolos en el caso de la autonomía.


Murphy propone una sencilla representación gráfica de la combinación de estos factores en que cada uno de ellos puede encontrarse en algún punto intermedio entre automatización (a la izquierda) y autonomía (a la derecha).

Y no se 'empeña' en distinguir como clases estancas la idea de automatización frente a la autonomía, sino como una especie de continuo que incluye continuos parciales en cada uno de esos factores.


Conclusión


La visión que aporta Murphy de autonomía es más elaborada que mi propia visión y me parece muy interesante, sobre todo, la identificación de estos factores.

De la visión de Murphy expresada, lo único que no me convence es el uso de los términos determinista o no determinista en el caso de las acciones. Creo que, aunque entiendo lo que la autora quiere decir, todas o casi todas las acciones que la autora denomina no deterministas, en el fondo son plenamente deterministas y hablar de ellas como no deterministas alienta, seguro que no intencionadamente, la confusión y la fantasía sobre un 'libre albedrío' en los algoritmos o robots, un libre albedríos que en realidad es claramente inexistente.

En cualquier caso, un planteamiento muy interesante e ilustrativo.


jueves, 12 de enero de 2023

La plataforma conversacional de Microsoft con Stephan Bisser

'Microsoft Conversational AI Platform for Developers' que se subtitula, muy adecuadamente, 'End-to-End Chatbot Development from Planning to Deployment', recorre de manera sencilla y práctica los elementos de la plataforma conversacional de inteligencia artificial conversacional de Microsoft, incluyendo Azure Bot Framework, Azure Bot Service y los servicios cognitivos como LUIS, QnA Maker o Translator. Además de presentar los diferentes conceptos y componentes de la arquitectura, muestra, de manera práctica y mediante ejemplos con pantallas, todo el ciclo de vida desde el diseño, pasando por la construcción y prueba, para acabar con el despliegue y la conexión con canales.

Para ello, se estructura el contenido en los siguientes ocho capítulos:
  • '1. Introduction to the Conversational AI Platform': Primero introduce algunos conceptos básicos sobre inteligencia artificial conversacional para luego pasar a presentar la plataforma de Microsoft describiendo muy someramente, Bot Framework, Bot Service y los servicios cognitivos de Azure. Luego presenta, ilustrándolo con ventanas, los aceleradores de soluciones y las plantillas y finaliza mencionando las soluciones SaaS.

  • '2. Introduction to de Microsoft Bot Framework': Capítulo dedicado a la base de la plataforma, el Bot Framework. Comienza explicando unos fundamentos que incluyen los flujos de mensajes que se producen entre un chatbot, el adaptador, el Bot Framework Service y los canales. Además explica los procesadores de actividad, los estados, los diálogos y el middleware. Luego comenta la reutilización de componentes para, a continuación, comentar muuy brevemente Bot Service como una plataforma para el alojamiento de bots. Pasa luego a echar un vistazo a una serie de herramientas como Bot Framework Emulator, Bot Framework Web Chat o Bot Framework CLI. Continua hablando de las tarjetas adaptativas para finalizar comentando ideas del Bot Framework Composer.

  • '3. Introduction to Azure Cognitive Services': Salta a la capa intermedia, comentando servicios cognitivos pre-entrenados. Comienza en el campo del entendimiento del lenguaje natural, hablando de LUIS ('Language Understanding Intelligent Service'), mostrando sus elementos y cómo crear una aplicación. Pasa luego a QnA Maker, servicio para preguntas y respuestas tipo FAQ, donde, de nuevo, primero habla de sus bloques constitutivos para luego explicar de manera práctica cómo crear un servicio con él. Luego aborda la analítica de texto, incluyendo por ejemplo, el análisis de sentimiento, la extracción de frases clave, el reconocimiento de entidades con nombre propio o la detección de idioma. Y termina el recorrido con la traducción y Translator. Al final, proporciona algunas buenas prácticas para la combinación de servicios cognitivos y chatbots.

  • '4. Design Principles of a Chatbot': Cuenta lo que dice el título: unas buenas prácticas para el diseño de un chatbot. Comienza con la definición de la personalidad del chatbot y elementos de branding para luego tratar al saludo y la presentación. Luego habla de la navegación mediante menús y del flujo de la conversación. Continua con diálogos adaptativos y finaliza hablando con amplitud, de la experiencia de usuario y de aspectos como el uso de elementos multimedia.

  • '5. Building a Chatbot': Un capítulo de orientación claramente práctica, donde primero explica cómo construir un chatbot con Bot Framework Composer y lo ejemplifica con un caso concreto. A continuación, y siguiendo con el mismo ejemplo, indica cómo enriquecerlo usando los servicios LUIS y QnA MAker. Y remata con la integración con terceros.

  • '6. Testing a Chatbot': Explica primero cómo probar un chatbot mediante Emulator para luego dar indicaciones específicas relativas al trazado y depuración cuando se usan LUIS o QnA Maker.

  • '7. Publishing a Chatbot': Aborda el que es casi el paso final en el ciclo de vida, el despliegue del chatbot. Explica cómo crear los recursos Azure necesarios y cómo publicar y probar el chatbot en Azure.

  • '8. Connecting a Chatbot with Channels': Finalmente, se explica cómo conectar un chatbot a los canales. Muestra primero los canales disponibles y luego ilustra de manera práctica como conectar con Web Chat y con Microsoft Teams.

'Microsoft Conversational AI Platform for Developers' es un libro sin alardes pero muy correcto, que explica y ejemplifica bien los conceptos y uso de la plataforma conversacional de Microsoft, así que creo que cumple muy adecuadamente su objetivo.
 
Stephan Bisser

(Fuente: Traducción y ligera elaboración propia de su perfil en su página oficial)

Stephen Bisser
Stephan trabaja en Solvion, empresa con base en Graz (Austria) como líder técnico, con foco principalmente en inteligencia artificial conversacional, aunque también trata con Microsoft 365 y, por supuesto, con Azure, Su pasión es la plataforma de inteligencia artificial conversacional de Microsoft y todo el ecosistema de Microsoft Bot & Cognitive Services. Es por eso que intenta poner el máximo de inteligencia bajo la forma de Cognitive Services y Azure Bot Services, en las aplicaciones de negocios como Microsoft Teams y otras para hacerlas mejores y más inteligentes.

Y como se ha desarrollado también su pasión por la nube, empezó a pensar en crear un blog compartiendo sus ideas y hallazgos con todos el público.

Desde Abril de 2018, Stephan es reconocido como Microsoft MVP for Artifical Intelligence & Microsoft 365 Development debido a sus contribuciones a este área específica y a la realización de cantidad de trabajo con la comunidad en estas categorías (charlas, blog,...).

Stephan también forma parte. junto con otros MVPs, de la BotBuilder Community que es una iniciativa de comunidad soportada por el equipo de Microsoft Bot Framework para enriquecer sus SDKs y herramientas coo más funcionalidad. Y no solo eso, junto con algunos amigos, Stephan ha fundado la iniciativa denominada SelectedTech para hablar de asuntos tecnológicos interesantes en torno a Microsfot 365 e Inteligencia Artificial, charlas que son grabadas y hechas públicas para expandir el conocimiento sobre estas herramientas y servicios.

Puedes saber más del autor visitando su página oficial, su perfil en LinkedIn o siguiéndole en Twitter donde se identifica como @stephanbisser.

Ficha técnica:

EDITORIAL: Apress
AÑO: 2021 
ISBN: 978-1484268360
PAGINAS: 300

Artículos de este blog relacionados