Saturday, January 4, 2020

Andrew Ng профессорын “Машин сургалт” хичээлийн эмхэтгэл (удиртгал хэсэг)

Andrew Ng профессорын “Машин сургалт” хичээлийн эмхэтгэл (удиртгал хэсэг)

Tumurochir Nasanjargal
Jun 22, 2018 · 5 min read
Юуны өмнө нийтлэлийг маань уншиж буй таньд энэ өдрийн мэнд хүргэе. Энэхүү нийтлэлдээ Andrew Ng профессорын “Машин сургалт” хичээлийг үзсэнээр өөрт олж авсан мэдлэгээ бусадтай хуваалцахыг зорилоо.
Сүүлийн жилүүдэд мэдээллийн технологийн хөгжилд хэд хэдэн томоохон тэсрэлтүүд хийгдсан бөгөөд тэдний нэг нь яах аргагүй “Машин сургалт” (Machine Learning) юм. Үүнтэй холбоотойгоор хүмүүс (тэр дундаа мэдээллийн технологийн чиглэлээр ажилладаг, суралцдаг хүмүүс) энэхүү арга техникийг илүүтэйгээр сонирхон судлах болсон. Мөн математик болон компьютерийн шинжлэх ухааны чиглэлийн доктор, профессорууд ч үүнийг анзааран “Машин сургалт”-ын талаарх мэдлэгээ цахим хэлбэрээр бусдад түгээх нь ихэссэн билээ. Тэд EdxCourseraUdacityUdemy, … гэх мэт онлайн сургалтын вебсайтуудад өөрсдийн хичээлийг байршуулснаар энэхүү мэдлэгээ дэлхий дахинд түгээсээр байна.
Миний хувьд ихэвчлэн coursera (онолын сургалт) болон udemy (практик дадлага) сайтуудаас онлайн хичээл үздэг. Coursera сайтанд байрлах Andrew Ng профессорын “Machine learning” хичээлийг хэдэн сарын өмнө үзэж дуусгасан. Энэхүү хичээл нь машин сургалтын аргын үндсэн математик ойлголтуудыг дэлгэрэнгүй тайлбарласан тул тухайн аргын мөн чанарыг ойлгохыг хүссэн суралцагчдад маш их ашиг тустай хичээл болно. Тиймээс энэхүү нийтлэлд тус хичээлийг сонгон авч, уг хичээлээс юу сурч болох талаар өгүүлэхийг оролдлоо.
Andrew Ng профессорын “Machine learning” хичээл нь машин сургалтын үндсэн ойлголтууд, түүнд багтах арга техникүүд, алгоритмуудыг заахаас гадна ямар үед ямар аргыг ашиглах, тухайн аргыг хэрхэн зөв хэрэглэх, машин сургалтын аргаар гарган авсан загвараа (model) хэрхэн сайжруулж болох талаар дэлгэрэнгүй тайлбарлан заасан байдаг. Мөн энэхүү хичээлийг үзэхэд магадлал, статистик, интеграл, дифференциал болон шугаман алгебрын талаар анхан шатны мэдлэгтэй байхад л хангалттай.
Хичээл нь 11 долоо хоногийн хуваарьтай. Долоо хоног тус бүрт 1-3 сэдвийг агуулах ба сэдэв тус бүр 2–3 дэд сэдэвтэй. Сэдвүүдийг долоо хоног тус бүрээр нь ангилан бичвэл:
1-р долоо хоног:
— Машин сургалтын аргын танилцуулга (Introduction)
— 1 хувьсагчтай шугаман регресс (Linear regression with 1 variable)
— Шугаман алгебрын тойм (Linear algebra review)
2-р долоо хоног:
— Олон хувьсагчтай шугаман регресс (Linear regression with multiple variable)
— Octave / Matlab -ийг ашиглах заавар (Octave/Matlab tutorial)
3-р долоо хоног:
— Логистик регресс (Logistic regression)
— Регуларчлах (Regularization)
4-р долоо хоног:
— Neural Networks: Тодорхойлолт (Neural Networks: Representation)
5-р долоо хоног:
— Neural Networks: Сургалт (Neural Networks: Learning)
6-р долоо хоног:
— Машины сургалтыг ашиглах зөвлөгөө (Advice for applying machine learning)
— Машин сургалтын системийн дизайн (Machine learning system design)
7-р долоо хоног:
— Support Vector Machines
8-р долоо хоног:
— Хяналтгүй (багшгүй) сургалт (Unsupervised learning)
— Хэмжээс бууруулах (Dimensionality Reduction)
9-р долоо хоног:— Аномаль(гажилт) илрүүлэх (Anomaly Detection)
— Санал дэвшүүлэх систем (Recommender systems)
10-р долоо хоног:
— Том хэмжээний өгөгдөл дээрх машин сургалтын хэрэглээ (Large scale machine learning)
11-р долоо хоног:
— Хэрэглээ: Фото OCR (Application Example: Photo OCR — Optical Character Recognition)
Энэхүү нийтлэлд тус хичээлийн сэдэв тус бүрээс хамгийн чухал хэсгүүдийг тайлбарлан бичих болно. Ерөнхийдөө нийтлэлийг 4 хэсэгт хуваан нийтлэх ба эхний хэсэгт удиртгал хэсэг, дараагийн хэсэгт 1–3 -р долоо хоногийн сэдвүүдийг, 3-р хэсэгт 4–7 -р долоо хоногийн сэдвүүдийг, харин сүүлийн болох 4-р хэсэгт 8–11 -р долоо хоногийн сэдвүүдийг тайлбарлана.
ML буюу Машин сургалт
ML нь AI буюу хиймэл оюун ухааны салбарын нэгэн хэсэг болно. ML бий болсноор ямар нэгэн даалгаврыг гүйцэтгэх програмыг бичихдээ заавал бүх нөхцлийг тооцон програмдаа оруулан бичих шаардлагагүйгээр өгөгдсөн өгөгдлөөс өөрөө суралцан хамгийн гүйцэтгэл сайтай алгоритмыг гарган авах боломжтой болсон. Нэг талаараа хүн шиг өмнөх туршлагаасаа суралцан илүү сайн ажиллаж чадвартай болдог гэж хэлж болно.
ML хурдацтай хөгжих болсон хэд хэдэн хүчин зүйлс бий. Тэднээс заримыг нь дурдвал:
— Өгөгдлийн сангийн олборлолт (database mining) Web automation болон бусад янз бүрийн өгөгдлийг автоматаар олборлох хэрэгслүүдийн өсөлтөөс үүдэн том хэмжээний өгөгдлүүдийг хялбар аргаар гарган авах боломжтой болсон.
Жишээ нь: Website-ийн дата, эмнэлгийн дата, янз бүрийн бүртгэлийн дата гэх мэт.
— Гараар програмчлах боломжгүй аппликейшнүүдийг хийх боломжтой.
Жишээ нь: Автомат техникүүд, Google Car, гар бичмэл танилт, Computer Vision, дүрс танилт, Natural Language Processing (NLP) гэх мэт .
— Өөрийгөө хувьсган өөрчлөх чадвартай программууд хийж болно.
Жишээ нь: Янз бүрийн бараа санал болгох системүүд гэх мэт.
ML -ийг тодорхойлсон маш олон тодорхойлолтууд байдаг. Тэднээс тус хичээлд онцлон авсан 2 тодорхойлолт бий. Тэдгээр нь:
— Артур Самуэл (1959). Машин сургалт: Энэ нь шууд програмчлахгүйгээр компьютерт сурах чадварыг олгодог судалгааны салбар юм.
— Том Митчел (1998). Суралцах гэдгийг тодорхойлох нь: Хэрэв компьютерийн програм нь даалгавар (task) T-г гүйцэтгэх үеийн гүйцэтгэлийн хэмжүүр болох (performance) P нь туршлага (experience) E-ээс хамааран сайжирч байгаа бол тухайн програмыг T даалгаврыг өмнө нь биелүүлсэн Е туршлагаас суралцаж, P гүйцэтгэлтэй болсон байна гэж хэлнэ. Жишээ нь: Имейл програм нь мейлийг спам болон спам биш гэж ялгахдаа таны өмнө нь ялгасан мэдээлэл дээр үндэслэн хэрхэн сайн спам филтер хийх талаар суралцдаг байг. Тэгвэл даалгавар T = мейлийг спам болон спам биш гэж ялгах, туршлага E = таны өмнө нь спам болон спам биш гэж ялгасан мэдээлэл, гүйцэтгэл P = нийт спамын хэдэн хувийг (эсвэл хэдэн ширхэгийг) зөв ялгасныг илэрхийлнэ. ML-ыг ашиглахдаа яг юуг суралцах ёстойг нарийн тодорхойлохдоо дээрх байдлаар тодорхойлж болох юм.
Машин сургалтын алгоритмуудыг ерөнхийд нь дараахь байдлаар ангилж үздэг.
1) Хяналттай (багштай) сургалт — Supervised learning
Энэ нь сургалтын өгөгдлийн хариу (гаралт) нь өгөгдсөн үед сургах арга юм. Хяналттай сургалтын аргын гол санаа нь компьютерт өгөгдсөн даалгавар T-г хэрхэн гүйцэтгэхийг бид заана гэсэн үг. Өөрөөр хэлбэл компьютер нь сургалтын өгөгдөл дэх (бидний оруулсан) хариуг харснаар даалгаврыг хэрхэн гүйцэтгэхийг суралцана. Жишээ нь: Дээр өгүүлсэн мейл ялгах жишээ нь хяналттай сургалтын (хойшид supervised learning гэе) аргын нэг жишээ болно. Supervised learning нь дотроо дараахь 2 төрлийн сургалтын аргыг мөн агуулдаг. Тэдгээр нь:
— Semi-supervised learning (Хагас хяналттай сургалт). Энэ нь сургалтын зарим өгөгдлийн хариу нь өгөгдөөгүй үед сургах арга.
— Reinforcement learning. Програм нь өөрийнх нь үйлдэлд орчноос хэрхэн хариу (шагнал авах) өгч байгаагаас суралцан өөрийгөө сайжруулдаг бол энэ нь reinforcement learning болно. Жишээ нь: AlphaGo нь Го даамын их мастерыг хожих хүртлээ өөрөө өөртэйгээ тоглон тоглолтын арга барилаа сайжруулсаар байсан билээ. Энэ нь reinforcement learning-ийн сонгодог жишээ болох юм.
Supervised learning-ийн асуудлуудыг регрессийн асуудал (regression), ангилах асуудал (classification) гэсэн 2 ангилалд хувааж үздэг. Энэ 2-ийн ялгаа нь гэвэл regression нь хариуг тасралтгүй утгуудаас таамаглах бол classification нь хариуг төгсгөлөх тооны хариунуудаас таамаглана гэсэн үг.
2) Хяналтгүй (багшгүй) сургалт — Unsupervised learningЭнэ нь өгөгдлийн хариу нь үл мэдэгдэх үед тухайн өгөгдлөөс бүтэц гаргаж авах арга юм. Нарийн тайлбарлавал өгөгдөл дэх хувьсагчуудын хоорондын хамааралд тулгуурлан бүлгүүд үүсгэх байдлаар бүтэц гаргаж авна гэсэн үг. Жишээ нь: Хүмүүсийг ижил төстэй кино үзэх байдлаар нь бүлэглэх асуудал нь unsupervised learning-ийн асуудал юм. Unsupervised learning-ийн асуудлуудыг кластер (clustering), кластер бус (non-clustering) асуудлууд гэж ангилж болно. Эдгээр ангиллуудын ялгаа нь clustering нь өгөгдлийг хэд хэдэн бүлэгт хуваах ба зорилго нь өгөгдлийг аль бүлэгт багтахыг таамаглах явдал байдаг бол non-clustering асуудлууд нь өгөгдлөөс ямар нэгэн бүтэцтэй мэдээлэл гарган авахад гол анхаарлаа хандуулдагт оршино. Жишээ:
Clustering — Хүмүүсийг ижил төстэй кино үзэх байдлаар нь бүлэглэх
Non-Clustering — Шуугиантай орчинд хийсэн аудионоос хүний яриаг цэвэрлэн, ялган авах гэх мэт асуудлууд байж болно.
Дээрхээс дүгнэхэд шууд ML алгоритмыг ашиглахаасаа өмнө асуудлаа сайтар тодорхойлсны эцэст ямар аргыг ашиглах нь зөв эсэхийг тодорхойлох нь чухал ажлуудын нэг болно гэдгийг бодолцох хэрэгтэйг ойлгосон. Хэрэв анхнаасаа асуудлынхаа төрлийг буруу тодорхойлвол тэр хэмжээгээрээ цаг алдах эрсдэлтэйг санах хэрэгтэй.
Энэ удаагийн нийтлэлдээ машин сургалтын удиртгал хэсгийг тайлбарлан орууллаа. Дараагийн нийтлэлүүдээрээ хичээлийн хуваарийн дагуу эдгээр аргуудын математик үндсийг тайлбарлаж, мөн эдгээр аргуудыг ашиглан юу хийж болох талаар нэмэлт мэдээллүүд нийтлэх болно.

)

No comments:

Post a Comment