Tutorial: Creación de un archivo de configuración de evaluación
Siga este tutorial para aprender:
- Cómo diseñar evaluaciones personalizadas.
- Cómo escribir un archivo de configuración de evaluación.
- Cómo traducir tipos
SimConfiga configuraciones de episodios.
Para seguir este tutorial, 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 antes de continuar.
Captura de pantalla del menú emergente Agregar interfaz de usuario de evaluación personalizada. La interfaz de usuario solicita un nombre para mostrar, una descripción y un símbolo del sistema para cargar un archivo JSON.
Diseño de una evaluación personalizada
En La enseñanza automática, la evaluación significa evaluar el modo en que la inteligencia artificial aprueba una directiva en un conjunto de escenarios (configuraciones de episodios).
La evaluación le permite determinar la calidad y solidez del comportamiento aprendido en la simulación con el registro de datos y, para las simulaciones que lo admiten, visualizaciones en directo.
Al diseñar una evaluación personalizada, tenga en cuenta lo siguiente:
- Empiece por identificar los elementos específicos que desea evaluar sobre el rendimiento de la directiva y desarrolle planes de evaluación para cada uno de esos elementos.
- Si tiene una variedad de escenarios que desea evaluar, considere la posibilidad de dividirlos en evaluaciones independientes para facilitar el análisis de datos.
- Pruebe una amplia gama de escenarios, incluidos los casos comunes, los casos óptimos y el peor caso.
- Considere los escenarios que son extremos o que se suceden con poca frecuencia (casos perimetrales y casos de esquina).
- Si la directiva permite estados iniciales inesperados o no válidos, incluya escenarios no válidos en la evaluación.
- Si la simulación incluye distribuciones aleatorias de probabilidad (un simulador estocástico) y desea ejecutar un escenario determinado varias veces, debe tener varias entradas de la misma configuración de episodio.
Creación de un archivo de configuración de evaluación vacío
Bonsai usa archivos de configuración de evaluación para inicializar el entorno de simulación utilizado para evaluar el cerebro de destino. Los archivos de configuración de evaluación son archivos JSON simples con tres campos: versioncontext , y episodeConfigurations :
{
"version": "ASSESSMENT_SCHEMA_VERSION",
"context": {},
"episodeConfigurations": []
}
El elemento principal del archivo de configuración de evaluación es el episodeConfigurations campo . episodeConfiguration es una matriz de una o varias entradas que representan las configuraciones de simulación iniciales para la evaluación en función del tipo SimConfig de archivo inkling. Si no proporciona valores iniciales explícitos en el archivo de configuración, usa el valor predeterminado tal como Bonsai se define en la simulación de entrenamiento.
Para crear una nueva configuración de evaluación:
- Abra el editor de texto sin formato que prefiera (Visual Studio Code, Atom, etc.).
- Cree un nuevo
.jsonarchivo y asímótelo con la fecha y el propósito de la evaluación. Por ejemplo, "BadTierin-2021-01-21.json" o "HighTemps-2021-02-05.json". - Copie la plantilla de configuración siguiente en el nuevo archivo.
{
"version": "1.0.0",
"context": {},
"episodeConfigurations": []
}
Sugerencia
Puede usar la interfaz Bonsai de usuario para crear un archivo de configuración básico:
- Abra Bonsai UI.
- Seleccione la versión del cerebro que desea evaluar.
- Seleccione en la pestaña Entrenar.
- Seleccione el botón + Evaluación nueva en el panel de evaluación.
- Establezca el número de episodios para la valoración.
- Especifique un valor, un conjunto de valores o un intervalo de valores para las variables configurables que quiera restringir mediante la sintaxis de Inkling.
- Haga clic en Generar.
- Copie el JSON generado en un editor de texto y guarde el archivo con una extensión .json.
- Siga el resto del tutorial para realizar personalizaciones adicionales.
Traducir el tipo SimConfig a configuraciones de episodios
La parte más importante del archivo de configuración de evaluación es la matriz de configuraciones de episodios. Las configuraciones de Bonsai episodios le dicen cómo configurar la simulación cuando se inicia la evaluación. Cada archivo de configuración de evaluación debe tener al menos una configuración de episodio.
Las configuraciones de episodios deben tener la misma estructura que el tipo del archivo Inkling para la versión del cerebro SimConfig que desea evaluar.
El siguiente tipo de Inkling:
type SimConfig {
ConfigField_1: Field_1_Type,
ConfigField_2: {
TypeSubField_1: SubField_1_Type,
TypeSubField_2: SubField_2_Type,
}
...
ConfigField_N: Field_N_Type,
}
Se traduce a la siguiente definición de episodio en la configuración de evaluación:
{
"ConfigField_1": "Value_1",
"ConfigField_2": {
"TypeSubField_1": "SubValue_1",
"TypeSubField_2": "SubValue_2",
},
...
"ConfigField_N": "Value_N",
}
Importante
Aunque la mayoría de los campos numéricos se pasan como números en el archivo de configuración, los tipos de números enumerados deben pasarse como cadenas.
Traducción de tipos de campo SimConfig único
Supongamos que SimConfig el tipo del archivo inkling incluye un único campo denominado de tipo DriveDirection :
type Direction number<Left = 0, Right = 1, Straight = 2, Back = 3>
type SimConfig { Drive: Direction }
Cada entrada de la matriz de configuración de episodio debe proporcionar un valor válido para Drive tal y como lo define el tipo Direction . Por ejemplo:
[
{"Drive": "Left"},
{"Drive": "Right"},
{"Drive": "Back"}
]
Puesto que la información de configuración de simulación es un valor único, puede asignar los valores al campo Bonsai sin un nombre de campo Drive explícito. Como resultado, las entradas de la matriz de configuración de episodios pueden excluir el nombre del campo por motivos de simplicidad, si lo prefiere:
[
"Left",
"Right",
"Back"
]
Traducción de tipos SimConfig simples
Supongamos que SimConfig el tipo del archivo inkling incluye dos valores denominados y de tipo y DriveRoadConditionDirectionTerrain :
type Direction number<Left = 0, Right = 1, Straight = 2, Back = 3>
type Terrain string<Bad = "B", Rough = "R", Clear = "C">
type SimConfig {
Drive: Direction,
RoadCondition: Terrain
}
Cada entrada de la matriz de configuración de episodios debe establecer los campos y con valores válidos, tal y como Drive definen los tipos y RoadConditionDirectionTerrain .
Por ejemplo, suponga que desea evaluar el cerebro de conducción en los dos escenarios siguientes:
- Empiece por conducir a la izquierda en una carretera aproximada.
- Empiece por conducir a la izquierda en una carretera despejado.
El archivo de configuración tendría dos configuraciones de episodio. Uno que establece los valores iniciales en {Left, Rough} y otro que establece los valores iniciales en {Left, Clear} :
[
{
"Drive": "Left",
"RoadCondition": "Rough"
},
{
"Drive": "Left",
"RoadCondition": "Clear"
}
Traducción con SimConfig diccionarios anidados
Supongamos que SimConfig el tipo del archivo inkling incluye tres campos:
| Nombre | Tipo | Propósito |
|---|---|---|
Drive |
Movement |
indica la orientación actual y la condición de carretera de un automóvil eléctrico. |
BatteryLevel |
number<0 .. 1> |
indica la carga actual de la batería del automóvil como porcentaje. |
AmbientTemp |
Temperature |
indica la temperatura del área circundante en Celsius. |
type Direction number<Left = 0, Right = 1, Straight = 2, Back = 3>
type Terrain string<Bad = "B", Rough = "R", Clear = "C">
type Movement {
Orientation: Direction,
RoadCondition: Terrain
}
type Temperature number<-90 .. 60>
type SimConfig {
Drive: Movement,
BatteryLevel: number<0 .. 1>,
AmbientTemp: Temperature
}
Cada entrada de la matriz de configuración de episodios debe establecer valores iniciales válidos para , y tal y como DriveBatteryLevel definen los tipos AmbientTemp correspondientes.
Por ejemplo, suponga que desea evaluar el cerebro de conducción en los siguientes escenarios:
- Empiece por conducir a la izquierda en una carretera con una batería llena durante un día de verano en Berkeley, CA.
- Comience con la conducción hacia atrás en una carretera despejado con una batería casi vacía en un día de verano en Berkeley, CA.
- Empiece por conducir directamente en una carretera mala con media batería en un día de primavera en Berkeley, CA.
El archivo de configuración tendría tres configuraciones de episodio:
[
{
"Drive": {
"Orientation": "Left",
"RoadCondition": "Rough"
},
"BatteryLevel": 1,
"AmbientTemp": 14
},
{
"Drive": {
"Orientation": "Back",
"RoadCondition": "Clear"
},
"BatteryLevel": 0.1,
"AmbientTemp": 22
},
{
"Drive": {
"Orientation": "Straight",
"RoadCondition": "Bad"
},
"BatteryLevel": 0.5,
"AmbientTemp": 18
},
Pasos siguientes
Ahora que sabe cómo crear archivos de configuración de evaluación, pruebe a usar uno para evaluar un cerebro entrenado.