Машиналық оқыту: қағидалары мен алгоритмдері
Siri немесе Google дауыстық көмекшісі сенің сөзіңді қалай таниды? Facebook суреттегі досыңды қалай анықтайды? Бұлардың бәрі бір ортақ негізде жұмыс істейді — компьютер алдын ала жазылған нақты алгоритм бойынша емес, КӨП МЫСАЛДЫ КӨРУ арқылы «үйреніп» жауап табады. Осы механизмнің аты — машиналық оқыту.
Компьютерге тапсырма беру үшін бұрын тек бір жол болды — программист нақты алгоритм жазады, компьютер соны дәл орындайды. Бірақ кейбір тапсырмаларды нақты алгоритммен сипаттау мүмкін емес. Мысалы, «мынау мысық суреті» деп қалай алгоритм жазасың? Мысықтардың пішіні, түсі, позасы әрқилы ғой.
Дәл осы жерде үшінші жол пайда болады: компьютерге көп мысал көрсетіп, ол сол мысалдардан ЗАҢДЫЛЫҚ таба алатындай ету.
Машиналық оқыту — жасанды интеллектінің бір бөлімі; компьютердің алдын ала жазылған алгоритмді пайдаланып, тапсырманы орындауды үйренуі. Мақсаты — кіріс деректері бойынша нәтижені болжайтын дәлме-дәл модель құру.
⚠️ Көптеген оқушылар «машиналық оқыту» мен «жасанды интеллекттің» өзін бір деп шатастырады. Шын мәнінде машиналық оқыту — ЖИ-дің тек бір бөлігі, әдістерінің класы. ЖИ — үлкен ұғым, машиналық оқыту соның ішіндегі бір тәсіл.
Модель құру үш құрауышқа сүйенеді:
| Құрауыш | Мағынасы |
|---|---|
| Деректер (Data) | Модельдің негізі — сапалы және жеткілікті көлемде болуы керек |
| Ерекше белгілер (Features) | Объектінің сипаттамасы: сандық (баға, өлшем) немесе категориялық (маркасы, түрі) |
| Алгоритм (Algorithms) | Есептің шешімін шекті уақытта табатынын кепілдендіретін процедура |
Принцип қарапайым: деректер жиналады → ерекше белгілер сұрыпталады → алгоритм таңдалып модель құрылады → нәтиже болжанады.
Компьютерді қалай «үйретеміз»? Мұғалім бар ма, жоқ па — осыған қарай төрт негізгі тәсіл бар.
Мұғаліммен оқыту (supervised learning) — машина алдын ала мұғалім көрсеткен нақты мысалдарға (белгіленген деректерге) сүйеніп үйренеді. Екі есепті шешеді: жіктеу (категорияны болжау, мыс. хаттың спам екенін анықтау) және регрессия (санды болжау, мыс. автомобиль құнын болжау).
Мұғалімсіз оқыту (unsupervised learning) — машина белгісіз заңдылықтарды өз бетінше табу арқылы үйренеді. Негізгі есептері: кластерлеу (ұқсас нысандарды топтау), жалпылау (ерекше белгі санын азайту), ассоциация (байланысты элементтерді табу).
Мұғалімнің жартылай қатысуымен оқыту (semi-supervised) — белгіленген деректің АЗ мөлшерін пайдаланып модельді үйретеді, содан кейін сол модель белгіленбеген үлкен деректі болжайды. Мысалы, әлеуметтік желідегі суреттерде адамдарды толық белгілемей-ақ тану.
Негіздеп оқыту (reinforcement learning) — сұрақ «бұл қандай санат?» емес, «қалаған нәтижеге жету үшін не істеу керек?». Жүйе (агент) ортамен әрекеттесіп, дұрыс қадам жасаса марапатталады — ойындағыдай ынталандыру жүйесі.
Неге бір емес, төрт түрі бар? Себебі әр есептің деректері әртүрлі: кейде дайын жауабы бар мысалдар жеткілікті (мұғаліммен), кейде тек шикі дерек бар (мұғалімсіз), кейде екеуінің де азы бар (жартылай), ал кейде дерек мүлдем жоқ, тек ортамен әрекеттесу арқылы үйрену керек (негіздеп).
Теорияны білдік, енді нақты алгоритмге көшейік. Ең қарапайым әрі кең тарағаны — Қарапайым Байес алгоритмі.
Мына формула апостериорлық ықтималдықты — яғни «х белгісі берілгенде с класының шығу ықтималдығын» — есептейді:
P(c|x) = P(x|c) · P(c) / P(x)
Мұндағы P(c) — кластың алдын ала (априорлық) ықтималдығы, P(x|c) — берілген класс кезіндегі белгінің ықтималдығы, P(x) — белгінің жалпы ықтималдығы.
Берілді: 14 бақылаудан тұратын оқу іріктелімі. Бұлтты — 4 иә/2 жоқ; Күн ашық — 3 иә/2 жоқ; Жауын-шашынды — 2 иә/3 жоқ. Барлығы 9 иә/5 жоқ.
Табу керек: күн ашық болғанда матчтың өту ықтималдығы қандай?
P(Иә|Күн ашық) = P(Күн ашық|Иә) · P(Иә) / P(Күн ашық) P(Күн ашық|Иә) = 3/9 = 0,33 P(Иә) = 9/14 = 0,64 P(Күн ашық) = 5/14 = 0,36 P(Иә|Күн ашық) = 0,33 · 0,64 / 0,36 = 0,60
Жауабы: ықтималдық 0,60 (60%) — күн ашық болса, матчтың өтуі жоғары ықтималды.
Тағы бір танымал алгоритм — «К-жақын көршілер» әдісі (KNN). Оның идеясы қарапайым: жаңа нысанға ЕҢ ЖАҚЫН k нысанды табамыз да, солардың көпшілігі қай класқа жатса, жаңа нысан да сол класқа жатады дейміз. Қашықтықты Евклид формуласымен есептейміз:
D = √((x₁ − x₂)² + (y₁ − y₂)²)
Мысалы, Bluetooth гарнитурасына сұраныс келгенде 5 ұқсас тауардың 4-еуі «Аксессуарлар» класына жатса, жаңа сұраныс та «Аксессуарлар» класына жатқызылады. Бұл әдістің бір қызық қасиеті бар — «жалқаулығы»: алдын ала ешқандай модель құрылмайды, есептеу тек жаңа нысанды жіктеу керек болғанда ғана басталады.
- Машиналық оқыту — ЖИ-дің бір бөлігі, деректен заңдылық табу арқылы модель құру.
- Төрт түрі: мұғаліммен, мұғалімсіз, жартылай қатысумен, негіздеп оқыту.
- Мұғаліммен оқыту екі есепті шешеді: жіктеу (категория) және регрессия (сан).
- Қарапайым Байес алгоритмі мен K-жақын көршілер (KNN) — ең кең тараған екі алгоритм.