Neyron tarmoqlar. Bularning hammasi qayerga ketyapti?

Maqola ikki qismdan iborat:

  1. Tasvirlarda ob'ektni aniqlash va men uchun resurslarga eng tushunarli havolalar bilan tasvir segmentatsiyasi uchun ba'zi tarmoq arxitekturalarining qisqacha tavsifi. Men video tushuntirishlarni tanlashga harakat qildim va eng yaxshisi rus tilida.
  2. Ikkinchi qism neyron tarmog'i arxitekturasining rivojlanish yo'nalishini tushunishga urinishdir. Va ularga asoslangan texnologiyalar.

Neyron tarmoqlar. Bularning hammasi qayerga ketyapti?

1-rasm – Neyron tarmoq arxitekturasini tushunish oson emas

Hammasi Android telefonida obyektlarni tasniflash va aniqlash uchun ikkita demo-ilovani yaratishdan boshlandi:

  • Orqa tomon demo, ma'lumotlar serverda qayta ishlanib, telefonga uzatilganda. Uch turdagi ayiqlarning tasvir tasnifi: jigarrang, qora va o'yinchoq.
  • Front-end demoma'lumotlar telefonning o'zida qayta ishlanganida. Uch turdagi ob'ektlarni aniqlash (ob'ektni aniqlash): findiq, anjir va xurmo.

Tasvirni tasniflash, tasvirdagi ob'ektni aniqlash va vazifalari o'rtasida farq bor tasvir segmentatsiyasi. Shu sababli, qaysi neyron tarmoq arxitekturasi tasvirlardagi ob'ektlarni aniqlaydi va qaysi biri segmentlarga bo'linishi mumkinligini aniqlash kerak edi. Men uchun manbalarga eng tushunarli havolalar bilan quyidagi arxitektura misollarini topdim:

  • R-CNN ga asoslangan bir qator arxitekturalar (Rbilan hududlar Caylanish Nevral Networks xususiyatlari): R-CNN, Fast R-CNN, Tezroq R-CNN, Mask R-CNN. Rasmdagi ob'ektni aniqlash uchun hududiy takliflar tarmog'i (RPN) mexanizmidan foydalangan holda chegara qutilari ajratiladi. Dastlab, RPN o'rniga sekinroq Tanlangan qidiruv mexanizmi ishlatilgan. Keyin tanlangan cheklangan hududlar tasniflash uchun an'anaviy neyron tarmog'ining kirishiga beriladi. R-CNN arxitekturasi cheklangan hududlarda aniq "for" tsikllariga ega, AlexNet ichki tarmog'i orqali jami 2000 tagacha ishlaydi. Aniq "for" tsikllari tasvirni qayta ishlash tezligini sekinlashtiradi. Arxitekturaning har bir yangi versiyasida ichki neyron tarmog'i orqali ishlaydigan aniq halqalar soni kamayadi va tezlikni oshirish va Mask R-CNN da ob'ektni aniqlash vazifasini ob'ekt segmentatsiyasi bilan almashtirish uchun o'nlab boshqa o'zgarishlar kiritiladi.
  • YOLO (You Only Look Once) mobil qurilmalarda real vaqtda ob'ektlarni taniydigan birinchi neyron tarmoqdir. O'ziga xos xususiyat: ob'ektlarni bir yugurishda farqlash (faqat bir marta ko'rish). Ya'ni, YOLO arxitekturasida aniq "for" tsikllari mavjud emas, shuning uchun tarmoq tez ishlaydi. Misol uchun, bu o'xshashlik: NumPy da matritsalar bilan operatsiyalarni bajarishda aniq "for" tsikllari ham mavjud emas, ular NumPy-da C dasturlash tili orqali arxitekturaning quyi darajalarida amalga oshiriladi.YOLO oldindan belgilangan oynalar panjarasidan foydalanadi. Xuddi shu ob'ektni bir necha marta aniqlanishiga yo'l qo'ymaslik uchun oynani qoplash koeffitsienti (IoU) ishlatiladi. Ichorraha oBer Union). Ushbu arxitektura keng doirada ishlaydi va yuqori mustahkamlik: Modelni fotosuratlarga o'rgatish mumkin, ammo qo'lda chizilgan rasmlarda yaxshi ishlaydi.
  • SSD (Sg'ov Sissiq MultiBox Detektor) - YOLO arxitekturasining eng muvaffaqiyatli "hack"lari qo'llaniladi (masalan, maksimal bo'lmagan bostirish) va neyron tarmoq tezroq va aniqroq ishlashi uchun yangilari qo'shiladi. Ajralib turadigan xususiyat: tasvir piramidasida berilgan oynalar panjarasidan (standart quti) foydalanib, bir martalik ob'ektlarni farqlash. Tasvir piramidasi ketma-ket konvolyutsiya va birlashtirish operatsiyalari orqali konvolyutsiya tensorlarida kodlangan (maksimal yig'ish operatsiyasi bilan fazoviy o'lcham kamayadi). Shu tarzda, bir tarmoq ishida ham katta, ham kichik ob'ektlar aniqlanadi.
  • MobileSSD (ko'chmaNetV2+ SSD) ikkita neyron tarmoq arxitekturasining kombinatsiyasi. Birinchi tarmoq MobileNetV2 tez ishlaydi va tanib olish aniqligini oshiradi. Dastlab ishlatilgan VGG-2 o'rniga MobileNetV16 ishlatiladi original maqola. Ikkinchi SSD tarmog'i tasvirdagi ob'ektlarning joylashishini aniqlaydi.
  • SqueezeNet - juda kichik, ammo aniq neyron tarmoq. O'z-o'zidan, u ob'ektni aniqlash muammosini hal qilmaydi. Biroq, u turli xil arxitekturalarning kombinatsiyasida ishlatilishi mumkin. Va mobil qurilmalarda ishlatiladi. O'ziga xos xususiyat shundaki, ma'lumotlar birinchi navbatda to'rtta 1 Γ— 1 konvolyutsion filtrga siqiladi va keyin to'rtta 1 Γ— 1 va to'rtta 3 Γ— 3 konvolyutsion filtrga kengaytiriladi. Ma'lumotlarni siqish-kengaytirishning bunday takrorlanishi "Yong'in moduli" deb ataladi.
  • DeepLab (Chuqur konvolyutsion tarmoqlar bilan semantik tasvirni segmentatsiyalash) - tasvirdagi ob'ektlarni segmentatsiyalash. Arxitekturaning o'ziga xos xususiyati kengaygan konvolyutsiya bo'lib, u fazoviy o'lchamlarini saqlaydi. Keyinchalik, segmentatsiyadagi kichik shovqinlarni olib tashlash va segmentlangan tasvir sifatini yaxshilash imkonini beruvchi grafik ehtimollik modeli (shartli tasodifiy maydon) yordamida natijalarni qayta ishlashdan keyingi bosqich. "Grafik ehtimollik modeli" degan dahshatli nomning orqasida besh ballga yaqinlashtirilgan an'anaviy Gauss filtri yashiringan.
  • Qurilmani aniqlashga harakat qildim RefineDet (Yagona zarba qaytadan ishlamoqOb'ekt uchun neyron tarmog'i TheEction), lekin men ko'p narsani tushunmadim.
  • Men "diqqat" texnologiyasi qanday ishlashini ham ko'rib chiqdim: video1, video2, video3. "Diqqat" arxitekturasining o'ziga xos xususiyati tasvirdagi diqqatni jalb qiladigan hududlarni avtomatik tanlashdir (RoI, Regionlar of Interest) Diqqat Birligi deb nomlangan neyron tarmoqdan foydalangan holda. Diqqatning kuchayishi hududlari cheklovchi qutilarga o'xshaydi, lekin ulardan farqli o'laroq, ular tasvirda aniqlanmagan va chegaralari loyqa bo'lishi mumkin. Keyinchalik, diqqat markazida bo'lgan hududlardan belgilar (xususiyatlar) ajratiladi, ular arxitektura bilan takrorlanuvchi neyron tarmoqlarga "oziqlanadi". LSDM, GRU yoki Vanilla RNN. Takroriy neyron tarmoqlar ketma-ketlikda xususiyatlarning o'zaro bog'liqligini tahlil qilishga qodir. Takroriy neyron tarmoqlar dastlab matnni boshqa tillarga tarjima qilish uchun ishlatilgan, endi esa tarjima qilish uchun rasmlar matnga ΠΈ rasmga matn.

Ushbu arxitekturalarni o'rganayotganimizda Men hech narsani tushunmasligimni angladim. Va bu mening neyron tarmog'imning diqqat mexanizmi bilan bog'liq muammolari emas. Bu barcha arxitekturalarning yaratilishi qandaydir ulkan xakatonga o'xshaydi, unda mualliflar xakerliklarda raqobatlashadi. Hack - bu qiyin dasturiy ta'minot muammosini tezkor hal qilish. Ya'ni, bu barcha arxitekturalar o'rtasida ko'rinadigan va tushunarli mantiqiy aloqa yo'q. Ularni birlashtiradigan narsa - bu ular bir-biridan qarz oladigan eng muvaffaqiyatli xakerlar to'plami, shuningdek, hamma uchun umumiy. yopiq konvolyutsiya operatsiyasi (xatoning orqaga tarqalishi, orqaga tarqalishi). Yo'q tizimli fikrlash! Nimani o'zgartirish va mavjud yutuqlarni qanday optimallashtirish kerakligi aniq emas.

Buzg'unchilar o'rtasida mantiqiy aloqaning yo'qligi natijasida ularni eslab qolish va amalda qo'llash juda qiyin. Bu parchalangan bilim. Eng yaxshi holatda, bir nechta qiziqarli va kutilmagan daqiqalar esga olinadi, lekin tushunilgan va tushunarsiz narsalarning aksariyati bir necha kun ichida xotiradan yo'qoladi. Agar bir hafta ichida siz hech bo'lmaganda arxitektura nomini eslab qolsangiz yaxshi bo'ladi. Ammo bir necha soat va hatto kunlar ish vaqti maqolalarni o'qish va sharh videolarini tomosha qilish uchun sarflandi!

Neyron tarmoqlar. Bularning hammasi qayerga ketyapti?

2-rasm – Neyron tarmoqlar hayvonot bog'i

Ilmiy maqolalarning aksariyat mualliflari, mening shaxsiy fikrimcha, hatto bu parchalangan bilim ham o'quvchi tomonidan tushunilmasligi uchun hamma narsani qiladilar. Ammo "havodan tashqarida" olingan formulalar bilan o'n qatorli jumlalarda qatnashuvchi iboralar alohida maqola uchun mavzu (muammo) nashr qilish yoki yo'q qilish).

Shu sababli, neyron tarmoqlardan foydalangan holda ma'lumotlarni tizimlashtirish va shu bilan tushunish va yodlash sifatini oshirish zarurati tug'iladi. Shuning uchun sun'iy neyron tarmoqlarning individual texnologiyalari va arxitekturasini tahlil qilishning asosiy mavzusi quyidagi vazifa edi: hammasi qayerga ketayotganini bilib oling, va alohida neyron tarmog'ining qurilmasi emas.

Bularning hammasi qayerga ketyapti? Asosiy natijalar:

  • So'nggi ikki yil ichida mashina o'rganish startaplari soni keskin tushib ketdi. Mumkin sabab: "neyron tarmoqlar endi yangi narsa emas."
  • Har bir inson oddiy muammoni hal qilish uchun ishlaydigan neyron tarmog'ini yaratishi mumkin. Buning uchun "model hayvonot bog'i" dan tayyor modelni oling va neyron tarmoqning oxirgi qatlamini o'rgating (transferni o'rganish) dan tayyor ma'lumotlar bo'yicha Google ma'lumotlar to'plamini qidirish yoki 25 ming Kaggle ma'lumotlar to'plami bepul bulutli Jupyter daftarchasi.
  • Neyron tarmoqlarning yirik ishlab chiqaruvchilari yaratila boshlandi "namunaviy hayvonot bog'lari" (namunaviy hayvonot bog'i). Ulardan foydalanib, siz tezda tijorat ilovasini yaratishingiz mumkin: TF uyasi TensorFlow uchun, MMDtection PyTorch uchun, Detektor Caffe2 uchun, chainer-modelzoo Chainer uchun va drugie.
  • Neyron tarmoqlari ishlaydi real vaqt mobil qurilmalarda (real vaqtda). soniyada 10 dan 50 kadrgacha.
  • Telefonlarda (TF Lite), brauzerlarda (TF.js) va neyron tarmoqlardan foydalanish uy-ro'zg'or buyumlari (IoT, IInternet of Tilmoqlar). Ayniqsa, neyron tarmoqlarni apparat darajasida qo'llab-quvvatlaydigan telefonlarda (neyron tezlatgichlar).
  • "Har bir qurilma, kiyim-kechak va hatto oziq-ovqat ham bo'ladi IP-v6 manzili va bir-biringiz bilan muloqot qiling" - Sebastyan Thrun.
  • Mashinani o'rganish bo'yicha nashrlar soni o'sishni boshladi Mur qonunidan oshib ketadi 2015 yildan beri (har ikki yilda ikki barobar). Shubhasiz, maqolalarni tahlil qilish uchun bizga neyron tarmoqlar kerak.
  • Quyidagi texnologiyalar mashhurlikka erishmoqda:
    • PyTorch - mashhurlik tez o'sib bormoqda va TensorFlow-ni ortda qoldirayotganga o'xshaydi.
    • Giperparametrlarni avtomatik tanlash AutoML - mashhurlik muammosiz o'sib bormoqda.
    • Aniqlikning asta-sekin pasayishi va hisoblash tezligining oshishi: loyqa mantiq, algoritmlar oshirish, noaniq (taxminan) hisob-kitoblar, kvantlash (neyron tarmog'ining og'irliklari butun sonlarga aylantirilganda va kvantlanganda), neyron tezlatgichlar.
    • Tarjima rasmlar matnga ΠΈ rasmga matn.
    • yaratilish Videodan 3D ob'ektlar, endi real vaqtda.
    • DL haqida asosiy narsa shundaki, juda ko'p ma'lumotlar mavjud, ammo uni to'plash va etiketlash oson emas. Shuning uchun markirovkani avtomatlashtirish rivojlanmoqda (avtomatik izoh) neyron tarmoqlardan foydalanadigan neyron tarmoqlar uchun.
  • Neyron tarmoqlar bilan kompyuter fanlari to'satdan paydo bo'ldi eksperimental fan va o'rnidan turdi takrorlanish inqirozi.
  • IT pullari va neyron tarmoqlarning mashhurligi hisoblash bozor qiymatiga aylanganda bir vaqtning o'zida paydo bo'ldi. Iqtisodiyot oltin va valyuta iqtisodiyotidan o'zgarib bormoqda oltin-valyuta-hisoblash. Mening maqolamga qarang ekonofizika va IT pullarining paydo bo'lishining sababi.

Asta-sekin yangisi paydo bo'ladi ML/DL dasturlash metodologiyasi (Machine Learning & Deep Learning), bu dasturni o'qitilgan neyron tarmoq modellari to'plami sifatida taqdim etishga asoslangan.

Neyron tarmoqlar. Bularning hammasi qayerga ketyapti?

3-rasm - ML/DL yangi dasturlash metodologiyasi sifatida

Biroq, u hech qachon paydo bo'lmagan "neyron tarmoqlar nazariyasi", uning ichida siz tizimli fikr yuritishingiz va ishlashingiz mumkin. Endi "nazariya" deb ataladigan narsa aslida eksperimental, evristik algoritmlardir.

Mening va boshqa manbalarimga havolalar:

E'tiboringiz uchun tashakkur!

Manba: www.habr.com

a Izoh qo'shish