Testiraj svoj ML model: Izbjegni greške početnika
Prestani lagati samog sebe: Tvoj model je vjerovatno smeće
Prestanite vjerovati onom broju koji vam iskoči na kraju Jupyter Notebooka. Tačnost od 99.9% nije uspjeh; to je vrišteći alarm da ste negdje zabrljali hemiju podataka. Ako mislite da ste napravili revoluciju preko noći, vjerovatno ste samo dopustili modelu da viri u odgovore prije ispita. Ti i tvoj kod ste u sukobu sa realnošću, a realnost ne oprašta početničke greške. Većina vas ‘trenira’ modele kao da slažete Lego kockice po uputstvu, a onda se čudite kad se sve sruši čim puhne prvi vjetar stvarnih podataka.
Zašto ti treba multimetar za kod, a ne samo nada
U mašinskom učenju, tvoj ‘multimetar’ su metrike, ali većina ljudi ne zna ni kako da ih drži u rukama. Ako radiš na modelu koji treba da prepozna rijetku bolest, a 99% tvojih pacijenata je zdravo, tvoj model može samo da pogađa ‘zdrav’ i imaće 99% tačnosti. Čestitamo, upravo si ubio onaj 1% ljudi koje je model trebao spasiti. To se zove data imbalance i to je prvi zid od kojeg ćeš razbiti glavu. Umjesto da slaviš, pogledaj F1 score ili Precision-Recall krivu. Ako ne razumiješ ove brojeve, tvoj model je samo skupi grijač za grafičku karticu. Pogledaj kako popraviti data imbalance u 3 koraka prije nego nastaviš dalje.
UPOZORENJE: Testiranje modela na podacima koje je već vidio tokom treninga je kao da daješ studentu test sa odgovorima napisanim na poleđini. Rezultat je beskoristan, a ti si nesposoban mentor. Ovo uzrokuje ‘overfitting’ koji će te koštati posla u produkciji.
Anatomija propasti: Curenje podataka koje niko ne vidi
Curenje podataka (Data Leakage) je tihi ubica projekata. Desi se kad informacija iz budućnosti (testnog seta) procuri u prošlost (trening set). To je kao da pokušavaš predvidjeti kišu dok gledaš u mokar trotoar u testnom setu. Miris spaljenih resursa je stvaran kad shvatiš da je tvoj model ‘naučio’ ID broj pacijenta umjesto simptoma bolesti. Ja sam proveo 14 sati tražeći zašto moj model ima savršene rezultate, da bih shvatio da sam slučajno ostavio kolonu ‘rezultat’ u trening setu. Bilo mi je muka. Nemoj biti ja. Uvijek, ali uvijek, prvo uradi pravilno splitovanje podataka. To nije preporuka, to je zakon radionice.
Fizika žaljenja: Zašto linearni modeli ponekad šamaraju neuronske mreže
Početnici odmah skaču na Deep Learning jer zvuči moćno. Istina je grublja: neuronska mreža je kao ogroman kamion s prikolicom kojim pokušavaš otići do trafike po cigare. Teško je, troši previše, i vjerovatno ćeš srušiti komšijinu ogradu. Često će obična logistička regresija ili Random Forest raditi bolje jer su robusniji na buku. U mojoj praksi, jednostavnost pobjeđuje 8 od 10 puta. Ako ne možeš objasniti zašto je model donio odluku, onda ne gradiš alat, nego gradiš crnu kutiju u koju se moliš bogovima koda. To nije inženjering. To je kockanje. Provjeri ove metrike za tvoju karijeru da vidiš gdje griješiš u procjeni.
Da li je cross-validation zaista neophodan?
Da. Kratko i jasno. Ako ne koristiš K-fold cross-validation, tvoj model je stabilan koliko i kuća od karata na propuhu. Moraš ga ‘maltretirati’ različitim dijelovima podataka da vidiš da li je zaista naučio obrasce ili je samo zapamtio buku u tvom malom setu podataka. To traje duže, da. Tvoja grafička će zujati jače, da. Ali to je jedini način da mirno spavaš kad model pustiš ‘u divljinu’.
Anatomija jednog kvara: Šta se desi kad zaboraviš na ‘Bias’
Ako su tvoji podaci prikupljeni samo od jedne grupe ljudi, tvoj model će biti rasista ili elitista, a da to ni ne znaš. To nije samo etički problem; to je tehnički kvar. Model koji radi savršeno u laboratoriji, a propadne na ulici, je pokvaren proizvod. Stari programer Mirza mi je jednom rekao: ‘Ako mu ne daš smeće, neće ti vratiti zlato, nego još veće smeće koje izgleda kao zlato’. Taj citat mi stoji na zidu. Moraš aktivno tražiti gdje tvoj model griješi. Napravi ‘Confusion Matrix’. Pogledaj te nule i jedinice koje se miješaju. Tu se krije istina o tvom radu. Slather (namaži) te testove debelo, nemoj štedjeti na provjerama. Ako tvoj model preživi taj pakao, onda je spreman.
Zašto ti model gine na produkciji?
Na tvom laptopu je sve čisto. U produkciji je gnusno. Podaci kasne, polja su prazna, a korisnici unose gluposti. Ako tvoj proces validacije ne uključuje simulaciju ‘prljavih’ podataka, očekuj da će te zvati u 3 ujutro jer je sistem pao. Model mora biti žilav. Ne gradi staklenu skulpturu, gradi čekić. Koristi ovaj test za curenje podataka da vidiš koliko je tvoj sistem zapravo šupalj. Na kraju dana, tvoj posao nije da istreniraš model, nego da osiguraš da on radi dok ti spavaš. Sve ostalo je samo hobi.



Ovaj članak je zaista pruža dobar uvid u važne stvari koje početnici često zanemaruju u mašinskom učenju, poput data imbalance i curenja podataka. Često sam i ja vidio kako se model sa 99% tačnosti prikazuje kao uspjeh, a realno, ne radi ništa od toga što bi trebao. Moj stav je da je ključno ne fokusirati se samo na velike brojeve, već razumjeti šta ti modeli rade u pozadini i kako interpretirati metrike. Posebno mi se svidjela ta analogija s multimetrom – vrlo lako možemo pogrešno procijeniti performanse ako ne znamo šta gledamo. Često se pitam, kako najefikasnije edukovati nove stručnjake da ne padnu u zamku prevelikog oslanjanja na jednostavne metrike? Šta su vaši savjeti za predavanje složenijih koncepta u jasnom i razumljivom obliku?