Zelfstudie: Een evaluatieconfiguratiebestand maken
Volg deze zelfstudie voor meer informatie:
- Aangepaste evaluaties ontwerpen.
- Een configuratiebestand voor de evaluatie schrijven.
- Typen vertalen
SimConfignaar configuraties.
Als u deze zelfstudie wilt volgen, moet u een geldig Microsoft- of Azure-account en een geldige Bonsai werkruimte hebben ingericht in Azure. Als u een account of proefversie van Azure nodig hebt, volgt u de instructies in Microsoft account setup for Bonsai voordat u doorgaat.
Schermopname van de pop-up Ui voor aangepaste evaluatie toevoegen. De gebruikersinterface vraagt om een weergavenaam, beschrijving en een prompt om een JSON-bestand te uploaden.
Een aangepaste evaluatie ontwerpen
In Machine Teaching betekent evaluatie dat u moet evalueren hoe goed uw AI een beleid voor een reeks scenario's (configuraties voor scenario's) heeft.
Met evaluatie kunt u de kwaliteit en robuustheid van het geleerde gedrag bepalen in simulatie met gegevensregistratie en, voor simulaties die dit ondersteunen, livevisualisaties.
Houd bij het ontwerpen van een aangepaste evaluatie rekening met het volgende:
- Begin met het identificeren van de specifieke elementen die u wilt evalueren over de prestaties van uw beleid en ontwikkel evaluatieplannen voor elk van deze elementen.
- Als u verschillende scenario's wilt evalueren, kunt u overwegen deze op te delen in afzonderlijke evaluaties voor eenvoudigere gegevensanalyse.
- Test een breed scala aan scenario's, waaronder de veelvoorkomende gevallen, optimale gevallen en het slechtste geval.
- Denk na over scenario's die extreem zijn of niet vaak voorkomen (randgevallen en hoekgevallen).
- Als uw beleid onverwachte of ongeldige beginposities toestaat, moet u ongeldige scenario's opnemen in uw evaluatie.
- Als uw simulatie willekeurige waarschijnlijkheidsdistributies (een stochastische simulator) bevat en u een bepaald scenario meerdere keren wilt uitvoeren, moet u meerdere vermeldingen van dezelfde configuratie hebben.
Een leeg configuratiebestand voor de evaluatie maken
Bonsai maakt gebruik van evaluatieconfiguratiebestanden om de simulatieomgeving te initialiseren die wordt gebruikt om het gerichte brein te evalueren. Configuratiebestanden voor evaluatie zijn eenvoudige JSON-bestanden met drie velden: versioncontext , en episodeConfigurations :
{
"version": "ASSESSMENT_SCHEMA_VERSION",
"context": {},
"episodeConfigurations": []
}
Het belangrijkste element van uw evaluatieconfiguratiebestand is het episodeConfigurations veld . episodeConfiguration is een matrix van een of meer vermeldingen die simulatieconfiguraties voor uw evaluatie vertegenwoordigen op basis van het SimConfig type Inkling-bestand. Als u geen expliciete beginwaarden op geeft in uw configuratiebestand, gebruikt de Bonsai standaardwaarde zoals gedefinieerd in de trainingssimulatie.
Een nieuwe evaluatieconfiguratie maken:
- Open de gewenste teksteditor (Visual Studio Code, Atom, enzovoort)
- Maak een nieuw
.jsonbestand en noem het de datum en het doel van de evaluatie. Bijvoorbeeld 'BadTemps-2021-01-21.json' of 'HighTemps-2021-02-05.json'. - Kopieer de onderstaande configuratiesjabloon naar het nieuwe bestand.
{
"version": "1.0.0",
"context": {},
"episodeConfigurations": []
}
Tip
U kunt de Bonsai gebruikersinterface gebruiken om een eenvoudig configuratiebestand te maken:
- Open het Bonsai UI.
- Selecteer de breinversie die u wilt beoordelen.
- Selecteer op het tabblad Trainen.
- Selecteer de knop + Nieuwe evaluatie in het evaluatievenster.
- Stel het aantal minuten voor uw evaluatie in.
- Geef een waarde, set waarden of een waardebereik op voor configureerbare variabelen die u wilt beperken met behulp van inkling-syntaxis.
- Klik op Genereren.
- Kopieer de gegenereerde JSON naar een teksteditor en sla het bestand op met de extensie .json.
- Volg de rest van de zelfstudie om aanvullende aanpassingen te maken.
Uw type SimConfig vertalen naar configuraties voor een gebeurtenis
Het belangrijkste onderdeel van uw evaluatieconfiguratiebestand is de matrix met configuraties voor de evaluatie. In de configuraties van de Bonsai programma's wordt verteld hoe u uw simulatie configureert wanneer de evaluatie wordt gestart. Elk configuratiebestand voor de evaluatie moet ten minste één configuratie hebben.
De configuraties van de serie moeten dezelfde structuur hebben als het type in het Inkling-bestand voor de versie van het brein SimConfig die u wilt beoordelen.
Het volgende Inkling-type:
type SimConfig {
ConfigField_1: Field_1_Type,
ConfigField_2: {
TypeSubField_1: SubField_1_Type,
TypeSubField_2: SubField_2_Type,
}
...
ConfigField_N: Field_N_Type,
}
Wordt omgezet naar de volgende definitie in de evaluatieconfiguratie:
{
"ConfigField_1": "Value_1",
"ConfigField_2": {
"TypeSubField_1": "SubValue_1",
"TypeSubField_2": "SubValue_2",
},
...
"ConfigField_N": "Value_N",
}
Belangrijk
Hoewel de meeste getalvelden worden doorgegeven als getallen in het configuratiebestand, moeten geïndeereerde getaltypen worden doorgegeven als tekenreeksen.
Typen met één veld SimConfig vertalen
Stel dat SimConfig het type in uw Inkling-bestand één veld bevat met de naam van het type DriveDirection :
type Direction number<Left = 0, Right = 1, Straight = 2, Back = 3>
type SimConfig { Drive: Direction }
Elke vermelding in de configuratie matrix van de aflevering moet een geldige waarde voor Drive bieden, zoals gedefinieerd door het Direction type. Bijvoorbeeld:
[
{"Drive": "Left"},
{"Drive": "Right"},
{"Drive": "Back"}
]
Omdat de informatie over de simulatieconfiguratie één waarde is, kan Bonsai de waarden zonder expliciete veldnaam aan het Drive veld toevoegen. Als gevolg hiervan kunnen de vermeldingen in de configuratie matrix van uw aflevering de veldnaam voor het gemak uitsluiten, als u dat liever doet:
[
"Left",
"Right",
"Back"
]
Eenvoudige typen SimConfig vertalen
Stel dat SimConfig het type in uw Inkling-bestand twee waarden bevat met de naam en van het type en 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
}
Elke vermelding in de configuratie matrix van de aflevering moet velden Drive en instellen met geldige waarden zoals gedefinieerd door de typen en RoadConditionDirectionTerrain .
Stel dat u de stuurbreinen wilt beoordelen aan de hand van de volgende twee scenario's:
- Begin door links op een ruwe weg te rijden.
- Begin door links op een duidelijke weg te rijden.
Uw configuratiebestand bevat dan twee configuraties. Een die de beginwaarden in stelt op {Left, Rough} en een die de beginwaarden in stelt op {Left, Clear} :
[
{
"Drive": "Left",
"RoadCondition": "Rough"
},
{
"Drive": "Left",
"RoadCondition": "Clear"
}
Vertalen SimConfig met geneste woordenlijsten
Stel dat SimConfig het type in uw Inkling-bestand drie velden bevat:
| Naam | Type | Doel |
|---|---|---|
Drive |
Movement |
geeft de huidige richting en wegvoorwaarde voor een elektrische auto aan. |
BatteryLevel |
number<0 .. 1> |
geeft de huidige lading van de accu van de auto aan als een percentage. |
AmbientTemp |
Temperature |
geeft de temperatuur van het omliggende gebied in Celsius aan. |
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
}
Elke vermelding in de configuratie matrix van de aflevering moet geldige beginwaarden instellen voor Drive , en zoals gedefinieerd door de BatteryLevelAmbientTemp bijbehorende typen.
Stel dat u de stuurbreinen wilt beoordelen aan de hand van de volgende scenario's:
- Begin door links te rijden op een ruwe weg met een volledige accu op een winterdag in Berkeley, CA.
- Begin door op een zomerdag in Berkeley, CA, terug te rijden op een duidelijke weg met een bijna lege accu.
- Begin door op een slechte weg te rijden met een halve accu op een lentedag in Berkeley, CA.
Uw configuratiebestand bevat dan drie configuraties:
[
{
"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
},
Volgende stappen
Nu u weet hoe u configuratiebestanden voor evaluaties maakt, kunt u proberen er een te gebruiken om een getraind brein te evalueren.