Ověření simulace pro počítačové výuky
BonsaiŠkolicí modul využívá výukové učení (RL) ke strukturování výukového nástroje pro mozky. Simulace podporují posílení učení s daty a interaktivním prostředím pro iterativní školení. Ale ne všechny simulace jsou kompatibilní s učebnou počítače. Ověření připravenosti simulace je důležité pro úspěšné školení mozku pomocí Bonsai .
Důležité
Následující kroky reprezentují základní a osvědčené postupy pro ověřování simulace. Nakonec vývoj komplexního procesu ověřování souvisejícího s doménou vyžaduje experimenty specifické pro konkrétní situaci a porovnávání s daty z reálného světa. Cílem jakéhokoli ověřovacího plánu je identifikovat a vyřešit kritické mezery mezi simulovaným prostředím a skutečným prostředím, ve kterém bude váš mozek nasazen.
Než začnete
- Ujistěte se, že můžete pracovat s simulací programově. Můžete použít programovací jazyk podle vašeho výběru.
- Ujistěte se, že Bonsai podporuje vaši simulaci (nebo jazyk).
Krok 1: ověření funkce krokování
Aby bylo možné podporovat posílení učení, musí simulátor reagovat na změny iterativních informací. Pro zpracování iterativních změn musí simulace zahrnovat funkci krokování. Funkce krokování akceptuje vstup (Action) proměnné a vrátí hodnoty Output (State), pokud nedojde k terminálovému stavu.
- Vstupní proměnné reprezentují akce provedené vaším Bonsai mozku během Bonsai iterace.
- Výstupní proměnné poskytují informace o výsledku, které mozek použije během aktuální iterace.
Představte si například simulaci webu Apiary TVK, která řídí teplotu tím, že manipuluje s oběžníky. Počet a pozice otevřených větracích otvorů jsou vstupní proměnné. Vnitřní teplota webu Apiary je výstupním stavem. Pro práci s učebnou strojového vzdělávání musí simulace umožňovat iterativní změny pozice a počet otevřených otvorů a vracet novou teplotu při každé iteraci.
Ověření funkce krokování:
- Potvrďte, že sada očekávaných akcí řízení vstupu odpovídá nebo je nadmnožinou sady akcí, se kterou bude mozek naučit.
- Potvrďte, že funkce krokování je deterministické. Jinými slovy, všechny možné vstupy mají odpovídající výstupní stav nebo podmínku terminálu.
- Potvrďte, že informace o stavu výstupu používají správné jednotky. Například pokud mozek očekává teplotu ve stupních Celsia, potvrďte, že simulace neodesílá informace o teplotě v kelvinech.
Krok 2: ověření podmínek terminálu a resetování funkce
Důležitou součástí iterativní simulace je znalost, kdy proces zastavíte a resetujete. Podmínky terminálu umožňují simulaci zjistit, kdy se v mozku dosáhlo bodu, ve kterém už obnovení není možné. Například teplota v rámci webu Apiary dosáhla bodu, ve kterém se včely zemřely.
Když dojde k terminálu, funkce Reset by měla nastavit prostředí v simulaci zpátky na očekávaný počáteční stav, aby se mozek mohl pokusit znovu.
Ověření podmínek terminálu a funkce resetování:
- Ověřte, že podmínky terminálu můžou nastat jako součást výstupu simulace. Například pokud je vaše simulace webu Apiary nastavena v tropickém prostředí a vaše simulace skončí pouze v případě, že teplota klesne pod zmrazení, nebude nikdy ukončena.
- Potvrďte, že je funkce Resetovaná uživatelům vystavená, aby ji mohla volat Bonsai platforma.
- Potvrďte, že zpracováváte hraniční případy správně. Například pokud je možné, aby teploty byly změněny o více než 1 stupeň v iteraci, ověřte hodnoty větší než hodnota přerušení, nikoli rovnost.
Krok 3: ověření proměnných konfigurace
Simulátor by měl podporovat inicializaci proměnných prostředí, aby váš Bonsai mozek mohl vytvořit výuku k nejrůznějším scénářům. Například simulace webu Apiary TVK by měla podporovat jakoukoli rozumnou počáteční teplotu.
Ověření proměnných konfigurace:
- Potvrďte, že sada dostupných konfiguračních proměnných pokrývá všechny příslušné informace o počátečním stavu.
- Potvrďte, že proměnné konfigurace můžou být nastavené funkcí resetování.
- Potvrďte, že jednotky mezi simulací a mozek se shodují, nebo jsou správně převedeny.
Krok 4: návrh základního testovacího protokolu
Základní testovací protokol vytvoří jednoduchý (základní) případ a spustí postup simulace ve smyčce pro daný případ, předem definovaný počet iterací. Pomocí vygenerovaných výstupních dat pro užší analýzu potvrďte, že simulátor se chová podle očekávání.
Váš základní testovací protokol závisí na dvou metrikách:
- Frekvence řízení (CF): jak často aplikace mozku provádí akci pro řízení simulovaného prostředí jako měření událostí na metriku, obvykle zaznamenaných v hertzích (Hz). Metrika okna ovládacího prvku by měla odrážet míru reálného světa (čas, vzdálenost), kterou jste očekávali při vyhodnocování a provádění akcí pro kontrolu reálného prostředí.
- Doba simulace (St): množství reálného času, které trvá pro simulaci požadovaného okna ovládacího prvku. ST pro danou iteraci se bude lišit v závislosti na složitosti simulace.
Chcete-li určit požadovanou četnost řízení, vypočítejte počet řídicích událostí, které má mozek zvládnout, v smysluplné jednotce vaší metriky ovládacího prvku. Systémy pro řízení založené na čase obvykle počítají CF v událostech za sekundu, zatímco systémy pro řízení založené na vzdálenosti typicky počítají CF v události na měřič.
Předpokládejme například, že chcete, aby váš mozek webu apiaryu TVK vyhodnotil stav webu Apiary a při nasazení provede akci každé 100 ms. Aby bylo možné efektivně napodobovat provozní prostředí, každá cvičení školení by měla simulovat okno 100 MS s jednou akcí řízení na iteraci.
1 událost každých 100 MS → 1 událost100 MS
1000 MS za sekundu → (1 událost100 MS) × (1000 MS1 sekunda) → Target frekvence je 10 událostí řízení za sekundu.
Podle definice:
1 Hz = 1 událost za sekundu
Takže pokud chcete potvrdit, že simulace bude správně replikovat prostředí, váš základní testovací protokol by měl používat frekvenci řízení 10 Hz.
Poznámka
Definování frekvence řízení je typické pro Hz, ale nevyžaduje se. V konečném případě je potřeba určit, kolik událostí ovládacího prvku pro dané měření chcete. Jakmile se dozvíte, jak často se události ovládacího prvku mají vyskytnout, můžete určit zbytek testovacích proměnných.
Po výpočtu frekvence řízení můžete pomocí následujících kroků navrhnout obecný základní protokol, který můžete přizpůsobit konkrétním hodnotám simulace:
- Spusťte simulaci s výchozí konfigurací pro vygenerování typického souboru protokolu.
- V závislosti na souboru CF a souboru protokolu určete maximální počet iterací, které mají být povoleny pro výcvikové díly.
- Ujistěte se, že pro každou iteraci testu můžete vypočítat a zaznamenat následující informace:
- Všechny výstupní stavy, které poskytuje simulátor.
- Skutečná hodnota CF dosažená simulací.
- Hodnota ST pro iteraci
- Analyzujte vztah mezi vstupy a výstupy souboru protokolu a Identifikujte tak jednoduchý scénář konfigurace (test).
- Definujte alespoň jeden scénář s pevným testováním. Vyberte vhodnou počáteční konfiguraci a určete očekávané akce řízení (odezvy zásad) pro každou iteraci testovacího scénáře.
- Definujte alespoň jeden scénář náhodného testování. V případě libovolné počáteční konfigurace napište testovací kód, který náhodně vybere jednu z dostupných akcí řízení pro každou iteraci testovacího scénáře.
- Zápis testovacího kódu pro volání funkce krokování s požadovaným vstupem (pevným nebo náhodným) pro každou iteraci a zopakování procesu, dokud nebude dosaženo podmínky terminálu nebo maximálního počtu iterací, které jste předtím určili.
Krok 5: spuštění protokolu základního testu
Ověřování simulace je iterativní proces. Měli byste očekávat, že byste testovací protokol spustili několikrát s různými počátečními konfiguracemi a znovu spustíte protokol při provádění úprav simulace.
Tip
Pro dosažení nejlepších výsledků byste měli mít pro pevné a náhodné zásady definované několik konfigurací.
Pro každý testovací běh:
- Nastavte simulátor s počátečním stavem testovacího scénáře.
- Spusťte simulaci s proměnlivými vstupy pro scénář pevné testování.
- Spusťte simulaci s proměnlivými vstupy v případě náhodného testování.
- Spusťte simulaci pro velký počet iterací, aby mohlo dojít k resetování.
- Spusťte simulaci a vynuťte resetování v náhodném bodě.
- Spusťte simulaci s počáteční konfigurací, která vynutí resetování.
Krok 6: Analýza výsledků testu
Neexistuje žádný správný způsob, jak analyzovat výsledky testu simulace. Některé osvědčené postupy jsou popsány níže, ale měli byste také spoléhat na vaši kreativitu a odbornosti v oblasti IT, které vám pomohou vyhodnotit chování simulace. Vykreslení výsledků, protože vstupy a výstupy usnadňují analýzu chování simulátoru a sdělování výsledků ostatním.
Zhodnotit spolehlivost
Spolehlivost simulace souvisí přímo se vztahem vstupu a výstupu (stav akce) v základním protokolu. Spuštění stejného scénáře s pevnou zásadou řízení a zásadou náhodného řízení usnadňuje určení spolehlivosti:
- Pevné zásady by měly vést ke srozumitelné výsledku.
- Náhodná zásada generuje v simulátoru neočekávané podmínky.
Pevné zásady pomáhají ověřit dobré chování, zatímco náhodné zásady pomáhají identifikovat hraniční případy, kdy je simulace pomalá, zablokuje se nebo narazí na jiné problémy.
Například v simulaci apiary HVAC by otevření průduchu mělo snížit teplotu v apiárním systému. Pokud se teplota místo toho zvýší, znamená to, že simulace je chybná.
Vyhodnocení flexibility
Flexibilita simulace přímo souvisí s tím, jak dobře zpracovává různé konfigurace. Zkontrolujte protokoly pro pevné a náhodné zásady řízení. Pro každou počáteční konfiguraci určete, jestli mají odpovídající změny v simulovaném prostředí smysl.
Například změna velikosti a počtu průduchů v apiáru by měla mít odpovídající změnu v tom, jak rychle nebo pomalu se teplota mění při otevření průduchů.
Vyhodnocení obnovení
Důležitou součástí strojového učení je možnost v případě potřeby resetovat trénovací prostředí. V protokolech testování zkontrolujte všechna místa, kde došlo k terminálové podměně, a resetujte prostředí. Všimněte si stavu simulátoru, výsledných akcí, ke kterým došlo k resetování, a jestli má chování v tomto kontextu smysl.
Důležité
Pokud si všimnete falešně pozitivní nebo falešně negativní terminálové podmínky, znamená to, že simulace je chybná.
Resetoval se například apiární tvořovací systém, když interní teplota dosáhla bodu, kdy všechny rostliny v prostředí vyschnou a ztuhly? Dávala nová vnitřní teplota po resetování smysl jako počáteční teplota?
Vyhodnocení frekvence simulovaného řízení
Pokud plánujete nasadit mozek na hardware a neinstalovat ho jako software, vaše simulovaná frekvence řízení by měla být stejná nebo faktorem reálné frekvence řízení, kterou očekáváte v produkčním prostředí. Díky tomu se vaše krokování může opakovat tolikrát, kolikrát je potřeba, aby cf simulace byla v souladu s očekávaným hardwarovým CF.
Pokud má hardware vašeho mozku například 100 Hz CF, pak simulace musí umožnovat vstupy každých 10 ms reálné simulace.
1 Hz = 1 událost za sekundu → 100 Hz = 100 událostí za sekundu
1 000 ms za sekundu → 1 000 ms100 událostí = 10 ms na událost
Fungují také simulační ovládací prvky v 1 ms, 2 ms a 5 ms. V každém případě může simulátor procházet krokovací funkci vícekrát, aby dosáhl požadované frekvence řízení.
| Simulované řídicí okno | Požadované smyčky | Simulované CF |
|---|---|---|
| 1 min. | 10 | 1 000 Hz |
| 2 min. | 5 | 500 Hz |
| 5 min. | 2 | 200 Hz |
Vyhodnocení času simulace
Vypočítejte průměrnou hodnotu ST pro všechny iterace napříč všemi testovacími běhy. Pokud chcete se strojově vyučováním a spolehlivě pracovat, musí být průměrná hodnota ST pro vaši simulaci Bonsai ≤ 20 sekund.
Pokud je průměrné ST vyšší než podporovaná prahová hodnota, považuje se za pomalý simulátor a nemůže vašemu mozku poskytnout realistický model pro trénování.
Další kroky
Jakmile simulátor ověříte, zkuste ho spustit místně v souboru základního rukopisu a začněte integrovat s Bonsai .