Bu modul kursning kirish eshigi: kompyuter ko’rishi nima bilan shug’ullanadi va rasm klassifikatsiyasining birinchi — chuqur bo’lmagan — yechimlari.
Fan va uning vazifasi
Kompyuter ko’rishi — rasm va videodan ma’no chiqarish fani. Markaziy masala — rasm klassifikatsiyasi: berilgan rasmga sinf yorlig’ini (mushuk, it, mashina...) berish. Kompyuter uchun rasm — shunchaki sonlar tensori (masalan, 32×32×3), va qiyinchilik shundaki, bitta "mushuk" tushunchasi millionlab har xil piksel kombinatsiyasida keladi: yoritish, rakurs, poza, to’siqlar (occlusion), fon o’zgaraveradi. Qoidalarni qo’lda yozib bo’lmaydi — yechim ma’lumotdan o’rganish (data-driven yondashuv): katta yorliqlangan to’plam (masalan, CIFAR-10) olinadi va klassifikator shu misollardan o’rgatiladi.
kNN: eng sodda klassifikator
k ta yaqin qo’shni usuli o’qitishda hech narsa qilmaydi — hamma rasmlarni shunchaki eslab qoladi. Bashoratda yangi rasm hamma o’quv rasmlari bilan masofa bo’yicha solishtiriladi (L1 — farqlar moduli yig’indisi, yoki L2 — evklid) va eng yaqin k tasining ko’pchilik sinfi javob bo’ladi.
# g'oya (soddalashtirilgan)
masofalar = np.abs(X_train - yangi_rasm).sum(axis=(1, 2, 3)) # L1
eng_yaqin_k = masofalar.argsort()[:k]
javob = ko_pchilik_sinfi(y_train[eng_yaqin_k])
kNN rasmlar uchun yomon ishlaydi: bashorat vaqti o’quv to’plami hajmiga proporsional (aksincha bo’lishi kerak edi!), piksel masofasi esa ma’noga mos kelmaydi — surilgan yoki qoraytirilgan rasm "uzoq" bo’lib chiqadi. k va masofa turi — giperparametrlar; ular test to’plamida emas, validatsiya to’plamida tanlanadi. Test faqat yakuniy bahoga — bu qoida butun kurs davomida amal qiladi.
Chiziqli klassifikator
Parametrik yondashuv: har sinfga bitta og’irlik qatori — s = Wx + b. Bu yerda x — tekislangan rasm (3072,), W — (10, 3072), s — 10 sinf balli. O’qitilgach o’quv to’plami kerak emas: bashorat — bitta matritsa ko’paytmasi. W qatorlarini rasm qilib chizsangiz, har sinfning xira "shabloni" ko’rinadi — chiziqli model har sinf uchun bitta shablon o’rganadi, xolos. Kuchi cheklangan, lekin bu neyron tarmoqning birinchi g’ishti: keyingi modullarda shu qatlamlar ustma-ust qo’yiladi.
Loss, regularizatsiya, optimizatsiya
Yaxshi W ni topish uchun uch narsa kerak:
Loss — W qanchalik yomonligini o’lchaydi. Ikki klassik tanlov: multiclass SVM loss (to’g’ri sinf balli noto’g’rilardan kamida marja farqi bilan yuqori bo’lsin) va softmax/cross-entropy (ballar ehtimolga aylantirilib, to’g’ri sinf ehtimolining logarifmi jazolanadi).
Regularizatsiya — lossga λ·Σw² (L2) qo’shiladi: katta og’irliklar jazolanadi, model sodda yechimlarga undaladi, overfitting kamayadi. λ — yana bir giperparametr.
Optimizatsiya — SGD (stochastic gradient descent): har qadamda kichik mini-batch olinadi, loss gradienti hisoblanadi, og’irliklar gradientga qarshi suriladi:
W := W − lr · ∇L(batch)
| Tushuncha | Savoli |
|---|---|
| Loss | hozirgi W qanchalik yomon? |
| Gradient | W ni qaysi tomonga surish kerak? |
| Learning rate | qancha katta qadam bilan? |
| Regularizatsiya | model juda murakkablashib ketmayaptimi? |
Amaliyot
- Rasm klassifikatsiyasini qiyinlashtiradigan 5 omilni (yoritish, rakurs...) o’z misollaringiz bilan yozing.
- kNN’da k = 1 va k = butun_toplam bo’lganda bashorat qanday buzilishini tushuntiring.
- 4 piksel va 3 sinfli o’yinchoq misolda s = Wx + b ni qo’lda hisoblang (kichik W o’ylab toping).
- Nega giperparametrni test to’plamida tanlash mumkin emasligini 2–3 jumlada yozing.
- L2 regularizatsiya bir xil lossli ikki W dan qaysinisini afzal ko’rishini misolda ko’rsating: W1 = [1, 0, 0, 0], W2 = [0.25, 0.25, 0.25, 0.25].
Modul testi keyingi darsda.