Articulo de referencia

Programación mediante demostración

En informática , la programación por demostración ( PbD , por sus siglas en inglés) es una técnica de desarrollo para el usuario final que consiste en enseñar a un ordenador o a...

En informática , la programación por demostración ( PbD , por sus siglas en inglés) es una técnica de desarrollo para el usuario final que consiste en enseñar a un ordenador o a un robot nuevos comportamientos demostrando directamente la tarea a realizar, en lugar de programarla mediante comandos de máquina.

Los términos programación por ejemplo (PbE) y programación por demostración (PbD) aparecieron en la investigación sobre desarrollo de software ya a mediados de la década de 1980 [ 1 ] para definir una forma de definir una secuencia de operaciones sin tener que aprender un lenguaje de programación . La distinción habitual en la literatura entre estos términos es que en PbE el usuario proporciona un producto prototípico de la ejecución del ordenador, como una fila en los resultados deseados de una consulta ; mientras que en PbD el usuario realiza una secuencia de acciones que el ordenador debe repetir, generalizándola para su uso en diferentes conjuntos de datos.

Estos dos términos inicialmente no se diferenciaban, pero PbE tendía a ser adoptado principalmente por investigadores de desarrollo de software, mientras que PbD tendía a ser adoptado por investigadores de robótica. Hoy en día, PbE se refiere a un concepto completamente diferente, respaldado por nuevos lenguajes de programación similares a simuladores. Este marco puede contrastarse con la síntesis de programas bayesianos .

Programación de robots mediante demostración

El paradigma PbD resulta atractivo, en primer lugar, para la industria robótica debido a los costes que implica el desarrollo y el mantenimiento de los programas de los robots. En este campo, el operador suele tener un conocimiento implícito de la tarea a realizar (sabe cómo hacerla), pero normalmente carece de las habilidades de programación (o del tiempo) necesarias para reconfigurar el robot. Demostrar cómo realizar la tarea mediante ejemplos permite, por lo tanto, aprender la habilidad sin programar explícitamente cada detalle.

Las primeras estrategias de diseño basado en procesos (PbD) propuestas en robótica se basaban en métodos de aprendizaje , guía o reproducción que consistían básicamente en mover el robot (a través de una interfaz específica o manualmente) mediante un conjunto de configuraciones relevantes que el robot debía adoptar secuencialmente (posición, orientación, estado de la pinza). Posteriormente, el método se fue perfeccionando progresivamente, centrándose principalmente en el control por teleoperación y utilizando diferentes interfaces, como la visión artificial.

Sin embargo, estos métodos PbD seguían utilizando la repetición directa, que solo resultaba útil en la industria al diseñar una línea de montaje con componentes idénticos. Para aplicar este concepto a productos con distintas variantes o a nuevos robots, la generalización se convirtió en un aspecto crucial. Para abordar este problema, los primeros intentos de generalizar la habilidad se basaron principalmente en la ayuda del usuario mediante consultas sobre sus intenciones. Posteriormente, se propusieron diferentes niveles de abstracción para resolver la generalización, básicamente dicotomizados en métodos de aprendizaje a nivel simbólico o a nivel de trayectoria.

El desarrollo de robots humanoides despertó un creciente interés en la programación robótica mediante demostraciones. Dado que un robot humanoide, por su naturaleza, debe adaptarse a nuevos entornos, no solo es importante su apariencia humana, sino que los algoritmos utilizados para su control requieren flexibilidad y versatilidad. Debido a la constante evolución del entorno y a la enorme variedad de tareas que debe realizar un robot, este necesita la capacidad de aprender continuamente nuevas habilidades y adaptar las existentes a nuevos contextos.

La investigación en PbD también se fue alejando progresivamente de su perspectiva original puramente ingenieril para adoptar un enfoque interdisciplinario, incorporando conocimientos de la neurociencia y las ciencias sociales para emular el proceso de imitación en humanos y animales. Con la creciente consideración de este conjunto de trabajos en robótica, la noción de Programación de Robots por Demostración (también conocida como RPD o RbD) fue reemplazada progresivamente por la denominación más biológica de Aprendizaje por Imitación .

Campos vectoriales estables con impronta neuronal (NiVF)

El método de campos vectoriales estables con impronta neuronal [ 2 ] (NiVF) se presentó como un novedoso esquema de aprendizaje durante ESANN 2013 y muestra cómo imprimir campos vectoriales en redes neuronales, como las Máquinas de Aprendizaje Extremo (ELM), de forma garantizada y estable. Además, el artículo ganó el premio al mejor artículo estudiantil. Las redes representan movimientos, donde la estabilidad asintótica se incorpora mediante restricciones derivadas de la teoría de estabilidad de Lyapunov. Se demuestra que este enfoque realiza con éxito movimientos estables y fluidos de punto a punto, aprendidos a partir de los movimientos de la escritura humana.

También es posible aprender la función candidata de Lyapunov que se utiliza para la estabilización del sistema dinámico . [ 3 ] Por esta razón, se necesitan esquemas de aprendizaje neuronal que estimen sistemas dinámicos estables a partir de demostraciones basadas en un proceso de dos etapas: primero, se estima una función candidata de Lyapunov basada en datos. Segundo, se incorpora la estabilidad mediante un método novedoso para respetar las restricciones locales en el aprendizaje neuronal. Esto permite aprender dinámicas estables al tiempo que se mantiene la precisión del sistema dinámico y se generan movimientos complejos de forma robusta.

Transformaciones difeomórficas

Las transformaciones difeomórficas resultan especialmente adecuadas para aumentar sustancialmente la capacidad de aprendizaje de los sistemas dinámicos para el control de movimientos robóticos. El estimador estable de sistemas dinámicos (SEDS) es un enfoque interesante para aprender sistemas invariantes en el tiempo que controlan movimientos robóticos. Sin embargo, este enfoque se limita a sistemas dinámicos con funciones de Lyapunov cuadráticas. El nuevo enfoque Tau-SEDS [ 4 ] supera estas limitaciones de una manera matemáticamente elegante.

Habilidades parametrizadas

Después de que un operador humano demuestra una tarea, la trayectoria se almacena en una base de datos. El acceso a los datos brutos se facilita mediante habilidades parametrizadas. [ 5 ] Una habilidad solicita una base de datos y genera una trayectoria. Por ejemplo, al principio se envía la habilidad “opengripper(slow)” a la base de datos de movimiento y, en respuesta, se proporciona el movimiento almacenado del brazo robótico. Los parámetros de una habilidad permiten modificar la política para cumplir con restricciones externas .

Una habilidad es una interfaz entre los nombres de las tareas, expresados ​​en lenguaje natural , y el movimiento espaciotemporal subyacente en el espacio 3D, que consiste en puntos. Las habilidades individuales se pueden combinar en una tarea para definir secuencias de movimiento más largas desde una perspectiva de alto nivel. Para aplicaciones prácticas, se almacenan diferentes acciones en una biblioteca de habilidades . Para aumentar aún más el nivel de abstracción, las habilidades se pueden convertir en primitivas de movimiento dinámico (DMP). Estas generan una trayectoria del robot sobre la marcha, la cual era desconocida en el momento de la demostración. Esto ayuda a aumentar la flexibilidad del solucionador. [ 6 ]

Uso no robótico

Para los usuarios finales, para automatizar un flujo de trabajo en una herramienta compleja (por ejemplo, Photoshop ), el caso más sencillo de PbD es la grabadora de macros .

Véase también

Referencias

  1. Halbert, Dan (noviembre de 1984). "Programación mediante ejemplos" (PDF) . UC Berkeley (tesis doctoral) . Consultado el 28 de julio de 2012 .{{cite journal}}: Para citar una revista se requiere |journal=( ayuda )
  2. A. Lemme, K. Neumann, RF Reinhart, JJ Steil (2013). "Campos vectoriales estables con impronta neuronal" (PDF) . Actas del Simposio Europeo sobre Redes Neuronales Artificiales : 327–332 .{{cite journal}}: CS1 maint: varios nombres: lista de autores ( enlace )
  3. A. Lemme, K. Neumann y JJ Steil (2013). «Aprendizaje neuronal de sistemas dinámicos estables basado en candidatos de Lyapunov impulsados ​​por datos» (PDF) . Conferencia Internacional IEEE/RSJ de 2013 sobre Robots y Sistemas Inteligentes . págs. 1216–1222 . doi : 10.1109/IROS.2013.6696505 . ISBN  978-1-4673-6358-7. S2CID 1612856 . {{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  4. K. Neumann y JJ Steil (2015). "Aprendizaje de movimientos de robots con sistemas dinámicos estables bajo transformaciones difeomórficas" (PDF) . Robotics and Autonomous Systems . 70 (C): 1–15 . doi : 10.1016/j.robot.2015.04.006 .
  5. Pervez, Affan y Lee, Dongheui (2018). "Aprendizaje de primitivas de movimiento dinámico parametrizadas por tareas mediante una mezcla de GMM" (PDF) . Intelligent Service Robotics . 11 (1). Springer: 61–78 . doi : 10.1007/s11370-017-0235-8 . S2CID 3398752 . {{cite journal}}: CS1 maint: varios nombres: lista de autores ( enlace )
  6. Alizadeh, Tohid; Saduanov, Batyrkhan (2017). "Programación de robots mediante la demostración de múltiples tareas en un entorno común". 2017 IEEE International Conference on Multisensor Fusion and Integration for Intelligent Systems (MFI) . IEEE. pp. 608–613 . doi : 10.1109/mfi.2017.8170389 . ISBN  978-1-5090-6064-1. S2CID 40697084 . 
  • Cypher, Allen (1993), Watch What I Do: Programming by Demonstration , Daniel C. Halbert, MIT Press, ISBN 978-0-262-03213-1
  • Lieberman, Henry (2001), Your Wish is My Command: Programming By Example , Ben Shneiderman, Morgan Kaufmann, ISBN 978-1-55860-688-3

Artículos de revisión

  • Billard, Aude (2008), "Programación de robots mediante demostración", Springer Handbook of Robotics (PDF) , S. Calinon, R. Dillmann y S. Schaal, MIT Press, pp. 1371–1394 , doi : 10.1007/978-3-540-30301-5_60 , ISBN  978-3-540-23957-4.
  • Schaal, Stefan; Ijspeert, Auke; Billard, Aude (2003), "Enfoques computacionales del aprendizaje motor por imitación", Philosophical Transactions of the Royal Society of London. Serie B: Ciencias Biológicas , 358 (1431): 537– 547, doi : 10.1098/rstb.2002.1258 , PMC 1693137 , PMID 12689379  
  • Robots que imitan a los humanos , Cynthia Breazeal y Brian Scassellati, Trends in Cognitive Sciences, 6:1, 2002, págs.  481–87
  • Billard, A., "Imitación", en Arbib, MA (ed.), Manual de teoría cerebral y redes neuronales , MIT Press, págs. 566–69 . .
  • Schaal, S (1999), "¿Es el aprendizaje por imitación la vía hacia los robots humanoides?", Tendencias en Ciencias Cognitivas (PDF).

Números especiales en revistas

  • IEEE Transactions on Systems, Man, and Cybernetics , abril de 2007, 37:2.
  • RSJ Advanced Robotics , vol.  21, número 13.
  • Redes neuronales , Elsevier.
  • Robótica y sistemas autónomos (PDF) , Elsevier, 2006.

Laboratorios y personas clave

  • Técnicas de aprendizaje automático para la programación de robots mediante demostración , Lausana, VD, CH: EPFL LASA, archivado del original el 1 de mayo de 2012..
  • Aprendizaje por refuerzo y aprendizaje de primitivas motoras , SC, EE. UU.: Laboratorio CLMC de la USC.
  • Calinon, Sylvain, Demostración cinestésica interactiva profesor-alumno (entrenador/entrenador-aprendiz/cliente) , CH.
  • Bentivegna, Darrin, Enseñar hockey de aire a un robot humanoide , JP: ATR, archivado del original el 27/01/2008..
  • Actividades comunitarias sobre temas estrechamente relacionados.
  • Comité Técnico de Interacción y Coordinación Humano-Robot , IEEE Robotics and Automation, archivado del original el 26 de julio de 2011..
  • Comité Técnico de Aprendizaje Robótico , IEEE Robotics and Automation, archivado del original el 26 de julio de 2011..

Vídeos

Un robot que aprende a cocinar una tortilla:

  • "Versión corta", YouTube , FR.
  • "Versión larga", YouTube , FR.

Un robot que aprende a desenroscar una botella de Coca-Cola:

  • "Desenroscar botella de Coca-Cola", YouTube , Alemania.