Ohjelmointi

4 tekijää koneoppimissovellusten testaamiseen

Koneoppimisjärjestelmät näyttävät hieman matemaattisilta ongelmilta. Selvitä algoritmi, avaa tiedot ja vastaukset tulevat esiin.

Mutta mistä tiedät vastausten olevan oikeita?

Kun yrität ennustaa, mistä elokuvista tai kirjoista ihmiset pitävät, se voi olla erittäin tärkeää, ero tulojen kasvun ja mediabuzz.com -sivustolla näkyvän mainehittin välillä. Testaus on kuitenkin harvoin mielemme huipulla, kun yritämme kehittää ja ottaa käyttöön koneoppimisalgoritmeihin perustuvia järjestelmiä. Pelkästään hyvän algoritmien rakentaminen ongelmatilan mallintamiseksi on tarpeeksi vaikeaa. Mutta testaus on osa ohjelmistokehitys- ja käyttöönottoprosessia, ja meidän on tarkasteltava vakavasti näiden järjestelmien testaamista.

Ensimmäinen, yleisempi testaustyyppi on se, että kehittäjät testaavat sovelluksen, automaattinen savutesti koontiversio- ja integrointiprosessin aikana ja testaajat manuaalisesti. Tämä prosessi on tunnettu, vaikka se vaihtelee kehitettävän järjestelmän tyypistä riippuen.

Toinen testaustyyppi perustuu reaalimaailman syötteisiin, jotka vaihtelevat siirrettyjen tietojen perusteella. Esimerkiksi yksi Mattin asiakkaista kirjoitti ohjelmiston rajoittamaan finanssitransaktioiden riskiä. Ohjelmisto analysoi markkinoita ja purkaa hitaasti osakekokonaisuuden päivien aikana, joka on suunniteltu olemaan käynnistämättä myyntipuolen varoituksia. Ensimmäinen panos oli myyntiryhmä, mutta toinen reaaliaikainen panos oli rahoitusmarkkinat, jotka vaihtelevat ajan myötä, joten testattava myynti ei vastaa tuotannon myyntiä. Täällä testaus muuttuu ongelmallisemmaksi. Kuinka testaamme järjestelmiä, jotka saattavat palauttaa toisen tuloksen samoihin tietoihin ajan myötä? Perinteisillä testaustekniikoilla ei ole mitään keinoa ottaa tällaista tulosta huomioon. Joten mitä testaajien pitäisi tehdä?

Koneoppimisjärjestelmien laadullinen testaus ei ole sama kuin minkä tahansa muun tyyppisen ohjelmiston testaaminen. Useimmissa testaustilanteissa yrität varmistaa, että todellinen tuotos vastaa odotettua. Koneoppimisjärjestelmissä täsmälleen oikean tuloksen etsiminen on aivan väärä lähestymistapa. Et todennäköisesti voi edes laskea "oikeaa tulosta" kirjoittamatta ohjelmistoa kahdesti. Silloinkin se ei ehkä ole mahdollista.

Mihin testaajien on keskityttävä koneoppimissovelluksissa:

1. On objektiiviset ja mitattavissa olevat hyväksymiskriteerit. Tunne keskihajonta, jonka voit hyväksyä ongelmasi tilassa. Tämä vaatii jonkin verran kvantitatiivista tietoa ja kykyä varmistaa, että ymmärrät ja tulkitset nämä mittaukset.

2. Testaa uusilla tiedoilla alkuperäisten harjoitustietojen sijaan. Jaa tarvittaessa harjoittelupaketti kahteen ryhmään: yksi, joka harjoittaa ja toinen, joka suorittaa testejä. Parempi, hanki ja käytä uutta tietoa, jos pystyt.

3. Älä laske kaikkien tulosten olevan tarkkoja; ajattele niitä parhaimpana arvauksena käytettävissä olevien tietojen perusteella. Jos se ei ole tarpeeksi hyvä, ongelma voi olla alogirthmn tai todennäköisemmin tietojoukko. Joissakin tapauksissa tietojoukon "säätäminen" puhtaan syötteen saamiseksi voi olla nopein ratkaisu tähän ongelmaan.

4. Ymmärrä verkon arkkitehtuuri osana testausprosessia. Testaajat eivät välttämättä ymmärrä, miten hermoverkko rakennettiin, mutta heidän on ymmärrettävä, täyttääkö se vaatimukset. Ja testaamiensa mittausten perusteella heidän on ehkä suositeltava täysin erilaista lähestymistapaa tai myönnettävä, että ohjelmisto ei vain kykene tekemään sitä, mitä sitä pyydettiin tekemään luottavaisin mielin.

Bottom Line

Avain järjestelmän testaamiseen on ymmärtää sekä tuotantotuloksia koskevat vaatimukset että algoritmien rajoitukset. Vaatimusten on muututtava objektiivisiksi mittauksiksi; ihannetapauksessa keskituloksen keskihajonta olettaen, että keskitulos liittyy läheisesti harjoitteludatasta löydettyyn todelliseen tulokseen. Sinun on pystyttävä arvioimaan tuloksiasi tilastollisesta näkökulmasta kyllä-ei-näkökulman sijaan.

Älä luota tarkkaan oikeaan vastaukseen koko ajan tai edes suurimman osan ajasta. Kuinka testaat ja miten arvioit, riippuu täysin järjestelmän tavoitteista. Testauksen muttereiden ja pulttien kannalta on korvaamatonta, että meillä on alustan, kuten Intel Parallel Studio XE, sekä koodin että algoritmien kehittämiseen ja testaamiseen.

Nyt on helpompaa kuin koskaan kirjoittaa koodisi toimimaan rinnakkain - Kokeile Intel® Parallel Studio XE: tä ilmaiseksi 30 päivän ajan

 

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