Վերահսկվող ուսուցում

**Վերահսկվող ուսումը** մեքենայական ուսուցման խնդիրներից է։ Այն սովորում է ֆունկցիա, որը մուտք-ելքային տվյալների զույգերի օրինակի հիման վրա այլ մուտքային տվյալներից ստանում է նման արդյունքներ։ Դա նշանակում է, որ մուտքագրվող տվյալները և արդյունքը նախապես հայտնի են, և ակնկալվում է ստանալ նմանատիպ արդյունք նոր մուտքագրվող տվյալների համար։ Վերահսկվող ուսուցման մեջ յուրաքանչյուր օրինակը մի *զույգ է,* որը բաղկացած է մուտքային օբյեկտից (սովորաբար վեկտորից) և ցանկալի ելքային արժեքներից։ Վերահսկվող ուսուցման ալգորիթմը վերլուծում է վերապատրաստման տվյալները և ստեղծում է ֆունկցիա, որը կարող է օգտագործվել նոր օրինակների քարտեզագրման համար։ Օպտիմալ դեպքը հնարավորություն կտա ալգորիթմին ճիշտ որոշել դասի լեյբլները նոր դեպքերի համար։ Սա ուսուցման ալգորիթմից պահանջում է ընդհանրացնել վերապատրաստման տվյալները նոր դեպքերի համար «ողջամիտ» ձևով (տե՛ս ինդուկտիվ կողմնակալությունը )։

## Քայլերի հաջորդականությունը
Վերահսկվող ուսուցման տվյալ խնդիրը լուծելու համար հարկավոր է կատարել հետևյալ քայլերը.

# Որոշել վերապատրաստման օրինակների տեսակը։ Ցանկացած այլ բան անելուց առաջ պետք է որոշել, թե ինչպիսի տվյալներ են օգտագործվում վերապատրաստման համար։ Օրինակ ՝ ձեռագրերի վերլուծության դեպքում սա կարող է լինել մեկ ձեռագիր տառ, մի ամբողջ ձեռագիր բառ կամ ձեռագիր նախադասություն։ 
# Հավաքել վերապատրաստման օրինակներ։ Դրանք պետք է լինեն ներկայացուցչական իրական ֆունկցիայի համար։ Այսպիսով, հավաքվում են մուտքային օբյեկտներ և դրանց համապատասխան ելքեր կամ մարդկային փորձագետներից, կամ չափումներից։ 
# Որոշել սովորած ֆունկցիայի մուտքային տվյալների ներկայացման ձևը։ Սովորված ֆունկցիայի ճշգրտությունը խստորեն կախված է նրանից, թե ինչպես է ներկայացվում մուտքային օբյեկտը։ Սովորաբար, մուտքային օբյեկտը վերածվում է առանձնահատկությունների վեկտորի, որն իր մեջ պարունակում է օբյեկտը նկարագրող մի շարք առանձնահատկություններ։ Առանձնահատկությունների քանակը չպետք է չափազանց մեծ լինի ծավալի տեսանկյունից, բայց պետք է պարունակի բավարար տեղեկատվություն` արդյունքը ճշգրիտ կանխատեսելու համար։ 
# Որոշել սովորած ֆունկցիայի կառուցվածքը և համապատասխան սովորող ալգորիթմը(learning algorithm)։ Օրինակ՝ ինժեները կարող է ընտրել օժանդակ վեկտորի մեքենաներ(support vector machines) կամ որոշման ծառեր (decision tree)։ 
# Ամբողջացնել դիզայնը։ Աշխատացնել սովորող ալգորիթմը հավաքված վերապատրաստման տվյալների վրա։ Վերահսկվող ուսուցման որոշ ալգորիթմներ պահանջում են որոշել վերահսկման որոշակի պարամետրեր։ Այս պարամետրերը կարող են ճշգրտվել` օպտիմալացնելով կատարողականը վերապատրաստման տվյալների մի մասի վրա որը կոչվում է *վավերացման* տվյալներ (validation set) կամ խաչաձև վավերացման (cross-validation) միջոցով։ 
# Գնահատեl սովորած ֆունկցիայի ճշգրտությունը։ Պարամետրերի ճշգրտումից և սովորելուց հետո ստացված ֆունկցիայի կատարողականը պետք է չափվի թեստի վրա, որը առանձին է վերապատրաստման տվյալներից։

## Ալգորիթմի ընտրություն
Գոյություն ունեն բազմաթիվ վերահսկվող ուսուցման ալգորիթմներ՝ յուրաքանչյուրն իր ուժեղ և թույլ կողմերով։ Չկա մեկ միասնական սովորող ալգորիթմ, որն ամենալավն է աշխատում վերահսկվող ուսուցման բոլոր խնդիրների համար։

### Ալգորիթմներ
Առավել լայն կիրառում ունեցող ալգորիթմներն են.

* Օժանդակ վեկտորային մեքենաներ (Support Vector Machines) 
* գծային ռեգրեսիա 
* լոգիստիկ ռեգրեսիա 
* նայիվ Բայես 
* գծային խտրական վերլուծություն (linear discriminant analysis) 
* որոշման ծառեր (decision trees) 
* k-ամենամոտ հարևան ալգորիթմ 
* Նեյրոնային ցանցեր (բազմաշերտ պերսեպտրոն) 
* Նմանության սովորում (Similarity learning)

## Ինչպես են գործում վերահսկվող ուսուցման ալգորիթմները
Տրված N վերապատրաստման օրինակների համար, որոնք ունեն հետևյալ տեսքը՝ \{(x_1, y_1), ..., (x_N,\; y_N)\} այնպես, որ x_i-ն i- րդ օրինակի առանձնահատկության վեկտորն է, իսկ y_i դրա պիտակն է (label, այսինքն՝ դաս), սովորող ալգորիթմը փնտրում է ֆունկցիա՝ g: X \to Y, որտեղ X մուտքային տարածք է, Y-ը՝ ելքային։ g ֆունկցիան հնարավոր G ֆունկցիաների տարր է, որը սովորաբար անվանում են *վարկածների/հիպոթեզների տարածք*։ Երբեմն g հարմար է ներկայացնել f: X \times Y \to \mathbb{R} ֆունկցիայի տեսքով այնպես, որ g սահմանվի որպես y -ի արժեք, որը տալիս է ամենաբարձր գնահատականը. g(x) = \underset{y}{\arg\max} \; f(x,y)։ Գնահատականների ֆունկցիաների տարածքը նշանակենք F։

Չնայած որ G և F կարող են լինել ցանկացած տարածքի ֆունկցիաներ, շատ սովորող ալգորիթմներ հավանականային մոդելներ են, որտեղ g ստանում է պայմանական հավանականության մոդելի ձևը՝ g(x) =
P(y|x), կամ f ստանում է համատեղ հավանականության մոդելի ձևը՝ f(x,y) = P(x,y) . Օրինակ, նայիվ Բայեսը և գծային խտրական վերլուծությունը համատեղ հավանականության մոդելներ են, մինչդեռ լոգիստիկ ռեգրեսիան պայմանական հավանականության մոդել է։

f կամ g-ն ընտրելու 2 հիմնական մոտեցումներ կան՝ էմպիրիկ ռիսկերի նվազեցում և կառուցվածքային ռիսկերի նվազեցում։ Էմպիրիկ ռիսկերի նվազեցումը որոնում է այն ֆունկցիա, որը լավագույնս ադապտացվում է(fit) վերապատրաստման տվյալների վրա։ Կառուցվածքային ռիսկերի նվազեցումը ներառում է > գործառույթ,* որը վերահսկում է կողմնակալության / վարիացիայի փոխանակումը։

Երկու դեպքում էլ ենթադրվում է, որ վերապատրաստման տվյալները բաղկացած են անկախ և նույնական բաշխված զույգերի նմուշից՝ <math>(x_i, \;y_i)</math>։ Չափելու համար, թե որքանով է ֆունկցիան ադապտացվում դասընթացների տվյալների վրա, կորստի ֆունկցիան (loss funcion) սահմանվում է սայմանվում է հետևյալ կերպ` <math>L: Y \times Y \to
\mathbb{R}^{\ge 0}</math>։ Վերապատրասման տվյալների օրինակով՝ <math>(x_i,\;y_i)</math>, <math>\hat{y}</math>կանխատեսվող արժեքի կորուստը կլինի <math>L(y_i,\hat{y})</math> .

<math>g</math> ֆունկցիայի *ռիսկը՝'' R(g), սահմանվում է որպես g-իակնկալվող կորուստ։ Դա կարելի է գնահատել վերապատրաստման տվյալների հիման վրա.

: R_{emp}(g) = \frac{1}{N} \sum_i L(y_i, g(x_i)) .

### Էմպիրիկ ռիսկի նվազեցում
Էմպիրիկ ռիսկի նվազեցման դեպքում վերահսկվող ուսուցման ալգորիթմը որոնում է այնպիսի g ֆունկցիա, որը նվազագույնի է հասցնում R(g)։ Հետևաբար, վերահսկվող ուսուցման ալգորիթմը կարելի է կառուցել օպտիմիզացման ալգորիթմի կիրառմամբ g -ն գտնելու համար։

Երբ g պայմանական հավանականության բաշխումն է՝ P(y|x), իսկ կորստի ֆունկցիան բացասական լոգարիթմական ճշմարտանմանությունն է՝ L(y, \hat{y}) = -\log P(y | x), ապա էմպիրիկ ռիսկի նվազեցումը համարժեք է առավելագույն ճշմարտանմանության գնահատմանը։

Երբ G պարունակում է բազմաթիվ ֆունկցիաներ կամ վերապատրաստման տվյալները բավականաչափ շատ չեն, էմպիրիկ ռիսկերի նվազեցումը հանգեցնում է բարձր վարիացիայի և վատ ընդհանրացման։ Ուսուցման ալգորիթմը կարողանում է անգիր կատարել վերապատրաստման օրինակները՝ առանց լավ ընդհանրացնելու։ Սա կոչվում է գերակատարում (overfitting)։

### Կառուցվածքային ռիսկերի նվազեցում
Կառուցվածքային ռիսկերի նվազեցումը ձգտում է կանխել գերակատարումը` կարգավորող տույժը օպտիմիզացիայի մեջ ներառելով։

Օգտագործվել են տույժերի լայն բազմազանություն, որոնք համապատասխանում են տարբեր բարդությունների։ Օրինակ, ենթադրենք՝ g գծային ֆունկցիան ունի հետևյալ տեսքը.

:  g(x) = \sum_{j=1}^d \beta_j x_j .

Ռեգուլարիզացիայի հայտնի տուգանք է \sum_j \beta_j^2, որը կշիռների քառակուսային էվկլիդյան նորմ է, որը հայտնի է նաև որպես L_2 նորմ։ Այլ նորմերից են L_1 նորմ, \sum_j |\beta_j|, և L_0 նորմա, որը ոչ զրոյական \beta_j-երի քանակն է։ Տուգանքը նշանակենք C(g)։

Վերահսկվող ուսուցման օպտիմիզացման խնդիրը այնպիսի g ֆունկցիա գտնելն է, որը նվազագույնի է հասցնում՝

:  J(g) = R_{emp}(g) + \lambda C(g).

\lambda պարամետրը վերահսկում է կողմնակալության տարբերությունը։ Երբ \lambda = 0, սա տալիս է էմպիրիկ ռիսկի մինիմալացում ցածր կողմնակալությամբ և բարձր վարիացիայով։ Երբ \lambda մեծ է, սովորող ալգորիթմը կունենա բարձր կողմնակալություն և ցածր վարիացիա։ \lambda-ի արժեքը  կարելի է ընտրել էմպիրիկորեն՝ խաչաձև վալիդացիայի միջոցով։

Բարդության տուգանքը ունի բայեսյան մեկնաբանություն՝ որպես g-\log P(g) բացասական լոգարիթմական հավանականություն, որի դեպքում J(g) -ը g-ի պոստերիոր հավանականությունն է։

## Ընդհանրացումներ
Կան մի քանի եղանակներ, որոնց միջոցով կարելի է ընդհանրացնել ստանդարտ վերահսկվող ուսուցման խնդիրը։

* Կիսահսկվող ուսուցում. Ցանկալի ելքային արժեքները տրամադրվում են միայն որպես վերապատրաստման տվյալների ենթաբազմություն։ Մնացած տվյալները չունեն լեյբլներ։ 
* Թույլ վերահսկողություն. Աղմկոտ, սահմանափակ կամ ոչ ճշգրիտ աղբյուրներն օգտագործվում են վերահսկողության ազդանշան ապահովելու համար՝ վերապատրաստման տվյալների պիտակավորման համար։ 
* Ակտիվ ուսուցում. Փոխանակ ենթադրելու, որ վերապատրաստման բոլոր օրինակները իսկզբանե տրված են, ակտիվ ուսուցման ալգորիթմները ինտերակտիվորեն հավաքում են նոր օրինակներ, սովորաբար՝ օգտագործողի կողմից հարցումներ կատարելով։ Հաճախ հարցումները հիմնված են չհրապարակված տվյալների վրա, ինչը համատեղում է կիսահսկվող ուսուցումը ակտիվ ուսուցման հետ։ 
* Կառուցվածքային կանխատեսում. Երբ ցանկալի ելքային արժեքը բարդ օբյեկտ է, օրինակ՝ փարսյան ծառ կամ պիտակավորված գրաֆիկ, ապա ստանդարտ մեթոդները պետք է ընդլայնվեն։ 
* Դասակարգել սովորելը. Երբ մուտքային տվյալները օբյեկտների շարք են, և ցանկալի ելքը այդ օբյեկտների դասակարգումն է, ապա նորից պետք է ստանդարտ մեթոդները ընդլայնվեն։

## Մոտեցումներ և ալգորիթմներ
* Վերլուծական ուսուցում 
* Արհեստական նեյրոնային ցանց 
* Հետադարձման ալգորիթմ (Backpropagation) 
* Խթանում (մետա-ալգորիթմ, boosting) 
* Բայեսյան վիճակագրություն 
* Դեպքերի վրա հիմնված հիմնավորում (Case-based reasoning) 
* Որոշման ծառի ուսուցում 
* Ինդուկտիվ տրամաբանության ծրագրավորում 
* Գաուսական գործընթացների հետընթաց 
* Գենետիկական ծրագրավորում 
* Տվյալների մշակման խմբային եղանակ (Group method of data handling) 
* Կեռնելի գնահատականները 
* Ավտոմատ ուսուցում (Learning Automata) 
* Ուսուցման դասակարգիչ համակարգեր 
* Հաղորդագրության նվազագույն երկարությունը ( որոշման ծառեր, որոշումների գծապատկերներ և այլն) 
* Նայիվ Բայես դասակարգիչ 
* Մոտակա հարևան ալգորիթմը 
* Օժանդակ վեկտորային մեքենաներ 
* Պատահական անտառներ 
* Օրդինալ դասակարգում 
* Տվյալների նախամշակում 
* Վիճակագրական կապի ուսուցում 
* Proaftn՝ բազմակողմանի դասակարգման ալգորիթմ 
* Այլ

## Օգտագործման ոլորտները
* Բիոինֆորմատիկա 
* Քիմինֆորմատիկա 
** Քանակական կառուցվածքի և գործունեության փոխհարաբերություններ 
* Տվյալների շուկայավարում 
* Ձեռագրի ճանաչում 
* Տեղեկատվության ստացում 
** Դասակարգման ուսուցում 
* Տեղեկատվության դուրսբերում 
* Օբյեկտի ճանաչում համակարգչային տեսողության մեջ 
* Օպտիկական բնույթի ճանաչում 
* Սպամի հայտնաբերում 
* Նախշի ճանաչում 
* Խոսքի ճանաչում 
* Այլ

## Ծանոթություններ

## Արտաքին հղումներ
* Machine Learning Բաց կոդով ծրագրաշար (MLOSS)

Կատեգորիա:Մեքենայական ուսուցում