Programovanie

4 faktory pre testovanie aplikácií strojového učenia

Systémy strojového učenia sa zdajú trochu ako matematický problém. Zistite algoritmus, vložte údaje a vyjdú odpovede.

Ako však zistíte, že odpovede sú správne?

Keď sa snažíte predpovedať, aké filmy alebo knihy sa ľuďom páčia, to môže byť nesmierne dôležité, rozdiel medzi zvýšením výnosov a reputačným hitom, ktorý sa zobrazuje na stránke mediabuzz.com. Pri pokuse o vývoj a nasadenie systémov založených na algoritmoch strojového učenia je však testovanie zatiaľ zriedka na vrchole našej mysle. Jednoduché zostavenie dobrej sady algoritmov, ktoré modelujú problémový priestor, je dosť ťažké. Testovanie je však súčasťou procesu vývoja a nasadenia softvéru a musíme sa vážne zaoberať tým, ako budú tieto systémy testované.

Prvý, bežnejší typ testovania je, keď je aplikácia testovaná jednotkami vývojármi, „dymovo testovaná“ automatizáciou počas procesu zostavovania a integrácie a ručne testovaná testermi. Tento proces je dobre známy, bude sa však líšiť v závislosti od typu vyvíjaného systému.

Druhý typ testovania je založený na vstupoch z reálneho sveta, ktoré sa líšia na základe odovzdaných údajov. Napríklad jeden z Mattových zákazníkov napísal softvér na obmedzenie rizika pri finančných transakciách. Softvér by analyzoval trh a pomaly odvíjal blok akcií v priebehu niekoľkých dní, ktorý by nemal naštartovať varovania na strane predaja. Prvým vstupom bol blok predaja, druhým vstupom v reálnom čase boli finančné trhy, ktoré sa časom líšia, takže testovaný predaj nebude zodpovedať predaju vo výrobe. To je miesto, kde sa testovanie stáva problematickejším. Ako testujeme systémy, ktoré môžu časom vrátiť rozdielny výsledok k rovnakým údajom? Tradičné testovacie techniky nemôžu brať taký výsledok do úvahy. Čo majú teda robiť testeri?

Kvalitatívne testovanie systémov strojového učenia nie je to isté ako testovanie iného typu softvéru. Vo väčšine testovacích situácií sa snažíte zaistiť, aby sa skutočný výstup zhodoval s očakávaným. V systémoch strojového učenia je hľadanie presne správneho výstupu presne nesprávnym prístupom. Pravdepodobne nemôžete vypočítať „správny výstup“ bez toho, aby ste softvér napísali dvakrát. Ani potom by to nebolo možné.

Na čo sa testeri musia zamerať pri aplikáciách strojového učenia:

1. Mať objektívne a merateľné kritériá prijatia. Poznajte štandardnú odchýlku, ktorú môžete prijať vo svojom problémovom priestore. To si vyžaduje určité kvantitatívne informácie a schopnosť uistiť sa, že týmto meraniam rozumiete a interpretujete ich.

2. Testujte s novými údajmi, nie s pôvodnými údajmi o tréningu. Ak je to potrebné, rozdeľte svoju tréningovú zostavu na dve skupiny: jednu trénuje a druhú testuje. Lepšie je získavať a používať čerstvé údaje, ak to môžete.

3. Nepočítajte s tým, že všetky výsledky budú presné; považujte ich za najlepší odhad na základe dostupných údajov. Ak to nie je dosť dobré, problémom môže byť alogirthmn alebo pravdepodobnejšie sada údajov. V niektorých prípadoch môže byť najrýchlejšou opravou tohto problému „vyladenie“ množiny údajov, aby sa získal čistý vstup.

4. Pochopte architektúru siete ako súčasť procesu testovania. Testéri nemusia nevyhnutne pochopiť, ako bola neurónová sieť skonštruovaná, musia však pochopiť, či spĺňa požiadavky. A na základe meraní, ktoré testujú, možno budú musieť odporučiť radikálne odlišný prístup alebo pripustiť, že softvér jednoducho nedokáže s dôverou urobiť to, čo od neho požadovali.

Spodný riadok

Kľúčom k testovaniu systému je porozumieť požiadavkám na výsledky výroby aj obmedzeniam algoritmov. Požiadavky sa musia premietnuť do objektívnych meraní; v ideálnom prípade štandardná odchýlka priemerného výsledku za predpokladu, že priemerný výsledok úzko súvisí so skutočným výsledkom zisteným v údajoch o tréningu. Musíte byť schopní posúdiť svoje výsledky skôr zo štatistického hľadiska, ako z hľadiska áno-nie.

Nepočítajte s presnou správnou odpoveďou vždy, alebo dokonca väčšinu času. To, ako testujete a ako hodnotíte, závisí výlučne od cieľov systému. Pre testovanie je dôležité mať platformu ako Intel Parallel Studio XE na vývoj a testovanie kódu a algoritmov.

Teraz je jednoduchšie ako kedykoľvek predtým napísať paralelný beh kódu - vyskúšajte Intel® Parallel Studio XE zadarmo na 30 dní