Validación de la simulación para enseñanza automática
El Bonsai motor de entrenamiento usa el aprendizaje de refuerzo (RL) para estructurar la enseñanza automática para los cerebros. Las simulaciones posibilitan el aprendizaje de refuerzo con datos y un entorno interactivo para el entrenamiento iterativo. Pero no todas las simulaciones son compatibles con la enseñanza automática. Comprobar la preparación de la simulación es fundamental para entrenar correctamente un cerebro con Bonsai .
Importante
Los pasos siguientes representan los procedimientos recomendados básicos para la validación de la simulación. En última instancia, el desarrollo de un proceso de validación completo y adecuado al dominio requiere experimentación y comparaciones específicas de la situación con los datos del mundo real. El objetivo de cualquier plan de validación debe ser identificar y abordar las brechas críticas entre el entorno simulado y el entorno real en el que se implementará el cerebro.
Antes de comenzar
- Asegúrese de que puede interactuar con la simulación mediante programación. Puede usar el lenguaje de programación de su elección.
- Asegúrese de que admite Bonsai la plataforma de simulación (o lenguaje).
Paso 1: Comprobación de la función de ejecución paso a paso
Para permitir el aprendizaje de refuerzo, el simulador debe responder a cambios de información iterativos. Para controlar los cambios iterativos, la simulación debe incluir una función de ejecución paso a paso. La función de ejecución paso a paso acepta variables de entrada (acciones) y devuelve valores de salida (estados) a menos que se produzca una condición terminal.
- Las variables de entrada representan las acciones realizadas por Bonsai el cerebro durante la Bonsai anterior.
- Las variables de salida proporcionan información de resultados que el cerebro utilizará durante la iteración actual.
Por ejemplo, supongamos una simulación de climatización de un colmenar que controla la temperatura mediante la manipulación de los respiraderos de circulación. El número y la posición de los respiraderos abiertos son las variables de entrada. La temperatura interna del colmenar es el estado de salida. Para trabajar con la enseñanza automática, la simulación debe permitir cambios iterativos en la posición y el número de respiraderos abiertos y devolver la nueva temperatura en cada iteración.
Para comprobar la función de ejecución paso a paso:
- Confirme que el conjunto de acciones de control de entrada esperadas coincide con o es un superconjunto del conjunto de acciones con las que se entrenará el cerebro.
- Confirme que la función de ejecución paso a paso es determinista. En otras palabras, todas las entradas posibles tienen un estado de salida correspondiente o una condición terminal.
- Confirme que la información del estado de salida utiliza las unidades correctas. Por ejemplo, si el cerebro espera la temperatura en grados Celsius, confirme que la simulación no envíe la información de temperatura en grados Kelvin.
Paso 2: Comprobación de las condiciones terminales y la función de restablecimiento
Una parte importante de la simulación iterativa es saber cuándo detener y restablecer el proceso. Las condiciones terminales permiten a la simulación saber cuándo ha llegado el cerebro a un punto en el que la recuperación ya no es posible. Por ejemplo, la temperatura dentro de un colmenar ha alcanzado un punto en el que las abejas habrían muerto.
Cuando se produce una condición terminal, la función de restablecimiento debe volver a establecer el entorno de la simulación en el estado de inicio esperado para que el cerebro pueda intentarlo de nuevo.
Para comprobar las condiciones terminales y la función de restablecimiento:
- Confirme que las condiciones terminales se pueden producir realmente como parte de la salida de la simulación. Por ejemplo, si la simulación del colmenar se establece en un entorno tropical y la simulación solo finaliza cuando la temperatura cae por debajo del punto de congelación, nunca finalizará.
- Confirme que la función de restablecimiento se expone a los usuarios para que la plataforma pueda Bonsai llamarla.
- Confirme que controla los casos perimetrales correctamente. Por ejemplo, si es posible que las temperaturas cambien en más de 1 grado en una iteración, compruebe si hay valores superiores a un valor límite en lugar de la igualdad.
Paso 3: Comprobación de las variables de configuración
El simulador debe admitir la inicialización de variables de entorno para que Bonsai el cerebro pueda entrenarse en una variedad de escenarios. Por ejemplo, una simulación de climatización de un colmenar debe admitir cualquier temperatura de inicio razonable.
Para comprobar las variables de configuración:
- Confirme que el conjunto de variables de configuración disponibles cubre toda la información de estado de inicio correspondiente.
- Confirme que la función de restablecimiento puede establecer las variables de configuración.
- Confirme que las unidades entre la simulación y el cerebro coincidan o se conviertan correctamente.
Paso 4: Diseño de un protocolo de prueba base
Un protocolo de prueba base establece un caso simple (base) y ejecuta los pasos de la simulación en un bucle para ese caso un número predefinido de iteraciones. Use los datos de salida generados para un análisis más detallado para confirmar que el simulador se comporta según lo previsto.
El protocolo de prueba base depende de dos métricas:
- Frecuencia de control (CF): frecuencia con la que el cerebro toma acciones para controlar el entorno simulado expresado como una medida de eventos por métrica, que normalmente se indica en hercios (Hz). La métrica de la ventana de control debe reflejar la medida real (tiempo, distancia) que espera que use el cerebro entrenado al evaluar y tomar acciones para controlar el entorno real.
- Tiempo de simulación (ST): cantidad de tiempo de reloj real que se tarda en simular la ventana de control deseada. El ST de una iteración determinada variará en función de la complejidad de la simulación.
Para determinar una frecuencia de control adecuada, calcule el número de eventos de control que el cerebro debe controlar en una unidad significativa de la métrica de control. Los sistemas de control basados en tiempo suelen calcular la CF en eventos por segundo, mientras que los sistemas de control basados en distancia suelen calcular la CF en eventos por metro.
Por ejemplo, suponga que quiere que el cerebro del climatizador del colmenar evalúe el estado del colmenar y tome medidas cada 100 ms cuando se implemente. Para imitar eficazmente el entorno de producción, cada iteración del entrenamiento debe simular una ventana de 100 ms con una acción de control por cada iteración.
1 evento cada 100 ms → 1 evento100 ms
1000 ms por segundo → (1evento 100 ms) × (1000 ms1 segundo ) → frecuencia de destino es 10 eventos de control por segundo
Por definición:
1 Hz = 1 evento por segundo
Por lo tanto, para confirmar que la simulación replica el entorno correctamente, el protocolo de prueba base debe usar una frecuencia de control de 10 Hz.
Nota
La definición de la frecuencia de control en hercios es habitual, pero no es necesaria. En última instancia, lo que debe determinar es cuántos eventos de control desea para una medida determinada. Una vez que sepa con qué frecuencia se deben producir los eventos de control, puede determinar el resto de las variables de la prueba.
Una vez que calcule la frecuencia de control, puede usar los pasos siguientes para diseñar un protocolo base general que pueda adaptar a los detalles de la simulación:
- Ejecute la simulación con una configuración predeterminada para generar un archivo de registro típico.
- En función de la CF y el archivo de registro, determine el número máximo de iteraciones que desea permitir para los episodios de entrenamiento.
- Asegúrese de que puede calcular y registrar la siguiente información para cada iteración de la prueba:
- Todos los estados de salida proporcionados por el simulador.
- Valor real de la CF obtenido por la simulación.
- Valor del ST de la simulación.
- Analice la relación entre las entradas y salidas del archivo de registro para identificar un escenario de configuración simple (prueba).
- Defina al menos un escenario de pruebas fijo. Seleccione una configuración inicial adecuada y determine las acciones de control esperadas (respuestas de directiva) para cada iteración del escenario de prueba.
- Defina al menos un escenario de pruebas aleatorio. Para una configuración inicial arbitraria, escriba código de pruebas que seleccione aleatoriamente una de las acciones de control disponibles para cada iteración del escenario de pruebas.
- Escriba código de pruebas para llamar a la función de ejecución paso a paso con la entrada deseada (fija o aleatoria) para cada iteración y repita el proceso hasta que alcance una condición terminal o el número máximo de iteraciones que haya determinado anteriormente.
Paso 5: Ejecución de un protocolo de prueba base
La validación de la simulación es un proceso iterativo. Debe esperar ejecutar el protocolo de prueba varias veces con diferentes configuraciones iniciales y volver a ejecutar el protocolo a medida que realice ajustes en la simulación.
Sugerencia
Para obtener los mejores resultados, debe tener varias configuraciones definidas para las directivas fijas y aleatorias.
Para cada ejecución de las pruebas:
- Establezca el simulador en el estado inicial del escenario de pruebas.
- Ejecute la simulación con distintas entradas para el escenario de pruebas fijo.
- Ejecute la simulación con distintas entradas para el escenario de pruebas aleatorio.
- Ejecute la simulación para un gran número de iteraciones para que se pueda producir un restablecimiento.
- Ejecute la simulación y fuerce un restablecimiento en un punto aleatorio.
- Ejecute la simulación con una configuración inicial que fuerce un restablecimiento.
Paso 6: Análisis de los resultados de la prueba
No hay ninguna manera correcta de analizar los resultados de una prueba de simulación. A continuación se indican algunos procedimientos recomendados, pero también debe confiar en su creatividad y experiencia en la materia para evaluar el comportamiento de la simulación. Trazar los resultados como entradas frente a salidas puede facilitar el análisis del comportamiento del simulador y la comunicación de los resultados a otros usuarios.
Evaluación de la confiabilidad
La confiabilidad de la simulación está directamente relacionada con la relación entrada-salida (acción-estado) del protocolo base. Ejecutar el mismo escenario con una directiva de control fija y una directiva de control aleatoria facilita la determinación de la confiabilidad:
- La directiva fija debería dar lugar a un resultado bien comprendido.
- La directiva aleatoria genera condiciones inesperadas en el simulador.
La directiva fija ayuda a comprobar un comportamiento satisfactorio, mientras que la directiva aleatoria ayuda a identificar los casos perimetrales en los que la simulación es lenta, se bloquea o tiene otros problemas.
Por ejemplo, en la simulación de climatización del colmenar, la apertura de un respiradero debe reducir la temperatura del colmenar. Si la temperatura aumenta, indica que la simulación contiene errores.
Evaluación de la flexibilidad
La flexibilidad de la simulación está directamente relacionada con el modo en que controla las distintas configuraciones. Revise los registros de las directivas de control fijas y aleatorias. Para cada una de las configuraciones iniciales, determine si los cambios correspondientes en el entorno simulado tienen sentido.
Por ejemplo, al cambiar el tamaño y el número de respiraderos de circulación del colmenar, se debe tener un cambio correspondiente en la rapidez o lentitud con la que cambia la temperatura cuando se abren los respiraderos.
Evaluación de la recuperación
Una parte crítica de la enseñanza automática es la capacidad de restablecer el entorno de entrenamiento cuando sea necesario. Compruebe los registros de pruebas para ver todos los lugares en los que se ha producido una condición terminal y el restablecimiento del entorno. Observe el estado del simulador, las acciones resultantes cuando se produjo el restablecimiento y si el comportamiento tiene sentido en ese contexto.
Importante
Si observa una condición terminal de falso positivo o falso negativo, indica que la simulación contiene errores.
Por ejemplo, ¿se ha restablecido la climatización del colmenar cuando la temperatura interna haya alcanzado un punto en el que todas las plantas del entorno se secarían y marchitarían? ¿La nueva temperatura interna después del restablecimiento tiene sentido como temperatura inicial?
Evaluación de la frecuencia de control simulada
Si planea implementar el cerebro en hardware en lugar de instalarlo como software, la frecuencia de control simulada debe ser igual a (o un factor de) la frecuencia de control real que espera ver en producción. De este modo, la ejecución paso a paso puede realizar un bucle tantas veces como sea necesario para mantener la CF de la simulación en línea con la CF de hardware esperada.
Por ejemplo, si el hardware del cerebro tiene una CF de 100 Hz, la simulación debe permitir entradas cada 10 ms de simulación real.
1 Hz = 1 evento por segundo → 100 Hz = 100 eventos por segundo
1000 ms por segundo → 1000 ms100 eventos = 10 ms por evento
Los controles de simulación cada 1 ms, 2 ms y 5 ms también funcionarán. En cada caso, el simulador puede recorrer en bucle los tiempos adicionales de la función de ejecución paso a paso para lograr la frecuencia de control deseada.
| Ventana de control simulada | Bucles necesarios | CF simulada |
|---|---|---|
| 1 ms | 10 | 1000 Hz |
| 2 ms | 5 | 500 Hz |
| 5 ms | 2 | 200 Hz |
Evaluación del tiempo de simulación
Calcule el valor promedio del ST de todas las iteraciones, en todas las ejecuciones de prueba. Para trabajar de forma confiable con la enseñanza automática y , el promedio de ST para la simulación debe Bonsai ≤ 20 segundos.
Si el ST promedio está por encima del umbral admitido, se considera un simulador lento y no puede proporcionar al cerebro un modelo realista para el entrenamiento.
Pasos siguientes
Una vez que haya validado el simulador, intente ejecutarlo localmente en un archivo inkling básico para empezar a integrarlo con Bonsai .