МАШИН СУРГАЛТ (MACHINE LEARNING)

2019-11-11  

Нэр томьёог Монгол хэл рүү буулгахаар утгын хувьд цаашдаа үл ойлгогдох нөхцөл үүсгэх боломжтой тул тодорхойлолтоос бусад газарт аль болох Англиар нь шууд ашиглан бичив. Гэвч зарим тохиолдолд тодорхойлолт хэсэгт ашигласан Монгол нэрийг ашигласан байх магадлалтайг анхаарна уу

Машин сургалт гэдэг нь компьютерыг өөрөө туршлагаасаа сурах боломжийг олгож буй аргачлал юм. Өөрөөр хэлбэл, компьютер өөрт өгөгдсөн асуудлыг шийдэхдээ өөрийн туршлага дээр үндэслэн өөрөө тухайн асуудлыг шийдэж сурах юм (хүн/программист тухайн асуудлыг шийдэх зааврыг хатуугаар зааж өгөхгүй гэсэн үг). Энгийн хүмүүст ойлгомжтойгоор хэлбэл, machine learning нь аливаа компьютерт юу хийхийг нь детальчилж програмчлалгүйгээр мөн ямар нэгэн хүний туслалцаа оролцоогүйгээр аливаа үйлдлийг автоматжуулах, суралцах процессыг машины өөрийнх нь туршлага дээр үндэслэн сайжруулж байгааг хэлнэ гэсэн үг. Сургах процесс нь ямар ч тохиолдолд Машиныг сургах өгөгдөл (data)-аар эхлэх бөгөөд улмаар энэхүү өгөгдлөө машин (компьютерт)-н оролтод өгсөөр машин маань model үүсгэж эхэлдэг. Ийнхүү model үүсгэхдээ өөр өөр төрлийн өгөгдөл (data) болон алгоритм ашигладаг. Ямар алгоритм ашиглах нь бидэнд ямар төрлийн data байгаа мөн бид ямар үр дүнд хүрэхийг зорьж байна гэдгээс хамааран өөр өөр байдаг.
Энгийн жишээ авч үзье:

Шалгалтад бэлдэж буй оюутан бүх материалаа харанхуйгаар цээжлэх гэж оролддоггүй ба тэд тухайн агуулгыг бүрэн дүүрэн ойлгохыг хичээдэг. Шалгалт болохоос өмнө тэд өөрсдийн тархи (машин)-нд их хэмжээний сайн чанар бүхий өгөгдөл (Асуулт, хариулт, лекцийн тэмдэглэл, видео хичээл гэх мэт) (data)-г оруулж өгдөг. Энд болж буй процесс нь оюутан өөрийн тархийг оролт болон гаралтын мэдээллээр зэрэг цэнэглэж байгаа юм. Өөрөөр хэлбэл ийм ямар төрлийн логик холбоо хамаарал оролт болон гаралтын хооронд байна гэдгийг илрүүлэхийн тулд хийж байгаа үйлдэл юм. Жишээ тест хийж үзэх бүрдээ тэд өөрсдийн гүйцэтгэлийг (accuracy/score)- өгөгдсөн үнэн хариутай нь тулгаж үзнэ. Улмаар тэдний алдаа багасах бөгөөд өөртөө итгэх итгэл нь нэмэгдэж ямар логик байгааг ойлгож эхэлдэг. Үүнтэй яг ижилхэн процесс model сургахад хийгддэг бөгөөд model-г шалгах үед зөвхөн оролтын (input) data-г оруулах байдлаар шалгадаг.

Уламжлалт програм болон Macine Learning програмын ялгаа
- Уламжлалт програм: Бид машинд оролт өгөгдлийг (INPUT) оруулах ба машин дээр ажиллаж буй програм (логик) ажиллаж бид гаралтыг хүлээн авна.
- Machine Learning: Машиныг (data - Оролт, гаралт) гэсэн мэдээллээр хангана. Улмаар машин дээр machine learning алгоритм ажиллаж машин өөрийн логикийг үүсгэнэ. Үүний дараа энэхүү үүссэн логик нь өгөгдсөн даалгаврыг автоматаар гүйцэтгэх чадвартай байна.

Компьютерын хувьд machine learning гэж юу гэсэн вэ?

Хэрвээ компьютер нь ямар нэгэн даалгавар биелүүлэх үедээ тухайн үйлдлийг гүйцэтгэх гүйцэтгэлээ өөрийн өмнөх туршлагаас хамааран сайжруулж байвал тухайн компьютер суралцаж байна гэж үзнэ.

Илүү тодорхой бичвэл, Компьютер Т (task) үйлдлийг гүйцэтгэх гүйцэтгэл Р (performance) нь түүний өмнөх туршлага болох Е (Experience)-ээс үүдэн сайжирч байвал энэхүү компьютер суралцаж байна гэсэн үг.

Жишээ нь: Шатар тоглох machine learning
Е (Туршлага)— Маш олон удаа шатар тоглоод гарах үр дүн
Т (Даалгавар)— Шатар тоглоод хожих
Р (Гүйцэтгэл) — Дараагийн тоглолтод machine learning алгоритм хожих магадлал

Машин сургалтыг суралцаж буй систем маань өөрийн гаралтыг хэрхэн ашиглаж буй байдлаас нь хамааруулан дараах байдлаар ангилж болно.

Хяналттай сургалт (Supervised Learning)
Энэхүү сургалтын үед бид компьютерт жишээ оролтыг оруулах бөгөөд мөн түүнчлэн түүнд хамаарах үнэн зөв үр дүнг машинд оруулж өгдөг. Ингэснээр машин ерөнхий байдлаар оролтод орж буй өгөгдлийг гаралтыг өгөгдөлтэй холбож сурдаг. Тухайн модель (хяналттай сургалтаар сурч байгаа) зорилтот үйлдлийг тодорхой түвшинд алдаа багатайгаар гүйцэтгэдэг болтол нь сургах процессыг үргэлжлүүлдэг. Өдөр тутам хэрэглэгдэж буй жишээнүүдээс дурдвал.

- Зураг ангилах модель (Image Classification): Өөрийн моделийг сургахдаа зураг/тэмдэглэгээ гэсэх хос мэдээллийг оруулж өгнө. Жишээлбэл, маш түгээмэл хэрэглэгддэг жишээ бол (Нохойн зураг, “Нохой”), (Муурын зураг, “Муур”) гэсэн мэдээллийг модельд өгч сургалт хийсний дараа, та системд нохойн зураг үзүүлэхэд систем түүнд нохой гэсэн ангиллыг өгч сурна гэсэн үг.

- Зах зээлийн таамаглал/Регресс (Prediction/Regression): Зах зээлийн түүхэн өгөгдлөөр машиныг сургасны дараа машинаас ирээдүйд үнэ ямар байхыг асуухад машин таамаг дэвшүүлэх чадвартай болж суралцсан байна.

Хяналтгүй сургалт (Unsupervised Learning)
Оролтын өгөгдөл нь ямар нэгэн гаралтын утгатай харгалзан холбогдоогүй байх ба оролтыг өгөгдлийг шууд модель руу өгөхөд модель маань тухайн өгөгдөл дотроос ямар нэгэн логик хамаарал бүхий бүтцийг олж илрүүлэх ёстой болдог. Энэ төрлийн алгоритмыг ихэвчлэн бүлэглэн ангилах (clustering) зорилгоор ашигладаг. Гэхдээ хяналтгүй сургалт нь өгөгдсөн мэдээлэл дотроос хүн харах боломжгүй байгаа шинж чанарыг илрүүлэх зорилготой ч ашиглагдаж болно.

- Бүлэглэн ангилах (Clustering): Компьютер ижил төстэй өгөгдлүүдийг тус тусад нь бүлэглэн ангилна.

- Олон Хэмжээст өгөгдлийг Дүрслэх (High Dimension Visualization): Олон хэмжээст өгөгдлийн графикийг зурах боломжгүй байдаг. Тиймээс unsupervised learning ашиглан олон хэмжээст өгөгдлийг хэмжээс бүрийг нь бүлэглэх байдлаар дүрслэн харуулах боломжтой юм.

- Үүсгэгч Моделиуд (Generative Models): Оролтын өгөгдлийн тархалтын функцийг суралцсаны дараа, ижил төстэй өгөгдлийг энэхүү модель үүсгэж чаддаг.

Харин Unsupervised Learning аргад өгч буй өгөгдөл нь ямар нэгэн эцсийн үр дүн (label) байхгүй.

Хэсэгчилсэн Хяналттай сургалт (Semi-Supervised Learning)
Машин сургалтын алгоритмын оролтын мэдээллийн зарим хэсэг нь ямар гаралт гаргах нь мэдэгдэж байх боловч үлдсэн хэсгийн оролт нь хяналтгүй сургалтын оролтын өгөгдөл шиг ямар гаралт гаргах нь тодорхойгүй үеийн сургалт юм. Өөрөөр хэлбэл, энэ төрлийн машин сургалтын алгоритмын оролт нь supervised болон unsupervised сургалтад ашиглагддаг оролтууд байна гэсэн үг бөгөөд сургалт нь supervised болон unsupervised -д аль алинд нь хамаарах тул хэсэгчилсэн хяналттай гэж нэрлэгдэж байгаа юм. Жишээлбэл, бидэнд маш их зурган мэдээлэл байгаа гэж төсөөлье. Эдгээр зургууд дотор хүний, машины, нохойн гэх зургууд байгаа бөгөөд зарим зураг нь гар аргаар энэ зураг бол хүний зураг, энэ зураг бол машины зураг гэх мэт label-г өөртөө агуулсан байгаа гэж үзье. Харин үлдсэн хэсэг нь зөвхөн зураг бөгөөд ямар нэгэн байдлаар ангилж ялгаагүй гэж үзвэл энэ өгөгдөл дээр ажиллаж буй машин сургалт нь Semi-supervised learning болно гэсэн үг

Урамшуулалд суурилсан машин сургалт (Reinforcement learning)
Машин сургалтын алгоритм маань хүрээлэн буй орчноос динамик мэдээллийг хүлээн авч улмаар ямар нэгэн үр дүнд хүрэхийг зорин ажиллана. Жишээлбэл: Тоглоомын агент нь хүний эсрэг тоглох эсвэл автомат жолоодлого бүхий автомашин гэх мэт. Хүрээлэн буй орчноос ирэх динамик мэдээллийг ашиглан тухайн машин сургалтын алгоритм нь зорилгодоо хүрэхийн тулд системийн урамшуулах шаардлагатай юу (зөв чиглэл рүү явж байна) эсвэл шийтгэх (буруу чиглэл рүү явж байна) шаардлагатай юу гэдгээ шийддэг.

Ангилах (Classification)
Оролтын мэдээллийг 2 болон түүнээс дээш бүлэгт ангилах үйлдлийг суралцдаг. Суралцаж буй алгоритм маань өмнө нь харж байгаагүй мэдээллийг өөрийн туршлага дээр үндэслэн ямар нэгэн ангилалд хамруулж сурна гэсэн үг. Энэ төрлийн алгоритм нь ихэвчлэн supervised learning төрөлд хамаардаг. Имэйлээс спам ялгах алгоритм нь энэ төрлийн алгоритм юм.

Регресс (Regression)
Регресс нь мөн л supervised learning төрөл юм. Гэхдээ регресс загвараас гарч байгаа гаралт нь тасралтгүй байна. (өмнөх Ангилах моделийн гаралт нь бүхэл тоо буюу дискрет тоо байна). Жишээлбэл, түүхэн мэдээлэл ашиглан байшингийн үнэ таамаглах алгоритм энэ бүлэгт хамаарна.

Бүлэглэх (Clustering)
Өмнө нь ямар ангилалд оруулах нь мэдэгдэхгүй байсан оролтын мэдээллийг олон бүлэгт ангилахад суралцдаг. Machine Learning өөрөө хэрхэн ангилахаа суралцаж байгаа учраас unsupervised learning төрөлд хамаарна.

Нягтын тооцоолол (Density estimation)
Model руу орж буй data-гийн тархалтын функцийг олох зорилготой ажиллана.
Жишээлбэл:
Зоос шидэх үед зоос тоо эсвэл сүлдээрээ буух магадлалын тархалтыг хэмжиж үзье.

Сүлд буух магадлал — Theta гэж үзье.
Бидэнд 25 удаагийн зоос шидсэн туршилт байгаа ба үүнээс 15 удаа нь сүлд 10 удаа нь тоо буусан байна гэж үзье. Тэгвэл энэхүү зоосыг ашиглан сүлд буух магадлал хэд вэ?
Theta = 15/25 = 0.6 (энд ашиглагдаж буй Theta нь Maximum Likelihood Estimation -ийн Theta параметер юм.)
Density Estimation нь регресс, ангилал (classification), бүлэглэл (clustering) мөн unsupervised prediction зэрэг machine learning task-уудад ашиглагддаг.

Хэмжээс цөөлөх (Dimensionality Reduction)
Оролтын мэдээллийг хялбаршуулахын тулд хэмжээсийг цөөлдөг. Энэ төрлийн алгоритм ижил төстэй текстийг олох гэх мэт зорилгоор ашиглагддаг.
Machine Learning-ийн хүрээнд бидний хэрэглэх олон алгоритм байдаг бөгөөд эдгээрээс хамгийн түгээмэл хэрэглэгддэг алгоритмууд нь Шугаман Регресс (Linear Regression), Ложистик Регресс (Logistic Regression), Шийдвэрийн мод (Decision Tree), SVM (Support Vector Machine), Naive Bayes, KNN (K Nearest Neighbors), K-Means зэрэг юм.

Машин сургалтын алгоритмд хэрэглэгддэг нэр томьёонууд
- Model
Machine Learning алгоритмд оролтын өгөгдлийг өгч сургаснаар гарган авч буй тодорхой бүтэц бүхий програмын тохиргоог Model гэж нэрлэдэг. Түүнчлэн зарим тохиолдолд hypothesis гэж нэрлэгдэх тохиолдол байдаг.

- Feature
Оролтын мэдээллийн багана бүрийг эсвэл оролтод ашиглагдаж буй бие даасан шинж чанартай мэдээллийг хэлнэ. Feature нь хэмжигдэх боломжтой байх ёстой. Тоон хэлбэрт бичигдсэн олон feature-уудыг нэгтгээд feature vector хэмээн нэрлэдэг (Яагаад гэвэл энэ нь вектор үүсгэнэ). Жишээлбэл, бид жимсийг тодорхойлох гэж байна гэж үзье, тэгвэл бидэнд өнгө, үнэр, амт гэх мэт feature (оролтын мэдээлэл)-үүд байна гэсэн үг. Feature set -ээс чухал мэдээлэл агуулсан, ялгагдах боломжтой, бие даасан feature-уудыг сонгон авах шаардлагатай байдаг. raw data-аас feature-г сонгон авахдаа ихэвчлэн feature extractor ашигладаг (Хэрвээ яг аль feature-г сонгохоо мэдэхгүй эсвэл хэдэн маш олон feature байгаа тохиолдолд).

- Target (Label)
Target variable эсвэл label нь бидний model-н гаралт дээр таамаглагдан эсвэл ангилал болон гарч ирэх тэрхүү мэдээллийг хэлнэ. Өмнөх жимстэй жишээг дахин дурдвал түүний model нь жимсний нэрс байх боломжтой юм.

- Training
Оролтын мэдээллийг (features) (хэрвээ supervised learning бол label мөн өгөгддөг) маш ихээр нь machine learning алгоритмд өгөх ба улмаар model (hypothesis)-г үүсгэн авна. Ингэснээр шинэ оролтыг model-д өгөх үед тэрхүү шинэ оролтод тохирох үйлдлийг model маань хийж суралцсан байна

- Prediction
Бидний model бэлэн болсноор бид шинэ оролтын мэдээллийг (model өмнө нь харж байгаагүй) model-д өгөх боломжтой болно. Улмаар model маань бидэнд таамаг буюу (prediction) гаргаж өгөх юм.

 

Эх сурвалж: "Сэтгэлийн хүүрнэл" клуб

Мэдээ уншаад таалагдсан бол Like дарна уу. Танд баярлалаа
Сайт таалагдаж байвал Like дарна уу. Танд баярлалаа
Сэтгэгдэл
АНХААРУУЛГА : Уншигчдын бичсэн сэтгэгдэлд CONTROL.MN хариуцлага хүлээхгүй болно. ХХЗХ-ны журмын дагуу зүй зохисгүй зарим үг, хэллэгийг хязгаарласан тул ТА сэтгэгдэл бичихдээ хууль зүйн болон ёс суртахууны хэм хэмжээг хүндэтгэнэ үү. Хэм хэмжээг зөрчсөн сэтгэгдлийг админ устгах эрхтэй. Сэтгэгдэлтэй холбоотой санал гомдлыг 77008912 утсаар хүлээн авна
Төстэй мэдээ
Шинэ мэдээ
Санал асуулга
ИРЭХ СОНГУУЛЬД ТА АЛЬ НАМД САНАЛАА ӨГӨХ ВЭ?