“kompyuter injiniring” fakulteti IV bosqich ki 11-19 guruh talabasining
0’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA
KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT
TEXNOLOGIYALARI UNIVERSITETI QARSHI FILIALI
“KOMPYUTER INJINIRING” FAKULTETI
IV BOSQICH KI 11-19 GURUH TALABASINING
“ Mashinali o’qitishga kirish ” fanidan
Mustaqil ishi
Bajardi:
Eshmurodova D
Qabul qildi:
Ochilova S
Mavzu: O‘qituvchisiz (Unsupervised) o‘qitish algoritmlari O‘qituvchisiz o‘qitish
tushunchasi va uning usullari.
Reja:
1. O‘qituvchisiz (Unsupervised) o‘qitish algoritmlari O‘qituvchisiz o‘qitish
tushunchasi va uning usullari.
2. Sun’iy neyron tarmoqlariga kirish
3. Ko‘p sathli neyron tarmoqlari
4. Instrumental dasturiy vositalar asosida neyron tarmog‘ini qurish.
5. Neyron tarmoqni o‘qitish masalasi.
6. Neyron tarmoq asosida sinflashtirish masalasini yechish va neyron tarmoq
aniqligini oshirish yo‘llari
7. Chuqur o‘qtish usullari. Mashinali o‘qitish va neyron tarmoqlarining turli
sohalarda qo‘llanilishi
8. Bir o‘zgaruvchili va ko‘p o‘zgaruvchili chiziqli regressiya masalalari va
ularni dasturlash.
9. Logistik regressiya tushunchasi va ularning mashinali o‘qitishda
qo‘llanilishi
Unsupervised Learning
“Unsupervised Learning’’ da o’qituvchi yoki o’rgatuvchiga hojat yo’q! Algoritm
ushbu qo’llanmasiz ma’lumotlarni tushuna olishi kerak.” Unsupervised
Learning’ni regressiya yoki tasniflash muammosiga to‘g‘ridan-to‘g‘ri
qo‘llash mumkin emas, chunki Supervised Learning’dan farqli o‘laroq, bizda kirish
ma’lumotlari mavjud, lekin tegishli chiqish ma’lumotlari yo‘q. Unsupervised
Learning’ning maqsadi ma’lumotlar to’plamining asosiy tuzilishini topish,
ma’lumotlarni o’xshashliklari bo’yicha guruhlash va ushbu ma’lumotlar to’plamini
tartiblangan formatda taqdim etishdir.
Unsupervised Learning qanday ishlaydi?Tegishli algoritmni qo’llaganidan so’ng,
algoritm ma’lumotlar ob’ektlarini ob’ektlar orasidagi o’xshashlik va farqlarga
ko’ra guruhlarga ajratadi.
Unsupervised Learning.Bu erda biz yorliqsiz kirish ma’lumotlarini oldik, ya’ni u
toifalarga ajratilmagan va tegishli chiqishlar ham berilmagan. Endi ushbu yorliqsiz
kirish ma’lumotlari uni o’qitish uchun Machine Learning modeliga
beriladi. Birinchidan, u ma’lumotlardan yashirin belgilarni topish uchun xom
ma’lumotlarni sharhlaydi va keyin K-means clustering, Anomaly detection va
boshqalar kabi mos algoritmlarni qo’llaydi.
Semi – Sepervised Learning(SSL). “Semi – Sepervised Learning(SSL) nazorat
ostida va nazoratsiz o’rganish o’rtasidagi yarmidir. Belgilanmagan ma’lumotlarga
qo’shimcha ravishda, algoritm ba’zi nazorat ma’lumotlari bilan ta’minlangan —
lekin barcha misollar uchun shart emas. Ko’pincha, bu ma’lumotlar ba’zi misollar
bilan bog’liq bo’lgan maqsadlar bo’ladi.”
Semi – Sepervised Learning(SSL) misollar:
Nutqni tahlil qilish: Ovozli fayllarni etiketlash (label’lash) juda intensiv ish
bo’lganligi sababli, Semi – Supervised Learning bu muammoni hal qilish uchun
juda tabiiy yondashuvdir.
Internet-kontent tasnifi: Har bir veb-sahifani belgilash amaliy va amalga oshirib
bo’lmaydigan jarayondir va shuning uchun Semi – Supervised Learning ostida
o’rganish algoritmlaridan foydalanadi. Hatto Google qidiruv algoritmi ham
berilgan soʻrov uchun veb-sahifaning dolzarbligini baholash uchun Semi –
Supervised Learning variantidan foydalanadi.
Reinforement Learning (RL).Reinforement Learning (RL) qaror qabul qilishga
qaratilgan bo’limdir. Bu maksimal mukofot olish uchun muhitda maqbul vaziyatni
o’rganishdir. Bu optimal darajada atrof-muhit bilan o’zaro ta’sir qilish va uning
qanday munosabatda bo’lishini kuzatish orqali o’rganiladi, xuddi bolalar atrofdagi
dunyoni o’rganishlari va maqsadga erishishga yordam beradigan harakatlarni
o’rganishlari kabi. Aytaylik, musobaqada nazoratchi yo’q bo’lganda,
Reinforcement Learning mukofotni maksimal darajada oshiradigan harakatlar
ketma-ketligini mustaqil ravishda kashf qilishi kerak. Ushbu kashfiyot jarayoni
sinov va xato qidiruviga o’xshaydi. Harakatlarning sifati nafaqat ular qaytaradigan
darhol mukofot, balki ular olishi mumkin bo’lgan kechiktirilgan mukofot bilan
ham o’lchanadi. Nazoratchining yordamisiz ko’rinmas muhitda yakuniy
muvaffaqiyatga olib keladigan harakatlarni o’rganishi mumkinligi sababli,
mustahkamlashni o’rganish juda kuchli algoritmdir. U qabul qilayotgan barcha
ma’lumotlarini saqlaydi va eslab qoladi. Keyin eng optimal variantlarni taqdim
etadi. Misol uchun AIchatbot’lari yoki yaqindagina Instagram tarmog’iga
qo’shilgan taxminiy javob berish xizmati: http://fayllar.org
Sun'iy neyron tarmog'i (ANN) - bu inson miyasini axborotni tahlil qilish va
qayta ishlash usulini taqlid qilishga mo'ljallangan hisoblash tizimining bir qismi.
Bu sun'iy intellekt (AI) ning asosidir va inson yoki statistik standartlar tomonidan
imkonsiz yoki qiyin bo'lishi mumkin bo'lgan muammolarni hal qiladi. ANN-lar
o'z-o'zini o'rganish qobiliyatiga ega, bu esa ko'proq ma'lumot paydo bo'lishi bilan
yanada yaxshi natijalarga erishish imkonini beradi.
Sun'iy neyron tarmoq (ANN) - bu inson miyasining ishlashini taqlid qilishga
mo'ljallangan sun'iy aqlning tarkibiy qismi.
Qayta ishlash bloklari ANNlarni tashkil qiladi, ular o'z navbatida kirish va
chiqishlardan iborat. Kiritilgan ma'lumotlar ANN kerakli natijani olish uchun
o'rgangan narsadir.
Backpropagation - bu sun'iy neyron tarmoqlarini boshqarish uchun ishlatiladigan
o'rganish qoidalarining to'plami.
ANN uchun amaliy dasturlar moliya, shaxsiy aloqa, sanoat, ta'lim va boshqa
sohalarni qamrab olgan juda kengdir.
Sun'iy neyron tarmoqlari inson miyasiga o'xshab qurilgan, neyron tugunlari to'r
singari bog'langan. Inson miyasida yuzlab milliardlab neyronlar deb nomlangan
hujayralar mavjud. Har bir neyron ma'lumotni miyaga (kirishga) va undan
tashqariga (chiqish) tashish orqali ma'lumotlarni qayta ishlash uchun mas'ul
bo'lgan hujayrali tanadan iborat.ANNda tugunlar bir-biriga bog'langan qayta
ishlash birliklari deb nomlangan yuzlab yoki minglab sun'iy neyronlar mavjud.
Ushbu qayta ishlash birliklari kirish va chiqish birliklaridan iborat. Kirish bloklari
ichki tortish tizimiga asoslangan turli xil shakllar va tuzilmalarni oladi va neyron
tarmoq bitta chiqish hisobotini tayyorlash uchun taqdim etilgan ma'lumotni
o'rganishga harakat qiladi. Odamlarga natija yoki natijani ishlab chiqish uchun
qoidalar va ko'rsatmalar kerak bo'lganidek, ANNlar, shuningdek, natijalarni
takomillashtirish uchun xatolarni orqaga surish uchun qisqartirish deb ataladigan
"backpropagation" deb nomlangan qoidalar to'plamidan foydalanadilar.ANN
dastlab vizual, tabiiy yoki matnli ma'lumotlardan namunalarni tanib olishni
o'rganishni boshlaydi. Ushbu nazorat qilinadigan bosqichda tarmoq o'z ishlab
chiqargan mahsuloti bilan kerakli ishlab chiqarish hajmini taqqoslaydi. Ikkala
natija o'rtasidagi farq backpropagation yordamida o'rnatiladi. Bu shuni anglatadiki,
tarmoq haqiqiy va istalgan natija o'rtasidagi farq eng kam xato yuzaga kelgunga
qadar birliklar orasidagi ulanish og'irligini sozlash uchun chiqish blokidan kirish
birliklariga qadar orqaga ishlaydi.Trening va nazorat bosqichida, ikkilik raqamlari
bo'lgan savollarga "Ha / yo'q" turlaridan foydalanib, ANN nimani qidirish
kerakligi va uning natijasi qanday bo'lishi kerakligi o'rgatiladi. Masalan, kredit
karta firibgarligini o'z vaqtida aniqlamoqchi bo'lgan bankda quyidagi savollarga
javob beradigan to'rtta kirish birligi bo'lishi mumkin: (1) foydalanuvchi
yashaydigan mamlakatda boshqa mamlakatdagi operatsiya bormi? (2) Ushbu karta
veb-sayt kompaniya nazorati ostida bo'lgan kompaniyalar yoki kompaniyalar bilan
aloqador bo'ladimi? (3) Bitim summasi 2000 AQSh dollaridan kattaroqmi? (4)
Bitim vekselidagi nom karta egasining ismi bilan bir xilmi?Bank "firibgarlik
aniqlangan" javoblarning bo'lishini xohlaydi Ha Ha Yo'q, ikkilik formatda 1 1 1 0
bo'ladi. Agar tarmoqning haqiqiy chiqishi 1 0 1 0 bo'lsa, u mos keladigan natijani
bermaguncha natijalarini moslashtiradi. 1 1 1 0. Treningdan so'ng kompyuter
tizimi bankka ko'plab pullarni tejab, soxta bitimlar to'g'risida xabar berishi
mumkin.
Sun'iy neyron tarmoqlari hayotni o'zgartiradigan ilovalarni iqtisodiyotning barcha
sohalarida foydalanish uchun ishlab chiqishga yo'l ochmoqda. ANN-larda qurilgan
sun'iy intellekt platformalari odatdagi ishlarni buzmoqda. Veb-sahifalarni boshqa
tillarga tarjima qilishdan virtual yordamchiga buyurtma beradigan oziq-ovqat
do'konlariga ega bo'lishgacha, muammolarni echish uchun chatbotlar bilan
suhbatlashishga qadar, AI platformalari tranzaktsiyalarni soddalashtiradi va
arzimagan harajatlar bilan barcha xizmatlarni taqdim etadi.
Sun'iy neyron tarmoqlari operatsiyalarning barcha sohalarida qo'llanilgan. Elektron
pochta xizmatlarini etkazib beruvchilar ANN-larni foydalanuvchining kirish
qutisidan spamni yo'q qilish va yo'q qilish uchun ishlatadilar; aktivlarni
boshqaruvchilar undan kompaniya aktsiyalari yo'nalishini prognoz qilishda
foydalanadilar; kredit reyting kompaniyalari undan skoring usullarini
takomillashtirish uchun foydalanadilar; Elektron tijorat platformalari bundan
foydalanib, o'zlarining auditoriyalari uchun tavsiyalarni shaxsiylashtirish uchun
foydalanadilar; chatbotlar ANN bilan tabiiy tilda ishlov berish uchun ishlab
chiqilgan; chuqur o'rganish algoritmlari voqea ehtimolini taxmin qilish uchun
ANN-dan foydalanadi; va ANN birlashmasining ro'yxati ko'plab tarmoqlar,
tarmoqlar va mamlakatlar bo'ylab tarqaladi.
Sun'iy neyron tarmoqlari hayotni o'zgartiradigan ilovalarni iqtisodiyotning barcha
sohalarida foydalanish uchun ishlab chiqishga yo'l ochmoqda. ANN-larda qurilgan
sun'iy intellekt platformalari odatdagi ishlarni buzmoqda. Veb-sahifalarni boshqa
tillarga tarjima qilishdan virtual yordamchiga buyurtma beradigan oziq-ovqat
do'konlariga ega bo'lishgacha, muammolarni echish uchun chatbotlar bilan
suhbatlashishga qadar, AI platformalari tranzaktsiyalarni soddalashtiradi va
arzimagan harajatlar bilan barcha xizmatlarni taqdim etadi.Sun'iy neyron
tarmoqlari operatsiyalarning barcha sohalarida qo'llanilgan. Elektron pochta
xizmatlarini etkazib beruvchilar ANN-larni foydalanuvchining kirish qutisidan
spamni yo'q qilish va yo'q qilish uchun ishlatadilar; aktivlarni boshqaruvchilar
undan kompaniya aktsiyalari yo'nalishini prognoz qilishda foydalanadilar; kredit
reyting kompaniyalari undan skoring usullarini takomillashtirish uchun
foydalanadilar; Elektron tijorat platformalari bundan foydalanib, o'zlarining
auditoriyalari uchun tavsiyalarni shaxsiylashtirish uchun foydalanadilar; chatbotlar
ANN bilan tabiiy tilda ishlov berish uchun ishlab chiqilgan; chuqur o'rganish
algoritmlari voqea ehtimolini taxmin qilish uchun ANN-dan foydalanadi; va ANN
birlashmasining ro'yxati ko'plab tarmoqlar, tarmoqlar va mamlakatlar bo'ylab
tarqaladi.
Sunʼiy neyron tarmoqlari (SNT), odatda oddiygina neyron tarmoqlari(NT) deb
ataladi, hayvonlar miyasini tashkil etuvchi biologik neyron tarmoqlardan
ilhomlangan hisoblash tizimlari.
SNT sunʼiy neyronlar deb ataladigan bogʻlangan birliklar yoki tugunlar toʻplamiga
asoslanadi, ular biologik miyadagi neyronlarni erkin modellashtiradi. Sunʼiy
neyron signallarni oladi, keyin ularni qayta ishlaydi va unga ulangan neyronlarga
signal berishi mumkin. Ulanishdagi „signal“ haqiqiy raqam boʻlib, har bir
neyroNTing chiqishi uning kirishlari yigʻindisining chiziqli boʻlmagan funksiyasi
bilan hisoblanadi. Ulanishlar deyiladi qirralar. Neyronlar va chekkalar odatda
oʻrganish davom etayotganda sozlanadigan vaznga ega. Neyronlar shunday
chegaraga ega boʻlishi mumkinki, signal faqat yigʻilgan signal ushbu chegarani
kesib oʻtgan taqdirdagina yuboriladi. Odatda, neyronlar qatlamlarga yigʻiladi.
Signallar birinchi qatlamdan (kirish qatlami), oxirgi qatlamga (chiqish qatlami),
ehtimol, qatlamlarni bir necha marta bosib oʻtgandan keyin oʻtadi.
SNT anʼanaviy algoritmlar unchalik muvaffaqiyatli boʻlmagan vazifalarni bajarish
uchun inson miyasining arxitekturasidan foydalanishga urinish sifatida boshlandi.
Neyronlar bir-biri bilan turli naqshlarda bogʻlangan, bu baʼzi neyronlarning
chiqishi boshqalarning kirishiga aylanishiga imkon beradi. Tarmoq yoʻnaltirilgan,
vaznli grafik hosil qiladi.[40]
Sunʼiy neyron tarmogʻi simulyatsiya qilingan neyronlar toʻplamidan iborat.Har bir
neyron boshqa tugunlarga biologik mos keladigan bogʻlanishlar orqali bogʻlangan
tugundir.Har bir boʻgʻiNTing vazni bor, bu bir tuguNTing boshqasiga taʼsir
kuchini belgilaydi.[41]
SNT kontseptual ravishda biologik neyronlardan olingan sunʼiy neyronlardan
iborat. Har bir sunʼiy neyron kirishga ega va bir nechta boshqa neyronlarga
yuborilishi mumkin boʻlgan bitta chiqishni ishlab chiqaradi.[42] Kirishlar tasvirlar
yoki hujjatlar kabi tashqi maʼlumotlar namunasining xususiyat qiymatlari boʻlishi
mumkin yoki ular boshqa neyronlarning chiqishi boʻlishi mumkin.
NeyroNTing chiqishini topish uchun, avvalo, kirishlardan neyronga
boʻlgan ulanishlar ogʻirligi bilan oʻlchangan barcha kirishlarning vaznli
yigʻindisini olishimiz kerak. Biz bu summaga noaniq atama qoʻshamiz.[43] Ushbu
vaznli summa baʼzan faollashtirish deb ataladi.Dastlabki maʼlumotlar tasvirlar va
hujjatlar kabi tashqi maʼlumotlardir. Yakuniy natijalar tasvirdagi ob’ektni tanib
olish kabi vazifani bajaradi.[44] Neyronlar odatda bir nechta qatlamlarga, ayniqsa
chuqur oʻrganishda tashkil etilgan.Neyronlari faqat oldingi va keyingi
qatlamlarning neyronlari bilan bogʻlanadi. Yakuniy natijani beradigan qatlam
chiqish qatlamidir.Ular birlashma boʻlishi mumkin, bu erda bir qatlamdagi
neyronlar guruhi keyingi qatlamdagi bitta neyronga ulanadi va shu bilan bu
qatlamdagi neyronlar sonini kamaytiradi.[45] Faqatgina shunday ulanishga ega
boʻlgan neyronlar yoʻnaltirilgan asiklik grafikni hosil qiladi va oldinga besleme
tarmoqlari sifatida tanilgan.[46] Shu bilan bir qatorda, bir xil yoki oldingi
qatlamlardagi neyronlar oʻrtasida ulanishga imkon beruvchi tarmoqlar takroriy
tarmoqlar deb nomlanadi
Murakkablarga kirish neyron tarmoqlari, unda kirish ma'lumotlari sun'iy
neyronlarning ko'p qatlamlari orqali yo'naltiriladi. Bu butunlay bog'langan neyron
tarmoqdir, chunki har bir tugun keyingi qatlamdagi barcha neyronlarga ulangan.
Kirish va chiqish qatlamlarida bir nechta yashirin qatlamlar, ya'ni kamida uch yoki
undan ortiq qatlamlar mavjud.
U ikki tomonlama tarqalishga ega, ya'ni u oldinga va orqaga tarqala oladi. Kirishlar
og'irliklarga ko'paytiriladi va faollashtirish funktsiyasiga yuboriladi, bu erda ular
yo'qotishni minimallashtirish uchun orqaga tarqalish orqali o'zgartiriladi.
Og'irliklar oddiy qilib aytganda, Neyron tarmoqlaridan mashina tomonidan
o'rganilgan qiymatlardir. Kutilayotgan natijalar va o'quv kirishlari o'rtasidagi
nomutanosiblikka qarab, ular o'z-o'zidan sozlanadi. Softmax chiziqli bo'lmagan
faollashtirish funktsiyalaridan keyin chiqish qatlamini faollashtirish funktsiyasi
sifatida ishlatiladi.
Ko’p sathli neyron tarmoqlar
Neyron tarmoqlari — bu insonning asab tizimini ko’paytirishga urinishlarga
asoslangan sun’iy intellekt sohasidagi tadqiqotlar yo’nalishlaridan biri. Aynan:
asab tizimining xatolarni o’rganish va tuzatish qobiliyati, bu bizga odam
miyasining ishlashini taqlid qilishga imkon beradi.
Inson nerv sistemasi yoki asab tizimi — bu tananing barcha tizimlarining o’zaro
bog’liq xatti-harakatlarini ta’minlaydigan murakkab tuzilmalar tarmog’i.
Biologik neyron — bu yadrodan, hujayrali tanadan va jarayonlardan iborat bo’lgan
maxsus hujayradir. Neyronning asosiy vazifalaridan biri boshqa neyronlar bilan
ulanish orqali neyron tarmog’iga elektrokimyoviy impulsni yuborishdir. Bundan
tashqari, har bir aloqa sinaptik aloqaning kuchi deb nomlanadigan ma’lum bir
miqdor bilan tavsiflanadi. Ushbu qiymat boshqa neyronga o’tkazilganda
elektrokimyoviy impuls bilan nima sodir bo’lishini aniqlaydi: u kuchayadi yoki
zaiflashadi yoki o’zgarishsiz qoladi.
Biologik neyron tarmoq yuqori darajadagi ulanishga ega: boshqa neyronlar bilan
bir necha mingta aloqa bitta neyronga tushishi mumkin. Ammo, bu taxminiy
qiymat va har bir holatda u boshqacha. Bir neyrondan ikkinchisiga impulslarning
uzatilishi butun neyron tarmog’ining ma’lum bir qo’zg’alishini keltirib chiqaradi.
Ushbu qo’zg’alishning kattaligi neyron tarmoqning ba’zi kirish signallariga
javobini aniqlaydi. Masalan, odamning eski tanishi bilan uchrashuvi, agar ba’zi
tanish va yoqimli hayot xotiralari ushbu tanishish bilan bog’liq bo’lsa, neyron
tarmog’ining kuchli qo’zg’alishiga olib kelishi mumkin. O’z navbatida, neyron
tarmog’ining kuchli qo’zg’alishi yurak urish tezligining oshishiga, ko’zlarning tez-
tez yonib turishiga va boshqa reaktsiyalarga olib kelishi mumkin. Neyron tarmoq
uchun notanish odam bilan uchrashuv deyarli imkonsiz bo’ladi,
Biologik neyron tarmog’ining quyidagi juda soddalashtirilgan modelini berish
mumkin:
Har bir neyron yadrodan tashkil topgan hujayrali tanadan iborat. Dendrit deb
ataladigan ko’plab qisqa tolalar hujayraning tanasidan ajralib chiqadi. Uzoq
dendritlarga aksonlar deyiladi. Aksonlar uzoq masofalarni bosib o’tishadi, bu
raqam o’lchovida ko’rsatilgandan ancha kattadir. Aksonlar odatda 1 sm uzunlikka
ega (bu hujayra tanasining diametridan 100 baravar ko’p), ammo 1 metrga yetishi
mumkin.
XX asrning 60–80-yillarida ekspert tizimlari sun’iy intellekt sohasida
izlanishlarning ustuvor yo’nalishlaridan biri bo’lgan . Ekspert tizimlari yaxshi
ishladi, ammo faqat yuqori ixtisoslashgan sohalarda. Ko’proq universal aqlli
tizimlarni yaratish uchun boshqacha yondashuv talab qilindi. Ehtimol, bu sun’iy
intellekt tadqiqotchilari e’tiborini inson miyasining ostidagi biologik neyron
tarmoqlarga qaratganligiga olib keldi.
Sun’iy intellektdagi neyron tarmoqlari biologik neyron tarmoqlarining
soddalashtirilgan modelidir.
O’xshashlik shu yerda tugaydi. Inson miyasining tuzilishi yuqorida aytib
o’tilganlarga qaraganda ancha murakkab va shuning uchun uni hech bo’lmaganda
aniqroq ko’paytirish mumkin emas.
Neyron tarmoqlari juda ko’p muhim xususiyatlarga ega, ammo asosiysi bu
o’rganish qobiliyatidir. Neyron tarmog’ini o’rganish birinchi navbatda neyronlar
orasidagi sinaptik aloqalarning «kuchini» o’zgartirishni o’z ichiga oladi. Buni
quyidagi misol yaqqol ko’rsatib turibdi. Pavlovning klassik tajribasida har safar
itni boqishdan oldin qo’ng’iroq jiringladi. It tezda qo’ng’iroqni ovqat bilan
bog’lashni o’rganib oldi. Bunga miyaning eshitish uchun javob beradigan qismlar
va tuprik bezlari orasidagi sinaptik aloqalar kuchayganligi sabab bo’lgan. Va
qo’ng’iroq sadosi bilan neyron tarmoqning keyingi qo’zg’alishi itda kuchli
tupurikka olib kela boshladi.
Bugungi kunda neyron tarmoqlar sun’iy intellekt sohasidagi tadqiqotlarning
ustuvor yo’nalishlaridan biridir.
Neyron tarmoqlari hozir juda mashhur va buning sababi yaxshi. Ularning yordami
bilan, masalan, rasmlardagi narsalarni tanib olishingiz yoki aksincha, Salvador
Dalining dahshatli tushlarini chizishingiz mumkin. Qulay kutubxonalar tufayli eng
oddiy neyron tarmoqlari atigi bir necha qator kodlar bilan yaratiladi va IBM sun'iy
intellektiga murojaat qilish uchun boshqa vaqt kerak bo'lmaydi.
Biologlar hali ham miyaning qanday ishlashini aniq bilishmaydi, ammo asab
tizimining alohida elementlarining ishlash printsipi yaxshi tushuniladi. U
neyronlardan iborat - bir-biri bilan elektrokimyoviy signallarni almashinadigan
maxsus hujayralar. Har bir neyronda ko'plab dendritlar va bitta akson mavjud.
Dendritlarni ma'lumotlar neyronga kiradigan kirishlar bilan taqqoslash mumkin,
akson esa uning chiqishi sifatida xizmat qiladi. Dendritlar va aksonlar orasidagi
bog'lanishlar sinapslar deb ataladi. Ular nafaqat signallarni uzatadi, balki ularning
amplitudasi va chastotasini ham o'zgartirishi mumkin.
Alohida neyronlar darajasida sodir bo'ladigan transformatsiyalar juda oddiy, ammo
juda kichik neyron tarmoqlar ham ko'p narsaga qodir. Caenorhabditis elegans
qurtining barcha xulq-atvori - harakat, oziq-ovqat izlash, tashqi ogohlantirishlarga
turli reaktsiyalar va boshqalar - atigi uch yuz neyronda kodlangan. Va yaxshi
qurtlar! Hatto chumolilarda ham yetarlicha 250 000 neyron bor va ular qiladigan
ishi, albatta, mashinalar kuchidan tashqarida.
Taxminan oltmish yil oldin amerikalik tadqiqotchi Frenk Rozenblat miya tasviri va
o'xshashligida kompyuter tizimini yaratishga harakat qildi, ammo uni yaratish
imkoniyatlari nihoyatda cheklangan edi. O'shandan beri neyron
tarmoqlarga qiziqish qayta-qayta kuchaydi, lekin qayta-qayta ma'lum bo'ldiki,
hisoblash quvvati hech qanday ilg'or neyron tarmoqlar uchun etarli emas. So'nggi
o'n yil ichida bu borada ko'p narsa o'zgardi.
Dvigatelli elektromexanik miya
Rosenblatt mashinasi Mark I Perceptron deb nomlangan. Bu tasvirni aniqlash
uchun mo'ljallangan edi, bu vazifani kompyuterlar hali ham yomon bajarmoqda.
Mark I retinaning bir turi bilan jihozlangan edi: 400 fotoseldan iborat kvadrat
qator, vertikal ravishda yigirma va gorizontal holda yigirma. Fotosellar
neyronlarning elektron modellariga tasodifiy ulangan va ular o'z navbatida sakkizta
chiqishga ulangan. Elektron neyronlar, fotosellar va chiqishlarni birlashtiruvchi
sinapslar sifatida Rosenblatt potansiyometrlardan foydalangan. Perseptronni
o'rgatishda 512 qadamli motorlar potansiyometrlarning tugmachalarini avtomatik
ravishda aylantirib, chiqish natijasining to'g'riligiga qarab neyronlardagi
kuchlanishni sozladi.
Xulosa qilib aytganda, neyron tarmoq qanday ishlaydi. Sun'iy neyron, xuddi
haqiqiy kabi, bir nechta kirish va bitta chiqishga ega. Har bir kiritishda og'irlik
koeffitsienti mavjud. Ushbu koeffitsientlarni o'zgartirib, biz neyron tarmoqni
o'rgatishimiz mumkin. Chiqish signalining kirish signallariga bog'liqligi
faollashtirish funktsiyasi deb ataladi.
Rosenblatt perseptronida faollashtirish funktsiyasi mantiqiy qabul qilingan barcha
kirishlarning og'irligini qo'shdi va natijani chegara qiymati bilan taqqosladi. Uning
minus tomoni shundaki, ushbu yondashuv bilan og'irlik omillaridan birining ozgina
o'zgarishi natijaga nomutanosib ravishda katta ta'sir ko'rsatishi mumkin. Bu
o'rganishni qiyinlashtiradi.
Zamonaviy neyron tarmoqlar odatda chiziqli bo'lmagan faollashtirish
funktsiyalaridan foydalanadi, masalan, sigmasimon. Bundan tashqari, eski neyron
tarmoqlar juda kam qatlamlarga ega edi. Endi neyronlarning bir yoki bir nechta
yashirin qatlamlari odatda kirish va chiqish o'rtasida joylashgan. O‘sha yerda
barcha qiziqarli voqealar sodir bo‘ladi.
Nima xavf ostida ekanligini tushunishni osonlashtirish uchun ushbu diagrammaga
qarang. Bu bitta yashirin qatlamga ega bo'lgan oldinga yo'naltirilgan neyron
tarmoq. Har bir doira neyronga mos keladi. Chap tomonda kirish qatlamining
neyronlari joylashgan. O'ng tomonda chiqish qatlami neyroni joylashgan. O'rtada
to'rtta neyronli yashirin qatlam mavjud. Kirish qatlamining barcha neyronlarining
chiqishlari birinchi yashirin qatlamning har bir neyroniga ulanadi. O'z navbatida,
chiqish qatlami neyronining kirishlari yashirin qatlam neyronlarining barcha
chiqishlariga ulanadi.
Hamma neyron tarmoqlar ham shunday ishlab chiqilmagan. Masalan, bizning
sxemamizdan oldinga tarqalish tarmog'ida bo'lgani kabi, neyronlardan keladigan
signal nafaqat keyingi qatlamga, balki teskari yo'nalishda ham ta'minlangan
(kamroq tarqalgan bo'lsa-da) tarmoqlar mavjud. Bunday tarmoqlar takrorlanuvchi
deb ataladi. To'liq bog'langan qatlamlar ham variantlardan biri bo'lib, biz muqobil
variantlardan biriga ham tegamiz.
Neyron - bu axborotni qabul qiluvchi, unda oddiy hisob-kitoblarni amalga
oshiradigan va uni uzatuvchi hisoblash birligi. Ular uchta asosiy turga bo'linadi:
kirish (ko'k), yashirin (qizil) va chiqish (yashil). Bundan tashqari, biz keyingi
maqolada gaplashadigan noto'g'ri neyron va kontekstli neyron mavjud. Agar
neyron tarmoq ko'p sonli neyronlardan iborat bo'lsa, qatlam atamasi kiritiladi.
Shunga ko'ra, axborotni qabul qiluvchi kirish qatlami, uni qayta ishlovchi n ta
yashirin qatlam (odatda 3 tadan ko'p bo'lmagan) va natijani ko'rsatadigan chiqish
qatlami mavjud. Neyronlarning har biri ikkita asosiy parametrga ega: kirish
ma'lumotlari (kirish ma'lumotlari) va chiqish ma'lumotlari (chiqish ma'lumotlari).
Kirish neyroni holatida: kirish = chiqish. Qolganlarida, oldingi qatlamdagi barcha
neyronlarning umumiy ma'lumotlari kirish maydoniga tushadi, shundan so'ng u
faollashtirish funktsiyasi yordamida normallashtiriladi (hozircha uni f (x) tasavvur
qiling) va chiqish maydoniga kiradi.
Sinaps - bu ikki neyron o'rtasidagi aloqa. Sinapslar 1 parametrga ega - og'irlik.
Unga rahmat, kirish ma'lumotlari bir neyrondan ikkinchisiga uzatilganda
o'zgaradi. Aytaylik, ma'lumotni keyingisiga uzatuvchi 3 ta neyron mavjud. Keyin
bizda ushbu neyronlarning har biriga mos keladigan 3 ta vazn mavjud. Kattaroq
og'irlikdagi neyron uchun bu ma'lumot keyingi neyronda ustun bo'ladi (masalan,
ranglarni aralashtirish). Aslida, neyron tarmog'ining og'irliklari to'plami yoki vazn
matritsasi butun tizimning o'ziga xos miyasidir. Aynan shu og'irliklar tufayli
kiritilgan ma'lumotlar qayta ishlanadi va natijaga aylanadi.
Esda tutish muhim neyron tarmog'ini ishga tushirish vaqtida og'irliklar tasodifiy
bo'ladi.
Neyron tarmoq qanday ishlaydi?
DA bu misol neyron tarmog'ining bir qismi ko'rsatilgan, bu yerda I harflari kirish
neyronlarini, H harfi yashirin neyronni va w harfi og'irliklarni bildiradi.
Formuladan ko'rinib turibdiki, kiritilgan ma'lumotlar barcha kiritilgan
ma'lumotlarning ularning mos keladigan og'irliklariga ko'paytirilgan yig'indisidir.
Keyin 1 va 0 kiritishni beramiz. w1=0.4 va w2 = 0.7 boʻlsin, H1 neyronining kirish
maʼlumotlari quyidagicha boʻladi: 1*0.4+0*0.7=0.4. Endi bizda kirish mavjud, biz
kirishni faollashtirish funksiyasiga ulab chiqishni olishimiz mumkin (bu haqda
keyinroq). Endi bizda chiqish bor, biz uni uzatamiz. Shunday qilib, biz chiqish
neyroniga yetguncha barcha qatlamlar uchun takrorlaymiz. Bunday tarmoqni
birinchi marta ishga tushirganimizda, biz javob to'g'ri emasligini ko'ramiz, chunki
tarmoq o'qitilmagan. Natijalarni yaxshilash uchun biz uni mashq qilamiz. Ammo
buni qanday qilishni o'rganishdan oldin neyron tarmoqning bir nechta atamalari va
xususiyatlarini tanishtiramiz.
Chiziqli funksiya
Bu funksiyadan deyarli foydalanilmaydi, faqat neyron tarmoqni sinab ko'rish yoki
qiymatni o'zgartirmasdan o'tkazish kerak bo'lganda.
Sigmasimon
Bu eng keng tarqalgan faollashtirish funktsiyasi, uning qiymatlari diapazoni . U
Internetdagi ko'pgina misollarni ko'rsatadi va ba'zan logistika funktsiyasi deb ham
ataladi. Shunga ko'ra, agar sizning holatingizda salbiy qiymatlar mavjud bo'lsa
(masalan, aktsiyalar nafaqat yuqoriga, balki pastga tushishi mumkin), unda sizga
salbiy qiymatlarni ham qamrab oladigan funktsiya kerak bo'ladi.
Giperbolik tangens
Sizning qiymatlaringiz ham salbiy, ham ijobiy bo'lishi mumkin bo'lgan
taqdirdagina giperbolik tangensdan foydalanish mantiqan to'g'ri keladi, chunki
funktsiya diapazoni [-1,1]. Ushbu funktsiyani faqat ijobiy qiymatlar bilan ishlatish
tavsiya etilmaydi, chunki bu sizning neyron tarmog'ingiz natijalarini sezilarli
darajada yomonlashtiradi.
Trening to'plami
Trening to'plami - bu neyron tarmoq ishlaydigan ma'lumotlar ketma-ketligi.
Bizning holatda eksklyuziv yoki (xor) bizda faqat 4 xil natijaga ega bo'lamiz, ya'ni
bizda 4 ta o'quv to'plami bo'ladi: 0xor0=0, 0xor1=1, 1xor0=1,1xor1=0.
Yechim
H1kiritish = 1*0,45+0*-0,12=0,45
H1output = sigmasimon (0,45) = 0,61
H2kiritish = 1*0,78+0*0,13=0,78
H2 chiqishi = sigmasimon (0,78) = 0,69
O1 kirish = 0,61*1,5+0,69*-2,3=-0,672
O1chiqish = sigmasimon (-0,672)=0,33
O1ideal = 1 (0xor1=1)
Xato = ((1-0,33)^2)/1=0,45
Natija 0,33, xatolik 45% ni tashkil qiladi.
Neyron tarmoq- sun'iy intellektga ega mashinalarni yaratish uchun matematik
modellar yordamida inson miyasining ishini takrorlashga urinish.
Sun'iy neyron tarmog'i odatda o'qituvchi bilan o'qitiladi. Bu haqiqiy qiymatlarga
ega bo'lgan misollarni o'z ichiga olgan o'quv majmuasi (ma'lumotlar to'plami)
mavjudligini anglatadi: teglar, sinflar, ko'rsatkichlar.
Yorliqsiz to'plamlar neyron tarmoqlarni o'rgatish uchun ham qo'llaniladi, ammo
biz buni bu erda ko'rib chiqmaymiz.
Misol uchun, agar siz matn hissiyotini baholash uchun neyron tarmoq yaratmoqchi
bo'lsangiz, maʼlumotlar toʻplami har biriga mos keladigan hissiy baholarga ega
bo'lgan jumlalar ro'yxati bo'ladi. Matnning ohangi aniqlanadi belgilar salbiy yoki
ijobiy ma'no beruvchi (so'zlar, iboralar, jumlalar tuzilishi). Og'irliklar matn
hissiyotini yakuniy baholashdagi xususiyatlar (ijobiy, salbiy, neytral) neyron
tarmog'ini o'rgatish jarayonida hisoblangan matematik funktsiyaga bog'liq.
Ilgari odamlar xususiyatlarni qo'lda yaratgan. Ko'proq xususiyatlar va aniqroq
tanlangan og'irliklar, javob qanchalik aniq bo'lsa. Neyron tarmoq bu jarayonni
avtomatlashtirdi.
Sun'iy neyron tarmog'i uchta komponentdan iborat:
Kirish qatlami;
Yashirin (hisoblash) qatlamlar;
chiqish qatlami.
Neyron tarmoqlar ikki bosqichda o'qitiladi:
Xatoning orqaga tarqalishi.
Xatolarni oldinga yo'naltirish vaqtida javobning bashorati amalga oshiriladi.
Orqaga tarqalish bilan haqiqiy javob va taxmin qilingan javob o'rtasidagi xatolik
minimallashtiriladi.
to'g'ridan-to'g'ri tarqalish
Keling, dastlabki og'irliklarni tasodifiy o'rnatamiz:
Yashirin qatlamni yaratish uchun kiritilgan ma'lumotlarni og'irliklarga
ko'paytiring:
h1 = (x1 * w1) + (x2 * w1)
h2 = (x1 * w2) + (x2 * w2)
h3 = (x1 * w3) + (x2 * w3)
Yashirin qatlamdan chiqish tarmoqning chiqishini olish uchun chiziqli bo'lmagan
funktsiya (faollashtirish funktsiyasi) orqali o'tkaziladi:
y_ = fn(h1 , h2, h3)
orqaga tarqalish
Umumiy xatolik (total_error) xarajat funktsiyasidan o'tib, kutilgan "y" qiymati
(o'quv majmuasidan) va olingan "y_" qiymati (xatoning oldinga siljishi bosqichida
hisoblangan) o'rtasidagi farq sifatida hisoblanadi.
Xatoning qisman hosilasi har bir vazn bo'yicha hisoblanadi (bu qisman farqlar har
bir vaznning umumiy xatoga qo'shgan hissasini aks ettiradi (total_loss)).
Keyin bu farqlar o'rganish tezligi (ē) deb ataladigan raqamga ko'paytiriladi.
Keyin olingan natija mos keladigan og'irliklardan chiqariladi.
Bu quyidagi yangilangan vaznlarga olib keladi:
w1 = w1 - (ē * ∂(xato) / ∂(w1))
w2 = w2 - (ē * ∂(xato) / ∂(w2))
w3 = w3 - (ē * ∂(xato) / ∂(w3))
Og'irliklarni tasodifiy qabul qilishimiz va ishga tushirishimiz va ular aniq javob
berishlari juda mantiqiy tuyulmaydi, lekin u yaxshi ishlaydi.
Nerv tarmoqlaridagi aksariyat maqolalar ularni tasvirlashda miyaga
o'xshashliklarni keltirib chiqaradi. Nerv tarmoqlarini tafsilotlarga berilmasdan
berilgan natijani kerakli natijaga ko'rsatadigan matematik funktsiya deb ta'riflash
men uchun osonroq.
Endi biz oldinga va orqaga tarjima qilish uchun to'liq Python kodimizga ega
bo'lsak, keling, neyron tarmog'imizni misollar orqali ko'rib chiqamiz va u qanday
ishlashini ko'rib chiqamiz.
Bizning neyron tarmog'imiz ushbu funksiyani namoyish etish uchun ideal vazn
to'plamini o'rganishi kerak.
Keling, neyron tarmoqni 1500 ta takrorlash uchun mashq qilaylik va nima
bo'lishini ko'rib chiqaylik. Quyidagi iteratsiyani yo'qotish grafigiga qarab,
yo'qotish monoton ravishda minimal darajaga tushishini aniq ko'rishimiz mumkin.
Bu biz ilgari aytib o'tgan gradient tushish algoritmiga mos keladi.
1500 ta takrorlashdan so'ng neyron tarmoqdan yakuniy bashoratni (chiqishni)
ko'rib chiqamiz.
Ko‘p sathli neyron tarmoqlarini qurish. Ko‘p sathli neyron tarmog‘ida kiruvchi,
chiquvchi va yashirin sathlar. Ko‘p sathli neyron tarmog‘ida og‘irlik koeffitsentlari
qiymatlarini yangilash amallari (backpropogation). Ko‘p sathli perseptron orqali
regressiya va sinflashtirish masalasini yechish malakasiga ega bo’ladi.
Instrumental dasturiy vositalar asosida neyron tarmog‘ini qurish. Matlab/Python
muhitida neyron tarmog‘ini qurish funksiyalari va mavjud kutubxonalardan
foydalanish. Neyron tarmoq modelini yaratish va chop qilish
Brain.js - bu asab tarmog'ini yaratishning ajoyib usuli. Oddiy qilib aytganda, asab
tarmog'i - bu inson miyasiga o'xshash tarzda ishlaydigan mashinani o'rganish usuli.
Savolga to'g'ri javobni hisobga olgan holda ("foydalanuvchi qaysi variantni
tanlaydi?" Kabi), u asta-sekin kirish va javoblar o'rtasidagi naqsh va
munosabatlarni o'rganadi. Neyron tarmoqning bir misoli - bu Facebookning yuzni
aniqlash tizimi, DeepFace.
Ammo neyron tarmoqlarning murakkab domen tili va aftidan tik o'rganish egri
chizig'i tufayli boshlash qiyin bo'lishi mumkin.
Ushbu o'quv qo'llanmada biz bilishni talab qiladigan nazariyani tarqatamiz va, eng
muhimi, asab tarmog'ini yaratish uchun brain.js-dan foydalanish bilan bog'liq
bo'lamiz. Oxir-oqibat, sizda foydalanuvchining optimizmi to'g'risida bir nechta
tanlov savollarini beradigan veb-ilovangiz bo'ladi. Taqdim etilganida, ushbu
javoblar neyron tarmoqni bizning foydalanuvchimiz yangi savol uchun har bir
variantni tanlash ehtimoliga o'rgatadi.
Ko'proq foydali veb-dizayn vositalarini xohlaysizmi? Eng zo'r veb-sayt ishlab
chiqaruvchisini tanlash bo'yicha bizning xabarimizga qarang. Yoki fayllarni
xavfsiz saqlash uchun biror joy kerak bo'lsa, bizning eng yaxshi bulutli saqlash
joyimiz bilan tanishing. Murakkab veb-saytni rejalashtirmoqdamisiz? Sizga
barqaror veb-xosting xizmati kerak bo'ladi, bu esa uni ushlab turishi mumkin.
Loyihani o'rnating
Birinchidan, kerakli bog'liqliklarni yuklab oling va o'rnating. Ushbu o'quv
qo'llanmada siz React haqida yaxshi ma'lumotga egasiz yoki afzal qilingan
alternativaga teng keladigan xaritalashni bilasiz.
Kerakli usuldan foydalanib React dasturini yarating. Siz Facebook-ni sinab
ko'rishingiz mumkin yaratish-reaksiya-ilova quyidagilar yordamida o'rnatilgan
asbob:
npm install-react-app -g o'rnatish
Ilovangizni ishga tushiring
Endi biz brain.js-ni yaratishimiz, o'rnatishimiz va dasturimizni ishga tushirishimiz
mumkin:
npx yaratish-reaksiya-ilovasi optimizmi-nd cd optimizm-nn npm install brainjs
npm start
Biz neyron tarmoq hisobini brauzerda amalga oshirmoqchimiz. Neyron tarmoqlari
juda ko'p resurslarga ega va ularni serverga yuklash kerak. Biroq, bu usul tezda
o'rnatiladi va bizning asosiy ehtiyojlarimiz uchun javob beradi. Endi kirish
joyimizga brain.js-ni qo'shaylik (mening ishimda App.js).
Keyingi mashg'ulot savollarimizni aniqlashimiz kerak. Alohida questions.js fayl,
bizga a kerak bo'ladi o'quv savollari va tekshirish savollari qator. Siz mening
ro'yxatimni Git reposidan topishingiz yoki o'zingiz yaratishingiz mumkin.
Treningga oid savollaringiz qancha ko'p bo'lsa, natijalaringiz shunchalik aniq
bo'ladi. Ularni kirish joyingizga import qilishni unutmang.
export const trainingQuestions = [{id: 'q1', savol: 'Siz ko'pincha narsalarning
yaxshisini ko'rasizmi?', variantlar: [{id: 'q1a', yorliq: 'Haqiqatan ham emas',
qiymati: 0,2,}, { id: 'q1b', yorliq: 'Har doim', qiymati: 1.0,}, {id: 'q1c', yorliq:
'Odatda, ha', qiymati: 0.7,}, {id: 'q1d', yorliq: 'Hech qachon ! ', qiymati: 0.0,},],},];
Ikkala qator uchun bizda savol, yorliq va optimizm qiymatini o'z ichiga olgan
to'rtta variant qatori kerak. Ushbu qiymat bizning neyron tarmog'imiz uchun kirish
bo'ladi.
Qadriyatlar tartibi va muvozanatini o'zgartirishingizga ishonch hosil qiling, aks
holda neyron tarmoq massivdagi parametrlar indeksiga juda ko'p e'tibor qaratishi
mumkin! Bizning neyron tarmog'imiz to'rtta kirishni oladi va to'rtta chiqishni
beradi. Bizning o'quv ma'lumotimiz bunga mos kelishi kerak, shuning uchun
bizning konstruktorimizda viktorina va foydalanuvchi parametrlari uchun biron bir
holat kerak:
this.state = {trainingAnswers: trainingQuestions.map (() => Array (4) .fill (0)),
training: false, prognozlar: undefined,};
http://fayllar.org
|