Kirish:

CNN (Convolutional Neuron Network) - bu chuqur o'rganiladigan neyron tarmoq. Tasvirlarni tasniflash, ob'ektni aniqlash va segmentatsiyalash kabi turli vazifalarni bajarish uchun tasvirlardagi naqshlarni topish uchun ayniqsa samaralidir. Strukturaviy ravishda CNN konvolyutsion qatlam, birlashtiruvchi qatlam va to'liq bog'langan qatlamdan iborat. Ushbu qatlamlar kirish ma'lumotlaridan xususiyatlarning fazoviy ierarxiyasini o'rganish va ajratib olish va kompyuterning turli xil ko'rish funktsiyalarini bajarish uchun filtrlash operatsiyalarini bajaradi. Bundan tashqari, CNN bilan ishlashda foydalanuvchilar o'quv jarayonini tezlashtirish yoki model aniqligini optimallashtirish uchun boshqa mutaxassislar tomonidan muvaffaqiyatli ishlab chiqilgan oldindan o'qitilgan modellardan foydalanish imkoniyatiga ega. GoogLeNet va AlexNet kabi oldindan o'qitilgan modellar tegishli chuqur o'rganish ilovalarini hal qilish uchun yaxshi boshlanish nuqtasi ekanligi isbotlangan.

AI sinfimdagi yakuniy semestr loyihasi uchun men chuqur o'rganish kontseptsiyasini o'rganish uchun CNN va Transfer Learning-dan foydalanmoqchiman. Xususan, men 12 000 xil tasvirdan iborat maʼlumotlar toʻplamidagi niqoblarni aniqlash uchun AI modelini ishlab chiqmoqchiman. Maqsad faqat 2 guruhni aniqlash uchun piksellardagi butun tasvir tasnifini muvaffaqiyatli bajarish emas: niqob kiygan odamlarning tasvirlari va niqob kiymaydigan odamlarning tasvirlari; Bundan tashqari, o'z-o'zidan ishlab chiqilgan CNN u erda mavjud bo'lgan va odamlar foydalanishi mumkin bo'lgan modellarni yaxshiroq o'rgatishi mumkinligini aniqlash uchun. Hamma narsa Python-da yozilgan Keras, yuqori darajadagi neyron tarmoqlari API orqali qurilgan va o'zgartirilgan.

Maʼlumotlar toʻplami:

Ma'lumotlar manbai Kaggle nomli ommaviy veb-saytdan olingan. Ma'lumotlar to'plamida 12 000 ga yaqin tasvir mavjud. Va yuz niqoblarini kiygan odamlarning suratlari Google Qidiruvdan olib tashlanadi, niqob taqmagan odamlarning suratlari esa Jessica Li tomonidan yaratilgan CelebFace maʼlumotlar toʻplamidan yigʻiladi va qayta ishlanadi. Manbalar:

  1. "https://www.kaggle.com/datasets/ashishjangra27/face-mask-12k-images-dataset" - to'liq ma'lumotlar to'plami.
  2. "https://www.kaggle.com/jessicali9530" - Jessica Lining ma'lumotlar to'plami

Bundan tashqari, tasvirlar 3 papkaga bo'lingan, shu jumladan Test ma'lumotlari, Poezd ma'lumotlari va Tasdiqlash ma'lumotlari. Bu obrazlarda odamlar turli mimika va his-tuyg‘ular bilan tasvirlangan. Ularning ikkalasi ham erkak/ayol va bir nechta madaniy kelib chiqishi. Darvoqe, haqiqiy odam o'rniga multfilmlarning oz sonli tasvirlari.

  1. Poyezd ma'lumotlari: 5000 - niqobli tasvirlar | 5000 - niqobsiz tasvirlar
  2. Sinov ma'lumotlari: 483 - niqobli tasvirlar | 509 - niqobsiz tasvirlar
  3. Tasdiqlash ma'lumotlari: 400 - niqobli rasmlar
    400 - niqobsiz tasvirlar.

Oldindan o'qitilgan boshqa modellar bilan taqqoslash va taqqoslash uchun ikkita CNN ishlab chiqiladi. Birinchi CNN haqiqatan ham oddiy bo'ladi va qo'llab-quvvatlovchi giperparametrlarga ega emas. Boshqa tomondan, ikkinchi CNN turli xil qo'llab-quvvatlovchi parametrlarni o'z ichiga oladi, masalan, qadam tashlash, partiyani normallashtirish, birlashtirish va hokazo. Oldindan o'qitilgan modellar nuqtai nazaridan InceptionV3, MobileNet_V2 va VGG16 ishga tushiriladi, o'qitiladi va baholanadi.

Maqsad va usullar:

›› Maqsad - suratlarda yuz maskalari qachon to‘g‘ri taqib yurishini aniqlash uchun aqlli modellarni ishlab chiqarish.

›› Qanday qilib rasmiylar yuqumli kasalliklarni nazorat qilishga yordam beradigan statistik ma'lumotlarni yaratish uchun shunga o'xshash tadqiqotlardan foydalanishlari mumkin?

›› Ushbu ma'lumotlar uchun qaysi modellar eng mos keladi?​

›› Bizning modelimiz Transfer Learning Models bilan qanday taqqoslanadi?​

›› Yaxshiroq natijalar va aniqlikka erishish uchun qanday yaxshilanishlar qilish mumkin?​

Jarayonlar va tushunchalar:

I. Giperparametrlarni qo'llab-quvvatlamasdan CNN

Birinchidan, model muvaffaqiyatli ishlashi uchun kerakli paketlarni import qilishim kerak. Ular keras, ketma-ket, syujetdir. Shundan so'ng, men modelni 2 ga teng sinflar soni bilan aniqlayman, chunki segmentlarga bo'linishi kerak bo'lgan ikkita tasvir guruhi mavjud. Konvolyutsiya qatlamlari uchun sigmasimon faollashtirish funktsiyasi sifatida ishlatiladi va kirish shakli (200, 200 va 3) da barqaror saqlanadi. Chuqurroq qatlamlarda men filtr hajmini asta-sekin kamaytirish va filtrlar sonini ko'paytirish orqali modelni yaxshilashga harakat qilaman. Oxirgi qatlamda modelga tasniflash vazifasini bajarishga imkon beruvchi tekislash va SoftMax qo'shishni unutolmadim.

Natijalar 2 soatlik mashg'ulotdan keyin qaytib keladi. O'rtacha yo'qotish deyarli 70%, aniqlik esa 48%. Tasdiqlashning yo'qolishi ham o'rtacha 70% ni tashkil qiladi va tasdiqlash aniqligi 50% ni tashkil qiladi. Men ushbu model uchun 0-sinf va 1-sinf juda boshqacha qiymatlarga ega bo'lgan CFM quraman. 0-sinf (niqobsiz odamlar tasvirlari) uchun eslab qolish 100%, 1-sinf (niqobli odamlar tasvirlari) esa 0da. Xuddi shu narsa F1 qiymatida sodir bo'ladi. Ushbu raqamlarga asoslanib, bu yaxshi model emas va men undan uzoqroq turishni tavsiya qilaman.

II. Qo'llab-quvvatlovchi parametrlarga ega CNN

Ikkinchi CNN modeli uchun konvolyutsiya qatlamlari avvalgisidan keskin farq qiladi. Buning sababi shundaki, u tarmoqni nozik sozlash va uni yanada samarali qilish uchun turli xil giperparametrlarni o'z ichiga oladi. Bu yerda keltirilgan giperparametrlar zich, Dropout, Maxpooling2D, Batch Normalization va Conv2D. Men bu safar faollashtirish funksiyasi sifatida relu dan foydalanaman, lekin kirish shaklini (200, 200 va 3) da ushlab turaman. Shuningdek, men filtr hajmini asta-sekin kamaytiraman va chuqurroq qatlamlarda filtrlar sonini ko'paytiraman. Oxirgi qatlamga kelganda, tekislang va SoftMax yana kiritiladi. To'liq konvolyutsiya qatlamlari quyidagicha

Kutilganidek, ushbu modelning natijalari avvalgisidan ancha yaxshi. Qo'llab-quvvatlovchi giperparametrlar bilan mashg'ulot jarayoni atigi 30 daqiqa davom etadi va o'rtacha aniqlik taxminan 98% ni tashkil qiladi; O'rtacha yo'qotish esa 10 davr ichida atigi 25% ni tashkil qiladi. Uning CFM-ga nazar tashlaydigan bo'lsak, ikkala sinf uchun aniqlik, eslab qolish va F1 balli 98–99% da qolmoqda. Bu model tasvirlarni niqobli va niqobli tasvirlar guruhlariga muvaffaqiyatli va samarali tasniflaganligini ko'rsatishga yordam beradi.

III. InceptionV3, MobileNetV2 va VGG16 bilan oʻquv modellarini oʻtkazing

Ushbu oldindan o'rgatilgan modellarni o'rnatish uchun dastlab ularning to'liq bog'langan qatlamlarini olib tashlashim va ularni tasvir ma'lumotlar to'plamidagi sinflar soniga teng bo'lgan chiqish o'lchamiga ega bo'lgan o'z qatlamim bilan almashtirishim kerak. Shunday qilib, yangi model barcha qatlamlarda o'rganishni amalga oshirish va yangi to'liq bog'langan qatlamda yangi vaznlarni yangilash uchun moslashtiriladi va o'rnatiladi. Haddan tashqari moslashish katta tashvish tug'dirmaydi, chunki yuqoriroq xususiyatlar ushbu oldindan o'rgatilgan tarmoqlardan olib tashlanmaydi. Bosqichlar quyidagicha (ta'kidlanganidek, bu qadamlar InceptionV3 uchun ko'rsatilgan, ammo kodlar boshqa ikkita model uchun bir xil qo'llaniladi).

Barcha modellar o'quv jarayonini yakunlash uchun taxminan 20 daqiqa davom etadi va ularning aniqligi sezilarli darajada yuqori. Xususan, MobileNetV2 99,4% gacha aniqlikka erishadi; Holbuki, InceptionV3 va VGG16 ning aniqlik qiymatlari mos ravishda 99,80% va 99,50% ni tashkil qiladi. Ushbu modellar haqiqatan ham niqob kiygan va taqmaydigan odamlarning tasvirlarini tasniflash qobiliyatini ko'rsatdi. Quyida ularning aniqligi va yo'qotish grafiklari keltirilgan. Ularning CFMlaridan har ikkala sinf uchun hamma narsa 1 ga to'g'ri keladi, bu esa transferni o'rganish muvaffaqiyatli amalga oshirilganligini ko'rsatadi.

Xulosa va yakuniy fikrlar:

O'zimning CNN tarmog'imni noldan qurish va loyihalash strategiyasi qayta o'qitilgan tarmoqni qayta ishlatishdan ko'ra ko'proq kuch va hisoblash quvvatini talab qiladi. Ushbu tasvir ma'lumotlar to'plami uchun "Transferni o'rganish" yondashuvi afzalroq echimdir, chunki men foydalanadigan barcha oldindan o'qitilgan tarmoqlar giperparametrlarni qo'llab-quvvatlamasdan yoki qo'llab-quvvatlamasdan, o'zimning CNN modelimdan ko'ra yaxshiroq aniqlik hosil qiladi. Bundan tashqari, Transfer Learning o'qitish uchun kamroq vaqt talab etadi, chunki u o'zi ishlab chiqqan CNN kabi yuqori unumdor protsessorga muhtoj emas. Umuman olganda, MobileNetV2 99,89% aniqlik bilan eng yaxshi modeldir; Holbuki, muhim giperparametrlarga ega bo'lmagan CNN atigi 48,69% aniqlik bilan eng yomon echimdir. Ushbu natijalarga kelsak, Transfer Learning naqshlarni aniqlash va tasvirlarni tasniflash sohasida yaxshiroq va kuchliroq texnikadir. Biroq, men boshqalarni o'zlarining CNN-ni loyihalash va o'qitishdan to'sqinlik qilish uchun faqat bitta loyihaga tayanishni xohlamayman. Chunki amalga oshirilgan bir qator empirik tadqiqotlarda maxsus CNN muvaffaqiyatli qurilganda yuqori aniqlik olinadi.

O'qiganingiz uchun tashakkur va iltimos, menga Transfer Learning CNNni loyihalashdan ko'ra yaxshiroqmi yoki yo'qmi degan fikringizni bildiring!!!