Bir oz chalkash va tarixiy sabablarga ko'ra, bunday ko'p qatlamli tarmoqlar ba'zan perseptronlardan emas, balki sigmasimon neyronlardan iborat bo'lishiga qaramay, ko'p qatlamli perseptronlar yoki mlplar deb ataladi



Download 19,2 Kb.
Sana02.07.2022
Hajmi19,2 Kb.
#732987
Bog'liq
aniqlash algortm


Bir oz chalkash va tarixiy sabablarga ko'ra, bunday ko'p qatlamli tarmoqlar ba'zan perseptronlardan emas, balki sigmasimon neyronlardan iborat bo'lishiga qaramay, ko'p qatlamli perseptronlar yoki MLPlar deb ataladi. Men ushbu kitobda MLP terminologiyasidan foydalanmoqchi emasman, chunki menimcha, bu chalkash, lekin sizni uning mavjudligi haqida ogohlantirmoqchi edim.
Tarmoqdagi kirish va chiqish qatlamlarini loyihalash ko'pincha oddiy. Misol uchun, biz qo'lda yozilgan rasmda "9" belgisi bor yoki yo'qligini aniqlashga harakat qilyapmiz deylik. Tarmoqni loyihalashning tabiiy usuli tasvir piksellarining intensivligini kirish neyronlariga kodlashdir. Agar rasm kulrang shkalasi 64x64 boʻlsa, bizda intensivlik mos ravishda 0 va 1 oraligʻida masshtablangan 4096=64×64 kirish neyronlari boʻladi. Chiqish qatlami faqat bitta neyronni oʻz ichiga oladi, chiqish qiymatlari quyidagi qiymatdan kichik boʻladi. 0,5 "kirish tasviri 9 emas" va 0,5 dan katta qiymatlar "kirish tasviri 9" ekanligini bildiradi.
Neyron tarmog'ining kirish va chiqish qatlamlarini loyihalash ko'pincha oddiy bo'lsa-da, yashirin qatlamlarni loyihalashda juda mahorat bo'lishi mumkin. Xususan, yashirin qatlamlarni loyihalash jarayonini bir nechta oddiy qoidalar bilan yakunlash mumkin emas. Buning o'rniga, neyron tarmoqlar tadqiqotchilari yashirin qatlamlar uchun ko'plab dizayn evristikasini ishlab chiqdilar, bu esa odamlarga o'z tarmoqlaridan o'zlari xohlagan xatti-harakatlarni olishga yordam beradi. Masalan, bunday evristika tarmoqni o'qitish uchun zarur bo'lgan vaqtga nisbatan yashirin qatlamlar sonini qanday almashtirishni aniqlashga yordam beradi. Biz ushbu kitobda keyinroq bunday dizayn evristikasi bilan tanishamiz.

Hozirgacha biz neyron tarmoqlarni muhokama qildik, bu erda bir qatlamdan olingan ma'lumotlar keyingi qatlamga kirish sifatida ishlatiladi. Bunday tarmoqlar to'g'ridan-to'g'ri neyron tarmoqlari deb ataladi. Bu tarmoqda hech qanday halqa yo'qligini anglatadi - ma'lumot doimo oldinga uzatiladi, hech qachon qaytarilmaydi. Agar bizda tsikllar bo'lsa, s funksiyasiga kirish chiqishga bog'liq bo'lgan holatlarga duch kelamiz. Buni tushunish qiyin, shuning uchun biz bunday halqalarga ruxsat bermaymiz.


Shu bilan birga, sun'iy neyron tarmoqlarning boshqa modellari mavjud bo'lib, ularda teskari aloqa aylanishlari mumkin. Ushbu modellar takrorlanuvchi neyron tarmoqlar deb ataladi. Ushbu modellardagi g'oya shundan iboratki, neyronlar tinchlanishdan oldin cheklangan vaqt davomida yonib turadi. Bu otishni o'rganish boshqa neyronlarni rag'batlantirishi mumkin, ular biroz vaqt o'tgach, shuningdek, cheklangan vaqt davomida yonishi mumkin. Bu yana ko'proq neyronlarning yonishiga olib keladi va shuning uchun vaqt o'tishi bilan biz neyronlar kaskadini ishga tushiramiz. Looplar bunday modelda muammo tug'dirmaydi, chunki neyronning chiqishi uning kirishiga bir zumda emas, balki keyinroq ta'sir qiladi.

Takroriy neyron tarmoqlar oldinga uzatiladigan tarmoqlarga qaraganda kamroq ta'sir ko'rsatdi, chunki qisman takroriy tarmoqlar uchun o'rganish algoritmlari (hech bo'lmaganda hozirgi kunga qadar) kamroq kuchli. Ammo takroriy tarmoqlar hali ham juda qiziq. Ular bizning miyamiz qanday ishlashiga ruhan orqaga uzatish tarmoqlariga qaraganda ancha yaqinroq. Va takrorlanuvchi tarmoqlar muhim muammolarni hal qilishi mumkin, ularni faqat oldinga uzatish tarmoqlari katta qiyinchilik bilan hal qiladi. Biroq, ko'lamimizni cheklash uchun ushbu kitobda biz ko'proq foydalaniladigan uzatuvchi tarmoqlarga e'tibor qaratamiz.


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Neyron tarmoqlarni aniqlagandan so'ng, keling, qo'l yozuvini aniqlashga qaytaylik. Qo'lda yozilgan raqamlarni tanib olish muammosini ikkita kichik muammoga bo'lishimiz mumkin. Birinchidan, biz ko'p sonli tasvirni har birida bitta raqamdan iborat bo'lgan alohida tasvirlar ketma-ketligiga ajratish usulini xohlaymiz. Misol uchun, biz tasvirni buzmoqchimiz
Biz odamlar, bu segmentatsiya muammosini osonlik bilan hal qilamiz, ammo kompyuter dasturi tasvirni to'g'ri ajratish qiyin. Rasm segmentlangandan so'ng, dastur har bir alohida raqamni tasniflashi kerak. Masalan, biz dasturimiz yuqoridagi birinchi raqamni tan olishini xohlaymiz.
5 hisoblanadi.

Biz ikkinchi masalani yechish dasturini yozishga, ya'ni alohida raqamlarni tasniflashga e'tibor qaratamiz. Biz buni qilamiz, chunki segmentatsiya muammosini alohida raqamlarni tasniflashning yaxshi usuli mavjud bo'lganda hal qilish unchalik qiyin emas. Segmentatsiya muammosini hal qilishda ko'plab yondashuvlar mavjud. Bir yondashuv - har bir sinov segmentatsiyasini baholash uchun individual raqam klassifikatoridan foydalangan holda tasvirni segmentlashning ko'plab turli usullarini sinab ko'rish. Sinov segmentatsiyasi, agar individual raqamlar klassifikatori barcha segmentlarda o'z tasnifiga ishonch hosil qilsa, yuqori ball oladi va agar klassifikator bir yoki bir nechta segmentlarda juda ko'p muammoga duch kelsa, past ball oladi. G'oya shundan iboratki, agar klassifikator biror joyda muammoga duch kelsa, unda segmentatsiya noto'g'ri tanlanganligi sababli muammoga duch kelishi mumkin. Ushbu g'oya va boshqa o'zgarishlar segmentatsiya muammosini juda yaxshi hal qilish uchun ishlatilishi mumkin. Shunday qilib, segmentatsiya haqida qayg'urish o'rniga, biz neyron tarmoqni rivojlantirishga e'tibor qaratamiz, u yanada qiziqarli va qiyin muammoni hal qila oladi, ya'ni alohida qo'lda yozilgan raqamlarni tanib oladi.

Alohida raqamlarni tanib olish uchun biz uch qatlamli neyron tarmoqdan foydalanamiz:
______________________________________________________________________________________________________________________________________________________________________________________________________
Tarmoqning kirish qatlami kirish piksellarining qiymatlarini kodlaydigan neyronlarni o'z ichiga oladi. Keyingi bo'limda muhokama qilinganidek, bizning tarmoq uchun o'quv ma'lumotlarimiz skanerlangan qo'lda yozilgan raqamlarning ko'p 28 dan 28 pikselli tasvirlaridan iborat bo'ladi va shuning uchun kirish qatlami 784 = 28 × 28 neyronlarni o'z ichiga oladi. Oddiylik uchun yuqoridagi diagrammadagi 784 ta kirish neyronlarining ko'pini o'tkazib yubordim. Kiritilgan piksellar kulrang rangda bo'lib, 0,0 qiymati oq rangni, 1,0 qiymati qora rangni va ularning orasidagi qiymatlar asta-sekin qorayib borayotgan kulrang soyalarni ifodalaydi.

Tarmoqning ikkinchi qatlami yashirin qatlamdir. Biz bu yashirin qatlamdagi neyronlar sonini n bilan belgilaymiz va n uchun turli qiymatlar bilan tajriba o‘tkazamiz. Ko'rsatilgan misol atigi n = 15 neyronni o'z ichiga olgan kichik yashirin qatlamni ko'rsatadi.

Tarmoqning chiqish qatlami 10 ta neyronni o'z ichiga oladi. Agar birinchi neyron yonayotgan bo'lsa, ya'ni chiqishi ≈1 bo'lsa, bu tarmoq raqamni 0 deb o'ylashini ko'rsatadi. Agar ikkinchi neyron yonayotgan bo'lsa, bu tarmoq raqamni 1 deb hisoblashini ko'rsatadi. Va hokazo. . Aniqroq aytganda, biz chiqish neyronlarini 0 dan 9 gacha raqamlaymiz va qaysi neyronning faollashuv qiymati eng yuqori ekanligini aniqlaymiz. Agar bu neyron, aytaylik, 6 neyron bo'lsa, bizning tarmog'imiz kirish raqami 6 ekanligini taxmin qiladi. Boshqa chiqish neyronlari uchun ham shunday davom etadi.

Nima uchun biz 10 ta neyrondan foydalanamiz deb o'ylashingiz mumkin. Axir, tarmoqning maqsadi bizga qaysi raqam (0,1,2,…,9) kiritilgan tasvirga mos kelishini aytib berishdir. Buning tabiiy ko‘rinadigan usuli bor-yo‘g‘i 4 ta chiqish neyronidan foydalanish bo‘lib, neyron chiqishi 0 ga yoki 1 ga yaqin bo‘lishiga qarab har bir neyronni ikkilik qiymatga ega deb hisoblaydi. Javobni kodlash uchun to‘rtta neyron yetarli, chunki 24 =16 - kirish raqami uchun mumkin bo'lgan 10 ta qiymatdan ko'p. Nega bizning tarmog'imiz o'rniga 10 ta neyrondan foydalanishi kerak? Bu samarasiz emasmi? Yakuniy asoslash empirikdir: biz ikkala tarmoq dizaynini ham sinab ko'rishimiz mumkin va ma'lum bo'lishicha, ushbu muammo uchun 10 chiqish neyronli tarmoq 4 chiqish neyronli tarmoqqa qaraganda raqamlarni yaxshiroq tan olishni o'rganadi. Ammo bu bizni nima uchun 10 ta neyrondan foydalanish yaxshiroq ishlashi haqida savol tug'diradi. Bizga 4 chiqishli kodlash o'rniga 10-chiqish kodlashdan foydalanishimiz kerakligini oldindan aytib beradigan ba'zi evristik bormi?


Nima uchun buni qilayotganimizni tushunish uchun birinchi tamoyillardan boshlab neyron tarmoq nima qilayotgani haqida o'ylash yordam beradi. Avval 10 ta chiqish neyronini ishlatadigan holatni ko'rib chiqing. Keling, birinchi chiqish neyroniga e'tibor qarataylik, u raqam 0 yoki yo'qligini aniqlashga harakat qilmoqda. U buni neyronlarning yashirin qatlamidan dalillarni tortish orqali amalga oshiradi. Bu yashirin neyronlar nima qiladi? Aytaylik, argument uchun yashirin qatlamdagi birinchi neyron quyidagi kabi tasvir bor yoki yo'qligini aniqlaydi:
Siz taxmin qilganingizdek, ushbu to'rtta rasm birgalikda biz yuqorida ko'rsatilgan raqamlar qatorida ko'rgan 0 tasvirini tashkil qiladi:
Shunday qilib, agar ushbu yashirin neyronlarning to'rttasi ham yonayotgan bo'lsa, biz raqam 0 degan xulosaga kelishimiz mumkin. Albatta, bu tasvir 0 bo'lgan degan xulosaga kelishimiz mumkin bo'lgan yagona dalil emas - biz qonuniy ravishda 0 ni olishimiz mumkin. boshqa ko'plab usullar (masalan, yuqoridagi tasvirlarni tarjima qilish yoki ozgina buzilishlar orqali). Ammo shuni aytish mumkinki, hech bo'lmaganda bu holatda biz kiritilgan qiymat 0 bo'lgan degan xulosaga kelamiz.

Neyron tarmoq shu tarzda ishlaydi, deb hisoblasak, nima uchun tarmoqdan 4 ta emas, balki 10 ta chiqishga ega boʻlish yaxshiroq ekanligini asosli tushuntirishimiz mumkin. Agar bizda 4 ta chiqish boʻlsa, birinchi chiqish neyroni nima koʻproq ekanligini aniqlashga harakat qilgan boʻlar edi. raqamning muhim biti edi. Va bu eng muhim bitni yuqorida ko'rsatilganlarga o'xshash oddiy shakllar bilan bog'lashning oson yo'li yo'q. Raqamning tarkibiy shakllari chiqishdagi eng muhim bit bilan (aytaylik) chambarchas bog'liq bo'lishi uchun biron bir yaxshi tarixiy sabab borligini tasavvur qilish qiyin.


Endi, aytilganlarning barchasi bilan bularning barchasi evristik. Hech narsa uch qatlamli neyron tarmog'i men ta'riflaganimdek ishlashi kerakligini aytmaydi, yashirin neyronlar oddiy komponent shakllarini aniqlaydi. Ehtimol, aqlli o'rganish algoritmi faqat 4 ta chiqish neyronidan foydalanishga imkon beradigan og'irliklarning ba'zi tayinlanishini topadi. Ammo evristik usul sifatida men tasvirlagan fikrlash usuli juda yaxshi ishlaydi va yaxshi neyron tarmoq arxitekturasini loyihalashda sizga ko'p vaqtni tejaydi.
Yuqoridagi uch qavatli tarmoqqa qo'shimcha qatlam qo'shish orqali raqamning bitli ko'rinishini aniqlash usuli mavjud. Qo'shimcha qatlam oldingi qatlamning chiqishini quyidagi rasmda ko'rsatilganidek, ikkilik tasvirga aylantiradi. Yangi chiqish qatlami uchun og'irliklar va egilishlar to'plamini toping. Neyronlarning dastlabki 3 qatlami shunday bo'ladiki, uchinchi qatlamdagi to'g'ri chiqish (ya'ni, eski chiqish qatlami) kamida 0,99 faollashuvga ega, noto'g'ri chiqishlar esa 0,01 dan kam faollashuvga ega.
Endi bizda neyron tarmog'imiz uchun dizayn mavjud, u qanday qilib raqamlarni tan olishni o'rganishi mumkin? Bizga kerak bo'ladigan birinchi narsa - bu o'rganish uchun ma'lumotlar to'plami - o'quv ma'lumotlari to'plami. Biz qo'lda yozilgan raqamlarning o'n minglab skanerlangan tasvirlarini va ularning to'g'ri tasniflarini o'z ichiga olgan MNIST ma'lumotlar to'plamidan foydalanamiz. MNIST nomi Amerika Qo'shma Shtatlarining Milliy standartlar va texnologiyalar instituti NIST tomonidan to'plangan ikkita ma'lumotlar to'plamining o'zgartirilgan kichik to'plami ekanligidan kelib chiqqan. MNISTdan bir nechta suratlar:
MNIST ma'lumotlari ikki qismdan iborat. Birinchi qismda o'quv ma'lumotlari sifatida foydalanish uchun 60 000 ta rasm mavjud. Bu tasvirlar 250 kishining skanerlangan qoʻlyozma namunalari boʻlib, ularning yarmi AQSh aholini roʻyxatga olish byurosi xodimlari va yarmi oʻrta maktab oʻquvchilari edi. Rasmlar kulrang rangda va 28 dan 28 piksel o'lchamda. MNIST ma'lumotlar to'plamining ikkinchi qismi sinov ma'lumotlari sifatida foydalanish uchun 10 000 ta tasvirdir. Shunga qaramay, bu 28 dan 28 gacha kulrang rangdagi tasvirlar. Sinov maʼlumotlaridan neyron tarmogʻimiz raqamlarni qanchalik tan olishni oʻrganganligini baholash uchun foydalanamiz. Buni yaxshi ishlash testi qilish uchun test ma'lumotlari dastlabki o'quv ma'lumotlariga qaraganda 250 kishidan iborat boshqa to'plamdan olindi (garchi ro'yxatga olish byurosi xodimlari va o'rta maktab o'quvchilari o'rtasida guruh bo'lingan bo'lsa ham). Bu bizga tizimimiz mashg‘ulotlar davomida yozuvlarini ko‘rmagan odamlarning raqamlarini taniy olishiga ishonch hosil qiladi.
Trening kiritishni belgilash uchun x belgisidan foydalanamiz. Har bir o'quv kiritish x ni 28×28=784 o'lchovli vektor sifatida ko'rib chiqish qulay bo'ladi. Vektordagi har bir yozuv tasvirdagi bitta piksel uchun kulrang qiymatni ifodalaydi. Biz kerakli natijani y=y(x) bilan belgilaymiz, bu erda y 10 o'lchovli vektordir. Misol uchun, agar ma'lum bir o'quv tasviri, x, 6 ni tasvirlagan bo'lsa, u holda y(x)=(0,0,0,0,0,0,1,0,0,0)T tarmoqdan kerakli natijadir. . E'tibor bering, bu erda T - satr vektorini oddiy (ustun) vektorga aylantiruvchi transpozitsiya operatsiyasi.

Biz xohlagan narsa bu algoritm bo'lib, u bizga og'irliklar va noaniqliklarni topish imkonini beradi, shunda tarmoqdan chiqadigan barcha o'quv kirishlari x uchun y(x) ga yaqin bo'ladi. Ushbu maqsadga qanchalik erishayotganimizni aniqlash uchun biz xarajat funktsiyasini aniqlaymiz**Ba'zan yo'qotish yoki maqsad funktsiyasi deb ataladi. Biz ushbu kitob davomida xarajat funktsiyasi atamasidan foydalanamiz, lekin boshqa terminologiyaga e'tibor berishingiz kerak, chunki u ko'pincha tadqiqot ishlarida va neyron tarmoqlarning boshqa muhokamalarida qo'llaniladi.:


Bu erda w tarmoqdagi barcha og'irliklar yig'indisini, b barcha noaniqliklarni, n - o'quv kiritishlarining umumiy sonini, a - x kiritilganda tarmoqdan chiqish vektori va yig'indisi barcha o'quv kirishlari ustidan, x. Albatta, a chiqishi x, w va b ga bog'liq, ammo yozuvni oddiy saqlash uchun men bu bog'liqlikni aniq ko'rsatmadim. ∥v∥ belgisi shunchaki v vektor uchun odatiy uzunlik funksiyasini bildiradi. Biz C ni kvadratik xarajat funksiyasi deb ataymiz; u ba'zan o'rtacha kvadrat xato yoki shunchaki MSE sifatida ham tanilgan. Kvadrat xarajat funksiyasining shaklini tekshirib, biz C(w,b) ning manfiy emasligini ko'ramiz, chunki yig'indidagi har bir had manfiy emas. Bundan tashqari, C(w,b) xarajati kichik bo'ladi, ya'ni C(w,b)≈0, aniqrog'i, y(x) barcha o'quv kirishlari uchun a, x chiqishga taxminan teng bo'lganda. Shunday qilib, bizning o'qitish algoritmimiz C(w,b)≈0 bo'lishi uchun og'irliklar va moyilliklarni topa olsa, yaxshi ish qildi. Aksincha, C(w,b) katta bo'lsa, u unchalik yaxshi ishlamaydi - bu y(x) ko'p sonli kirishlar uchun a chiqishiga yaqin emasligini bildiradi. Shunday qilib, bizning o'qitish algoritmimizning maqsadi og'irliklar va noaniqliklarning funktsiyasi sifatida C (w, b) narxini minimallashtirishdan iborat bo'ladi. Boshqacha qilib aytadigan bo'lsak, biz xarajatlarni iloji boricha kichikroq qiladigan og'irliklar va noaniqliklar to'plamini topmoqchimiz. Biz buni gradient tushish deb nomlanuvchi algoritm yordamida qilamiz.
Nima uchun kvadratik narxni kiritish kerak? Axir, bizni birinchi navbatda tarmoq tomonidan to'g'ri tasniflangan tasvirlar soni qiziqtirmaydimi? Nega kvadratik xarajat kabi proksi o'lchovni minimallashtirishdan ko'ra, bu raqamni to'g'ridan-to'g'ri maksimallashtirishga harakat qilmaysiz? Muammo shundaki, to'g'ri tasniflangan tasvirlar soni tarmoqdagi og'irliklar va noaniqliklarning silliq funktsiyasi emas. Ko'pincha, og'irliklar va egriliklarga kichik o'zgartirishlar kiritish to'g'ri tasniflangan o'quv tasvirlari sonida hech qanday o'zgarishlarga olib kelmaydi. Bu yaxshilangan samaradorlikka erishish uchun og'irlik va moyilliklarni qanday o'zgartirish kerakligini aniqlashni qiyinlashtiradi. Buning o'rniga kvadratik xarajat kabi silliq xarajat funktsiyasidan foydalansak, narxni yaxshilash uchun og'irliklar va moyilliklarga qanday qilib kichik o'zgarishlar kiritish kerakligini aniqlash oson bo'ladi. Shuning uchun biz birinchi navbatda kvadratik xarajatlarni minimallashtirishga e'tibor qaratamiz va shundan keyingina tasniflashning to'g'riligini tekshiramiz.

Biz bir tekis xarajat funksiyasidan foydalanmoqchi ekanligimizni hisobga olsak ham, (6) tenglamada nima uchun kvadratik funktsiyani tanlaganimiz haqida savol tug'ilishi mumkin. Bu maxsus tanlov emasmi? Ehtimol, agar biz boshqa xarajat funktsiyasini tanlasak, biz og'irlik va noaniqliklarni kamaytirishning butunlay boshqacha to'plamiga ega bo'lardik? Bu toʻgʻri tashvish, keyinroq biz xarajat funksiyasini qayta koʻrib chiqamiz va baʼzi oʻzgarishlar kiritamiz. Biroq, (6) tenglamaning kvadratik xarajat funktsiyasi neyron tarmoqlarda o'rganish asoslarini tushunish uchun juda yaxshi ishlaydi, shuning uchun biz hozircha unga rioya qilamiz.
Download 19,2 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish