miércoles, 28 de septiembre de 2022

Imitation learning: robots que aprenden a partir de demostraciones

Entre los muchos misterios que encierra el cerebro humano se encuentra el del aprendizaje, cómo adquirimos conocimientos y nuevas habilidades.

Dado que la inteligencia humana es fuente de inspiración para la Inteligencia Artificial, saber realmente cómo aprende un ser humano, sería de una gran utilidad para hacer alguna suerte de trasposición algorítmica.

A falta de conocer en profundidad  cómo se produce el aprendizaje en el ser humano, utilizamos lo que podemos percibir o entender de él para construir algoritmos y robots que exhiban alguna forma de aprendizaje.

El aprendizaje del machine learning


Se encuentra abundantemente tratado, casi en cualquier libro sobre inteligencia artificial, el aprendizaje algorítmico, el que que se realiza mediante el llamado machine learning. Se habla con frecuencia de las formas básicas de aprendizaje supervisado, no supervisado y por refuerzo, así como todas las formas, mecanismos y variantes más o menos intermedios.

No se trata, sin embargo, el tema del aprendizaje algorítmico, de un problema cerrado, ni mucho menos. Existe fuerte investigación y experimentación en busca de métodos de aprendizaje más eficaces, más rápidos, que utilicen menos datos (o ninguno), que reutilicen lo ya aprendido, que logren un aprendizaje incremental y apoyado en lo ya adquirido, etc.


Aprendizaje en robots


Los robots heredan todas las capacidades del machine learning. Cuando un robot inteligente incorpora visión artificial, los algoritmos que hay detrás son algoritmos de machine learning. Cuando un robot incorpora reconocimiento de voz o procesamiento de lenguaje natural, de nuevo, está utilizando abundantemente algoritmos de machine learning. Si un robot incorpora reconocimiento de emociones, normalmente estará aplicando también algoritmos de machine learning.

Sin embargo, en el mundo de los robots, se intentan otras estrategias que, sin contradecir en absoluto lo anterior, sin, siquiera, salirse necesariamente del campo del machine learning, exploran formas de aprendizaje algo singulares.

Ya vimos, por ejemplo, en un artículo reciente, la estrategia del aprendizaje evolutivo y la robótica del desarrollo en que dotábamos a los robots de una suerte de infancia en que los robots aprendiesen con base en su expriencia.

En buena parte, esas estrategias derivan de algunas características de los robots, muy especialmente de robots de servicio o robots sociales, características que mencionábamos en ese artículo: la existencia de un cuerpo ('embodyment'), y un cuerpo situado en un entorno ('situatedness') con el que se relaciona mediante una interacción senso-motora, permitiéndole formarse una idea del mundo ('enaction'). 


¿Qué es 'imitation learning'?


En este post vamos a mencionar otra estrategia con la que se investiga y trabaja y que, en realidad creo que entronca muy bien con la robótica del desarrollo (en realidad creo que forma parte de ella): el 'imitation learning' (aprendizaje por imitación) también conocido como programación por demostración ('programming by demonstration')

¿Qué es ese aprendizaje por imitación?

Pues, nos lo cuentan dentro del libro 'Cognitive robotics' editado por  Angelo Cangelosi y Minoru Asada. En concreto, en un capítulo escrito por Tetsuya Ogata, Kuniyuki Takahashi, Tatsuro Yamada, Shingo Murata y Kazuma Sasaki, nos dicen que el 'imitation learning' es: 


a learning based approach to that enables robots to acquire skills or infer policies for action generation from a set of expert demonstrations representing the robots' sensorimotor experiences.


Es decir, se trata, de una forma parecida a como en el caso de los humanos hace un profesor con un alumno, o como un aprendiz aprende de un experto, que el robot aprenda a realizar una tarea observando cómo lo realiza un 'experto' en ella, normalmente un humano aunque nada quita que pudiera ser otro robot 'ya formado', por ejemplo.

Nos dicen los autores que la forma más habitual es emplear un tipo de algoritmos predictivos en que el robot debe aprender a predecir un estado senso-motor siguiente que sucede al estado senso-motor actual, y nos dicen también que este esquema es más eficiente que el aprendizaje por refuerzo.

Decía antes que no existe realmente contradicción entre estos mecanismos que utilizan los robots con el machine learning y, en efecto, los mismos autores comentan que se utilizan mecanismos de machine learning como, por ejemplo, redes neuronales de convolución (muy presentes por ejemplo en visión artificial), redes neuronales recurrentes (habituales en procesamiento de lenguaje natural) y también modelos probabilísticos o modelos ocultos de Markov.

Los autores comentan también experiencias que van más allá, experiencias en general realizadas con robots humanoides, en que el robot aprende de su propia experiencia o de lo que hace otro agente. Incluso, nos apuntan como línea de trabajo, lo que se denomina 'one-shot imitation learning' en que se busca que el robot aprenda a partir de una única observación.


Conclusión


Como intento defender en diversos foros, los robots, los robots inteligentes y muy especialmente los robots sociales y humanoides tiene características singulares, características que los particularizan y distinguen, sin entrar en contradicción, con otras ramas de la inteligencia artificial. Unas características singulares que afectan a muchos aspectos, incluyendo tanto lo técnico como lo ético.

En este caso, hemos visto unas formas de aprendizaje que, sin contradecir en absoluto, sino más bien apoyándose en, el machine learning, parecen bastante propias de los robots y diferenciadas de lo que se hace, por ejemplo, en analítica.

 

martes, 27 de septiembre de 2022

Conociendo Azure DevOps con Zaal, Demillani y Malik

'Azure DevOps explained' es, exactamente, lo que su título promete: una explicación de cómo aplicar DevOps usando las herramientas y los servicios que para ello proporciona Microsoft Azure. Con esa idea, tras una breve pero correcta introducción, de alguna forma recorre el ciclo de vida del software en filosofía DevOps, explicando las ideas y, sobre todo, cómo se plasman y usan en Azure.

Con esta línea argumental, el libro se estructura en once capítulos agrupados en cuatro secciones, como sigue:
  • 'SECTION 1: DEVOPS PRINCIPLES AND AZURE DEVOPS PROJECT MANAGEMENT': Pone las bases antes de abordar ei ciclo de vida propiamente dicho. Abarca dos capítulos:

    • 'Chapter 1 - Azure DevOps Overview': Un capítulo introductorio que explica lo que es DevOps y sus principios, para seguir con alguna idea también básica de su enfoque en Azure, comentando conceptos en realidad generales del mundo DevOps como el ciclo 'Plan, Develop, Deliver, Operate', 'Continous Integration, Continuous Delivery (CD/CI)', 'Infrastructure as Code' y algún detalle más propio de Azure como la forma de hacer control de versiones. Finalmente, presenta brevemente los servicios Azure implicados: Azure Boards, Azure Repos, Azure Pipelines, Azure Test Plans y Azure Artifacts.

    • 'Chapter 2 - Managing Projects with Azure DevOps Boards': Explica los primeros pasos para la gestión de proyectos con Azure Boards: los 'templates' con foco en Scrum, cómo crear una organización y cómo crear el proyecto, sus actividades e items. También muestra el tratamiento del 'product backlog', de los 'sprints' y las 'queries'.


  • 'SECTION 2: SOURCE CODE AND BUILDS': Se ocupa de la parte más orientada a la construcción: el código fuente, las 'pipelines' y las pruebas unitarias, para lo que emplea los siguientes cuatro capítulos:

    • 'Chapter 3 - Source Control Management with Azure DevOps': Habla del control de configuración y del código fuente. Tras explicar en qué consiste y cómo funciona el control de código fuente y algunas estrategias de 'branching', aborda luego su manejo en Azure DevOps, el uso de Azure Repos, el importado de un repositorio desde GitHub, el trabajo con 'commits', 'pushes', 'branches' y 'pull requests'. Acaba con el etiquetado ('tagging' de releases).

    • 'Chapter 4 - Understanding Azure DevOps Pipelines': Aborda lo que quizá sea uno de los conceptos fundamentales: las 'pipelines'. Primero explica los conceptos básicos de la integración y despliegue continuos (CI/CD), para y luego detalla el funcionamiento de las 'pipelines' de Azure. En esa tarea habla de los agentes, del lenguaje YAML, de la creación de una pipeline con un repositorio GitHub y del uso de contenedores en las 'pipelines' de Azure.

    • 'Chapter 5 - Running Quality Tests in a Build Pipeline': Pasa ahora a las pruebas. Como en otros capítulos, introduce primero los conceptos de forma general, en este caso, las pruebas unitarias y los beneficios de la automatización de pruebas para luego ya verlo reflejado en Azure.

    • 'Chapter 6 - Hosting Your Own Azure Pipeline Agent': Explica la construcción de 'pipelines' usando en lugar de agentes alojados por Microsoft, agentes alojados por el cliente incluyendo el caso de contenedores.


  • 'SECTION 3: ARTIFACTS AND DEPLOYMENTS': Se centra sobre todo en el despliegue, pero teniendo en cuenta también el uso de recursos externos. En esta labor, empeña los dos siguientes capítulos:

    • 'Chapter 7 - Using Artifacts with Azure DevOps': Habla del uso de artefactos, que se refieren a componentes que son reutilizables, que eventualmente proceden de una fuente externa y que son recogidos en 'packages'. Aborda luego Azure Artifacts y así Habla del concepto de 'feed' de artefactos, (una forma de agrupar paquetes y sus permisos) y cuenta cómo crearlo, como introducirlo en una 'pipeline', cómo publicarlo y cómo consumirlo.

    • 'Chapter 8 - Deploying Applications with Azure DevOps': Se ocupa del despliegue de aplicaciones usando 'pipelines' de Azure, explicando, entre otras cosas, cómo configurar el despliegue continuo o cómo introducir puertas y permisos para controlar las 'releases'.


  • 'SECTION 4: ADVANCED FEATURES OF AZURE DEVOPS': Una sección un poco complementaria, revisa algunas situaciones particulares (integración con GitHub y pruebas manuales) y remata con ejemplos de la vida real:

    • 'Chapter 9 - Integrating Azure DevOps with GitHub': Explica la integración con GitHub abordando esa integración tanto en Azure Pipelines como Azure Boards.

    • 'Chapter 10 - Using Test Plans with Azure DevOps': Explica Azure Test Plans y cómo gestionar con él pruebas manuales, pruebas exploratorias o pruebas de aceptación de usuario.

    • 'Chapter 11 - Real-World CI/CD Scenarios with Azure DevOps': Muestra algunos ejemplos de proyectos de la vida real que incluye un caso con aplicaciones .Net y otro con contenedores.
'Azure DevOps explained' es un libro, creo, completo, correcto, directo y efectivo que, sin adornos, explica lo que hay que explicar en una obra de esta naturaleza: los conceptos relevantes de DevOps y cómo se implementan en Azure. La parte del uso de Azure es detallada y con abundantes capturas de pantallas lo que permite su traslación bastante directa a la práctica.

Un libro útil, en definitiva.

Ficha técnica:

AUTORES: Sjoukje Zaal, Stefano Demillani y Amit Malik
EDITORIAL: Packt
AÑO: 2020 
ISBN: 978-1800563513
PAGINAS: 438


lunes, 26 de septiembre de 2022

Manos robóticas: machine learning y el sentido del tacto en los robots

Cuando hablamos de las áreas de trabajo de la inteligencia artificial en general, y del machine learning en particular, dos campos prominentes son el de la visión artificial ('computer vision') y el reconocimiento de voz (ASR, 'Automatic Speech Recognition') habitualmente seguido de procesamiento de lenguaje natural (NLP, 'Natural Language Processing').

Percepción y emulación de sentidos


De una manera más amplia, y especialmente si nos acercamos a los robots, estas dos áreas de trabajo caen dentro de la percepción, es decir, el procesamiento de información obtenida a partir de sensores y su entendimiento. 

Y una percepción, además, muy orientada a emular de alguna manera los sentidos humanos, en este caso la vista y el oído, bien es cierto que en este caso el oído muy orientado a un caso de uso específico: el tratamiento de la voz humana.

Quizá por ese afán de emular las capacidades humanas, quizá porque realmente puedan ser los sentidos más útiles, una parte muy importante del trabajo en el campo del machine learning orientado a percepción se enfoca en estos dos sentidos: vista y oído.

Pero, en realidad la cosa no acaba aquí.

No estoy seguro si hay trabajo en el campo del gusto, aunque apostaría a que sí, pero lo que no cabe duda es que se trabaja también en el campo del olfato y lo que en este artículo nos va a ocupar: el tacto.


Un tacto básico en robots industriales y de servicio


En realidad, un cierto 'sentido del tacto' está presente desde hace mucho tiempo en aplicaciones robóticas industriales.

Un tacto que se ocupa de detectar cuándo se ha 'tocado' el objeto que se quiere agarrar y manipular. O un tacto basado en sensores de presión que permiten al robot 'ser consciente' de la presión que está ejerciendo sobre el objeto que 'coge' de forma que no lo pueda estropear por un exceso de presión.

Los robots móviles, incluyendo los famosos robots aspiradoras, vienen dotados también de sensores de impacto, para reaccionar cuando chocan, digamos, contra una pared u obstáculo y proceder a detenerse, o cambiar de dirección.

En algunos robots se dispone también de capacidades táctiles más sutiles, como las que proporcionan los sensores capacitivos que detectan contactos muy suaves, incluso, por ejemplo, una caricia.


Un tacto más avanzado. Manos robóticas.


Pero si ahora pensamos en aplicaciones más avanzadas, si nos concentramos, por ejemplo, en robots sociales, humanoides o no, podemos desear un sentido del tacto más avanzado. Y nos gustaría, por ejemplo, dotar a los robots de unas 'manos' que se asemejasen algo más a las humanas, no sólo en su habilidad manipuladora sino también en sus capacidades táctiles.

En el libro 'Cognitive robotics' editado por  Angelo Cangelosi y Minoru Asada, me encuentro una breve descripción de algunas de las líneas de trabajo en este tacto avanzado.

Sensor GelSight
Así, por ejemplo, nos identifica tres tipos de sensores utilizados en manos robóticas:


  • Sensores multicontacto ('multitouch sensors'): es en el fondo, el caso de los sensores de presión que veíamos antes, sensores que detectan una fuerza a lo largo de un eje, típicamente perpendicular a la superficie de contacto.

  • Sensores de tres ejes ('three-axis sensors'): detectan fuerzas tanto de presión como tangentes pero de un solo contacto

  • Sensores de tres ejes multicontacto; que detectan fuerzas de presión y tangentes pero multi-contacto. De este último tipo, el libro nos menciona la existencia de tres realizaciones: uSkin (mide la deformación de la superficie de silicona monitorizando cambios en los campos magnéticos de imanes ligados a esa silicona), Finger Vision (que usa una cámara para medir deformaciones en marcadores fijados a la superficie y que también actúa como sensor de proximidad puesto que usa silicona trasparente) y GelSight (que recubre la superficie de silicona de GelSight con polvo de aluminio que sirve para realzar la deformación de la superficie de silicona).


Sensor Finger Vision
En este tipo de sensores más avanzados, el procesamiento de la señal obtenida se realiza mediante algoritmos de machine learning. Me ha resultado curioso el caso de Finger Vision porque, aunque consigue un sentido del tacto, lo hace en realidad aplicando técnicas de visión artificial con lo que puede reutilizar muchos e los avances de este campo.

En la misma fuente, se nos describen también las cuatro áreas principales de trabajo ahora mismo para este sentido del tacto y estas manos robóticas:


  • Reconocimiento de objetos: Se trata de reconocer un objeto mediante el tacto, el material de que está hecho y sus propiedades. Suele combinar este tacto artificial con visión artificial y, a nivel de entrenamiento, se trabaja con enfoques tanto de aprendizaje supervisado como no supervisado. 

  • Agarre: se ha utilizado para intentar lograr un mejor agarre que el conseguido mediante, simplemente, visión artificial. En algunas de las experiencias en esta faceta se ha utilizado aprendizaje por refuerzo. 

  • Estimación de posición: Se trata de conocer con la mayor exactitud la posición de un objeto que está en 'la mano' del robot. Los métodos tradicionales se suelen basar en visión artificial pero, cuando un objeto está en la mano de un robot, se producen oclusiones que impiden una 'correcta visión'. La combinación, de nuevo, con información táctil, no afectada por las oclusiones, puede ayudar a superar ese problema.

  • Manipulación: todavía un área en desarrollo, donde la manipulación de objetos mediante manos de varios dedos aún está dando sus primeros pasos.


Conclusión


Dedo del robot Vizzy, con cuatro sensores de tres ejes

Aunque algunos de los desarrollos mencionados se encuentra aún en fases preliminares, creo que el tacto robótico tiene un amplio campo de mejora, un campo que, probablemente, pueda incluir el desarrollo de nuevos sensores pero que en este momento, me parece está más en el lado de encontrar algoritmos (casi seguro procedentes del campo del 'machine learning') que sean capaces de procesar y 'entender'  adecuadamente la información recibida de esos sensores.


viernes, 23 de septiembre de 2022

Cuerpos, algoritmos y una paradoja sobre el aprendizaje humano y robótico

El cerebro humano es un misterio. Y el aprendizaje humano es un misterio.

Y, sin embargo,  queremos construir máquinas y algoritmos capaces de aprender. Y lo conseguimos, en cierto sentido, puesto que disponemos del machine learning con todos sus formidables avances y asombrosos resultados.

Pero, a pesar de ello, y a despecho de visiones fantasiosas y poco fundamentadas, las máquinas, los algoritmos y los robots, están muy lejos de igualar las capacidades humanas (de manera amplia, no en casos concretos) y no digamos nada su adaptabilidad y capacidad de aprendizaje.

Pero lo seguimos intentando. Seguimos investigando. Seguimos probando y, en el fondo, seguimos avanzando.

En este artículo quisiera recoger algunas ideas sobre el aprendizaje ligados al curioso campo de la robótica del desarrollo ('developmental robotics') con la que me encuentro leyendo el libro 'Cognitive robotics' editado por  Angelo Cangelosi y Minoru Asada


Cuerpo y situación


Un aspecto en que insisten muchos roboticistas al respecto de las características de los robots es que disponen de un cuerpo, una realidad física, algo a lo que se denomina el 'embodyment' (palabra sin fácil traducción al castellano aunque se entiende perfectamente su sentido).

En modo sentido, esa realidad física, ese cuerpo, se utiliza como término caracterizador de los robots, lo que parece descartar como robot,  a los denominados robots software, algo que podría no estar tan claro, pero ese debate lo dejo para otra ocasión.

Pero hay algo mucho más importante en cuanto al cuerpo, y tiene que ver con el aprendizaje e incluso la consciencia.

Pero antes de comentarlo, también es importante sacar a colación otro aspecto al que los roboticistas, y en concreto los roboticistas cognitivos, conceden mucha importancia y que es el de 'situatedness', término, de nuevo, de difícil traducción pero que podríamos decir que habla de que ese cuerpo está de alguna forma 'situado' en el mundo, es decir, que interacciona con él. 

¿Por qué esto es esto importante para el aprendizaje?

Pues porque existen teorías, robóticas pero que entiendo ancladas también en la psicología y el conocimiento del aprendizaje humano, que consideran que ese aprendizaje humano se produce, en buena medida, por la constante interacción de ese cuerpo (de ahí la importancia del 'embodyment') con su entorno (de ahí la importancia del 'situatedness') y todo ello produce, a través de la interacción sensomotora, un modelo del mundo (proceso al que los roboticistas bautizan ahora como 'enaction').

Insisto que, aunque veo estos términos y estas ideas en libros de robótica, los entiendo anclados, en el fondo, en teorías sobre el aprendizaje humano.

Y voy a apuntar, aunque sea brevemente, que esa interacción con el entorno, y ese contrastar las acciones con los resultados obtenidos pudieran ser estar en la base, así lo defiende Jun Tani como comentamos ya hace tiempo, también en el nacimiento de la consciencia.


Interacción social y aprendizaje


Antes de pasar a la paradoja, comentar que en el libro citado, y hablando del aprendizaje humano (y, como veremos, robótico), aparece otro aspecto importante para el aprendizaje: la interacción social.

En efecto, se apunta, y no parece nada difícil admitirlo, que la interacción social es otra fuente importante de aprendizaje para los seres humanos.

En el fondo, me atrevería a decir que esa interacción social no es más que un caso particular, muy particular es cierto, de interacción sensomotora con el entorno, y una parte muy concreta de ese entorno que son las otras personar.


La paradoja del aprendizaje algorítmico


¿Y por qué veo en todo esto una paradoja respecto al aprendizaje?

Veo una cierta paradoja, o perplejidad, o llamada de atención, como se le quiera llamar, porque el aprendizaje del que fundamentalmente hemos dotado a las máquinas, especialmente el famoso machine learning, es casi siempre un aprendizaje digamos algorítmico, basado en datos y que aplicamos a un software, algo, aparentemente sin cuerpo y sin interacción clara con el mundo.

La perplejidad no es completa, porque esos datos pueden provenir de sensores o de otra forma de interacción con el entorno físico, pero en general, ese 'embodyment' y ese 'situatedness' están ausentes en nuestro aprendizaje algorítmico dominante hoy día.

Y sin embargo, parecen ser fundamentales en el aprendizaje humano (y de otros seres vivos, supongo).


La robótica del desarrollo ('developmental robotics')


Un poco con base en todo lo anterior, existe una rama de la robótica cognitiva, la denominada robótica del desarrollo ('developmental robotics') cuyo enfoque es intentar que los robots aprendan usando los mismos mecanismos que un niño humano, unos mecanismos que, entre otras cosas, incluyen el tener en cuenta las experiencias de interacción de su cuerpo con el entorno y la interacción social.

Es como tratar a los robots como si fueran niños, dejar que jueguen, dejar que interactúen con su entorno y con las personas u otros robots, y que así vayan aprendiendo.


Conclusiones


Me parece, permítaseme decirlo así, 'alucinante', interesantísimo, el planteamiento de la robótica del desarrollo, aunque no estoy muy seguro de los resultados que pueda conseguir en el corto plazo. Pero, al fin y al cabo, hablamos de momento de investigación. Así que démosle margen.

En cualquier caso, esta relación, estos paralelismos y esta comparativa constante que se produce entre la realidad humana y las posibilidades robóticas es uno de los aspectos en mi opinión más apasionantes de la disciplina de la inteligencia artificial y la robótica más avanzada.


miércoles, 21 de septiembre de 2022

Robótica cognitiva y el reto de la verdadera inteligencia

Cuando pensamos en robots tendemos a asociarlos con criaturas artificiales inteligentes. 

Los robots de la ciencia-ficción son, en efecto, inteligentes. Los robots que sobresalen en charlas y artículos de carácter divulgativo (a veces de puro sensacionalismo) son robots que, al menos, exhiben o simulan algún elemento de inteligencia. Incluso, cuando queremos representar mediante una imagen la Inteligencia Artificial o el Machine Learning, no es raro, ante lo abstracto del verdadero concepto, a acudir a una socorrida imagen de un robot humanoide.

La mayoría de los robots, sin embargo, no exhiben esa inteligencia. 

En el diseño de un robot industrial, digamos normal, pesa mucho el diseño mecánico tanto en su aspecto material (formas, grados de libertad, materiales, masas, etc) como en lo relativo al movimiento (trayectorias y velocidades) y a los aspectos dinámicos (fuerzas, aceleraciones). Y todo ello complementado con los aspectos motores, gestionados usando normalmente teoría de control y dotándoles de una cierta sensórica que no tiene por qué incluir elementos de inteligencia artificial aunque no sea tan raro que exista algo de, por ejemplo, visión artificial.

En cualquier caso, y a pesar de su impresionante aspecto y comportamiento, estos robots exhiben poca inteligencia.

De hecho, si se comprueba las titulaciones de la mayoría de expertos en robótica norteamericanos, se podrá observar que con mucha frecuencia su titulación es en ingeniería mecánica. 

Conviene tener esto muy presente para tener las ideas claras pero sí, también hay robots con inteligencia, al menos cierto grado de inteligencia en el sentido de incorporar capacidades cognitivas procedentes del campo de la inteligencia artificial.

Y eso nos va a conducir al apasionante campo de la robótica cognitiva.

Hace unas semanas, y mientas disfrutaba de mis vacaciones en la playa, finalicé la lectura del libro 'Cognitive robotics' con aportaciones de varios expertos y editado por  Angelo Cangelosi y Minoru Asada. Y voy a utilizar algunas citas procedentes de esta fuente, para comentar un par de cosas, sin entrar todavía en muchos detalles.  


Una nueva definición de robot


En primer lugar, y aunque sea en cierto sentido dar un paso atrás, quisiera recoger la definición que en este libro hace del término robot, un concepto al que es difícil poner unas fronteras claras, como ya he expresado en diferentes foros.

En el primer capítulo y nada más empezar nos definen en realidad, más que lo que es un robot, lo que es la robótica y nos dicen.


Robotics concerns the building of hardware mecatronics platforms with sensors and actuators to perform actions in the physical world and the designing of software solutions to link sensing and actuation in a purposeful - that is, intelligent - and adaptive way to achieve a task or goal, with a variable degree of autonomy.


La definición tiene mucha 'miga'. Se observa en el inicio el peso de la parte física y hardware (que enlaza con la visión mecánica que mencionaba más arriba), se identifica también el necesario software, se destaca lo que tiene que ver con la sensórica y cómo el software hace de puente entre lo percibido y la actuación siempre con un objetivo y gozando de una cierta autonomía.

No es una definición compacta, pero sí marca muy bien el campo al que nos referimos.


Robótica inteligente


En un siguiente paso, los autores se refieren al término robótica inteligente ('intelligent robotics') o 'AI robotics' del que nos dicen, simplemente, que es:


A field combining robotics and AI


Ahora sí, ahora hemos unido la robótica vamos a decir clásica (basada en mecánica, sensórica y teoría de control) con la Inteligencia Artificial.

Apunto yo, que se puede incluir inteligencia artificial de formas que sin embargo no se corresponderían a lo que intuitivamente entendemos como inteligente. Por ejemplo, en el caso mencionado del uso, muy frecuente en aplicaciones industriales, de la visión artificial para, por ejemplo, identificar piezas defectuosas, se debería considerar robótica inteligente y, sin embargo, probablemente nos deje un poco fríos en cuanto a lo que esperábamos al hablar de inteligencia.

Y es que, lo que intuitivamente, especialmente en ámbitos no especializados, se espera al hablar de robótica inteligente, tiene más que ver con el último término: la robótica cognitiva. 


Robótica cognitiva


Lo cierto es que la robótica cognitiva (término usado por primera vez en 1997) no goza de una definición y fronteras cien por cien claras, pero de alguna forma hace referencia a la presencia de razonamiento (y esto sí que se corresponde con lo que de forma intuitiva entendemos por inteligencia) y a una cierta inspiración en la biología o la neurociencia, recibiendo incluso aportaciones desde el campo de la psicología y la filosofía.

Los autores, tras revisar las propuestas de terceros, nos proponen finalmente esta definición


Cognitive robotics is the field that combines insights and methods from AI, as well, as cognitive and biological sciences, to robotics.


Aunque la definición en sí misma no es demasiado concreta, en el fondo sí parece dejar claro lo que se está buscando y si, esto se corresponde mucho más con la visión de un robot inteligente.

Queremos incluir capacidades cognitivas similares a las exhibidas por seres vivos (incluyendo el ser humano) e inspirándonos en lo que podemos observar en la naturaleza o las aportaciones de ciencias humanas y sociales. Esto incluye no sólo capacidades sensomotoras sino, también, razonamiento, autonomía, etc


El reto de la inteligencia


El reto, el reto profundo de la inteligencia, de las máquinas inteligentes, incluso de los robots humanoides inteligentes, está pues ahí, con su atractivo, con sus retos técnicos, sociales y éticos, y con su capacidad para la utopía y la distopía.

Resulta apasionante ¿verdad?


lunes, 19 de septiembre de 2022

El triángulo tecnología, ética y ley

Vaya por delante que no pretendo establecer una doctrina definitiva e inapelable. Y vaya por delante, también, que no me considero experto en ética y muchísimo menos en derecho. No son mi terreno natural aunque sí son campo de mi interés.

Pero quisiera recoger en este post, la relación que, en mi personal visión, existe entre estas tres disciplinas, una relación que aplica siempre pero que es especialmente relevante para mi, en lo que tiene que ver con dos tecnologías que me apasionan: la inteligencia artificial y la robótica.


La ética y la ley


¿Cuál sería, en primer lugar, la relación entre la ley y la ética?

Existen, creo, ámbitos en que trabajan de manera independiente. Si pensamos en la visión legal, las leyes establecen muchas cosas, muchos criterios, obligaciones, procedimientos e inclusos castigos, etc que, en sí mismos no tienen motivación ética, sino meramente estructural y organizativa. Recuerdo a ese respecto algo que solía decir mi padre, no sé si era ocurrencia suya o lo había visto en alguna parte: conducir por la izquierda o por la derecha es éticamente indiferente, pero hay que regularlo. Y, añado yo, castigarlo si se viola lo establecido, porque supone un peligro y porque hay que forzar el cumplimiento de la ley.

Entendiendo, pues, que en muchos ámbitos, ley y ética viajan de manera independiente, también me parece claro que, en muchos casos, la ética precede a la ley. Y la precede porque, con frecuencia, las leyes dan forma y rango de obligación a lo que previamente son valores morales o éticos. Por eso se castiga el asesinato o el robo, porque, aparte de otras eventuales implicaciones más prácticas, consideramos que son comportamientos inmorales y que queremos erradicar o al menos minimizar. Y, por eso, también, resulta polémica la legislación, por ejemplo, en materia de aborto: porque tienen valoración ética o moral (estoy utilizando como sinónimos ambos términos aunque en el fondo no lo sean) pero no existen unos valores claramente consensuados en la sociedad. Y, por tanto, trasladarlos a la ley es hacer obligatorios, de alguna forma, unos valores de no suficientemente amplia aceptación.

En el libro 'Manual de ética aplicada en inteligencia artificial', sus autores Mónica Villas y Javier Camacho, indican, en esta misma línea, que:


La ética suele ir por delante de la ley y eventualmente muchas consideraciones y principios éticos acaban consolidándose en cuestiones legales.


Pero creo que hay otra relación. La ética no va solamente antes de la ley sino que, en ocasiones, creo que la ética va detrás de la ley. Por decirlo de alguna forma, y siempre en mi opinión, la ética debe iluminar y superar a la ley

Por desgracia, y subrayo lo de por desgracia, resulta fuera del alcance humano establecer unas leyes perfectas, que estén disponibles a tiempo y que cubran de manera inequívoca cualquier situación, cualquier eventualidad, cualquier actuación y cualquier contingencia. Y como es imposible conseguir esas leyes perfectas, entramos en el terreno de la interpretación de la ley y de la jurisprudencia. 

Personalmente pienso que, aunque lo reconozco como inevitable, ese margen a la interpretación es un defecto de los ordenamientos jurídicos de todo el mundo y crea una suerte de pequeña inseguridad jurídica, porque no siempre sabes a qué atenerte y porque no siempre los mismos hechos serán juzgados de la misma manera.

En cualquier caso, y dado que ese margen a la interpretación es inevitable, en esa interpretación vuelve a jugar un papel importante la ética porque, a falta de normativas o criterios claros, o a falta de jurisprudencia, los jueces deberían actuar guiados por la ética que, en ese sentido, funciona como esa iluminación y superación de la ley. Cierto es que, dado que no existen consensos universales en cuanto a los valores, en cuanto a lo que es bueno y malo, esta interpretación, por muy iluminada que esté por la ética, no está exenta de riesgos e imperfecciones... pero al menos mejor que se tengan en cuenta razonamientos éticos que lo contrario. 


La tecnología y la ley


La relación entre la tecnología y la ley, creo que es más evidente.

Por un lado, y no me entretendré mucho en ello, la tecnología da soporte a la ley, la hace más eficiente y más eficaz como a cualquier otra actividad humana. Hoy en día, en concreto, precisamente los sistemas de inteligencia artificial, los sistemas de automatización de procesos, la automatización robótica de procesos, etc, pueden aportar tanto a la práctica jurídica que sólo cabe esperar que el sector aproveche todo lo que la tecnología le ofrece y que hagan, cuanto antes, una agresiva transformación digital.

Y por otra parte la ley pone márgenes a la tecnología, normalmente limitando algunas de sus posibilidades de actuación que se consideran que atentan contra derechos de los ciudadanos (como ocurre, por ejemplo, con el famoso RGPD).

Por cierto que, con frecuencia, o al menos así se está moviendo en el ámbito de la inteligencia artificial, esas limitaciones vienen precedidas de un cierto análisis ético que luego se traduce en normas, siguiendo la estructura de precedencia que veíamos en la sección anterior.


La tecnología y la ética


¿Y cuál es la relación entre ética y tecnología?

Cada vez más, y de la misma forma que sucede entre ética y ley, existe la conciencia explícita de que la ética debe orientar a la tecnología. Cabe pensar que, de manera implícita, eso ya sucedía, aunque desde luego no siempre, en el pasado. Que aunque con lamentables y algunas conocidas excepciones, la tecnología, o bien lleva implícitos principios éticos o, al menos, no entra en flagrante conflicto con ellos.

Pero hoy en día, y de nuevo en el campo de la inteligencia artificial, se abre paso el concepto de ética por diseño, es decir, que, en lugar de valorar a posteriori los aspectos éticos de un algoritmo, un robot o una solución cualquiera, ya durante su propio proceso de diseño y desarrollo se tienen en cuenta esos criterios de forma que el resultado final tenga un comportamiento ético razonablemente garantizado.

¿Y puede aportar algo la tecnología a la ética?

Pues sí que puede. 

Podría pensar en aspectos más elevados, como el que la reflexión sobre algunas nuevas situaciones, como pueden ser los robots humanoides, ayuda a una reflexión ética sobre el propio ser humano,  algo sobre lo que estoy seguro que volveré en algún post específico. 

Pero, de forma aún mucho más clara, puede aportar a solucionar algunos de los problemas éticos que afectan, por ejemplo, al campo de la algoritmia de inteligencia artificial como son los sesgos o la explicabilidad. Tampoco me detendré ahora en ello, pero sí apuntar, que como se cuenta también en el libro 'Manual de ética aplicada en inteligencia artificial', que existen soluciones algorítmicas y procedimentales, algunas ya funcionales y otras en investigación, para eliminar o minimizar problemáticas como las de sesgos o falta de explicabilidad.


Conclusiones


Según esa concepción que, insisto, la aporto como visión personal, no necesariamente original pero sí personal, existe una suerte de triángulo virtuoso que relaciona tecnología, ética y ley.

Ahora se trata 'solo' de que usemos correctamente esa virtuosa relación.


viernes, 16 de septiembre de 2022

Características de los agentes morales y el caso de los robots

El concepto de agencia moral es importante en todo lo que tiene que ver con la ética y aparece con frecuencia también cuando se intenta razonar en términos éticos con respecto a algoritmos o máquinas, siendo de especial interés para mi el caso concreto de los robots, la eventual agencia moral de los robots.

Ya comenté hace un tiempo, en el artículo 'Robots, agencia y la inspiración de la ley' inspirado en la obra de Sven Nyholm, que la agencia no es sólo relevante desde un punto de vista meramente ético sino que puede ser la base para asignar responsabilidad ('liability') desde un punto de vista legal.

Aunque ya he tratado estos temas, incluso el caso de la agencia moral de los robots, quisiera retomarlo brevemente, simplemente para reseñar alguna nueva aportación que me ha resultado interesante y que, al añadir otras perspectivas, puede contribuir a una mejor comprensión global


Características de los agentes morales


La primera aportación es sobre el propio concepto de agente moral. Así en el comienzo del libro 'Manual de ética aplicada en inteligencia artificial' me encuentro con la conceptualización (quizá no exactamente una definición) que hacen sus autores Mónica Villas y Javier Camacho. En realidad ellos hablan de agente ético pero creo no equivocarme si considero que lo utilizan como sinónimo de agente moral. Y, al referirse a las personas como agentes éticos, nos dicen:


la persona es un agente ético, que es capaz de tomar decisiones y de elegir acciones y que, al mismo tiempo se hace responsable de dichas decisiones.


A partir de esta consideración del ser humano como agente moral, probablemente la única entidad a la que sin duda ni debate se le asigna esa agencia moral, deducen tres características de esos agentes ético o morales: 


Libertad, inteligencia (o conciencia) y voluntad son las tres características que constituyen los agentes éticos.


De alguna forma, esas tres características pueden ser la guía que nos ilumine para decidir si algo que no sea un ser humano, digamos un animal, un algoritmo o un robot, exhiben esa cualidad de la agencia moral y, todo hay que decirlo, parecen apuntar en el sentido negativo.


Agencia moral de los robots


Armados con esas ideas, saltemos ahora al caso de los robots. 


De la posible agencia moral de los robots ya tuve también ocasión de hablar en este blog en el artículo 'Tres criterios para considerar a un robot un agente moral'. En él, se aportaban tres criterios basados en la obra de Michael Anderson y Susan Leigh Anderson y su libro 'Machine Ethics', y que los autores consideraban necesarios para reconocer en un robot agencia moral, a saber:


  • El robot no debería estar bajo el control directo de ningún otro agente o usuario
  • La interacción del robot con su entorno debería ser aparentemente calculada y deliberada
  • Debería satisfacer algún tipo de rol social que implique responsabilidades.


Aunque así expresado pueden quedar más dudas sobre si un robot es o no agente moral, los autores concluían que no, porque, aunque sí observan en algunos casos el cumplimiento de los dos primeros criterios, el tercero entienden que implica conciencia de la responsabilidad, cosa de que carecen.

Y con eso llegamos, en el fondo, a una coincidencia con los tres criterios vistos antes: libertad, voluntad y conciencia. Y nos podemos quedar, con cierta seguridad, con esos tres criterios para valorar una eventual agencia moral.


Y un apunte de 'paciencia' moral


La última aportación que me he encontrado es la que hace Mark Coeckelberg en su libro 'Robot ethics'.  pero, ojo, lo hace hablando no de agencia moral sino de paciencia moral, es decir que un agente, en este caso un robot, sea objeto de derechos, al menos desde el punto de vista moral.


Coeckelberg apunta a la necesidad de consciencia y nos dice que


there may be properties other than consciousness that warrants moral rights


Es decir, como característica obligatoria, la consciencia, pero no indica hasta donde he llegado (aún lo estoy leyendo), cuáles son esas otras propiedades adicionales. 

Mucho más hay que profundizar, pues, pero de todas formas, creo que voy a dejarlo aquí.


Conclusión


Con lo visto, en el tema de la agencia moral, parece existir una especie de doctrina, más bien pensamiento, razonablemente convergente. 

El tema de la paciencia moral está, creo, más sometido a debate y hay mucho más de qué hablar.

Y lo haremos, sin duda, en algún artículo futuro.