Ինքնակոդավորիչ

**Ինքնակոդավորիչ** արհեստական ​​նեյրոնային ցանցի մի տեսակ, որն օգտագործվում է չպիտակավորված տվյալների արդյունավետ կոդավորումը սովորելու համար (չվերահսկվող ուսուցում)։ Ինքնակոդավորիչը սովորում է երկու ֆունկցիա՝ կոդավորման ֆունկցիա, որը փոխակերպում է մուտքային տվյալները, և ապակոդավորման ֆունկցիա, որը վերստեղծում է մուտքային տվյալները կոդավորված ներկայացումից։ Ինքնակոդավորիչը սովորում է արդյունավետ ներկայացում (կոդավորում) տվյալների շարքի համար, որպես կանոն, չափականության կրճատման համար, որպեսզի ստեղծի ավելի ցածր չափականության ներկառուցումներ՝ մեքենայական ուսուցման այլ ալգորիթմների կողմից հետագա օգտագործման համար։

Կան տարբերակներ, որոնք ուղղված են ստիպելու սովորած ներկայացումներն ընդունել որպես օգտակար հատկություններ։ Դրանց օրինակներ են կանոնավորացված ինքնակոդավորիչները (Sparse, Denoising and Contractive), որոնք արդյունավետ են հետագա դասակարգման առաջադրանքների համար ներկայացումներ սովորելիս, և Վարիացիոն ինքնակոդավորիչները, որոնք կիրառվում են որպես գեներատիվ մոդելներ։ Ավտոկոդավորիչները կիրառվում են բազմաթիվ խնդիրների, այդ թվում՝ դեմքի ճանաչման, առանձնահատկությունների հայտնաբերման, անոմալիաների հայտնաբերման և բառերի իմաստի ուսումնասիրման համար։ Ավտոկոդավորիչները նաև գեներատիվ մոդելներ են, որոնք կարող են պատահականորեն ստեղծել նոր տվյալներ, որոնք նման են մուտքային տվյալներին (սովորեցնող տվյալներ)։

## Մաթեմատիկական սկզբունքներ
### Սահմանում
Ավտոկոդավորիչը սահմանվում է հետևյալ բաղադրիչներով. Երկու բազմություն․ վերծանված հաղորդագրությունների տարածություն \mathcal X, կոդավորված հաղորդագրությունների տարածություն \mathcal Z։ Typic \mathcal X and \mathcal Z aՈրպես կանոն \mathcal X և \mathcal Z-ը էվկլիդյան տարածություններ են, այսինքն. \mathcal X = \R^m, \mathcal Z = \R^n with m > n.    Ֆունկցիաների երկու պարամետրիզացված ընտանիքներ․ կոդավորիչների ընտանիքը․ E_\phi:\mathcal{X} \rightarrow \mathcal{Z}, պարամետրիզացված ըստ \phi; ապակոդավորիչների ընտանիքը D_\theta:\mathcal{Z} \rightarrow \mathcal{X}, պարամետրիզացված ըստ \theta.Ցանկացած x\in \mathcal X-ի համար, մենք սովորաբար գրում ենք z = E_\phi(x), և հղվում դրան որպես կոդ, լատենտ փոփոխական, լատենտ ներկայացում, լատենտ վեկտոր և այլն։ Ընդհակառակը, ցանկացած z\in \mathcal Z-ի համար, մենք սովորաբար գրում ենք x' = D_\theta(z), և նշում այն որպես (վերծանված) հաղորդագրություն։

Սովորաբար, և՛ կոդավորիչը, և՛ ապակոդավորիչը սահմանվում են որպես բազմաշերտ պերցեպտրոններ (MLP): Օրինակ, E_\phi-ն միաշերտ MLP կոդավորիչ է․

:E_\phi(\mathbf x) = \sigma(Wx+b)

որտեղ \sigma-ն տարրական ակտիվացման ֆունկցիա է, W-ը «կշիռ» մատրիցա է, և b-ը «bias» վեկտոր է։
### Ավտոկոդավորչի ուսուցում
Ինքնակոդավորիչը բաղկացած է երկու ֆունկցիաներից։ Դրա որակը դատելու համար մեզ խնդիր է անհրաժեշտ։ Առաջադրանքը որոշվում է հավանականությունների բաշխմամբ \mu_{ref}\mathcal X-ի նկատմամբ, և «վերակառուցման որակի» d: \mathcal X \times  \mathcal X \to [0, \infty] ֆունկցիայով, այնպես որ d(x, x') չափում է, թե որքան է x' տարբերվում x-ից։

Դրանց օգնությամբ մենք կարող ենք որոշել ավտոկոդավորիչի կորստի ֆունկցիան՝ L(\theta, \phi):= \mathbb \mathbb E_{x\sim \mu_{ref}}[d(x, D_\theta(E_\phi(x)))] (\mu_{ref}, d) առաջադրանքի *օպտիմալ* ինքնակոդավորիչը  \arg\min_{\theta, \phi}L(\theta, \phi)-ն է։ Օպտիմալ ինքնակոդավորիչի որոնումը կարող է իրականացվել մաթեմատիկական օպտիմալացման ցանկացած մեթոդի միջոցով, բայց սովորաբար գրադիենտ ծագում։ Որոնման այս գործընթացը կոչվում է «ավտո կոդավորչի ուսուցում»։

Շատ դեպքերում էտալոն բաշխումը տվյալների հավաքածուով տրված էմպիրիկ բաշխում է, \{x_1, ..., x_N\} \subset \mathcal X, այնպես որ \mu_{ref} = \frac{1}{N}\sum_{i=1}^N \delta_{x_i}

որտեղ \delta_{x_i} is the Dirac ճափում է, որակի ֆունկցիան պարզապես L2 d(x, x') = \|x - x'\|_2^2, and \|\cdot\|_2 կորուստը էվկլիդյան նորմ է։ Ուստի օպտիմալ ինքնակոդավորիչ փնտրելու խնդիրը բերվում է նվազագույն քառակուսիներ օպտիմալացմանը․\min_{\theta, \phi} L(\theta, \phi),\qquad \text{որտեղ } L(\theta, \phi) = \frac{1}{N}\sum_{i=1}^N \|x_i - D_\theta(E_\phi(x_i))\|_2^2
### Մեկնաբանություն
thumb|Հիմնական ավտոկոդավորչի սխեման
Ավտոկոդավորիչն ունի երկու հիմնական մաս՝ կոդավորիչ, որը հաղորդագրությունը համապատասխանեցնում է կոդի, և ապակոդավորիչ, որը կոդից վերակառուցում է հաղորդագրությունը։ Оптимальный автокодировщик будет выполнять реконструкцию, максимально близкую к идеальной, с «близостью к идеальной», определяемой функцией качества реконструкции Օպտիմալ ինքնակոդավորիչը կատարյալին հնարավորինս մոտ վերակառուցում կկատարի։ «Կատարյալին մոտ» որոշվում է վերակառուցման որակի d ֆունկցիայով։

Պատճենման խնդրի իրականացման պարզագույն ազդանշանի կրկնումն է։ Այդ վարքագիծը բացառելու համար, \mathcal Z կոդի տարածության չափականությունը սովորաբար ավելի ցածր է, քան \mathcal{X} հաղորդագրությունների տարածությունը։

Նման ինքնակոդավորիչը կոչվում է թերլրացված։ Այն կարող է մեկնաբանվել որպես տվյալների սեղմում կամ դրա չափականության նվազեցում։

Իդեալական թերի ինքնակոդավորչի սահմանն է z կոդերի տարածության բոլոր հնարավոր ծածկագրերը օգտագործվում են x հաղորդագրությունը կոդավորելու համար, որն իսկապես հայտնվում է \mu_{ref}  բաշխման մեջ, և ապակոդավորիչը նույնպես կատարյալ է․ D_\theta(E_\phi(x)) = x։ Այս իդեալական ինքնակոդավորիչը կարող է այնուհետև օգտագործվել իրական հաղորդագրություններից չտարբերվող հաղորդագրություններ ստեղծելու համար՝ ապակոդավորիչի մուտքին z կամայական կոդ տալով և D_\theta(z) հաղորդագրություն ստանալով, \mu_{ref} որը հաղորդագրություն է. իսկապես հայտնվում է։

Եթե \mathcal Z ծածկագրի տարածքի չափականությունն ավելի մեծ (*overcomplete*) կամ հավասար է հաղորդագրությունների տարածության \mathcal{X} չափականությանը, կամ թաքնված միավորներին բավականաչափ հզորություն է տրված, ապա ինքնակոդավորիչը կարող է սովորել նույնական ֆունկցիան և դառնալ անօգուտ։ Այնուամենայնիվ, փորձերի արդյունքները պարզել են, որ չափազանց ամբողջական ինքնակոդավորիչները կարող են դեռ օգտակար հատկություններ սովորել։

Իդեալական կարգավորման դեպքում կոդի չափը և մոդելի հզորությունը կարող են սահմանվել՝ հիմնվելով մոդելավորվող տվյալների բաշխման բարդության վրա։ Դա անելու ստանդարտ եղանակ է հիմնական ինքնակոդավորիչում փոփոխություններ ավելացնելը, որը մանրամասն կներկայացվի ստորև։

## Պատմություն
Ավտոկոդավորիչն առաջին անգամ առաջարկվել է Կրամերի կողմից, որպես հիմնական բաղադրիչների վերլուծության (PCA) ոչ գծային ընդհանրացում։ Ավտոկոդավորիչը նաև կոչվում է ավտոասոցիատոր, կամ Diabolo ցանց։ Դրա առաջին կիրառությունները թվագրվում են 1990-ականների սկզբին։ Դրանց առավել ավանդական կիրառումը չափումների կրճատումն էր կամ հատկանիշների ուսուցումը, սակայն հայեցակարգը սկսեց լայնորեն կիրառվել տվյալների գեներատիվ մոդելներ սովորելու համար։ 2010-ականների ամենահզոր ԱԻ-ներից մի քանիսը ներառում էին ինքնակոդավորիչներ, որոնք ներկառուցված էին խորը նեյրոնային ցանցերում։

## Վարիացիաներ
### Կանոնավորվող ինքնակոդավորիչներ
Գոյություն ունեն տարբեր տեխնիկաներ՝ կանխելու ինքնակոդավորիչներին սովորելու նույնական ֆունկցիան և բարելավելու նրանց կարողությունը՝ վերցնել կարևոր տեղեկատվություն  և սովորել ավելի հարուստ ներկայացումներ։
#### Նոսր ինքնակոդավորիչ
Նոսր ինքնակոդավորիչները (SAE) ավտոկոդավորիչների տարբերակներ են, այնպիսին, որ հաղորդագրությունների E_\phi(x) կոդերը հակված են լինել «նոսր կոդեր», այսինքն՝ E_\phi(x) գրառումների մեծ մասում մոտ է զրոյի։ Նոսր ինքնակոդավորիչները կարող են ներառել ավելի շատ թաքնված միավորներ, քան մուտքային, բայց թաքնված միավորների միայն փոքր թվով թաքնված միավորների փոքր է թույլատրվում միաժամանակ ակտիվ լինել։ Նոսրության խրախուսումը բարելավում է դասակարգման առաջադրանքների կատարողականը։ thumb|Միաշերտ նոսր ինքնակոդավորիչի պարզ սխեմա: Վառ դեղին գույնի թաքնված հանգույցներն ակտիվ են, իսկ բաց դեղինները՝ ոչ ակտիվ: Ակտիվացումը կախված է մուտքից
Նոսրության ապահովման երկու հիմնական եղանակ գոյություն ունի։ Ճանապարհներից մեկը՝ լատենտ կոդի բոլոր ակտիվացումները, բացառությամբ ամենաբարձր-k-ի, պարզապես զրո դնելն է։ Սա **k-նոսր ավտոկոդավորիչն** է։

Մյուս ճանապարհը k-Նոսր ինքնակոդավորիչի հանգստացված տարբերակն է։ Նոսրությունը պարտադրելու փոխարեն մենք ավելացնում ենք *'նոսրության կանոնավորացման կորուստ*, այնուհետև օպտիմալացնում ենք \min_{\theta, \phi}L(\theta, \phi) + \lambda L_{sparsity} (\theta, \phi)որտեղ \lambda > 0 չափում է, թե որքան սակավություն ենք ուզում կիրառել։
#### Աղմուկը նվազեցնող Ինքնակոդավորիչ
Աղմուկը նվազեցնող ինքնակոդավորիչները (DAE) փորձում են «լավ» ներկայացման հասնել՝ փոխելով «վերակառուցման չափանիշը»։

DAE-ն, որն ի սկզբանե կոչվում էր «առողջ ավտոասոցիատիվ ցանց», վերապատրաստման ընթացքում մարզվում է ստանդարտ autoencoder-ի մուտքերը միտումնավոր փչացնելու միջոցով։ վերապատրաստվում է վերապատրաստման ընթացքում ստանդարտ autoencoder-ի մուտքերը միտումնավոր փչացնելու միջոցով։ Աղմուկի ֆունկցիան \mu_T հավանականության բաշխմամբ T:\mathcal X \to \mathcal X։ Այսինքն T ֆունկցիան վերցնում է x\in \mathcal X հաղորֆագրությունը, և այն շեղում է T(x) աղմկոտ տարբերակի։ T ֆունկցիան ընտրվում է պատահականորեն \mu_T հավանականության բաշխմամբ։

## Կիրառություններ
Ավտոկոդավորիչների երկու հիմնական կիրառություններն են չափականության կրճատումը և տեղեկատվության վերհանումը, սակայն ժամանակակից տարբերակները կիրառվել են այլ առաջադրանքների համար։
### Չափականության կրճատում
[thumb|Plot of the first two Principal Components (left) and a two-dimension hidden layer of a Linear Autoencoder (Right) applied to the [Fashion MNIST dataset. The two models being both linear learn to span the same subspace. The projection of the data points is indeed identical, apart from rotation of the subspace. While PCA selects a specific orientation up to reflections in the general case, the cost function of a simple autoencoder is invariant to rotations of the latent space.]]Շափականության կրճատումը խորը ուսուցման առաջին կիրառություններից մեկն էր։

Չափականությունը ներկայացնելը կարող է բարելավել այնպիսի առաջադրանքների կատարումը, ինչպիսին դասակարգումն է։
 Իրոք, չափականության կրճատման բնորոշ հատկանիշը, իմաստով առնչվող օրինակները միմյանց մոտ տեղադրելն է։
### Անոմալիայի հայտնաբերում
Ավտոկոդավորիչների մեկ այլ կիրառություն է անոմալիաների հայտնաբերումը։ Обучаясь воспроизводить наиболее существенные особенности в обучающих данных при некоторых ограничениях, описанных ранее, модель стремится научиться точно воспроизводить наиболее часто наблюдаемые характеристики.Սովորելով վերարտադրել ուսուցանող տվյալների ամենաէական հատկանիշները նախկինում նկարագրված որոշ սահմանափակումների ներքո, մոդելը ձգտում է սովորել ճշգրիտ վերարտադրել առավել հաճախ հանդիպող բնութագրերը։ Անոմալիաների հետ հանդիպելիս մոդելը պետք է վատթարացնի իր վերակառուցման արդյունավետությունը։ Շատ դեպքերում, միայն սովորական օրինակներով տվյալներն են օգտագործվում ավտոկոդավորիչին պատրաստելու համար. Մյուսներում, անոմալիաների հաճախականությունը փոքր է, այնպես որ դրա ազդեցությունը սովորած ներկայացման մեջ կարելի է անտեսել։ Դասընթացից հետո ավտոկոդավորիչը ճշգրտորեն կվերակազմի «նորմալ» տվյալները, մինչդեռ դա չի հաջողվում անել անծանոթ անոմալ տվյալների դեպքում։ Վերակառուցման սխալը (սխալը սկզբնական տվյալների և դրա ցածր չափականության վերակառուցման միջև) օգտագործվում է որպես անոմալիաների գնահատական՝ անոմալիաները հայտնաբերելու համար։

Սակայն վերջերս հրատարակված գրականությունը ցույց է տվել, որ որոշ ինքնակոդավորման մոդելներ կարող են, հակառակ ինտուիցիային, անոմալ օրինակները վերակառուցելու մեջ շատ լավ լինել և, հետևաբարը։

### Պատկերի մշակում
Ավտոկոդավորիչների բնութագրերը օգտակար են պատկերների մշակման մեջ։

Օրինակներից մեկը կարելի է գտնել կորուստներով պատկերի սեղմման մեջ, որտեղ ինքնակոդավորիչները գերազանցում էին մյուս մոտեցումներին և մրցունակ էին JPEG 2000-ի դեմ։

Ինքնակոդավորիչների մեկ այլ օգտակար կիրառություն պատկերների նախնական մշակման մեջ պատկերի աղմուկազերծումն է։

Ավտոկոդավորիչներն օգտակար են ավելի պահանջկոտ համատեքստերում, ինչպիսիք են բժշկական պատկերների վիզուալիզացիան, որտեղ դրանք օգտագործվել են ինչպես պատկերների աղմուկազերծման ինչպես նաև գերթողունակության համար։ Պատկերի օգնությամբ ախտորոշման ժամանակ ինքնակոդավորիչները կիրառվել են կրծքագեղձի քաղցկեղի հայտնաբերման և Ալցհեյմերի հիվանդների մտավոր ունակությունների անկման և MRI-ով պատրաստված ավտոկոդավորիչի լատենտ հատկանիշների միջև կապը մոդելավորելու համար։

### Դեղամիջոցների հայտնաբերում
2019 թվականին վարիացիոն ինքնակոդավորիչներով ստեղծված մոլեկուլները փորձնականորեն ստուգվել են մկների վրա։

### Ժողովրդականության կանխատեսում
Վերջերս ավտոկոդավորիչի շրջանակը խոստումնալից արդյունքներ տվեց սոցիալական մեդիայի գրառումների ժողովրդականությունը կանխատեսելու հարցում, ինչն օգտակար է առցանց գովազդային ռազմավարությունների համար։

### Մեքենայական թարգմանություն
Ավտոկոդավորիչներ կիրառվել են մեքենայական թարգմանության մեջ, որը սովորաբար կոչվում է նեյրոնային մեքենայական թարգմանություն (NMT)։ Ի տարբերություն ավանդական ավտոկոդավորիչների, ելքը չի համընկնում մուտքագրման հետ, այն այլ լեզվով է։ NMT-ում տեքստերը դիտվում են որպես հաջորդականություններ, որոնք պետք է կոդավորվեն ուսուցման ընթացակարգի մեջ, մինչդեռ ապակոդավորիչի կողմից ստեղծվում են թիրախային լեզվով (լեզուներով) հաջորդականություններ։ Կոնկրետ լեզվի ինքնակոդավորիչները ուսուցման գործընթացում ներառում են լեզվական առանձնահատկություններ, այնպիսիք, ինչպիսիք են չինական կազմալուծման առանձնահատկությունները։ Մեքենայական թարգմանությունը դեռևս հազվադեպ է կատարվում ավտոկոդավորիչներով, ավելի արդյունավետ տրանսֆորմատորային ցանցերի առկայության պատճառով։

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

Կատեգորիա:Արհեստական բանականություն