Självstudie: Skapa en utvärderingskonfigurationsfil

Följ den här självstudien för att lära dig:

  • Så här utformar du anpassade utvärderingar.
  • Så här skriver du en utvärderingskonfigurationsfil.
  • Så här översätter SimConfig du typer till avsnittskonfigurationer.

Om du vill följa den här självstudien måste du ha ett Microsoft- eller Azure-konto och en Bonsai arbetsyta etablerad i Azure. Om du behöver ett konto eller en Utvärderingsversion av Azure följer du anvisningarna i Microsoft-kontokonfigurationen innan Bonsai du fortsätter.

Add custom assessment

Skärmbild av popup-fönstret Lägg till anpassat utvärderingsgränssnitt. Användargränssnittet frågar efter ett visningsnamn, en beskrivning och en uppmaning om att ladda upp en JSON-fil.

Utforma en anpassad utvärdering

I Maskinundervisning innebär utvärderingen att du utvärderar hur väl din AI antar en princip i en uppsättning scenarier (avsnittskonfigurationer).

Med utvärdering kan du fastställa kvaliteten och robustheten i det inlärda beteendet i simulering med dataloggning och, för simuleringar som stöder det, livevisualiseringar.

Tänk på följande när du utformar en anpassad utvärdering:

  • Börja med att identifiera de specifika element som du vill utvärdera om din principprestanda och utveckla utvärderingsplaner för vart och ett av dessa element.
  • Om du har en mängd olika scenarier som du vill utvärdera kan du överväga att dela upp dem i separata utvärderingar för enklare dataanalys.
  • Testa en mängd olika scenarier, inklusive vanliga fall, optimala fall och värsta fall.
  • Överväg scenarier som är extrema eller inträffar sällan (kantfall och hörnfall).
  • Om principen tillåter oväntade eller ogiltiga starttillstånd ska du inkludera ogiltiga scenarier i utvärderingen.
  • Om simuleringen innehåller slumpmässiga sannolikhetsfördelningar (en stokastisk simulator) och du vill köra ett visst scenario flera gånger måste du ha flera poster i samma avsnittskonfiguration.

Skapa en tom utvärderingskonfigurationsfil

Bonsai använder utvärderingskonfigurationsfiler för att initiera simuleringsmiljön som används för att utvärdera den riktade hjärnan. Utvärderingskonfigurationsfiler är enkla JSON-filer med tre fält: version, contextoch episodeConfigurations:

{
  "version": "ASSESSMENT_SCHEMA_VERSION",
  "context": {},
  "episodeConfigurations": []
}

Kärnelementet i din utvärderingskonfigurationsfil är fältet episodeConfigurations . episodeConfiguration är en matris med en eller flera poster som representerar startsimuleringskonfigurationer för utvärderingen baserat på SimConfig vilken typ av Inkling-fil du har. Om du inte anger explicita startvärden i konfigurationsfilen Bonsai använder du standardvärdet enligt definitionen i träningssimuleringen.

Så här skapar du en ny utvärderingskonfiguration:

  1. Öppna önskad oformaterad textredigerare (Visual Studio Kod, Atom osv.)
  2. Skapa en ny .json fil och ge den namnet med datumet och syftet med utvärderingen. Till exempel "BadTerrain-2021-01-21.json" eller "HighTemps-2021-02-05.json".
  3. Kopiera konfigurationsmallen nedan till den nya filen.
{
  "version": "1.0.0",
  "context": {},
  "episodeConfigurations": []
}

Tips

Du kan använda användargränssnittet Bonsai för att skapa en grundläggande konfigurationsfil:

  1. Öppna användargränssnittetBonsai.
  2. Välj den hjärnversion som du vill utvärdera.
  3. Välj på fliken Träna .
  4. Välj knappen + Ny utvärdering i utvärderingspanelen.
  5. Ange antalet avsnitt för utvärderingen.
  6. Ange ett värde, en uppsättning värden eller ett värdeintervall för alla konfigurerbara variabler som du vill begränsa med hjälp av Inkling-syntax.
  7. Klicka på Generera.
  8. Kopiera den genererade JSON:en till en textredigerare och spara filen med ett .json-tillägg.
  9. Följ resten av självstudien för att göra ytterligare anpassningar.

Översätta din SimConfig typ till avsnittskonfigurationer

Den viktigaste delen av utvärderingskonfigurationsfilen är matrisen med avsnittskonfigurationer. Avsnittskonfigurationer visar Bonsai hur du konfigurerar simuleringen när utvärderingen startar. Varje utvärderingskonfigurationsfil måste ha minst en avsnittskonfiguration.

Avsnittskonfigurationer måste ha samma struktur som SimConfig typen i Inkling-filen för den hjärnversion som du vill utvärdera.

Följande Inkling-typ:

type SimConfig {
  ConfigField_1: Field_1_Type,
  ConfigField_2: {
    TypeSubField_1: SubField_1_Type,
    TypeSubField_2: SubField_2_Type,
  }
  ...
  ConfigField_N: Field_N_Type,
}

Översätts till följande avsnittsdefinition i utvärderingskonfigurationen:

{
  "ConfigField_1": "Value_1",
  "ConfigField_2": {
    "TypeSubField_1": "SubValue_1",
    "TypeSubField_2": "SubValue_2",
  },
  ...
  "ConfigField_N": "Value_N",
}

Viktigt

De flesta talfält skickas som tal i konfigurationsfilen, men uppräknade nummertyper måste skickas som strängar.

Översättning av enkla fälttyper SimConfig

SimConfig Anta att typen i Inkling-filen innehåller ett enda fält som heter Drive av typen Direction:

type Direction number<Left = 0, Right = 1, Straight = 2, Back = 3>
type SimConfig { Drive: Direction }

Varje post i matrisen för episodekonfiguration måste ange ett giltigt värde för Drive enligt definitionen av Direction typen . Ett exempel:

[
  {"Drive": "Left"},
  {"Drive": "Right"},
  {"Drive": "Back"}
]

Eftersom simuleringskonfigurationsinformationen är ett enda värde kan Bonsai du mappa värdena till fältet Drive utan ett explicit fältnamn. Därför kan posterna i matrisen för episodkonfiguration undanta fältnamnet för enkelhetens skull, om du vill:

[
  "Left",
  "Right",
  "Back"
]

Översätta enkla SimConfig typer

SimConfig Anta att typen i Inkling-filen innehåller två värden som heter Drive och RoadCondition av typen Direction och Terrain:

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
}

Varje post i episodens konfigurationsmatris måste ange Drive och RoadCondition fält med giltiga värden som definieras av typerna Direction och Terrain .

Anta till exempel att du vill utvärdera den drivande hjärnan mot följande två scenarier:

  • Börja med att köra vänster på en grov väg.
  • Börja med att köra vänster på en klar väg.

Konfigurationsfilen skulle ha två avsnittskonfigurationer. En som anger startvärdena till {Left, Rough} och en som anger startvärdena till {Left, Clear}:

[
  {
    "Drive": "Left",
    "RoadCondition": "Rough"
  },
  {
    "Drive": "Left",
    "RoadCondition": "Clear"
  }

Översätta SimConfig med kapslade ordlistor

Anta att SimConfig typen i Inkling-filen innehåller tre fält:

Namn Typ Syfte
Drive Movement anger aktuell orientering och vägförhållanden för en elbil.
BatteryLevel number<0 .. 1> anger den aktuella laddningen av bilbatteriet i procent.
AmbientTemp Temperature anger temperaturen i det omgivande området i 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
}

Varje post i episodens konfigurationsmatris måste ange giltiga startvärden för Drive, BatteryLeveloch AmbientTemp enligt definitionen av motsvarande typer.

Anta till exempel att du vill utvärdera den drivande hjärnan mot följande scenarier:

  • Börja med att köra vänster på en grov väg med ett fullt batteri på en vinterdag i Berkeley, CA.
  • Börja med att köra bakåt på en klar väg med ett nästan tomt batteri på en sommardag i Berkeley, CA.
  • Börja med att köra rakt på en dålig väg med ett halvt batteri på en vårdag i Berkeley, CA.

Konfigurationsfilen skulle ha tre avsnittskonfigurationer:

[
  {
    "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
  },

Nästa steg

Nu när du vet hur du skapar konfigurationsfiler för utvärdering kan du prova att använda en för att utvärdera en tränad hjärna.