Inicio rápido: Equilibrio de un mástil con IA (Cartpole)


  • Duración total estimada: 50 minutos
  • Tiempo activo: 5 minutos
  • Tiempo de entrenamiento de la máquina: 45 minutos

Enseñar a una inteligencia artificial a equilibrar un polo inestable en una base móvil con , un Bonsai simulador predefinido y código de ejemplo.

Antes de comenzar

Para completar esta demostración, debe tener una cuenta de Microsoft o Azure válida y un área de trabajo Bonsai válida aprovisionada en Azure. Si necesita una cuenta o una versión de prueba de Azure, siga las instrucciones de Microsoft account setup for Bonsai .

Paso 1: Carga del cerebro de Cartpole

Bonsai proporciona un simulador preempaquetado y código de ejemplo para el problema de péndulo invertido (Cartvela). Para crear el cerebro:

  1. Sign into the Bonsai UI.
  2. Seleccione Cartlejos en la lista de cerebros de demostración en el Tareas iniciales de diálogo.
  3. Asigne un nombre al nuevo cerebro (por ejemplo, "Demostración de Cartpole").
  4. Haga clic en Create Brain (Crear cerebro) para cargar el cerebro de ejemplo y el simulador.

Pantalla

Captura de pantalla parcial de la pantalla "Crear cerebro" con el cerebro de ejemplo de Cartpole resaltado.

Paso 2: Inspección del plan de estudios

Bonsai abre la interfaz de usuario de enseñanza cuando se carga el cerebro de demostración. La interfaz de usuario de enseñanza incluye un panel de codificación y un panel de grafos. El panel de codificación muestra el código de enseñanza (el plan de estudios) escrito en un lenguaje propietario llamado Inkling. El grafo del panel de grafos representa el proceso de aprendizaje iterativo definido por el código Inkling.

<span class= Bonsai <span class= Teaching UI" aria-describedby="50-0" data-linktype="relative-path">

Captura de pantalla anotada de la interfaz de usuario de enseñanza Bonsai dividida en tres paneles (izquierda, centro y derecha). En el panel izquierdo se muestran los cerebros y simuladores disponibles. El panel central tiene la anotación "Panel de codificación" y muestra el código Inkling de ejemplo. El panel derecho tiene la anotación "Panel de grafos" y muestra un grafo de enseñanza. El grafo de enseñanza tiene tres nodos organizados verticalmente (superior, central e inferior). El nodo superior tiene la etiqueta "SimState". El nodo central tiene la etiqueta "Concept BalancePole". El nodo inferior tiene la etiqueta "SimAction".

Al hacer clic en los distintos nodos del grafo de enseñanza se resalta la sección pertinente en el código de ejemplo:

  • Nodo de estado: encapsula la información disponible para el cerebro a medida que se ejecuta la simulación (los estados observables del sensor). Para Cartpole, los estados observables del sensor son la posición y velocidad actuales de la base y el ángulo actual del mástil.
  • Nodo de concepto: encapsula el concepto que quiere que el cerebro aprenda según lo definido por los objetivos de entrenamiento. Para Cartpole, el concepto es equilibrar un mástil dentro de una tolerancia determinada dentro de un área predefinida. Los objetivos de Inkling correspondientes son evitar que el poste se caiga (avoid Fall Over) y evitar que la base se mueva fuera del borde de la pista (avoid Out Of Range).
  • Nodo de acción: encapsula el conjunto de acciones válidas que el cerebro puede realizar en respuesta al estado observado. Para Cartpole, las acciones disponibles son empujar la base a la izquierda o a la derecha en la pista.

Paso 3: Entrenamiento del cerebro

Importante

La ejecución de simulaciones consume recursos de Azure. Al seguir el inicio rápido tal y como está escrito, se cobrará a la suscripción de Azure aproximadamente 1,00 USD. El entrenamiento repetido o la ejecución del entrenamiento durante más tiempo del recomendado dará como resultado un costo adicional.

Abra la interfaz de usuario de entrenamiento y empiece a entrenar el cerebro; para ello, haga clic en el botón verde Train (Entrenar) del panel de grafos.

La interfaz de usuario de entrenamiento reemplaza el panel de codificación por un panel de datos vacío y muestra un grafo de enseñanza actualizado. Cuando se inicia el entrenamiento, Bonsai se inicia automáticamente una flota de instancias de simulador. La flota aparece en el gráfico actualizado como un nuevo nodo llamado Simulator (Simulador).

El nodo Simulator (Simulador) muestra lo siguiente:

  • el nombre del simulador, "BalancePoleSimulator".
  • el número total de instancias de simulador de la flota.
  • la velocidad general de la flota en iteraciones por segundo.

<span class= Bonsai <span class= Training UI" aria-describedby="100-0" data-linktype="relative-path">

Captura de pantalla de la Bonsai interfaz de usuario de entrenamiento. El panel de datos de la interfaz de usuario muestra un gráfico de rendimiento de ejemplo con tendencia ascendente. El panel de grafos de la interfaz de usuario muestra un grafo de enseñanza actualizado. El grafo de enseñanza ahora incluye el nodo Simulator (Simulador) a la izquierda de los nodos anteriores. El nodo Simulator está conectado al nodo SimState y al nodo SimAction. El nuevo nodo tiene la etiqueta "Simulator BalancePoleSimulator" y se divide en dos secciones. La sección izquierda muestra el número de instancias de simulador conectadas (16) y la sección derecha muestra el nivel actual de satisfacción del objetivo (95,3 %).

Con cada iteración, el cerebro obtiene una puntuación de rendimiento en función de lo bien que resolvió el problema. Bonsai notifica el progreso del entrenamiento del cerebro en el panel de datos como un gráfico Bonsai objetivo. Los valores individuales de satisfacción del objetivo indican lo cerca que estuvo el cerebro de lograr el objetivo relacionado para una iteración determinada. El valor de satisfacción del objetivo general más reciente también se notifica en el nodo de concepto del grafo de enseñanza.

Los trazados de satisfacción deben ser ascendentes a medida que el cerebro mejora al equilibrar el mástil.

Paso 4: Inspección del cerebro en acción

El simulador de Cartpole incluye un visualizador para que pueda ver el cerebro en acción a medida que trabaja en una simulación determinada. Para ver la visualización, desplácese hacia abajo en el panel de datos.

El visualizador representa un modelo 3D de una base simple (el carro) y un mástil. La base se mueve a la izquierda y a la derecha en la pantalla en respuesta a la posición cambiante del mástil.

Visualización de la simulación

Captura de pantalla de la Bonsai interfaz de usuario de entrenamiento. El panel de datos se ha desplazado hacia abajo para mostrar una representación en 3D de una base con ruedas simple que equilibra un mástil vertical.

El visualizador también muestra un grafo de variables de estado cambiantes y acciones debajo del modelo representado. Pruebe a hacer clic en los valores de cart_position y pole_angle para realizar un seguimiento de cómo cambian la posición de la base y el ángulo del mástil con el tiempo.

Paso 5: Detener el entrenamiento

Bonsai detiene automáticamente el entrenamiento cuando se produce alguna de las siguientes situaciones:

  • el valor de satisfacción del objetivo general alcanza el 100 %
  • las líneas del grafo se convierten en líneas horizontales para un número predefinido de episodios de entrenamiento.

Un valor de satisfacción del 100 % significa que el cerebro ha aprendido completamente el plan de estudios actual. Una línea de trazado horizontal significa que el cerebro ya no mejora. Cuando un cerebro no puede mejorar después de un número determinado de episodios (tal y como se define en ), finaliza el entrenamiento para evitar el NoProgressIterationLimitBonsai desa pérdida de recursos informáticos.

Sugerencia

El cerebro de demostración de Cartpole normalmente logra un rendimiento óptimo en 750 000 iteraciones.

Si desea detener el entrenamiento antes, haga clic en el botón rojo Stop Training (Detener entrenamiento) situado en la parte superior del panel de grafos.

Pasos siguientes

Felicidades. Entrenó correctamente un cerebro para equilibrar un polo en una base móvil.

Ahora que comprende los conceptos básicos del cerebro de Cartpole, pruebe a personalizar el código Inkling para cambiar los objetivos de entrenamiento.