никулец Што е автоенкодер? - Обединете се.АИ
Поврзете се со нас
Мастеркласа за вештачка интелигенција:

АИ 101 година

Што е автоенкодер?

mm
Ажурирани on

Ако претходно сте читале за техники за учење без надзор, можеби сте налетале на терминот „автоенкодер“. Автоенкодерите се еден од основните начини на кои се развиваат модели за учење без надзор. Сепак, што е точно автоенкодер?

Накратко, автоенкодерите работат со преземање податоци, компресирање и кодирање на податоците, а потоа реконструкција на податоците од претставувањето за кодирање. Моделот се тренира додека загубата не се минимизира и податоците не се репродуцираат што е можно поблиску. Преку овој процес, автоенкодерот може да ги научи важните карактеристики на податоците. Иако тоа е брза дефиниција за авто-кодер, би било корисно да се погледне одблизу на автоенкодерите и да се добие подобро разбирање за тоа како тие функционираат. Оваа статија ќе се обиде да ги демистифицира автоенкодерите, објаснувајќи ја архитектурата на автоенкодерите и нивните апликации.

Што е автоенкодер?

Авто-енкодери се невронски мрежи. Невронските мрежи се составени од повеќе слоеви, а дефинирачкиот аспект на автоенкодерот е тоа што влезните слоеви содржат точно онолку информации колку и излезниот слој. Причината што влезниот и излезниот слој имаат ист број единици е тоа што автоенкодерот има за цел да ги реплицира влезните податоци. Испитува копија од податоците откако ќе ги анализира и ќе ги реконструира на ненадгледуван начин.

Податоците што се движат низ авто-кодер не се само мапирани директно од влез до излез, што значи дека мрежата не ги копира само влезните податоци. Постојат три компоненти на автоенкодерот: дел за кодирање (влезен) што ги компресира податоците, компонента што се справува со компресираните податоци (или тесно грло) и дел од декодерот (излезен). Кога податоците се внесуваат во автоенкодер, тие се кодираат и потоа се компресираат на помала големина. Мрежата потоа се обучува на кодирани/компресирани податоци и таа дава рекреација на тие податоци.

Па, зошто би сакале да обучите мрежа само да ги реконструира податоците што и се дадени? Причината е што мрежата ја учи „суштината“ или најважните карактеристики на влезните податоци. Откако ќе ја обучите мрежата, може да се создаде модел кој може да синтетизира слични податоци, со собирање или одземање на одредени целни карактеристики. На пример, можете да обучите автоенкодер за зрнести слики, а потоа да го користите обучениот модел за да го отстраните зрното/шумот од сликата.

Архитектура на автоенкодер

Ајде да погледнеме во архитектурата на автоенкодер. Овде ќе разговараме за главната архитектура на автоенкодер. Постојат варијации на оваа општа архитектура за кои ќе разговараме во делот подолу.

Фотографија: Мишела Маси преку Wikimedia Commons, (https://commons.wikimedia.org/wiki/File:Autoencoder_schema.png)

Како што претходно беше споменато автоенкодерот во суштина може да се подели на три различни компоненти: енкодер, тесно грло и декодер.

Енкодерскиот дел од авто-кодерот е типично повратна, густо поврзана мрежа. Целта на слоевите за кодирање е да ги земат влезните податоци и да ги компресираат во приказ на латентен простор, генерирајќи нова претстава на податоците што има намалена димензионалност.

Слоевите на кодот, или тесно грло, се занимаваат со компресирана репрезентација на податоците. Кодот за тесно грло е внимателно дизајниран да ги одреди најрелевантните делови од набљудуваните податоци или на друг начин да ги стави карактеристиките на податоците кои се најважни за реконструкција на податоците. Целта овде е да се одреди кои аспекти од податоците треба да се зачуваат, а кои може да се отфрлат. Кодот за тесно грло треба да балансира две различни размислувања: големината на застапеноста (колку е компактна претставата) и релевантноста на променливата/одликата. Тесното грло врши елементарно активирање на тежините и предрасудите на мрежата. Слојот на тесно грло понекогаш се нарекува и латентна репрезентација или латентни променливи.

Слојот на декодер е тој што е одговорен за преземање на компресираните податоци и нивно претворање назад во претстава со исти димензии како оригиналните, непроменети податоци. Конверзијата се врши со латентното претставување на просторот што го создал енкодерот.

Најосновната архитектура на автоенкодерот е архитектурата за повлекување напред, со структура слична на еднослоен перцептрон што се користи во повеќеслојните перцептрони. Слично како и обичните невронски мрежи за повлекување, авто-енкодерот се тренира преку употреба на задна пропагација.

Атрибути на автоенкодер

Постојат различни типови на автоенкодери, но сите тие имаат одредени својства што ги обединуваат.

Автоматските кодери учат автоматски. Тие не бараат етикети, и ако им се дадени доволно податоци, лесно е да се добие автоенкодер за да се постигнат високи перформанси на одреден вид влезни податоци.

Автоенкодерите се специфични за податоци. Ова значи дека тие можат да компресираат само податоци кои се многу слични на податоците за кои автоенкодерот веќе бил обучен. Автоенкодерите се исто така со загуби, што значи дека излезите на моделот ќе бидат деградирани во споредба со влезните податоци.

При дизајнирање автоенкодер, инженерите за машинско учење треба да обрнат внимание на четири различни хиперпараметри на моделот: големина на код, број на слој, јазли по слој и функција на загуба.

Големината на кодот одлучува колку јазли започнуваат со средниот дел од мрежата, а помалку јазли повеќе ги компресираат податоците. Во длабок автоенкодер, додека бројот на слоеви може да биде кој било број што инженерот смета дека е соодветен, бројот на јазли во слојот треба да се намалува како што продолжува енкодерот. Во меѓувреме, спротивното важи во декодерот, што значи дека бројот на јазли по слој треба да се зголемува како што слоевите на декодерот се приближуваат до последниот слој. Конечно, функцијата за загуба на автоенкодер е типично или бинарна вкрстена ентропија или просечна квадратна грешка. Бинарната вкрстена ентропија е соодветна за случаи кога влезните вредности на податоците се во опсег од 0 – 1.

Видови на автоенкодер

Како што споменавме погоре, постојат варијации на класичната архитектура на автоенкодер. Ајде да ги испитаме различните архитектури на автоенкодер.

Редок

Фото: Микела Маси преку Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Autoencoder_sparso.png)

Додека автоенкодерите обично имаат тесно грло што ги компресира податоците преку намалување на јазлите, редок автоенкодертие се алтернатива на типичниот оперативен формат. Во ретка мрежа, скриените слоеви ја задржуваат истата големина како и слоевите на енкодерот и декодерот. Наместо тоа, активациите во даден слој се казнуваат, поставувајќи го така што функцијата за загуба подобро ги доловува статистичките карактеристики на влезните податоци. Поинаку кажано, додека скриените слоеви на редок автоенкодер имаат повеќе единици од традиционалниот автоенкодер, само одреден процент од нив се активни во секое време. Највлијателните функции за активирање се зачувани, а другите се игнорираат, а ова ограничување и помага на мрежата да ги одреди само најистакнатите карактеристики на влезните податоци.

Контрактивен

Контрактивни автоенкодери се дизајнирани да бидат отпорни на мали варијации во податоците, одржувајќи доследна застапеност на податоците. Ова се постигнува со примена на казна за функцијата загуба. Оваа техника на регулација се заснова на нормата на Фробениус на Јакобиевата матрица за активации на влезниот енкодер. Ефектот на оваа техника на регуларизација е дека моделот е принуден да конструира кодирање каде слични влезови ќе имаат слични шифрирања.

Convolutional

Конволуциони автоенкодери кодирајте ги влезните податоци со делење на податоците на подсекции и потоа конвертирање на овие потсекции во едноставни сигнали кои се сумираат заедно за да создадат нова репрезентација на податоците. Слично на конволуционите невронски мрежи, конволуциониот автоенкодер е специјализиран за учење податоци за слики и користи филтер што се движи низ целата слика дел по дел. Кодирањата генерирани од слојот за кодирање може да се користат за реконструкција на сликата, рефлексија на сликата или менување на геометријата на сликата. Откако мрежата ќе ги научи филтрите, тие може да се користат на кој било доволно сличен влез за да се извлечат карактеристиките на сликата.

Деноизирање

Фото: MAL преку Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:ROF_Denoising_Example.png)

Откривање на автоенкодери внесете шум во кодирањето, што резултира со кодирање што е оштетена верзија на оригиналните влезни податоци. Оваа расипана верзија на податоците се користи за обука на моделот, но функцијата за загуба ги споредува излезните вредности со оригиналниот влез, а не со оштетениот влез. Целта е мрежата да може да ја репродуцира оригиналната, нерасипана верзија на сликата. Со споредување на оштетените податоци со оригиналните податоци, мрежата дознава кои карактеристики на податоците се најважни, а кои карактеристики се неважни/корупции. Со други зборови, за да може моделот да ги деноизира оштетените слики, треба да ги извлече важните карактеристики на податоците од сликата.

Варијационален

Варијацијални автоенкодери работат со правење претпоставки за тоа како се распределуваат латентните променливи на податоците. Варијацискиот автоенкодер произведува распределба на веројатност за различните карактеристики на сликите за обука/латентните атрибути. Кога тренирате, енкодерот создава латентни дистрибуции за различните карактеристики на влезните слики.

 

Бидејќи моделот ги учи карактеристиките или сликите како Гаусови распределби наместо дискретни вредности, тој може да се користи за генерирање на нови слики. Се зема примерок од Гаусовата дистрибуција за да се создаде вектор, кој се внесува во мрежата за декодирање, која прикажува слика врз основа на овој вектор на примероци. Во суштина, моделот учи заеднички карактеристики на сликите за обука и им доделува одредена веројатност дека тие ќе се појават. Дистрибуцијата на веројатност потоа може да се користи за обратно инженерство на слика, генерирајќи нови слики што личат на оригиналните, обучувачки слики.

При обука на мрежата, кодираните податоци се анализираат и моделот за препознавање дава два вектори, извлекувајќи ја средната и стандардната девијација на сликите. Врз основа на овие вредности се креира дистрибуција. Ова е направено за различни латентни состојби. Декодерот потоа зема случајни примероци од соодветната дистрибуција и ги користи за реконструкција на почетните влезови во мрежата.

Апликации за автоенкодер

Автоенкодерите може да се користат за широк разновидност на апликации, но тие вообичаено се користат за задачи како што се намалување на димензионалноста, отпишување на податоци, екстракција на карактеристики, генерирање слики, предвидување од секвенца до секвенца и системи за препораки.

Деноисирање податоци е употреба на автоенкодери за отстранување на зрната/шум од сликите. Слично на тоа, автоенкодерите може да се користат за поправка на други видови оштетувања на сликата, како што се заматени слики или слики што недостасуваат делови. Намалувањето на димензиите може да им помогне на мрежите со висок капацитет да научат корисни карактеристики на сликите, што значи дека автоенкодерите може да се користат за да се зголеми обуката на другите видови невронски мрежи. Ова исто така важи и за користење на автоматски енкодери за екстракција на карактеристики, бидејќи автоенкодерите може да се користат за да се идентификуваат карактеристиките на другите збирки на податоци за обука за обука на други модели.

Во однос на генерирањето слики, автоенкодерите може да се користат за генерирање лажни човечки слики или анимирани ликови, што има апликации во дизајнирање системи за препознавање лица или автоматизирање на одредени аспекти на анимацијата.

Моделите за предвидување од секвенца до секвенца може да се користат за одредување на временската структура на податоците, што значи дека автоенкодер може да се користи за генерирање на следниот дури и во низа. Поради оваа причина, авто-кодер може да се користи за генерирање видеа. Конечно, длабоките автоенкодери може да се користат за креирање системи за препораки со преземање на обрасци поврзани со интересот на корисниците, при што енкодерот ги анализира податоците за ангажирање на корисникот, а декодерот создава препораки кои одговараат на воспоставените обрасци.

Блогер и програмер со специјалитети во Машинско учење Длабоко учење теми. Даниел се надева дека ќе им помогне на другите да ја искористат моќта на вештачката интелигенција за општествено добро.