Seturi de instruire, validare și testare - Training, validation, and test sets
În învățarea automată , o sarcină obișnuită este studierea și construirea algoritmilor care pot învăța și face predicții asupra datelor . Astfel de algoritmi funcționează prin luarea de predicții sau decizii bazate pe date, prin construirea unui model matematic din datele de intrare. Aceste date de intrare utilizate pentru construirea modelului sunt de obicei împărțite în mai multe seturi de date . În special, trei seturi de date sunt utilizate în mod obișnuit în diferite etape ale creării modelului: formare, validare și seturi de testare.
Modelul se potrivește inițial pe un set de date de antrenament , care este un set de exemple utilizate pentru a se potrivi parametrilor (de exemplu, greutățile conexiunilor dintre neuroni în rețelele neuronale artificiale ) ale modelului. Modelul (de exemplu, un clasificator naiv Bayes ) este instruit asupra setului de date de antrenament folosind o metodă de învățare supravegheată , de exemplu folosind metode de optimizare, cum ar fi coborârea în gradient sau descendenta stochastică . În practică, setul de date de antrenament constă adesea din perechi de vector de intrare (sau scalar) și vectorul de ieșire corespunzător (sau scalar), unde cheia de răspuns este de obicei denotată ca țintă (sau etichetă ). Modelul actual este rulat cu setul de date de antrenament și produce un rezultat, care este apoi comparat cu ținta , pentru fiecare vector de intrare în setul de date de antrenament. Pe baza rezultatului comparației și a algoritmului de învățare specific utilizat, parametrii modelului sunt ajustați. Montarea modelului poate include atât selecția variabilelor, cât și estimarea parametrilor .
Succesiv, modelul adaptat este utilizat pentru a prezice răspunsurile pentru observații într-un al doilea set de date numit set de date de validare . Setul de date de validare oferă o evaluare imparțială a unui model care se potrivește cu setul de date de antrenament în timp ce reglează hiperparametrele modelului (de exemplu, numărul de unități ascunse - straturi și lățimi ale stratului - într-o rețea neuronală). Seturile de date de validare pot fi utilizate pentru regularizare prin oprirea timpurie (oprirea antrenamentului atunci când crește eroarea din setul de date de validare, deoarece acesta este un semn de a se potrivi prea mult cu setul de date de antrenament). Această procedură simplă este complicată în practică prin faptul că eroarea setului de date de validare poate fluctua în timpul antrenamentului, producând multiple minime locale. Această complicație a condus la crearea multor reguli ad-hoc pentru a decide când a început cu adevărat adaptarea excesivă.
În cele din urmă, setul de date de testare este un set de date utilizat pentru a oferi o evaluare imparțială a unui model final care se încadrează pe setul de date de antrenament. Dacă datele din setul de date de testare nu au fost folosite niciodată în antrenament (de exemplu, în validarea încrucișată ), setul de date de testare se numește și set de date de rezistență . Termenul „set de validare” este uneori folosit în loc de „set de testare” în unele publicații (de exemplu, dacă setul de date original a fost partiționat în doar două subseturi, setul de testare ar putea fi denumit setul de validare).
Decizia dimensiunilor și strategiilor pentru divizarea setului de date în seturile de instruire, testare și validare depinde foarte mult de problemă și de datele disponibile.
Set de date de instruire
Un set de date de instruire este un set de date de exemple utilizate în timpul procesului de învățare și este utilizat pentru a se potrivi parametrilor (de exemplu, greutăți), de exemplu, a unui clasificator .
Pentru sarcini de clasificare, un algoritm de învățare supravegheat analizează setul de date de antrenament pentru a determina sau a învăța combinațiile optime de variabile care vor genera un model predictiv bun . Scopul este de a produce un model instruit (adaptat) care generalizează bine la date noi, necunoscute. Modelul montat este evaluat folosind exemple „noi” din seturile de date rezolvate (seturi de date de validare și testare) pentru a estima acuratețea modelului în clasificarea datelor noi. Pentru a reduce riscul apariției unor probleme precum montarea excesivă, exemplele din seturile de date de validare și test nu ar trebui utilizate pentru a instrui modelul.
Cele mai multe abordări care caută relații empirice prin intermediul datelor de formare tind să depășească datele, ceea ce înseamnă că pot identifica și exploata relațiile aparente din datele de formare care nu dețin în general.
Set de date de validare
Un set de date de validare este un set de date de exemple utilizate pentru a regla hiperparametrele (adică arhitectura) unui clasificator. Uneori se mai numește și setul de dezvoltare sau „setul de dezvoltatori”. Un exemplu de hiperparametru pentru rețelele neuronale artificiale include numărul de unități ascunse din fiecare strat. Acesta, precum și setul de testare (așa cum s-a menționat mai sus), ar trebui să urmeze aceeași distribuție de probabilitate ca și setul de date de antrenament.
Pentru a evita supraadaptarea, atunci când orice parametru de clasificare trebuie ajustat, este necesar să existe un set de date de validare în plus față de seturile de date de formare și testare. De exemplu, dacă se caută cel mai potrivit clasificator pentru problemă, setul de date de instruire este utilizat pentru a instrui diferiții clasificatori candidați, setul de date de validare este folosit pentru a compara performanțele lor și pentru a decide pe care să le ia și, în cele din urmă, datele de testare setul este utilizat pentru a obține caracteristici de performanță, cum ar fi acuratețea , sensibilitatea , specificitatea , măsurarea F etc. Setul de date de validare funcționează ca un hibrid: este vorba de date de instruire utilizate pentru testare, dar nici ca parte a instruirii de nivel scăzut și nici ca parte a testării finale.
Procesul de bază al utilizării unui set de date de validare pentru selectarea modelului (ca parte a setului de date de instruire, set de date de validare și set de date de testare) este:
Deoarece obiectivul nostru este de a găsi rețeaua cu cele mai bune performanțe pe date noi, cea mai simplă abordare a comparării diferitelor rețele este de a evalua funcția de eroare folosind date care sunt independente de cele utilizate pentru instruire. Diferite rețele sunt instruite prin minimizarea unei funcții de eroare adecvate definite cu privire la un set de date de instruire. Performanța rețelelor este apoi comparată prin evaluarea funcției de eroare utilizând un set de validare independent, iar rețeaua care are cea mai mică eroare în ceea ce privește setul de validare este selectată. Această abordare se numește metoda hold out . Întrucât această procedură poate duce ea însăși la o oarecare adaptare la setul de validare, performanța rețelei selectate ar trebui confirmată prin măsurarea performanței sale pe un al treilea set independent de date numit set de testare.
O aplicație a acestui proces este în oprirea timpurie , în care modelele candidate sunt iterații succesive ale aceleiași rețele și antrenamentul se oprește atunci când eroarea din setul de validare crește, alegând modelul anterior (cel cu eroare minimă).
Set de date de testare
Un set de date de testare este un set de date care este independent de setul de date de antrenament, dar care urmează aceeași distribuție de probabilitate ca și setul de date de antrenament. Dacă un model care se potrivește setului de date de antrenament se potrivește bine și setului de date de testare, a avut loc o supra-montare minimă (a se vedea figura de mai jos). O potrivire mai bună a setului de date de antrenament, spre deosebire de setul de date de testare, indică de obicei o supra-montare.
Un set de testare este deci un set de exemple utilizate doar pentru a evalua performanța (adică generalizarea) unui clasificator complet specificat. Pentru a face acest lucru, modelul final este utilizat pentru a prezice clasificările exemplelor din setul de testare. Aceste predicții sunt comparate cu clasificările adevărate ale exemplelor pentru a evalua acuratețea modelului.
Într-un scenariu în care se utilizează atât seturi de date de validare, cât și seturi de date de testare, setul de date de testare este de obicei utilizat pentru a evalua modelul final selectat în timpul procesului de validare. În cazul în care setul de date original este partiționat în două subseturi (seturi de date de formare și testare), setul de date de testare ar putea evalua modelul o singură dată (de exemplu, în metoda holdout ). Rețineți că unele surse recomandă împotriva unei astfel de metode. Cu toate acestea, atunci când se utilizează o metodă precum validarea încrucișată , două partiții pot fi suficiente și eficiente, deoarece rezultatele sunt mediate după runde repetate de modelare și testare pentru a ajuta la reducerea prejudecății și variabilității.
Confuzie în terminologie
Testarea înseamnă a încerca ceva pentru a afla despre asta („A pune la probă; a demonstra adevărul, autenticitatea sau calitatea experimentului”, conform Colaborative International Dictionary of English) și a valida înseamnă a demonstra că ceva este valid ( „Pentru a confirma; a face valabil” dicționar internațional colaborativ de engleză). Cu această perspectivă, cea mai comună utilizare a termenilor set de testare și set de validare este cea descrisă aici. Cu toate acestea, atât în industrie, cât și în mediul academic, acestea sunt uneori folosite schimbate, considerând că procesul intern testează diferite modele pentru a se îmbunătăți (setul de testare ca set de dezvoltare), iar modelul final este cel care trebuie validat înainte de utilizarea reală cu o date nevăzute (set de validare). „Literatura despre învățarea automată inversează adesea semnificația seturilor de„ validare ”și„ test ”. Acesta este exemplul cel mai flagrant al confuziei terminologice care străbate cercetarea inteligenței artificiale. Cu toate acestea, conceptul important care trebuie păstrat este acela că setul final , fie că se numește test sau validare, trebuie utilizat numai în experimentul final.
Validare încrucișată
Pentru a obține rezultate mai stabile și a utiliza toate datele valoroase pentru instruire, un set de date poate fi împărțit în mod repetat în mai multe seturi de date de formare și validare. Aceasta este cunoscută sub numele de validare încrucișată . Pentru a valida performanța modelului, se folosește în mod normal un set de date de test suplimentar, care se desprinde din validarea încrucișată.
Vezi si
- Clasificarea statistică
- Lista seturilor de date pentru cercetarea învățării automate
- Clasificare ierarhică