Programmēšana

4 faktori mašīnmācīšanās lietojumprogrammu testēšanai

Mašīnmācīšanās sistēmas šķiet mazliet kā matemātikas problēma. Izdomājiet algoritmu, ievadiet datus un iznāk atbildes.

Bet kā jūs zināt, vai atbildes ir pareizas?

Kad jūs mēģināt paredzēt, kādas filmas vai grāmatas cilvēkiem patīk, tas var būt ārkārtīgi svarīgi, atšķirība starp ieņēmumu pieaugumu un reputācijas trāpījumu, kas parādās vietnē mediabuzz.com. Tomēr testēšana reti ir mūsu prāta augšgalā, kad mēs cenšamies izstrādāt un izvietot sistēmas, kuru pamatā ir mašīnmācīšanās algoritmi. Vienkārši izveidot labu algoritmu kopumu, kas modelē problēmu telpu, ir pietiekami grūti. Bet testēšana ir daļa no programmatūras izstrādes un ieviešanas procesa, un mums nopietni jāaplūko, kā šīs sistēmas tiks pārbaudītas.

Pirmais, izplatītākais testēšanas veids ir gadījums, kad lietojumprogrammu testē vienība, ko izstrādātāji testē, automatizācija “pārbauda dūmus” būvēšanas un integrēšanas procesā un testētāji to pārbauda manuāli. Šis process ir plaši pazīstams, lai gan tas mainīsies atkarībā no izstrādājamās sistēmas veida.

Otrā veida testēšana ir balstīta uz reālās informācijas ievadi, kas atšķiras atkarībā no nodotajiem datiem. Piemēram, viens no Matta klientiem uzrakstīja programmatūru, lai ierobežotu risku finanšu darījumos. Programmatūra dažu dienu laikā analizētu tirgu un lēnām atritinātu akciju bloku, kas paredzēts, lai sāktu brīdinājumus par pārdošanu. Pirmais ievadmateriāls bija pārdošanas bloks, bet otrais reāllaika ieguldījums bija finanšu tirgi, kas laika gaitā mainās, tāpēc pārbaudāmā pārdošana nesakritīs ar pārdošanas apjomu ražošanā. Šeit testēšana kļūst problemātiskāka. Kā mēs pārbaudām sistēmas, kas laika gaitā var atgriezt atšķirīgu rezultātu tiem pašiem datiem? Tradicionālajām testēšanas metodēm nav iespējams ņemt vērā šādu rezultātu. Ko tad testētājiem vajadzētu darīt?

Mašīnmācīšanās sistēmu kvalitatīva pārbaude nav tas pats, kas testēt jebkura cita veida programmatūru. Lielākajā daļā testēšanas situāciju jūs vēlaties pārliecināties, vai faktiskais rezultāts atbilst gaidītajam. Izmantojot mašīnmācīšanās sistēmas, tieši pareizā rezultāta meklēšana ir tieši nepareiza pieeja. Jūs, iespējams, pat nevarat aprēķināt “pareizo rezultātu”, divas reizes nerakstot programmatūru. Pat tad tas varētu nebūt iespējams.

Kas testētājiem jāpievērš uzmanība mašīnmācīšanās lietojumprogrammām:

1. Ir objektīvi un izmērāmi pieņemšanas kritēriji. Ziniet standarta novirzi, kuru varat pieņemt savā problēmu telpā. Tam nepieciešama zināma kvantitatīva informācija un spēja pārliecināties, ka saprotat un interpretējat šos mērījumus.

2. Pārbaudiet ar jauniem datiem, nevis ar sākotnējiem apmācības datiem. Ja nepieciešams, sadaliet apmācības komplektu divās grupās: vienā, kas veic apmācību, un vienā, kas veic testēšanu. Labāk, iegūstiet un izmantojiet jaunus datus, ja varat.

3. Neskaiti, ka visi rezultāti ir precīzi; domājiet par viņiem kā labāko minējumu, pamatojoties uz pieejamajiem datiem. Ja tas nav pietiekami labs, problēma varētu būt alogirthmn vai, visticamāk, datu kopa. Dažos gadījumos datu kopas "pielabošana", lai iegūtu tīru ievadi, var visātrāk novērst šo problēmu.

4. Izprotiet tīkla arhitektūru kā daļu no testēšanas procesa. Testētāji ne vienmēr sapratīs, kā tika izveidots neironu tīkls, taču viņiem jāsaprot, vai tas atbilst prasībām. Balstoties uz pārbaudītajiem mērījumiem, viņiem, iespējams, būs jāiesaka pilnīgi atšķirīga pieeja vai arī jāatzīst, ka programmatūra vienkārši nespēj pārliecinoši izpildīt to, kas tai tika lūgts.

Apakšējā līnija

Sistēmas testēšanas atslēga ir izprast gan prasības ražošanas rezultātiem, gan algoritmu ierobežojumus. Prasībām jāpārvēršas objektīvos mērījumos; ideālā gadījumā vidējā rezultāta standartnovirze, pieņemot, ka vidējais rezultāts ir cieši saistīts ar faktisko rezultātu, kas atrodams apmācības datos. Jums jāspēj novērtēt savus rezultātus no statistikas viedokļa, nevis jā-nē.

Nepaļaujieties uz precīzu pareizo atbildi visu laiku vai pat lielāko daļu laika. Tas, kā jūs pārbaudāt un kā jūs vērtējat, ir pilnībā atkarīgs no sistēmas mērķiem. Pārbaudes uzgriežņu un skrūvju dēļ ir nenovērtējami tāda platforma kā Intel Parallel Studio XE, lai gan izstrādātu, gan pārbaudītu kodu un algoritmus.

Tagad ir vienkāršāk nekā jebkad agrāk rakstīt kodu, lai tas darbotos paralēli - izmēģiniet Intel® Parallel Studio XE 30 dienas bez maksas

 

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