Aprendizaje por imitación (inteligencia artificial)
# Aprendizaje por imitación (inteligencia artificial)

En la inteligencia artificial, el aprendizaje a partir de la demostración o aprendizaje por imitación (en inglés: apprenticeship learning) es el proceso de aprender observando a un experto. Se puede considerar una forma de aprendizaje supervisado, en el que el conjunto de datos de entrenamiento consiste en la ejecución de tareas por parte de un instructor de demostración.

## Enfoque de función de mapeo

Los métodos de mapeo intentan imitar al experto formando un mapeo directo de los estados a las acciones, o de los estados a los valores de recompensa. Por ejemplo, en 2002 los investigadores utilizaron este enfoque para enseñarle las habilidades básicas de fútbol a un robot AIBO.

### Enfoque de aprendizaje por refuerzo inverso

El aprendizaje por refuerzo inverso (en inglés: inverse reinforcement learning, IRL) es el proceso de derivar una función de recompensa a partir del comportamiento observado. Mientras que el "aprendizaje por refuerzo" ordinario implica el uso de recompensas y castigos para aprender un comportamiento, en el IRL la dirección se invierte, y un robot observa el comportamiento de una persona para averiguar qué objetivo parece estar intentando alcanzar ese comportamiento. El problema del IRL puede definirse como:

   Dadas 1) medidas del comportamiento de un agente a lo largo del tiempo, en una variedad de circunstancias; 2) medidas de las entradas sensoriales a ese agente; 3) un modelo del entorno físico (incluyendo el cuerpo del agente): Determinar la función de recompensa que el agente está optimizando.

Stuart J. Russell, investigador del IRL, propone utilizarlo para observar a los humanos e intentar codificar sus complejos "valores éticos", en un esfuerzo por crear "robots éticos" que algún día sepan "no cocinar a tu gato" sin necesidad de que se lo digan explícitamente. El escenario puede modelarse como un "juego cooperativo de aprendizaje por refuerzo inverso", en el que un jugador "persona" y un jugador "robot" cooperan para asegurar los objetivos implícitos de la persona, a pesar de que estos objetivos no sean conocidos explícitamente ni por la persona ni por el robot.

En 2017, OpenAI y DeepMind aplicaron el aprendizaje profundo al aprendizaje de refuerzo inverso cooperativo en dominios sencillos como los juegos de Atari y tareas sencillas de robots como volteretas hacia atrás. El papel humano se limitó a responder a las consultas del robot sobre cuál de dos acciones diferentes era la preferida. Los investigadores encontraron pruebas de que las técnicas pueden ser económicamente escalables a sistemas modernos.

El aprendizaje por refuerzo inverso (en inglés: apprenticeship via inverse reinforcement learning, AIRP) fue desarrollado en 2004 por Pieter Abbeel, profesor del departamento EECS de Berkeley, y Andrew Ng, profesor asociado del departamento de Informática de la Universidad de Stanford. El AIRP se ocupa de "procesos de decisión de Markov en los que no se nos da explícitamente una función de recompensa, sino que podemos observar a un experto demostrando la tarea que queremos aprender a realizar". El AIRP se ha utilizado para modelar funciones de recompensa de escenarios muy dinámicos en los que intuitivamente no existe una función de recompensa obvia. Tomemos como ejemplo la tarea de conducir: hay muchos objetivos diferentes trabajando simultáneamente, como mantener una distancia de seguridad, una buena velocidad, no cambiar de carril con demasiada frecuencia, entre otros. Esta tarea puede parecer fácil a primera vista, pero una función de recompensa trivial puede no converger con la política deseada.

Un ámbito en el que el AIRP se ha utilizado mucho es en el control de helicópteros. Mientras que las trayectorias simples se pueden derivar intuitivamente, las tareas complicadas como las acrobacias aéreas para espectáculos han tenido éxito. Entre ellas se incluyen maniobras acrobáticas como volteretas, giros, bucles, huracanes e incluso aterrizajes con autorrotación. Este trabajo fue desarrollado por Pieter Abbeel, Adam Coates y Andrew Ng - "Autonomous Helicopter Aerobatics through Apprenticeship Learning".

### Enfoque de modelo de sistema

Los modelos de sistema intentan imitar al experto modelando la dinámica del mundo.

## Enfoque de plan

El sistema aprende reglas para asociar condiciones previas y posteriores a cada acción. En una demostración de 1994, un humanoide aprende un plan generalizado a partir de sólo dos demostraciones de una tarea repetitiva de recolección de balones.

## Ejemplo

El aprendizaje a partir de la demostración suele explicarse desde la perspectiva de que el sistema de control del robot funciona y el demostrador humano lo utiliza. Y, efectivamente, si el software funciona, el operador humano coge el brazo robótico, realiza un movimiento con él y el robot reproducirá la acción más tarde. Por ejemplo, enseña al brazo-robot a poner una taza debajo de una cafetera y a pulsar el botón de encendido. En la fase de reproducción, el robot imita este comportamiento 1:1. Pero así no es como funciona internamente el sistema; es sólo lo que el público puede observar. En realidad, el aprendizaje por demostración es mucho más complejo. Uno de los primeros trabajos sobre el aprendizaje mediante robots aprendices (robots antropomórficos que aprenden por imitación) fue la tesis doctoral de Adrian Stoica en 1995.

En 1997, el experto en robótica Stefan Schaal trabajaba en el robot-brazo Sarcos. El objetivo era sencillo: resolver la tarea de balanceo del péndulo. El propio robot puede ejecutar un movimiento y, como resultado, el péndulo se mueve. El problema es que no está claro qué acciones darán lugar a qué movimiento. Se trata de un problema de control óptimo que puede describirse con fórmulas matemáticas, pero que es difícil de resolver. La idea de Schaal fue, no utilizar un solucionador de fuerza bruta, sino registrar los movimientos de una demostración humana. El ángulo del péndulo se registra durante tres segundos en el eje y. Esto resulta en un diagrama que produce un patrón.

Trayectoria en el tiempo :

| tiempo (segundos) | ángulo (radianes) |
| - | - |
| 0 | -3.0 |
| 0.5 | -2.8 |
| 1.0 | -4.5 |
| 1.5 | -1.0 |

En la animación computarizada, el principio se denomina animación spline. Es decir, en el eje x se da el tiempo, por ejemplo 0,5 segundos, 1,0 segundos, 1,5 segundos, mientras que en el eje y está la variable dada. En la mayoría de los casos es la posición de un objeto. En el péndulo invertido es el ángulo.

La tarea general consta de dos partes: registrar el ángulo a lo largo del tiempo y reproducir el movimiento registrado. El paso de reproducción es sorprendentemente sencillo. Como entrada sabemos, en qué paso de tiempo, qué ángulo debe tener el péndulo. Llevar el sistema a un estado se llama "Control de seguimiento" o controlador PID. Es decir, tenemos una trayectoria en el tiempo, y debemos encontrar acciones de control para mapear el sistema a esta trayectoria. Otros autores llaman a este principio "comportamiento de dirección", porque el objetivo es llevar al robot a una línea determinada.

