Programování

4 faktory pro testování aplikací strojového učení

Systémy strojového učení se zdají trochu jako matematický problém. Zjistěte algoritmus, vysuňte data a vyjdou odpovědi.

Jak ale víte, že odpovědi jsou správné?

Když se snažíte předpovědět, jaké filmy nebo knihy se lidem líbí, může to být nesmírně důležité, rozdíl mezi zvýšením tržeb a reputačním hitem, který se objeví na mediabuzz.com. Přesto se při pokusech o vývoj a nasazení systémů založených na algoritmech strojového učení zřídka snažíme o testování. Vytvoření dobré sady algoritmů, které modelují problémový prostor, je jednoduše dost obtížné. Ale testování je součástí procesu vývoje a nasazení softwaru a musíme se vážně zabývat tím, jak budou tyto systémy testovány.

První, běžnější typ testování je ten, kde je aplikace testována jednotkami vývojáři, „kouřově testována“ automatizací během procesu sestavování a integrace a ručně testována testery. Tento proces je dobře známý, i když se bude lišit v závislosti na typu vyvíjeného systému.

Druhý typ testování je založen na skutečných vstupech, které se liší podle předávaných dat. Například jeden z Mattových zákazníků napsal software pro omezení rizika ve finančních transakcích. Software by analyzoval trh a pomalu odvíjel blok akcií po dobu několika dní, jehož cílem není nastartovat varování na straně prodeje. Prvním vstupem byl blok prodeje, ale druhým vstupem v reálném čase byly finanční trhy, které se časem mění, takže testované prodeje nebudou odpovídat tržbám ve výrobě. To je místo, kde se testování stává problematičtějším. Jak testujeme systémy, které mohou v průběhu času vrátit různým výsledkům stejná data? Tradiční testovací techniky nemají žádný způsob, jak takový výsledek zohlednit. Co mají testeři dělat?

Kvalitativní testování systémů strojového učení není stejné jako testování jakéhokoli jiného typu softwaru. Ve většině testovacích situací se snažíte zajistit, aby se skutečný výstup shodoval s očekávaným. V systémech strojového učení je hledání správného výstupu přesně nesprávným přístupem. Pravděpodobně nemůžete ani spočítat „správný výstup“, aniž byste software napsali dvakrát. I tak by to možná nebylo možné.

Na co se testeři musí zaměřit u aplikací strojového učení:

1. Mějte objektivní a měřitelná kritéria přijatelnosti. Poznejte standardní odchylku, kterou můžete přijmout ve svém problémovém prostoru. To vyžaduje určité kvantitativní informace a schopnost ujistit se, že těmto měřením rozumíte a interpretujete je.

2. Testujte s novými daty namísto původních tréninkových dat. V případě potřeby rozdělte tréninkovou sadu na dvě skupiny: jednu, která trénuje, a druhou, která provádí testování. Lepší je získávat a používat nová data, pokud můžete.

3. Nepočítejte s tím, že všechny výsledky budou přesné; považujte je za nejlepší odhad na základě dostupných údajů. Pokud to není dost dobré, problém by mohl být alogirthmn nebo, pravděpodobněji, soubor dat. V některých případech může být nejrychlejší opravou tohoto problému „vyladění“ datové sady, aby se získal čistý vstup.

4. Pochopte architekturu sítě jako součást procesu testování. Testeři nemusí nutně rozumět tomu, jak byla neurální síť konstruována, ale musí pochopit, zda splňuje požadavky. A na základě měření, která testují, možná budou muset doporučit radikálně odlišný přístup, nebo připustit, že software prostě není schopen dělat to, o co byl požádán, s důvěrou.

Sečteno a podtrženo

Klíčem k testování systému je porozumět jak požadavkům na výsledky produkce, tak omezením algoritmů. Požadavky se musí promítnout do objektivních měření; v ideálním případě je směrodatná odchylka průměrného výsledku za předpokladu, že střední výsledek úzce souvisí se skutečným výsledkem nalezeným v tréninkových datech. Musíte být schopni posoudit své výsledky ze statistického hlediska, nikoli z hlediska ano-ne.

Nepočítejte s přesnou a přesnou odpovědí po celou dobu, nebo dokonce po většinu času. To, jak testujete a jak hodnotíte, závisí zcela na cílech systému. Pro testování a testování je neocenitelné mít platformu, jako je Intel Parallel Studio XE, která bude vyvíjet a testovat kód a algoritmy.

Nyní je snadnější než kdy jindy napsat paralelní běh kódu - vyzkoušejte Intel® Parallel Studio XE zdarma po dobu 30 dnů

 

$config[zx-auto] not found$config[zx-overlay] not found