Îmbunătățiți-vă modelul de învățare profundă Către știința datelor
Trucuri pentru a îmbunătăți precizia clasificatorului
Aditya Mishra
14 mai 2019 · 7 min de citire
Clasificarea imaginilor este presupusă a fi o problemă aproape rezolvată. Partea distractivă este când trebuie să-ți folosești toată viclenia pentru a obține acea precizie suplimentară de 1%. Am întâlnit o astfel de situație, când am participat la Intel Scene Classification Challenge găzduit de Analytics Vidhya. M-am bucurat din plin de concurs în timp ce încercam să extrag toate sucurile din modelul meu de învățare profundă. Tehnicile de mai jos pot fi aplicate în general oricărei probleme de clasificare a imaginilor la îndemână.

Problema a fost clasificarea unei imagini date în 6 categorii
Am fost gi v en
25K imagini dintr-o gamă largă de scene naturale din întreaga lume
Este tehnica de a redimensiona secvențial toate imaginile în timp ce instruiți CNN-urile cu dimensiuni mai mici sau mai mari. Redimensionarea progresivă este descrisă pe scurt în cursul său extraordinar de rapid, „Învățare profundă practică pentru programatori”. O modalitate excelentă de a utiliza această tehnică este de a antrena un model cu dimensiuni mai mici ale imaginii, de exemplu 64x64, apoi folosiți greutățile acestui model pentru a instrui un alt model pe imagini de dimensiuni 128x128 și așa mai departe. Fiecare model la scară mai mare încorporează straturile și greutățile anterioare ale modelului la scară mai mică în arhitectura sa.
Biblioteca fastai este o bibliotecă puternică de învățare profundă. Dacă echipa FastAI găsește o lucrare deosebit de interesantă, o testează pe diferite seturi de date și află cum să o regleze. Odată reușit, acesta este încorporat în biblioteca lor și este ușor disponibil pentru utilizatorii săi. Biblioteca conține multe tehnici de ultimă generație (SOTA) încorporate. Construit pe tipul de pirtorch, fastai are parametri impliciți excelenți pentru majoritatea, dacă nu pentru toate sarcinile. Unele dintre tehnici sunt
- Rata ciclică de învățare
- Un ciclu de învățare
- Învățare profundă asupra datelor structurate
În timp ce verificam seturile de date standard disponibile, am dat peste setul de date Places365. Setul de date Places365 conține 1,8 milioane de imagini din 365 de categorii de scene. Setul de date furnizat în provocare a fost foarte similar cu acest set de date, astfel încât modelul instruit în acest set de date va avea deja caracteristici învățate care sunt relevante pentru propria noastră problemă de clasificare. Deoarece, categoriile din problema noastră, erau un subset de seturi de date Places365, am folosit un model ResNet50 inițializat cu greutăți places365.
Greutățile modelului erau disponibile ca greutăți pirtorh. Funcția de utilitate de mai jos ne-a ajutat să încărcăm datele corect în CNN Learner de la fastai.
Augmentarea mixup este un tip de augmentare în care formăm o nouă imagine prin interpolare liniară ponderată a două imagini existente. Luăm două imagini și facem o combinație liniară a acestora în termeni de tensori ai acestor imagini.
λ este eșantionat aleatoriu din distribuția beta. Chiar dacă autorii lucrării sugerează utilizarea λ = 0,4, valoarea implicită din biblioteca fastai este setată la 0,1
Rata de învățare este unul dintre cei mai importanți hiper-parametri pentru formarea rețelelor neuronale. fastai are o metodă pentru a afla o rată de învățare inițială adecvată. Această tehnică se numește rată de învățare ciclică, unde efectuăm o încercare cu o rată de învățare mai mică și o creștem exponențial, înregistrând pierderea pe parcurs. Plotăm apoi pierderea în raport cu rata de învățare și alegem rata de învățare în care pierderea este cea mai abruptă.