stringtranslate.com

Programación por demostración

En informática , la programación por demostración ( PbD ) es una técnica de desarrollo del usuario final para enseñar a una computadora o un robot nuevos comportamientos demostrando la tarea a transferir directamente en lugar de programarla a través de 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 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 de la computadora, como una fila en los resultados deseados de una consulta ; mientras que en PbD el usuario realiza una secuencia de acciones que la computadora debe repetir, generalizándola para que se use en diferentes conjuntos de datos.

Estos dos términos no se diferenciaban entre sí al principio, pero luego los investigadores de desarrollo de software adoptaron PbE, mientras que los investigadores de robótica adoptaron PbD. Hoy, PbE se refiere a un concepto completamente diferente, respaldado por nuevos lenguajes de programación similares a los simuladores. Este marco se puede contrastar con la síntesis de programas bayesiana .

Programación de robots mediante demostración

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

Las primeras estrategias PbD propuestas en robótica se basaban en métodos teach-in , guiado o play-back que consistían básicamente en mover el robot (a través de una interfaz dedicada o manualmente) a través de un conjunto de configuraciones relevantes que el robot debía adoptar secuencialmente (posición, orientación, estado de la pinza). El método fue luego mejorado progresivamente centrándose principalmente en el control de teleoperación y mediante el uso de diferentes interfaces como la visión.

Sin embargo, estos métodos PbD todavía utilizaban la repetición directa, que era útil en la industria solo cuando se concebía una línea de montaje que utilizara exactamente los mismos componentes del producto. Para aplicar este concepto a productos con diferentes variantes o para aplicar los programas a nuevos robots, la cuestión de la generalización se convirtió en un punto crucial. Para abordar esta cuestión, los primeros intentos de generalizar la habilidad se basaron principalmente en la ayuda del usuario a través de consultas sobre las intenciones del usuario. Luego, se propusieron diferentes niveles de abstracción para resolver la cuestión de la generalización, básicamente dicotomizada en los métodos de aprendizaje a nivel simbólico o a nivel de trayectoria.

El desarrollo de robots humanoides generó naturalmente un creciente interés en la programación de robots mediante demostración. Como un robot humanoide está destinado por naturaleza a adaptarse a nuevos entornos, no solo es importante la apariencia humana, sino que los algoritmos utilizados para su control requieren flexibilidad y versatilidad. Debido a los entornos en constante cambio y a la enorme variedad de tareas que se espera que realice un robot, este necesita la capacidad de aprender continuamente nuevas habilidades y adaptar las habilidades existentes a nuevos contextos.

La investigación en PbD también se alejó progresivamente de su perspectiva original puramente ingenieril para adoptar un enfoque interdisciplinario, tomando 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 cuerpo de trabajo en robótica, la noción de programación de robots por demostración (también conocida como RPD o RbD) también fue reemplazada progresivamente por la etiqueta más biológica de aprendizaje por imitación .

Campos vectoriales estables con impronta neuronal (NiVF)

Los campos vectoriales estables con impresión neuronal [2] (NiVF) se presentaron como un nuevo esquema de aprendizaje durante ESANN 2013 y muestran cómo imprimir campos vectoriales en redes neuronales como las máquinas de aprendizaje extremo (ELM) de una manera estable garantizada. Además, el artículo ganó el premio al mejor artículo de estudiante. Las redes representan movimientos, donde la estabilidad asintótica se incorpora a través de restricciones derivadas de la teoría de estabilidad de Lyapunov. Se demuestra que este enfoque realiza con éxito movimientos punto a punto estables y suaves aprendidos a partir de los movimientos de escritura a mano humana.

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

Transformaciones difeomórficas

Las transformaciones difeomórficas resultan particularmente adecuadas para aumentar sustancialmente la capacidad de aprendizaje de sistemas dinámicos para movimientos robóticos. El estimador estable de sistemas dinámicos (SEDS) es un enfoque interesante para aprender sistemas invariantes en el tiempo para controlar movimientos robóticos. Sin embargo, esto está restringido a sistemas dinámicos con solo funciones de Lyapunov cuadráticas. El nuevo enfoque Tau-SEDS [4] supera estas limitaciones de una manera matemática elegante.

Habilidades parametrizadas

Después de que un operador humano demuestra una tarea, la trayectoria se almacena en una base de datos. El acceso más fácil a los datos sin procesar se logra con habilidades parametrizadas. [5] Una habilidad solicita una base de datos y genera una trayectoria. Por ejemplo, primero 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 las 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 consta de 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). Generan una trayectoria de robot sobre la marcha que 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 simple de PbD es el grabador de macros .

Véase también

Referencias

  1. ^ Halbert, Dan (noviembre de 1984). "Programación por ejemplo" (PDF) . UC Berkeley (tesis doctoral) . Consultado el 28 de julio de 2012 . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  2. ^ A. Lemme, K. Neumann, RF Reinhart, JJ Steil (2013). "Campos vectoriales estables con impronta neuronal" (PDF) . Proc. Europ. Symp. On Artificial Neural Networks : 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 basados ​​en 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.S2CID1612856  .​{{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) . Robótica y sistemas autónomos . 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 utilizando una combinación 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 dentro de un entorno común". Conferencia internacional IEEE de 2017 sobre fusión e integración de múltiples sensores para sistemas inteligentes (MFI) . IEEE. págs. 608–613. doi :10.1109/mfi.2017.8170389. ISBN . 978-1-5090-6064-1.S2CID40697084  .​

Enlaces externos

Reseñas de artículos

Números especiales en revistas

Laboratorios y personas clave

Vídeos

Un robot que aprende a cocinar una tortilla:

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