miércoles, 30 de septiembre de 2020

Un motivo para preferir a un robot como interlocutor

Se supone que a las personas nos gusta estar con las personas. Se supone que nos gusta interaccionar con otras personas. Se supone que nuestro interlocutor natural, tanto en el ámbito personal como en otros intercambios quizá mas profesionales o más de obtención de servicios, es una persona.

Y se supone que, caso de que nuestro interlocutor sea un robot, éste podrá actuar como sustituto desde un punto de vista pragmático de una persona, que podrá realizar algunas de la tareas o proporcionar algunas de las informaciones que nos podría dar una persona, pero que de alguna manera será un pobre sustituto, una especie de parche con recompensa en forma de eficiencia y conveniencia, pero que siempre preferiremos la supuesta calidez, proximidad y flexibilidad que nos proporciona otro ser humano. Eso se supone ¿no?

Bueno, es lo natural, desde luego, y probablemente lo que frecuentemente preferimos... pero no siempre.

Las personas no somos del todo consistentes en nuestro comportamiento. A veces no lo somos en absoluto. Aspectos como el cansancio, el estado de ánimo e incluso la simpatía o antipatía, esa 'química' inexplicable que se produce entre personas, puede hacer que cambiemos nuestro estilo, nuestra actitud, nuestra amabilidad o no con nuestro interlocutor.

Y esa imprevisibilidad en quien tenemos enfrente ya no nos gusta tanto. No al menos en ocasiones. Tener como interlocutor a alguien que una vez es amable y otras taciturno, que unas veces nos ayuda y otras veces no, que unas veces es solícito y  otras no tanto, ya no es una experiencia tan fantástica.

Está descrito, de hecho, que una de las ventajas que supone el usar chatbots en servicios de atención es, precisamente, la consistencia de la experiencia de cliente. Está descrito que el chatbot, como robot que es, aunque se trate de un robot puramente software, se comporta siempre de la misma forma, que no le afectan ni cansancios ni variaciones en un estado de ánimo que, simplemente,  no tiene.

Y, al menos en ese tipo de intercambios más profesionales o de solicitud de servicios, parece que los humanos preferimos, al menos en ocasiones, la consistencia y la predecibilidad que nos ofrece un robot. No estoy seguro de que siempre sea así, de hecho en ocasiones nos desespera no poder hablar con una persona que nos entienda, pero en ocasiones parece que la consistencia del interlocutor es importante.

Pero no solo en un ámbito relativamente aséptico como una atención a cliente podemos llegar a preferir un robot. Hay entornos quizá más delicados donde, a pesar de todo, parece que las personas prefieren a un robot.

En el libro  'Social robots: Technological, Societal and Ethical Aspects of Human-Robot Interaction',  editado por Oliver Korn se nos habla de una situación mucho más sensible, como es la interacción con un niño con trastornos del espectro autista, en que el afectado, el niño, puede preferir la compañía de un robot. En concreto, referencian el estudio 'From training to robot behavior: Towards custom scenarios for robotics in training programs for ASD' el cual sugiere que:

substituting a human with a robot can be preferable for a child, as it is more consistent and predictable.

Se trata, claro, de un escenario muy especial y muy concreto, que no es generalizable, pero ahí está.

La posibilidad de que un robot, ya sea físico o software, actúe como interlocutor o incluso compañero, y que lo haga incluso de manera ventajosa en algunos casos sobre un humano, abre perspectivas muy interesantes en todo tipo de automatizaciones y en el campo de los denominados robots sociales. Y eso parece que es bueno.

Sin embargo, parece que también nos interpela y nos cuestiona acerca de nuestra propia naturaleza y la de nuestras relaciones y, sobre todo, acerca de cómo queremos que sean, hasta dónde queremos que lleguen, hasta dónde son naturales, deseables e incluso éticas, nuestras relaciones, actuales y futuras, con los robots.


lunes, 28 de septiembre de 2020

Una clasificación básica de las interacciones entre humanos y robots


Cuando se debate sobre el futuro de la Inteligencia Artificial y de la robótica, y nos preguntamos cuál será el papel del ser humano en un escenario de amplio desarrollo de ambas disciplinas, cada vez gana más fuerza el discurso de que los robots no están aquí para sustituirnos, sino que la visión de futuro correcta es aquella en que humanos y robots colaboran, aquella en que robots e inteligencia artificial sirven de alguna manera para aumentar a la humanidad no para ocupar su lugar.


Muchas formas son ya en las que hoy en día interaccionan robots y personas, aunque cabe esperar un importante desarrollo en los años venideros. No obstante, y aunque es bastante sencilla, me ha gustado, dado que ayuda a poner orden, una clasificación que se menciona en el libro 'Social robots: Technological, Societal and Ethical Aspectos of Human-Robot Interaction',  editado por Oliver Korn y cuya esencia se recoge en la figura (tomada de la fuente citada):



En la figura vemos tres niveles.


En primer lugar tendríamos la mera coexistencia, es decir, robots y humanos comparten el espacio y el tiempo pero realmente apenas interaccionan. En esta situación, no obstante, sí que son muy importantes las medidas de seguridad para evitar el daño a los humanos. Se trata de la situación que podemos encontrarnos en fábricas altamente robotizadas como las plantas de montaje de automóviles.


El segundo nivel es el de cooperación. En ella, humanos y robots trabajan por un objetivo común estableciendo una división de trabajos entre lo que hacen los robots y lo que lleva a cabo un humano y no existe por tanto una clara dependencia mutua.


Finalmente, llegamos a la colaboración, donde realmente sí hay una interacción intensa entre humanos y robots, ya que en este caso, ambos trabajan conjuntamente, con contacto, y con una división de tareas que es continua y  dinámica y donde se espera que haya sinergias provenientes de la interacción.


Si volvemos a los entornos industriales, los modernos robots colaborativos o cobots podrían servir para implementar un escenario tanto de coexistencia como de colaboración.


Se trata, ya lo vemos, de una clasificación simple, puede que incluso simplista, pero que ayuda a estructurar un área de conocimiento y trabajo emergente, y la estructuración siempre es de agradecer.


viernes, 25 de septiembre de 2020

Recetas para automatizar tareas en Python con Jaime Buelta

'Python Automation Cookbook' es exactamente lo que promete en su título y, sobre todo, en su subtítulo '75 Python automation ideas for web scraping, data wrangling, and processing Excel, reports, emails, and more'. Se trata de una larga lista de técnicas, ideas, trucos y recursos para llevar a cabo la automatización de tareas sobre aplicaciones, ficheros, etc, de manera que las funcionalidades de automatización que se podrían obtener de soluciones RPA comerciales puedan ser llevadas a cabo de manera personalizada directamente en Python. 

Cada una de las 75 recetas que componen el libro se estructura de la misma forma, a saber:
  • Getting ready: Describe labores previas de instalación, configuración, etc
  • How to do it...: Descripción directa, con pocas explicaciones y 'mucho' código, de cómo se aplica la receta.
  • How it works...: Explicación algo más detallada de cómo funciona por dentro la receta explicada
  • There is more...: Referencia otras fuentes de información adicionales
  • See also: Remite a otras recetas del libro relacionadas
Y esas recetas, a su vez se agrupan en los siguientes capítulos:
  • 'Let's Begin Our Automation Journey': Se centra unas técnicas básicas que permiten crear el entorno Python adecuado para la ejecución de las tareas de automatización que se presentan en el resto del libro así como tareas básicas para el 'parseo' de texto siendo capaces de obtener de él datos estructurados. Entre los recursos que se utilizan están el módulo 'env' para establecer un entorno virtual local, el módulo 'requests' para el tratamiento de conexiones HTTP, el método 'format' para el formateado de cadenas de caracteres, el módulo 're' para el tratamiento de expresiones regulares y finalmente 'argparse' para el tratamiento de argumentos en línea de comando. Las recetas que se tratan en este capítulo son:
    • Activar un entorno virtual
    • Instalar paquetes de terceros
    • Crear cadenas de caracteres con datos formateados
    • Manipulación de cadenas de caracteres
    • Extraer datos de cadenas de caracteres estructuradas
    • Usar una herramienta d eterceros para el parseado
    • Introducir expresiones regulares
    • Profundizar en expresiones regulares
    • Añadir argumentos a la línea de comandos

  • 'Automating Tasks Made Easy': Todavía en un estadio previo a las tareas de automatización propiamente dichas, este capítulo propone ideas para hacer que esas tareas se realicen realmente de manera automática sin necesidad de lanzarlas manualmente. Aparte de 'cron', el capítulo menciona el uso de recursos como el módulo 'logging' que gestiona los 'logs'. Las recetas que conforman este capítulo son:
    • Preparar una tarea
    • Establecer un trabajo en el 'cron'
    • Capturar errores y problemas
    • Enviar notificaciones por correo electrónico

  • 'Building Your First Web Scraping Application': Ataca un tipo de tareas fundamentales en la automatización mediante robots software: el acceso a los datos y la navegación de pantallas web, conocido como Web Scraping. Se utilizan recursos como el módulo 'requests' ya mencionado, el módulo 'BeautifulSoup' que parsea HTML y lo devuelve como un objeto, el módulo 'feedparser' para tratamiento de feeds RSS o 'selenium'. Las recetas en este caso son:
    • Descargar páginas web
    • 'Parsear' HTML
    • Rastrear la web
    • Suscribirse a 'feeds'
    • Acceder a APIs web
    • Interactuar con formularios
    • Usar 'Selenium' para interacciones avanzadas
    • Acceder a páginas protegidas por contraseña
    • Acelerar el web scraping

  • 'Searching and Reading Local Files': Otro capítulo fundamental con el segundo gran bloque característico de la automatización mediante robots software: el tratamiento de ficheros así como la navegación por directorios. Se usan recursos como el módulo 'os' con funciones básicas ligadas al sistema operativo como, por ejemplo, recorrer directorios, de nuevo 'BeautifulSoup' en tareas de formateado, el módulo 'csv' para el tratamiento de ficheros CSV, 'datetime' para datos de tipo fecha/hora, la librería 'Pillow' para el manejo de imágenes, 'xmltodict' para conversión de XML en un diccionario, 'tesseract' para OCR, el módulo 'PyPDF2' para tratamiento de ficheros PDF, y 'python-docx' para gestión de ficheros Word. Con toda esa base, las recetas de este capítulo son:
    • Rastrear y buscar en directorios
    • Leer ficheros de texto
    • Gestionar las codificaciones
    • Leer ficheros CSV
    • Leer ficheros de 'log'
    • Leer los metadatos de los ficheros
    • Leer imágenes
    • Leer ficheros PDF
    • Leer documentos Word
    • Escanear un documento en busca de una palabra clave

  • 'Generating Fantastic Records': En este caso, lo que nos interesa no es leer información sino generar salidas de datos e informes en todo tipo de formatos. Entre los recursos que se emplean están la herramienta 'Jinja2' que gestiona plantillas aplicando información de contexto, el lenguaje 'Markdown' y el módulo 'mistune' que convierte documentos 'Markdown' en HTML, el ya visto 'python-docx' para manejo de ficheros Word o 'fpdf' para crear ficheros PDF y 'pdf2image' para transformar el PDF en imágenes. Las recetas para todo esa creación de salidas avanzadas son:
    • Crear un informe simple en texto plano
    • Usar plantillas para informes
    • Formatear texto en 'Markdown'
    • Escribir un documento Word básico
    • Dar estilo a un documento Word
    • Generar estructura en un documento Word
    • Escribir un documento PDF simple
    • Estructurar un PDF
    • Agregar informes PDF
    • Marca de agua y encriptado PDF

  • 'Fun With Spreadsheets': Un caso especializado, pero muy util de tratamiento de ficheros: las hojas de cálculo tanto en su versión más básica, ficheros CSV, como con las aplicaciones más populares como Excel y LibreOffice. Entre los recursos empleados están, de nuevo, el módulo 'csv', y sobre todo 'openpyxl' para abrir y actualizar ficheros Excel. Las recetas para el tratamiento de hojas de cálculo que se proponen son:
    • Escribir una hoja de cálculo CSV
    • Actualizar ficheros CSV
    • Leer una hoja de cálculo Excel
    • Actualizar una hoja de cálculo Excel.
    • Crear nuevas hojas en un libro Excel
    • Crear gráficos en Excel
    • Trabajar con los formatos de celdas en excel
    • Crear una macro en LibreOffice

  • 'Cleaning And Processing Data': Se trata ahora de una de las labores más desagradecidas, pero quizá más importantes, cuando se va a trabajar con datos, especialmente datos procedentes de diferentes fuentes: su limpieza y preprocesado de manera que sean aptos para su uso posterior en gráficos, cálculos o análisis. Se emplean recursos ya vistos como el módulo 'parse' o 'delorean' y alguna idea nueva como los denominados 'futures' o la librería 'pandas' para análisis de datos. Para ese procesamiento de datos se nos proponen las siguientes recetas:
    • Preparar una hoja de cálculo CSV
    • Añadir moneda con base en localización
    • Estandarizar el formato de fecha
    • Agregar resultados
    • Procesar datos en paralelo
    • Procesar datos con Pandas

  • 'Developing Stunning Graphs': Se muestran técnicas para la visualización de datos de una manera entendible y atractiva. Se apoya mucho en la librería 'matpotlib' y también 'Fiona' para importar información GIS. Y la creación de gráficos se ilustran mediante las siguientes recetas:
    • Dibujar un gráfico de ventas sencillo
    • Dibujar barras apiladas
    • Dibujar tartas
    • Visualizar líneas múltiples
    • Dibujar un diagrama de dispersión
    • Visualizar mapas
    • Añadir leyendas y anotaciones
    • Combinar gráficos
    • Guardar gráficos

  • 'Dealing With Communication Channels': Explica cómo automatizar algunas tareas que implican comunicación con el exterior mediante medios como el correo electrónico, los SMS o las aplicaciones de mensajería. Se usan recursos como el módulo 'smtplib', 'imaplib' y 'email' para el manejo del correo electrónico, el API de la herramienta MailChimp todavía para correos o 'twilio' para manejo de SMSs o el API 'BotFather' de Telegram. Y con ese bagaje se proponen estas recetas:
    • Trabajar con plantillas de correo electrónico
    • Enviar un correo electrónico individual
    • Leer un correo electrónico
    • Añadir suscriptres a una newsletter
    • Enviar notificaciones vía correo electrónico
    • Producir mensajes SMS
    • Recibir SMS
    • Crear un bot Telegram

  • 'Why Not Automate Your Marketing Campaigns': Este capítulo da un cierto salto, porque en lugar de tratar recetas de automatización más o menos generalistas, ahora ataca un escenaro de negocio: la automatización de campañas de marketing. Se vuelven a utilizar recursos ya vistos pero se añade alguno nuevo como 'hashlib' para generación de hash. Para llevarlas a cabo, se nos cuentan las siguientes recetas que, en su conjunto, desarrollan el escenario de ejemplo propuesto:
    • Detectar oportunidades
    • Crear códigos de cupón personalizados
    • Enviar una notificación a un cliente en su canal preferido
    • Preparar la información de ventas
    • Generar un informe de ventas

  • 'Machine Learning For Automation': Se introduce ya en un uso avanzado: el empleo de Machine Learning en automatización, basándose sobre todo en el empleo de servicios de Google Cloud Platform y con recetas como:
    • Analizar imágenes con Google Cloud Vision AI
    • Extraer texto de imágenes con Google Cloud Vision AI
    • Analizar texto con Google Cloud Natural Language
    • Crear tu propio modelo personalizado de machine learning para clasificartexto

  • 'Automatic Testing Routines': Y este capítulo y el siguiente, los dos últimos, son otro pequeño cambio de tercio porque se concentran en automatizaciones relacionadas con el propio desarrollo de software. En este primer capítulo tratando la automatización de pruebas y, en el siguiente, la depuración. En este capítulo se usan como recurso la librería 'pytest' para definir y ejecutar pruebas, la librería 'mock' para acciones ficticias y el módulo 'responses' complementario del 'requests'. En lo relativo a la automatización de rutinas de prueba, se tratan las siguientes recetas:
    • Escribir y ejecutar casos de prueba
    • Probar un código externo
    • Probar usando dependencias ficticias ('mock')
    • Probar unsando llamadas HTTP ficticias
    • Preparar escenarios de prueba
    • Ejecutar pruebas de forma selectiva

  • 'Debugging Techniques': Capítulo final con recetas y ayudas para depurar código Python. Se apoya en recursos como el módulo 'pprint' para crear salidas enriquecidas y, sobre todo, el debugger 'pdb'. Se nos ofrecen, en concreto, cuatro recetas:
    • Aprender los fundamentos del intérprete Python
    • Depurar a travñes de trazas ('logs')
    • Depurar con puntos de parada
    • Mejorar tus habilidades de depuración.
'Python Automation Cookbook' es, sin lugar a dudas, un libro pensado para desarrolladores, que habla su idioma y les transmite muchos conocimientos que juzgo muy interesantes para aplicación práctica. Además, es una forma diferente de entender qué es y cómo se hace Automatización Robótica de Procesos, en esta ocasión no desde el alto nivel que ofrecen las herramientas comerciales sino desde el interior, desde la forma en que la puede hacer un desarrollador en este caso trabajando con Python. 

Un gran recurso para desarrolladores, en mi opinión. 

Jaime Buelta

(Fuente: Traducción y ligera elaboración propia de su ficha de autor en Packt

Jaime Buelta
Jaime Buelta es un desarrollador a tiempo completo desde 2010 y un conferenciante habitual en PyCon Irlanda. Ha sido programador profesional durante más de dos décadas con una rica exposición a una gran cantidad de tecnologías diferentes a lo largo de su carrera. Ha desarrollado software para una variedad de campos y sectores, incluyendo aeroespacial, redes y comunicaciones, sistemas SCADA industriales, servicios de videojuegos online y servicios financieros.

Puedes saber más del autor visitando su página Wrong side of Memphis o siguiéndole en Twitter donde se identifica como @jaimebuelta.

Ficha técnica:

AUTOR: Jaime Buelta
EDITORIAL: Packt Publishing
AÑO: 2020 
ISBN: 978-0982368169
PAGINAS: 526

miércoles, 23 de septiembre de 2020

Cómo un robot puede saber de tus emociones sólo con verte


A estas alturas ya empieza a sorprendernos poco algunos de los logros de la inteligencia Artificial.


Ya sabemos que mediante las técnicas englobadas bajo el paraguas del NLP ('Natural Language Processing') los robots, incluso los robots software como chatbots, son capaces de reconocer elementos importantes de lo que hablamos, incluyendo nuestras intenciones, hasta el punto de permitirles mantener conversaciones coherentes. Ya sabemos que también, analizando las palabras que se utilizan, se puede hacer un análisis de sentimiento, e identificar nuestra actitud hacia un tema concreto. Es un alarde tecnológico, pero ya sabemos de él y ya casi nos hemos acostumbrado a él. Y casi nos parece normal.


Ya sabemos también que el software, y por tanto los robots, son capaces de reconocer a personas ('facial recognition'). Y ya puestos, ya ni nos sorprende que con base a nuestros gestos y expresiones faciales sean capaces de reconocer emociones. Es espectacular, pero ya sabemos que son capaces de hacerlo, y ya casi ni nos sorprende.


Pero debo reconocer que sí me ha sorprendido otra forma en que un robot puede reconocer emociones en las personas, incluso aunque no hablen, incluso aunque consigan no gesticular y mantener una actitud hierática. Se trata de la medida visual de la saturación de oxígeno en sangre.


Me encuentro esta técnica leyendo el libro 'Social robots: Technological, Societal and Ethical Aspectos of Human-Robot Interaction',  editado por Oliver Korn. En el quinto capítulo, recoge un artículo en que se habla precisamente del reconocimiento de datos vitales por parte de los robots usando técnicas no invasivas. Y lo mejor es que, en el fondo, la técnica a que me refiero se trata de una técnica antigua (1937), que en su base es sencilla y se lleva usando desde hace muchos años por ejemplo en teleasistencia pero también, por ejemplo en wearables de fitness. Esto es, en resumen, lo que nos explican: 


Resulta que la saturación de oxígeno en sangre varía con el ritmo cardiaco. Y resulta que ese cambio en la saturación de oxígeno se refleja en la forma deja pasar o reflejar la luz, es decir, es observable con los sensores adecuados desde fuera del cuerpo, de manera no invasiva. Se usa para ello una técnica denominada fotopletismografía. Eso que puede servir para medir simplemente las pulsaciones, tiene su efecto en la identificación de emociones. Con los sensores adecuados enfocados en la cara de una persona los robots pueden detectar sus cambios en ritmo cardíaco y, habida cuenta que éstos correlan con emociones, el robot tiene un medio para, al menos, intuir una emoción.


Y con este tipo de técnicas ¿Cómo vamos a ocultar nuestras emociones a los robots? Podemos, con un cierto esfuerzo de control consciente, usar un lenguaje plano, cortés y tranquilo para que sus capacidades NLP no les permitan deducir nuestros sentimientos a partir de cómo nos expresamos. Eso es casi sencillo. Es bastante más difícil ser capaces de mantener una actitud hierática sin apenas mover un músculo de la cara y no realizar gestos delatores. Me parece muy difícil pero, si nos empeñamos, probablemente seamos capaces de lograrlo. ¡Pero a ver quién es capaz de controlar sus pulsaciones y las propiedades ópticas de su cara!


Con este tipo de sensores no invasivos y un procesamiento sofisticado de los datos obtenidos proporcionado por la Inteligencia Artificial, empieza a resultar casi imposible ocultar nuestras emociones a un robot avanzado.


Habrá que vivir con ello y gestionarlo.


lunes, 21 de septiembre de 2020

Capacidades interactivas y cognitivas de un robot social

En el último artículo '¿Qué es un robot social' exploramos la definición de este subgrupo de robots y nos encontramos con unos robots de naturaleza física, pensados para entornos diferentes del industrial, incluyendo los servicios y el hogar y con unas amplias capacidades de interacción y relación con los humanos.


¿En qué consisten esas avanzadas capacidades de interacción y relación?


Siguiendo la misma fuente, el libro 'Social robots: Technological, Societal and Ethical Aspects of Human-Robot Interaction' editado por Oliver Korn, se menciona un estudio 'A survey of socially interactive robots' de Terrence Fong, Illah Nourbakhsh y Kerstin Dautenhahn en que, a la hora de realizar su encuesta, primero intentaron centrar qué era eso de robots sociales, robots con alta capacidad de interacción, identifican siete características sociales humanas que deben exhibir estos robots. Son las siguientes:


  • Deben ser capaces de expresar y/o percibir emociones
  • Comunicar en un diálogo de alto nivel
  • Aprender o reconocer modelos en otros agentes (otras personas o robots)
  • Establecer y mantener relaciones sociales
  • Usar 'pistas' naturales (gestos, miradas, etc)
  • Exhibir una personalidad y carácter propios
  • Pudieran aprender o desarrollar competencias sociales


Se trata de un artículo escrito en 2003 y, sin embargo, me parece muy ambicioso en cuando a las capacidades que espera de los robots. Sin embargo, en todas esas facetas hay avances y realizaciones y no resulta difícil creer que, viendo lo que ya existe, y la velocidad de los logros, en no tanto tiempo pueden existir robots que exhiban, con cierta holgura, esas capacidades.


Y si se leen con calma, podemos darnos cuenta que, en cuanto a comportamiento y visión externa, se les está pidiendo un comportamiento muy, muy humano, con unas, al menos aparentes, personalidad y emociones.


Robot Sophia
Robot Sophia
Si esos avances cognitivos se producen, y no creo que estemos lejos de ellos, ¿Qué ocurre si a nivel de materiales y fabricación conseguimos dotar a esos robots de un aspecto externo también humano? ¿Qué pasaría si consiguiésemos imitar la piel humana y el funcionamiento de los músculos faciales para conseguir gestos naturales? Al preguntarme esto debo decir que, por ejemplo, los gestos que realiza un robot como Sophia, en mi opinión, y sin restarle un ápice de su mérito, no son aún realmente naturales.


Pero si lo lográsemos, habríamos dado, creo, un nuevo salto en el test de Turing. Podríamos quizá conseguir hacer creer a una persona que está tratando con otro humano. A lo mejor no en una convivencia larga, pero sí en interacciones cortas.


¿Cómo de cerca o de lejos estamos de ello? No estoy seguro pero creo que no estamos demasiado lejos, aunque en este momento no estoy muy informado de los avances en materiales y gestualidad ni de si existen esfuerzos importantes de investigación y desarrollo dedicados a ello.

miércoles, 16 de septiembre de 2020

¿Qué es un robot social?

En los posts de las últimas semanas con frecuencia he mencionado los robots sociales, un tema por el que he empezado a interesarme como una ampliación del interés en robótica e inteligencia artificial en general, y sobre las interfaces entre humanos y robots en particular. 


Pero ¿qué es exactamente un robot social? No sé si podré contestarlo tan exactamente, pero al menos en este artículo voy a recoger alguna definición y alguna idea complementaria, basándome en los primeros capítulos del libro 'Social robots: Technological, Societal and Ethical Aspectos of Human-Robot Interaction', un libro coral compuesto por muchos artículos de investigación sobre la materia y editado por Oliver Korn.


Nada más empezar, ya en la introducción, el propio Oliver Korn nos introduce el término de la siguiente forma:


Social robots are robots which cannot only do services for us but also communicate


Una definición muy sencilla, pero no estoy seguro que sea del todo afortunada. Es cierto que los robots sociales tienen como característica esencial que se comunican con los humanos, que se comunican además en general de una forma muy natural (parecería extraño que a un ente al que se le califica de social no exhibiera esa capacidad). Pero me parece que se queda corta. 


Así, por ejemplo, bajo ese paraguas podrían caer también los chatbots y más aún los altavoces inteligentes, que pueden ser considerados robots (aunque robots software) y una de cuyas características diferenciales es precisamente su capacidad de comunicación y relación con los humanos en lenguaje natural, especialmente por voz. Y sin embargo, leída ya una cierta literatura al respecto, cuando se aplica al término robot social no se piensa en chatbots ni altavoces inteligentes, aunque apunto de mi cosecha que quizá habría que empezar a considerar el incluirlos y que no me extrañaría una cierta convergencia y solape no solo tecnológico sino como diseño de productos.


Más adelante, en uno de los primeros artículos del libro, se aporta una definición dada por Dautenhand y Billard  ya en 1999 y que dice:


Social robots are embodied agents that are part of a heterogenous group:  society of robots or humans. They are able to recognize each other and engage in social interactions. they possess histories (perceive and interpet the world in terms of their own experience), and they explicitly communicate with and learn from each other.


Esta definición aporta mucho más. En primer lugar, y creo que importante, nos habla de un 'embodiment' (materialización), es decir, de que esos robots tiene realidad física y eso parece excluir a los chatbots software, aunque quizá sea dudoso si esa característica excluye también a los altavoces inteligentes. Ese 'embodiment', especialmente cuando la forma que adopta el robot es humanoide, tiene mucha importancia en cuanto a las expectativas que el robot genera, en cuanto a sus capacidades de comunicación (que pueden incluir lenguaje no verbal como gestos) y en cuanto a la aceptación o no por parte de los humanos e incluso las relaciones afectivas que puede generar. 


La definición pone también mucho énfasis en la capacidad de interacción. Y llama la atención también alguna característica más avanzada como la experiencia, el aprendizaje, o la pertenencia a un grupo.


Aunque no se trata de una definición, se aporta alguna consideración adicional que ayuda a entender a que nos referimos:


Social robots will entertain, train, educate or simply interact with users in the same way as humans do.


Vemos aquí un poco a qué tipo de robots nos referimos, a qué tipo de cosas se dedican: asistencia, formación o mera interacción. Es decir, son robots con capacidad avanzada de interacción con los humanos y en general pensados, no tanto para una labor de naturaleza industrial sino un poco, precisamente, a realizar labores de interacción con personas en otro tipo de ámbitos si se quiere menos profesionales o menos laborales y sobre todo, no industriales.


De hecho, como un subconjunto de robots sociales, se suele hablar de robots de servicio ('service robots'). ¿Que es un service robot? En este caso disponemos de una definición procedente de un estándar, en concreto la definición aportada en la norma ISO 8373. En ella se dice que un 'service robot' es:


a robot that performs useful tasks for humans or equipment excluding industrial automation aplications.


Donde se destacan sólo dos aspectos: el primero que hace algún tipo de trabajo, es decir, no es mero entretenimiento, pero, eso sí, no se trata de un robot industrial. Cabe citar, por su popularidad, que por ejemplo a los robots aspìradora, tipo Roomba, se les considera 'service robots'. ¿Es un robot aspiradora un robot social? Lo cierto es que sus capacidades de comunicación no son muy amplias, aunque también es cierto que eso no es por limitaciones de tecnología sino porque, como concepción de producto parece que no las necesita. Eso sí, es un robot que presta servicios y lo hace típicamente en el hogar.


Con lo visto, creo que, desde un punto de  vista académico, lo que es un robot social queda con unas fronteras algo abiertas. Sin embargo, en el fondo no resulta demasiado difícil entender de qué estamos hablando. Hablamos de robots físicos (no es extraño que incluso aspecto humanoide), hablamos de robots que no están pensados para fabricación, sino para ayuda en el hogar o entornos no de producción y hablamos de robots que suelen tener capacidades avanzadas de comunicación e interacción con humanos, porque entre sus labores habituales están cosas como formación, asistencia a ancianos o personas con discapacidad, entretenimiento, recepción a personas en hoteles o eventos y cosas así.


Unos robots que creo que van a florecer y ser más y más abundantes en no tanto tiempo, y unos robots que plantean algunos temas muy interesantes no solo en lo tecnológico (que en muchos aspectos es común con otras áreas de la robótica, lingüística, comunicación o inteligencia artificial), sino también en lo social, lo antropológico y lo ético.


lunes, 14 de septiembre de 2020

El roce hace el cariño... ¿también con los robots?

Los cambios suelen provocar miedos y resistencias. Es un patrón común y por eso existe una disciplina denominada gestión del cambio.


Ese patrón aplica también al caso de introducción de nuevas tecnologías. Cuando pensamos en tecnologías de automatización, como pueden ser los robots, uno de los posibles motivos de la resistencia es el temor a que los robots acaben haciendo irrelevante nuestro trabajo y que nos sustituyan por llevar a cabo mejor las tareas que antes teníamos encomendadas.


En el caso de los robots, sobre todo si pensamos en robots androides, que emulan en su forma física a las personas, y especialmente en el caso de los robots sociales cuyo cometido es tratar con las personas en su día a día en áreas como el cuidado de mayores o enfermos, se producen recelos adicionales. Su aspecto humanoide los hace a un tiempo más cercanos y atractivos pero también pueden llegar a generar más rechazo como se describe en el fenómeno del 'Uncanny Valley' precisamente por parecerse demasiado a nosotros...sin ser iguales.


En el libro 'Human-Robot Interacion. An Introduction', de Christoph Bartnek, Tony Belpaeme, Firedrike Eyssel, Takayudi Kanda, Merel Keijsers y Selma Sabanovic, los autores mencionan estudios que  confirman que existe un rechazo generalizado a aceptar la idea de robots en tareas del día a día, especialmente cuando su labor es tratar con personas vulnerables. Así, nos dicen: 


Recents polls in the United States and Europe suggest that the broader public is not very willing to accept social robots for everyday use, particularly in areas such as eldercare and other socially assistive and interactive applications. 


Sin embargo, los mismos autores mencionan otros experimentos en que, el hecho de que las personas objeto de análisis tuvieran conocimiento o experiencia previa de interacción con robots, hacía que su actitud hacia estos ingenios fuese más favorable. Y de ahí obtienen una conclusión, o al menos una expectativa:


We can therefore expect that as people have increased contact with robots, be it directly or through the media, attitudes will grow more positive, and the willingness to use robots will increase over time.


Es decir, la expectativa es que, a medida que tengamos mayor contacto con los robots, incluso simplemente a través de vídeos o noticias, las receptividad hacia ellos mejorará.


Y creo que es una expectativa más que razonable. En el fondo, si lo pensamos bien, a pesar de ciertas resistencias iniciales que puedan existir, acabamos admitiendo y asimilando muy bien las nuevas tecnologías. 


Creo que hay un doble motivo para ello.


Por un lado porque, evidentemente, las nuevas soluciones tecnológicas tienen como misión ayudarnos, hacernos la vida más fácil. Y ya sabemos que a lo bueno es fácil acostumbrarse.


Pero, además, porque, aunque el ritmo de avance tecnológico es alto, las mejoras las vamos percibiendo de forma gradual lo que también las hace más aceptables. En el fondo, no nos damos verdadera cuenta de la velocidad del cambio más que cuando echamos la vista atrás. 


Hoy en día es impensable no disponer de ordenadores individuales tanto en ámbito profesional como personal y, sin embargo, hace no tantas décadas, no existían ordenadores en las empresas ni mucho menos en las casas. Y nos hemos acostumbrado y nos parece bien e incluso casi imprescindible.


Hoy en día es casi impensable no disponer de algún tipo de acceso a Internet. Y no un acceso cualquiera, sino un acceso en banda ancha...cada vez más ancha. Y nos hemos acostumbrado, y nos parece bien y si en algún sitio no disponemos de WiFi o datos estamos casi perdidos, inquietos e incluso malhumorados. Y sin embargo, no hace tantos años el acceso a Internet no era generalizado ni mucho menos en banda ancha.


Hoy en día raro, muy raro es quien no dispone de un móvil y no un móvil cualquiera, sino todo un smartphone que es un pequeño ordenador lleno de Apps y, por supuesto conectividad en banda ancha, no solo para voz, sino para mensajería, vídeo y lo que haga falta. Y nos hemos acostumbrado, y nos parece bien. Pero hace apenas dos décadas los móviles no estaban generalizados y hace muchos menos años que se generalizaron los smartphone. 


Y así con todas las grandes tecnologías, digitales o no.


¿Y los robots? Pues creo que va a pasar lo mismo. Ya nos hemos acostumbrado a disponer de asistentes personales y chatbots que nos hablan en lenguaje natural. Al principio llamaba un poco la atención y hacía gracias, pero ya es algo natural y casi común. Ya es tambiñen algo relativamente extendido el uso de los robots aspiradora en los hogares, unos robots que son autónomos y que también nos hablan. Y ya es normal tener altavoces inteligentes como Alexa a los que pides todo tipo de cosas de viva voz. No es tan raro ya, en hospitales o almacenes, la existencia de robots autónomos para el transporte de materiales. Y en cuanto a los robots androides, todavía no están generalizados, pero ya los vemos en tiendas de juguetes, en exposiciones tecnológicas, en vídeos. Ya no nos sorprendería tanto encontrarnos con ellos en la recepción de un hotel o de un evento. Si no nos ha sucedido ya, antes o después nos va a suceder.


Y creo que va a seguir así. Creo que cada vez nos encontraremos con más frecuencia con  robots en el trabajo y en el hogar. Y algunos de ellos serán humanoides. Y casi todos nos hablaran y entenderán nuestras órdenes. Y tendrán cada vez mayor autonomía y mayor soltura en su conversación, movimiento e incluso expresión de emociones. Y serán más y más abundantes y más y más capaces.


Y nos acostumbraremos. Y nos parecerá bien. Y los echaremos en falta si se nos estropean o no disponemos de ellos por alguna razón. Y lo que nos parecerá sorprendente será recordar cómo, sólo unos pocos años, quizá alguna década atrás, no existían robots y nos preguntaremos cómo podíamos vivir sin ellos.


Y es que, en efecto, nos acostumbramos a la tecnología. Es que las tecnologías nos hacen la vida más fácil y es que, como en todo, el roce hace el cariño.


Si, también con los robots.


viernes, 11 de septiembre de 2020

BPMN y modelado de procesos fácil con Bruce Silver


'BPMN quick and easy with method and style' es un libro que explica, de forma muy concisa pero también muy eficaz, los elementos fundamentales del lenguaje de modelado BPMN, el estándar de la industria para el modelado de procesos de negocio. Y viene a constituir una versión revisada y, sobre todo, concentrada, del famoso 'BPMN Method and Style' de este mismo autor. 

El libro consta de nueve capítulos estructurados como sigue:
  • 1. What is BPMN?: proporciona unas ideas preliminares sobre lo que es BPMN comparándolo con los tradicionales y menos formales flowcharts pero reconociendo también alguna limitación en BPMN.

  • 2. BPMN by example: Un capítulo muy importante porque en él explica los elementos básicos de BPMN a medida que va ejemplíficándolos en un proceso. Habla sucesivamente de las actividades, de las bifurcaciones paralelas, de pools y lanes, de flujos de mensaje, de eventos de inicio, de los tipos de tareas, de eventos de inicio y fin, de objetos de datos y de anotaciones. Es una forma de exposición que, si bien puede parecer poco ordenada, es muy efectiva a la hora de comprender de manera incremental los principales elementos del lenguaje.

  • 3. The Method: Introducidos los formalismos principales en el capítulo anterior, en éste el autor expone su propio método de trabajo para, con un enfoque 'top-down', ir construyendo un modelo en seis pasos.

  • 4. BPMN Style: Y, como complemento del anterior, en este capítulo el autor aporta una serie de reglas de estilo, reglas que no son obligatorias según la especificación de BPMN pero que, en la experiencia del autor, conduce a mejores diagramas.

  • 5. DMN and decision tasks: Introduce de manera breve el nuevo lenguaje de modelado para reglas de negocio y decisiones: DMN, (Decision Model &Amp; Notation) y como encaja con BPMN

  • 6 Parallel flow: Un breve capítulo para hacer alguna consideración más específica sobre bifurcaciones y flujos paralelos.

  • 7. Events: Una explicación, inevitablemente un poco más compleja, sobre los eventos como el temporizador y los mensajes, cómo actúan los eventos en frontera de actividad, cómo se relacionan los eventos y las actividades de mensaje, etc

  • 8. Instance alignment: Habla, brevemente, sobre bucles y actividades multi-instancia.

  • 9: Becoming proficient y finaliza el libro con un par de indicaciones sobre cómo seguir aprendiendo y mejorando. Así, explica primero bpmnPRO, una App con conceptos de gamificación pensada para el aprendizaje de BPMN, y luego menciona la propia oferta del autor en materia de formación y certificación.

'BPMN quick and easy with method and style' es un libro que consigue, a la vez, dar una idea bastante completa de BPMN pero de una forma que no se hace larga ni farragosa aunque quizá no sea del todo completa. De todas formas, comparado con lo que he podido leer hasta la fecha sobre BPMN creo que es claramente, la mejor introducción que he encontrado. 

Bruce Silver

(Fuente: Traducción y ligera elaboración de la ficha de autor en la versión Kindle de su libro 'BPMN Method and Style') 
Bruce Silver

Bruce Silver es el presidente de Bruce Silver Associates, un proveedor de servicios de consultoría y formación en el área de Gestión de Procesos de Negocio. Es también fundador y presidente de BPMessentials, proveedor de servicios de formación y certificación.

Sus aportaciones originales a BPMN incluyen el enfoque bautizado como 'Method and style' y el perfil BPMN-I para intercambio de modelos.

Su sitio web (www.brsilver.com) es conocido por sus informes y comentarios acerca de los últimos desarrollos en estándares BPM, herramientas y productos. Fue miembro del equipo técnico que desarrolló la especificación BPMN 2.0 en el OMG y contribuyó a la sección de BPMN del examen de certificación OMG OCEB BPM.

Antes de fundar Bruce Silver Associates en 1994, fue vicepresidente responsable de workflow y gestión documental en la firma de analistas BIS Strategic Decisions, que posteriormente se convertiría en Giga (actualmente integrada en Forrester Research).

Bruce Silver es poseedor de un grado universitario y un doctorado en Física por la Universidad de Princeton y el MIT, y cuatro patentes americanas en el campo de la imagen electrónica.

Puedes conocer más, visitando su Method & Style, la página de su compañía, o siguiéndole en Twitter donde se identifica como @bpmswatch

Ficha técnica:

AUTOR: Bruce Silver
EDITORIAL: Code-Cassidy Press
AÑO: 2017 
ISBN: 978-0982368169
PAGINAS: 124

miércoles, 9 de septiembre de 2020

Visitando el origen literario de los robots


Me gusta de vez en cuando visitar los orígenes,las fuentes últimas de las ideas más populares o influyentes de nuestro tiempo, al menos de aquellas que me interesan.

Visitar en este caso suele querer decir leer, una lectura que beba de fuentes originales, de libros o artículos escritos por los grandes pensadores, los grandes genios, los grandes transformadores, los grandes 'influencers' del pasado.

Cuando me he interesado por la psicología o el psicoanálisis, he acudido a la lectura de Jung, de Adler y, por supuesto, de Freud.

Cuando mis intereses han apuntado hacia la filosofía, no he dejado de echar un vistazo a Aristóteles o Platón.

Y en literatura, me he leído a muchos de los grandes clásicos españoles y mundiales, sin hacerle ascos a 'tochos' tan intimidantes como El Quijote, el Ulises de James Joyce, Moby Dick, Madame Bovary, La Regenta y tantos otros.

Beber en fuentes originales, además de aportar muchas veces mayor calidad literaria y de pensamiento que los resúmenes y elaboraciones posteriores, te permite acceder al pensador original, a su estilo y sus  matices y de paso tener más criterio cuando se escucha una opinión u argumentación en ellos fundamentada.

Pero, evidentemente, si en este blog hablo de acudir a los orígenes, no estoy pensando en psicología, en filosofía o en literatura. Estoy pensando en management y, sobre todo, en tecnología.

Ese mismo interés en conocer las fuentes originales me llevó, por ejemplo, hace ya bastantes años a adquirir y leer obras seminales y muy citadas de la Inteligencia Artificial como son 'The Society of Mind' de Marvin Minsky o el legendario 'Perceptrons' de Minsky y Papert, dos libros que guardo en mi estantería como auténticos tesoros. 

Pero pasando ya al campo específico de la literatura y los robots he leído, por supuesto, decenas de relatos de Isaac Asimov, donde me he encontrado en numerosas ocasiones con sus famosísimas tres leyes encabezando algunas de sus narraciones. Y he disfrutado de algunos relatos que me han cautivado (o tambiñen hecho reír) como 'La última pregunta', 'La máquina que ganó la guerra' o '¡Mentiroso!'

Karel Capek

Y mi último viaje en busca de fuentes primeras, la que en el fondo, y tras tantos rodeos, motiva este post, ha sido también literario y relacionado con los robots. En esta ocasión, he querido leer 'R.U.R.' (Rossum's Universal Robots), una obra de teatro estrenada en 1920 y donde el literato checo, Karel Capek introdujo por primera vez en lengua inglesa, la palabra robot.

Parece que cualquier obra introductoria sobre robots se siente en la obligación de mencionar esta obra y yo ya llevaba tiempo deseando leerla por mí mismo.

Me he encontrado una obra de lectura fácil pero que quizá, contemplada desde los ojos de hoy día, justo cien años después de sus estreno, sea un tanto tópica, un tanto simple, y casi, casi infantil. Una obra que, sin embargo, tiene el mérito de lo primigenio, de lo original. Y una obra donde se abordan ya temas aún en el candelero como la eliminación del trabajo de las personas, el miedo a la rebelión de las máquinas y los sentimientos de los robots.

Parece que en este siglo que ha transcurrido desde el estreno de 'R.U.R.' hemos avanzado muchísimo en tecnología pero no tanto en mitos, miedos y tópicos.

Y puede, sólo puede, que esa sea la mayor enseñanza obtenida de la lectura de este clásico literario-tecnológico y la mayor recompensa, si exceptuamos, por supuesto, el simple placer de leer y de leer a clásicos de un tipo u otro.


lunes, 7 de septiembre de 2020

Cinco principios de la robótica más allá de las leyes de Asimov


Ahora que surge con fuerza la búsqueda de principios éticos que rijan la tecnología en general, y la inteligencia artificial y la robótica en particular, puede resultar interesante repasar los antecedentes que existen, lo que se ha hecho sobre la materia.

Son 'archi-famosas' las tres leyes de la robótica que definió Isaac Asimov y que utilizó con frecuencia en sus relatos. Son leyes que demuestran un gran sentido común y una orientación filosófica muy acertada. Pero, en el fondo son literatura, aplicables en un mundo de ficción, pero no implementables como tales hoy en día ni a nivel legal ni mucho menos tecnológico. Aunque son muy conocidas, las recuerdo:


  • Un robot no hará daño a un ser humano ni, por inacción, permitirá que un ser humano sufra daño.

  • Un robot debe cumplir las órdenes dadas por los seres humanos, a excepción de aquellas que entren en conflicto con la primera ley.

  • Un robot debe proteger su propia existencia en la medida en que esta protección no entre en conflicto con la primera o con la segunda ley


En esa línea van el discurso sostenido por el Engineering and Physical Sciences Research Council (EPSRC) en la introducción de su documento 'Principles of Robotics' conclusión de unos talleres llevados a cabo en 2010 conjuntamente con el Art and Humanities Research Council (AHRC), un documento del que he tenido conocimiento leyendo el libro 'Human-Robot Interacion. An Introduction', de Christoph Bartnek, Tony Belpaeme, Firedrike Eyssel, Takayudi Kanda, Merel Keijsers y Selma Sabanovic.

El documento incluye cinco leyes de la robótica on un doble enunciado, uno legal y otro para el público general. A continuación incluyo los enunciados generalistas de esos cinco principios (traducción propia):


  • Los robots no deberían ser designados como armas, excepto por razones de seguridad nacional.

  • Los robots deberían ser diseñados y operador de forma que cumplan con la ley existente, incluyendo la privacidad.

  • Los robots son productos y como tales productos, deberían ser diseñados para ser seguros y confiables.

  • Los robots son productos manufacturados. No deberían usar la simular de emoción o intención para explotar a individuos vulnerables.

  • Debería ser posible averiguar quién es el responsable de cada robot.


No dejan de ser principios muy generalistas, aunque quizá más cercanos a la realidad y preocupaciones actuales. 

Me llama la atención la salvedad que se incluye en el primer principio, admitiendo como válido el uso de robots-arma por motivos de seguridad nacional. Dado lo elusivo y manipulado que es ese concepto de 'seguridad nacional' puede ser una forma de abrir la puerta al uso de robots arma de forma generalizada. Y también aunque comprensible, y perfectamente aceptable en su enunciado literal y su intención, me llama la atención el cuarto principio, que impone restricciones de importancia a los robots sociales e, incluso, a los simples chatbots o altavoces inteligentes.

De todas formas no deja de tratarse meros principios. En el fondo, creo que cualquier principio sólo será realmente ejecutivo en el momento en que se convierta en ley.