Asosiy kontentga o‘tish
Informatik.uz
Magistratura · 2-kurs1-bob. Chuqur o‘qitish

Konvolyutsion neyron tarmoqlar (CNN)

Konvolyutsion qatlam, filtrlar, pooling va CNN arxitekturasi: tasvirdagi fazoviy tuzilmani o‘rganish. LeNet’dan ResNet’gacha bo‘lgan taraqqiyot, ma’lumotlarni kengaytirish va transfer o‘qitish bilan tanishasiz.

1-mavzu / 22 daq o‘qishYangilangan: 27-oktabr, 2026
Mavzular ro‘yxati (1 / 2)

Tasvirni oddiy to‘liq bog‘langan tarmoqqa bersak, parametrlar soni haddan tashqari ko‘payadi: 224 × 224 o‘lchamli rangli rasmda 150528 ta kirish qiymati bor, birinchi qatlamda 1000 neyron bo‘lsa, taxminan 150 million vazn kerak bo‘ladi. Bunday tarmoq piksellarning fazoviy joylashuvini ham hisobga olmaydi: qo‘shni piksellar uzoqdagilar bilan bir xil muomala qilinadi. Konvolyutsion neyron tarmoqlar (CNN) bu muammoni lokal bog‘lanish va vaznlarni bo‘lishish orqali hal qiladi.

Konvolyutsion qatlam kichik filtrni (yadroni, masalan 3 × 3) tasvir bo‘ylab siljitadi, har bir joyda piksellar bilan filtr vaznlarini ko‘paytirib qo‘shadi va xususiyatlar xaritasini (feature map) hosil qiladi. Bir xil filtr butun tasvirda qo‘llanadi, shuning uchun parametrlar kam bo‘ladi va obyekt tasvirning qaysi joyida bo‘lmasin, filtr uni topa oladi. Filtrlar qo‘lda emas, o‘qitish jarayonida o‘rganiladi: dastlabki qatlamlar chegara va burchaklarni, chuqurroq qatlamlar esa shakl va obyekt qismlarini aniqlaydi. Aslida kutubxonalarda bu amal o‘zaro korrelyatsiya hisoblanadi, ammo an’anaviy ravishda konvolyutsiya deb ataladi.

Konvolyutsiyaning asosiy giperparametrlari: filtr o‘lchami, qadam (stride) va to‘ldirish (padding). Kirish o‘lchami n, filtr f, to‘ldirish p va qadam s bo‘lsa, chiqish o‘lchami floor((n + 2*p - f) / s) + 1 ga teng; masalan, n = 32, f = 5, p = 0, s = 1 da chiqish 28 ga teng. Pooling qatlami (ko‘pincha 2 × 2 max pooling) xususiyatlar xaritasini kichraytiradi, hisoblashni kamaytiradi va kichik siljishlarga chidamlilikni oshiradi. Konvolyutsiya natijasi odatda ReLU aktivatsiyasidan o‘tkaziladi.

Odatiy CNN konvolyutsiya, ReLU va pooling bloklarini ketma-ket joylashtiradi, oxirgi to‘liq bog‘langan qatlam va softmax esa sinflar ehtimolini hisoblaydi. Yann LeCun’ning LeNet-5 tarmog‘i (1998) qo‘lyozma raqamlarni tanigan; AlexNet (2012) ImageNet tanlovida katta farq bilan g‘olib bo‘lib, chuqur o‘qitish davrini boshlab berdi; ResNet (2015) esa qoldiq (skip) bog‘lanishlar yordamida yuzlab qatlamli tarmoqlarni o‘qitish imkonini berdi. Ma’lumot kam bo‘lsa, ma’lumotlarni kengaytirish (augmentation) va transfer o‘qitish, ya’ni oldindan o‘qitilgan modelni yangi vazifaga moslash qo‘llanadi.

Asosiy xulosalar

  • CNN lokal bog‘lanish va umumiy vaznlar tufayli to‘liq bog‘langan tarmoqdan ancha kam parametr ishlatadi.
  • Konvolyutsion qatlam o‘rganiladigan filtrlar bilan xususiyatlar xaritasini hosil qiladi; chuqurlashgan sari xususiyatlar murakkablashadi.
  • Chiqish o‘lchami floor((n + 2*p - f) / s) + 1 formulasi bilan topiladi.
  • Pooling o‘lchamni kamaytiradi va kichik siljishlarga chidamlilikni oshiradi.
  • Ma’lumot kam bo‘lsa, augmentatsiya va transfer o‘qitish yordam beradi.

Amaliy topshiriqlar

  1. Qo‘lda hisoblang: 5 × 5 tasvir va 3 × 3 filtr uchun (padding = 0, stride = 1) chiqish o‘lchamini toping, so‘ng o‘zingiz tanlagan filtr bilan chiqishning yuqori chap elementini hisoblang.
  2. PyTorch’da Conv2d(1, 8, kernel_size=3), ReLU, MaxPool2d(2) va chiziqli qatlamdan iborat kichik tarmoq tuzing, uni MNIST’da bir necha epoxa o‘qitib, test to‘plamidagi aniqlikni o‘lchang.
  3. Oldindan o‘qitilgan resnet18 modelini (torchvision) yuklab, oxirgi qatlamini almashtiring va ikki–uch sinfli kichik rasm to‘plamida faqat shu qatlamni o‘qiting; natijani noldan o‘qitilgan tarmoq bilan solishtiring.

Mustahkamlash savollari

O‘zingizni sinab ko‘ring: avval o‘ylab ko‘ring, keyin javobni oching.

  1. 1Rasmlar uchun nega to‘liq bog‘langan tarmoq o‘rniga CNN afzal?
    CNN lokal bog‘lanish va umumiy vaznlar tufayli ancha kam parametr ishlatadi, fazoviy tuzilmani hisobga oladi va obyektni tasvirning istalgan joyida topadi.
  2. 232 × 32 tasvirga `padding = 0` va `stride = 1` da 5 × 5 filtr qo‘llansa, chiqish o‘lchami qancha bo‘ladi?
    28 × 28, chunki 32 - 5 + 1 = 28.
  3. 3Transfer o‘qitish nima?
    Katta ma’lumotlar to‘plamida (masalan, ImageNet) oldindan o‘qitilgan modelni yangi, kichik vazifaga moslab o‘qitish.

0 / 2 mavzu o‘tildi

Kirib belgilash