Mashinali o’rganish masalalari
Atamalar
Keling endi, birinchi, ba’zi bir atamalarni kiritsakda va shu atamalarga izchil rioya qilib davom etsak. Birinchi atamamiz - bu obyekt ba’zida esa namuna ham deymiz. Yuqoridagi misollarda bular: ‘hayvonlar’ va ‘rasmlar’ obyekt yoki naumuna deyiladi. Ular o’rtasidagi juda nozik farq bu naumunalar deb biz yechimi bo’lgan obyektlarga aytishimiz mumkin, obyektlarni esa hammasiga qo’llash mumkin. Ikkinchisi esa, o’rgatuvchi va sinov to’plamlar. Algoritmni o’rgatish uchun ishlatiladigan namunalar bu o’rgatuvchi to’plam deyiladi, uning qanday ishlayotgani tekshirish uchun esa biz o’rgatish jarayonida mavjud bo’lmagan obyektlardan foydalanamiz, buni esa sinov to’plam deymiz. Keyinchalik boshqa turdagi to’plamlarni ham qo’shamiz.
Keyingisi esa biz qanday masalani yechayotganimizga oid bo’lib, yuqoridagi ikki misolda ham biz yangi obyektni qaysidir jamoaga tegishli ekanligini aniqlashmiz zarur bo’ldi, masalan rasmda qanday raqam joylashgan yoki yangi hayvon qaysi hayvonligi. Obyektni qaysi turga kirishini umumiy holda obyektning Sinfi deymiz. Masalan, ‘itlar’ yoki ‘bo’rilar’ sinfi va hakozo.
Oxirgisi esa alomat bo’lib, har bir obyekt ifodaluvchi qiymatlar uning alomatlari deyiladi. Biz ingliz tilidagi ‘feature’ so’zini shu tarizda tarjima qildik. Yuqoridagi misollarda: rasmlar uchun uning piksellari alomatlari deymiz, ‘It va bo’ri’ misolida esa ularning bo’yi va uzunligini alomatlar deb ataymiz. Ba’zida bu tushunchani simptomlar(symptoms) bilan adashtirishadi, aslida bu so’z faqat fizik va ruhiy alomatlarni ifodalash uchun ishlatiladi va odata kasalikning qanday sharoitda ekanligni anglatadi. Biz mashinali o’rganishda umumiyroq holni qaraymiz. Ushbu alomatlar qo’yilgan masalaga ko’ra ikki qismga bo’linadi. Obyektni tasvirlovchi alomatlar va maqsadli (target) alomat(lar). Yuqorida ‘It va bo’ri’ masalasida ularning bo’yi va uzunligi tasvirlovchi alomatlar bo’lsa, ularning qaysi sinfga tegishli bo’lishi maqsadli alomat hisoblanadi. Chunki obyektlarning tasvirlanishi orqali ularning qaysi sinfga tegishli bo’lishini aniqlashimiz asosiy maqsadimizdir.
O’rgatuvchili o’rganish
Ushbu ingliz tilidagi ‘Supervised Learning’ atamasini biz o’rgatuvchili o’rganish deb tarjima qildik hamda ushbu qo’llanma davomida shunday deb murojaat qilamiz. Biz birinchi sodda masala ko’rdik va uni yaxshiroq tushinish uchun esa yanada sodda misolni geometrik usulda bayon qildik. Endi bu qismda ushbu o’rgangan ‘Eng yaqin qo’shni’ algoritmi asosida Mashinali o’rganish fanining ba’zi nazariy qoidalari va ta’riflarini o’tganamiz.
Keling birinchi “O’rgatuvchi (supervised)” so’zini yuqoridagi masalada aniqlashtirib olsak. Ramslarni o’zida jamlagan MNIST rasmlar to’plami, oldin ham aytganimizdek, ikki qismdan iborat: birinchisi algoritmni o’rgatish va ikkinchisi esa uni sinov qilish uchun. Birinchi qismdagi to’plamdagi hamma ramsda qanday raqamlar turganini bizga ayon. Xudi shunday, yuqoridagi “It va bo’ri”ga oid to’plamda ham 10 ta (5 ta it va 5 ta bo’ri) hayvoning qiymati oldindan bor va ularning qanday hayvon ekanligini ham bilamiz. Mana shu MNISTning birinchi to’plami va yuqoridagi ramsdagi 10 ta hayvon bizning algoritm uchun “O’rgatuvchi”. Shuning uchun ham bu turdagi masalalarni “O’rgatuvchili o’rganish” deb nomlaymiz. Demak soddaroq qilib aytsak algortimni o’rgatish uchun oldindan yechimi bo’lgan namunalar berilar bo’lsa, u holda biz shularga qarab yangi muammoni yechimini topishimiz “O’rgatuvchili o’rganish” bo’lar ekan.
O’rgatuvchili o’rganishning turlari
Ushbu turdagi o’rganishning o’zini ham maqsadli alomatning turlariga qarab bir qancha turlarga ajratib o’rganamiz:
Regressiya - ushbu turda maqsadli alomat ma’lum bir son bo’lib uni topish talab etiladi. Masalan, ertangi haroratni topish yoki uyning narxini baholashlar regressiya masalalaridir.
Klassifikatiya (Sinflash) - bunda maqsadli alomat toifali bo’ladi, son bo’lmaydi. Bu toifalilar odatda mantlar bilan ifodalanadi. Masalan, yuqoridagi misolda yangi obyektning qaysi sinfga tegishli bo’lishi bu klassifikatsiya masalasidir. Ushbu narsa MNIST rasmlar masalasida, qaysi raqamligi bo’lsa, “it va bo’ri” masalasida esa qaysi hayvonligidir.
Umumiy olganda ushbu turlar yana bir qancha ichki turlarga bo’linadi va ularni keyinchalik o’rganamiz.
Matematik ifodalanishi
Biz kelajakda o’qigan narsalarnimizni tushunish uchun har doim matematik ifodalashga zarurat bo’ladi. Chunki bu soha vaklillari har doim ilmiy maqola o’qishiga to’g’iri kelishi mumkin, bunda esa masalarni qanday ifodalashni bilish juda muhim hisoblanadi. Shuning uchun har bir turdagi masaladan so’ng biz ushbu masalaning matematik ko’rinishini yozib ketamiz va bir necha boblardan so’ng biz deyarli hamma algoritmlarni matematik ko’rinishda ifodalashga harakat qilamiz.
Klassifikatsiya masalasi. Aytaylik bizga yuqoridagi masalardagi obyektlarni ifodalovchi \(\mathbf{X}=\{\mathbf{x}^1, \mathbf{x}^2, \dots, \mathbf{x}^m\}\) to’plam berilgan. Bu yerdagi har bir \(\mathbf{x}^i \in \mathbf{R}^n, i\in \{1, 2, \dots, m\}\) to’plamdagi bitta obyektni tafsiflaydi. Namuna uchun, ‘it va bo’ri’ misolida \(\mathbf{x}^1=\{yosh, bo'y\}\), aniq qiymat bo’lsa, u holda \(\mathbf{x}^1=\{85, 95\}\) birinchi obyektnining qiymatini saqlaydi. \(\mathbf{X}\) to’plam o’zida vektorlarni saqlagani uchun u umumiy holda \(\mathbf{X} \in \mathbf{R}^{m\times n}\) bo’ladi, ya’ni o’lchami \(m \times n\) bo’lgan matritsa. Hamda har bir obyektning maqsadli alomatini ifodalash uchun \(\mathbf{y}=\{\mathbf{y}^1, \mathbf{y}^2, \dots, \mathbf{y}^m\}\), har bir sinfning qiymati 0 dan to sinflarning sonigacha \(c\) o’zgaradi, ya’ni \(\mathbf{y}^i \in \{1, 2, \dots, c\}\). Biz qisqalik uchun har doim sinfning nomlarini matn ko’rinishda tasvirlamasdan, uning o’rnida, ularni ixtiyoriy tartibda joylashtirib, ularga joylashuvi bo’yicha raqamlar beramiz. Bu keyichalik dasturlash va eng asosiysi mashinali o’rganishda zarur bo’ladi. Masalan, yuqoridagi “it va bo’ri” masalasida, “it” lar sinfini 0 desak “bo’r” larni 1 deymiz.
Masalaning qo’yilishi Ushbu masalada bizning asosiy maqsadimiz yuqoridagi ikki o’zgaruvchi, \(\mathbf{X}\) va \(\mathbf{y}\), bizga oldindan o’rgatuvchi to’plam sifatida berilsa, u holda yangi obyekt \(\mathbf{x}^*\) uchun maqsadli alomatning (\(y\)) qiymatini topishimiz kerak bo’ladi. Buni sodda matematik ko’rinishda quyidagicha yozamiz, \(y=f(x)\). Biz shunday funksiya (ba’zida, algoritm, usul yoki operator) topishimiz kerak bo’ladi, unga \(\mathbf{x}^*\) qiymat sifatida bersak, u \(f(\mathbf{x}^*)\) bizga \(y\) ning qiymatini qaytarishi kerak.
Sodda misol sifatida valyuta ayriboshlash funksiyasini qarab chiqaylik. Agar bizga joriy AQSH dollorining O’zbekiston so’miga nisbati berilgan bo’lsa, u holda \(g\) funksiyaga biz AQSH dollorda qiymat ko’rsatsak, u bizga shu qiymatning O’zbekiston so’mida qancha bo’lishini qaytarishi kerak. Xudi shunday, yuqoridagi funksiya (ba’zida, algoritm, usul yoki operator) qo’yilgan masalaga berilgan \(\mathbf{X}\) va \(\mathbf{y}\) asosida mos javob qaytarishi kerak.
Endi yuqoridagi biz ko’rib chiqqan ikki masalanining matematik ifodalanishi qisqacha yozib qo’sak. Birinchi masalada, biz rasmlar bilan ishladik. Aslida rasmlar \(28\times 28\) ko’rinishidagi jadval (matritsa) edi. Lekin biz uni \(784\) o’lchamli vektor ko’rinishiga o’tkazib oldik. Shunda, obyektlarni o’zida saqlovchi o’rgatuvchi to’plam \(\mathbf{X} \in \mathbf{R}^{60000\times 784}\) va maqsadli alomat \(\mathbf{y}=\{\mathbf{y}^1, \mathbf{y}^2, \dots, \mathbf{y}^{60000}\}\) bo’ladi. Bu yerda har bir \(\mathbf{y}^i \in \{1, 2, 3, \dots, 10\}\), chunki \(c=10\). Ikkinchi namunamiz ham birinchisiga o’xshaydi, faqat ancha soddaroq, o’rgatuvchi to’plam \(\mathbf{X} \in \mathbf{R}^{10 \times 2}\) va maqsadli alomat \(\mathbf{y}=\{\mathbf{y}^1, \mathbf{y}^2, \dots, \mathbf{y}^{10}\}, \mathbf{y^i} \in \{1, 2\}\)
Regressiya masalasi. Ushbu tur masalalar boshqalaridan ko’ra ko’proq uchraydi, chunki ko’pchilik masalalar ushbu turga keltirib yechiladi. Ushbu turning oldingisidan asosiy farqi bu \(\mathbf{y}\) qiymati sinflar qiymatini saqlamasdan, o’rniga haqiqiy sonlarni saqlaydi, ya’ni \(\mathbf{y}=\{\mathbf{y}^1, \mathbf{y}^2, \dots, \mathbf{y}^m\}\), bu yerda har bir \(\mathbf{y}^i \in \mathbf{R}\).
Xulosa
Ushbu bobda mashinali o’rganishga oid bir qator muhim mavzularni o’rganib chiqdik. Shulardan eng muhimi o’zimiz uchun sodda klassifikatsiya algoritmi bo’lgan “Eng yaqin qo’shni algoritm” ni o’rgandik. Ushbu metod sodda bo’lishi qaramsdan ko’pchilik amaliy masalalarni yechishda hozirda ham keng qo’llaniladi. Guvohi bo’lganimizdek, bizning algoritm 98% aniqlik bilan ishladi hamda bu ko’rsatgich juda aniq hisoblanadi. Bundan tashqari kelajakda o’rganmoqchi bo’lgan mashinali o’rganish algoritmlari uchun zarur bo’lgan eng muhim mavzularni ham ko’rib chiqdik. Bundan keyingi bobni biz statistik tahlil uchun bag’ishlasakda hamda uning ichida ba’zi algoritmlarni o’rgansak. Chunki, yuqorida ta’kidlaganimizdedk, mashinali o’rganish fani statistik tahlilning bir qismi bo’lib rivojlanib kelgan.