- Terminológia (A až D)
- Kontrola schopností AI
- AIOps
- albumov
- Výkonnosť aktív
- Autokóder
- Spätná propagácia
- Bayesova veta
- Big dát
- Chatbot: Sprievodca pre začiatočníkov
- Výpočtové myslenie
- Počítačové videnie
- Matica zmätku
- Konvolučné neurónové siete
- Kyber ochrana
- Data Fabric
- Rozprávanie dát
- dáta Science
- Skladovanie údajov
- Rozhodovací strom
- Deepfakes
- Deep Learning
- Hlboké posilnenie učenia
- DevOps
- DevSecOps
- Difúzne modely
- Digitálne Twin
- Zníženie rozmerov
- Terminológia (E až K)
- Edge AI
- Emócia AI
- Ensemble Learning
- Etické hackovanie
- ETL
- Vysvetliteľná AI
- Federatívne vzdelávanie
- FinOps
- Generatívna AI
- Generatívna kontradiktórna sieť
- Generatívne vs. diskriminačné
- Zosilnenie gradientu
- Gradientný zostup
- Učenie s niekoľkými výstrelmi
- Klasifikácia obrázkov
- IT operácie (ITOPs)
- Automatizácia incidentov
- Vplyvové inžinierstvo
- Klastrovanie K-Means
- K-Najbližší susedia
- Terminológia (od L po Q)
- Terminológia (od R po Z)
- Posilňovacie učenie
- Zodpovedná AI
- RLHF
- Automatizácia robotických procesov
- Štruktúrované vs neštruktúrované
- Analýza sentimentu
- Pod dohľadom verzus bez dozoru
- Podpora vektorové stroje
- Syntetické údaje
- Syntetické médiá
- Klasifikácia textu
- TinyML
- Transfer Learning
- Transformátorové neurónové siete
- Turingov test
- Vyhľadávanie podobnosti vektorov
AI 101
Čo je to automatický kódovač?
Obsah
Ak ste už predtým čítali o technikách učenia bez dozoru, možno ste sa stretli s výrazom „automatické kódovanie“. Autokódovače sú jedným z hlavných spôsobov vývoja modelov učenia bez dozoru. Čo je to však vlastne automatický kódovač?
V stručnosti, automatické kódovače fungujú tak, že prijímajú dáta, komprimujú a kódujú dáta a potom rekonštruujú dáta z kódovacej reprezentácie. Model je trénovaný, kým nie je strata minimalizovaná a údaje sú reprodukované čo najtesnejšie. Prostredníctvom tohto procesu sa môže autokóder naučiť dôležité vlastnosti údajov. Aj keď je to rýchla definícia automatického kódovania, bolo by užitočné bližšie sa pozrieť na automatické kódovače a lepšie pochopiť, ako fungujú. Tento článok sa bude snažiť demystifikovať autokodéry, vysvetlí architektúru autokodérov a ich aplikácie.
Čo je to automatický kódovač?
Automatické kódovače sú neurónové siete. Neurónové siete sa skladajú z viacerých vrstiev a definujúcim aspektom autokódera je, že vstupné vrstvy obsahujú presne toľko informácií ako výstupná vrstva. Dôvodom, prečo má vstupná vrstva a výstupná vrstva presne rovnaký počet jednotiek, je to, že cieľom automatického kódovania je replikovať vstupné údaje. Vydáva kópiu údajov po ich analýze a rekonštrukcii bez dozoru.
Dáta, ktoré sa pohybujú cez automatický kódovač, nie sú len mapované priamo zo vstupu na výstup, čo znamená, že sieť nekopíruje len vstupné dáta. Autokodér má tri komponenty: kódovaciu (vstupnú) časť, ktorá komprimuje údaje, komponent, ktorý spracováva komprimované údaje (alebo úzke miesto) a časť dekodéra (výstup). Keď sú údaje vložené do automatického kódovača, sú zakódované a potom skomprimované na menšiu veľkosť. Sieť je potom trénovaná na zakódovaných/komprimovaných údajoch a na výstupe sa obnovia tieto údaje.
Prečo by ste teda chceli trénovať sieť tak, aby len rekonštruovala údaje, ktoré sú jej poskytnuté? Dôvodom je, že sieť sa učí „podstatu“ alebo najdôležitejšie vlastnosti vstupných údajov. Po natrénovaní siete je možné vytvoriť model, ktorý dokáže syntetizovať podobné údaje s pridaním alebo odčítaním určitých cieľových funkcií. Môžete napríklad trénovať automatický kódovač na zrnité obrázky a potom použiť natrénovaný model na odstránenie zrnitosti/šumu z obrázka.
Architektúra automatického kódovania
Poďme sa na to pozrieť architektúra autokódera. Tu budeme diskutovať o hlavnej architektúre autokódera. Existujú variácie tejto všeobecnej architektúry, o ktorých budeme diskutovať v časti nižšie.
Ako už bolo spomenuté, autoenkodér možno v podstate rozdeliť na tri rôzne komponenty: kodér, úzke miesto a dekodér.
Kódovacia časť autokódera je typicky dopredná, husto prepojená sieť. Účelom kódovacích vrstiev je zobrať vstupné dáta a skomprimovať ich do reprezentácie latentného priestoru, čím sa vytvorí nová reprezentácia dát, ktorá má zníženú dimenzionalitu.
Vrstvy kódu alebo úzke miesto sa zaoberajú komprimovanou reprezentáciou údajov. Kód úzkeho miesta je starostlivo navrhnutý tak, aby určoval najrelevantnejšie časti pozorovaných údajov alebo inak povedané vlastnosti údajov, ktoré sú najdôležitejšie pre rekonštrukciu údajov. Cieľom je určiť, ktoré aspekty údajov je potrebné zachovať a ktoré možno zahodiť. Kód úzkeho miesta musí vyvážiť dve rôzne úvahy: veľkosť reprezentácie (ako kompaktná je reprezentácia) a relevantnosť premennej/funkcie. Úzke miesto vykonáva aktiváciu prvkov na váhe a odchýlky siete. Vrstva úzkeho miesta sa tiež niekedy nazýva latentná reprezentácia alebo latentné premenné.
Vrstva dekodéra je zodpovedná za prevzatie komprimovaných údajov a ich konverziu späť na reprezentáciu s rovnakými rozmermi ako pôvodné, nezmenené údaje. Konverzia sa vykonáva pomocou reprezentácie latentného priestoru, ktorú vytvoril kódovač.
Najzákladnejšou architektúrou autokódera je dopredná architektúra so štruktúrou podobnou jednovrstvovému perceptrónu používanému vo viacvrstvových perceptrónoch. Podobne ako bežné dopredné neurónové siete je automatický kódovač trénovaný pomocou spätného šírenia.
Atribúty automatického kódovania
Existujú rôzne typy automatických kódovačov, ale všetky majú určité vlastnosti, ktoré ich spájajú.
Automatické kódovače sa učia automaticky. Nevyžadujú štítky a ak je k dispozícii dostatok údajov, je ľahké získať automatický kódovač na dosiahnutie vysokého výkonu pri konkrétnom druhu vstupných údajov.
Automatické kódovače sú dátovo špecifické. To znamená, že môžu komprimovať iba údaje, ktoré sú veľmi podobné údajom, na ktoré už bol automatický kódovač natrénovaný. Autoenkódery sú tiež stratové, čo znamená, že výstupy modelu budú v porovnaní so vstupnými dátami degradované.
Pri navrhovaní automatického kódovača musia inžinieri strojového učenia venovať pozornosť štyrom rôznym hyperparametrom modelu: veľkosť kódu, počet vrstiev, uzly na vrstvu a funkcia straty.
Veľkosť kódu rozhoduje o tom, koľko uzlov začína strednú časť siete a menej uzlov komprimuje údaje viac. V hlbokom automatickom kódovači, zatiaľ čo počet vrstiev môže byť ľubovoľný počet, ktorý inžinier považuje za vhodný, počet uzlov vo vrstve by sa mal s pokračovaním kódovača znižovať. Medzitým platí opak v dekodéri, čo znamená, že počet uzlov na vrstvu by sa mal zvyšovať, keď sa vrstvy dekodéra blížia ku konečnej vrstve. Nakoniec, stratová funkcia autokódera je zvyčajne buď binárna krížová entropia alebo stredná štvorcová chyba. Binárna krížová entropia je vhodná pre prípady, keď sú vstupné hodnoty údajov v rozsahu 0 – 1.
Typy automatického kódovania
Ako je uvedené vyššie, existujú variácie klasickej architektúry autokódera. Pozrime sa na rôzne architektúry automatických kódovačov.
Riedke
Zatiaľ čo automatické kódovače majú zvyčajne úzke miesto, ktoré komprimuje údaje znížením počtu uzlov, riedky autokóders sú alternatívou k tomuto typickému operačnému formátu. V riedkej sieti si skryté vrstvy zachovávajú rovnakú veľkosť ako vrstvy kodéra a dekodéra. Namiesto toho sú aktivácie v rámci danej vrstvy penalizované, čím sa nastaví tak, aby funkcia straty lepšie zachytávala štatistické vlastnosti vstupných údajov. Inými slovami, zatiaľ čo skryté vrstvy riedkeho autokódera majú viac jednotiek ako tradičný autokóder, len určité percento z nich je aktívnych v danom čase. Najvplyvnejšie aktivačné funkcie sú zachované a ostatné sú ignorované a toto obmedzenie pomáha sieti určiť len tie najvýraznejšie vlastnosti vstupných údajov.
Kontraktívny
Kontraktívne autokódery sú navrhnuté tak, aby boli odolné voči malým odchýlkam v údajoch a zachovávali konzistentnú reprezentáciu údajov. To sa dosiahne uplatnením penalizácie na stratovú funkciu. Táto regularizačná technika je založená na Frobeniovej norme Jacobiánskej matice pre aktiváciu vstupného kodéra. Účinok tejto techniky regularizácie je, že model je nútený vytvoriť kódovanie, kde podobné vstupy budú mať podobné kódovania.
Konvolučný
Konvolučné automatické kódovače kódovanie vstupných údajov rozdelením údajov do podsekcií a následnou konverziou týchto podsekcií na jednoduché signály, ktoré sa sčítajú, aby sa vytvorila nová reprezentácia údajov. Podobne ako konvolučné neurónové siete sa konvolučný autokóder špecializuje na učenie obrazových údajov a používa filter, ktorý sa presúva cez celý obraz po častiach. Kódovanie generované kódovacou vrstvou je možné použiť na rekonštrukciu obrazu, odrážanie obrazu alebo úpravu geometrie obrazu. Akonáhle sa sieť naučí filtre, môžu sa použiť na akomkoľvek dostatočne podobnom vstupe na extrahovanie vlastností obrazu.
Odšumovanie
Odšumovacie automatické kódovače zaviesť do kódovania šum, výsledkom čoho je kódovanie, ktoré je poškodenou verziou pôvodných vstupných údajov. Táto poškodená verzia údajov sa používa na trénovanie modelu, ale funkcia straty porovnáva výstupné hodnoty s pôvodným vstupom a nie s poškodeným vstupom. Cieľom je, aby sieť bola schopná reprodukovať pôvodnú, nepoškodenú verziu obrazu. Porovnaním poškodených údajov s pôvodnými údajmi sa sieť dozvie, ktoré vlastnosti údajov sú najdôležitejšie a ktoré sú nedôležité/poškodené. Inými slovami, na to, aby model odšumoval poškodené obrázky, musí extrahovať dôležité vlastnosti obrazových údajov.
Variačné
Variačné automatické kódovače fungujú tak, že vytvárajú predpoklady o tom, ako sú distribuované latentné premenné údajov. Variačný autokóder vytvára rozdelenie pravdepodobnosti pre rôzne vlastnosti trénovacích obrázkov/latentných atribútov. Pri trénovaní kódovač vytvára latentné distribúcie pre rôzne vlastnosti vstupných obrázkov.
Pretože sa model učí funkcie alebo obrázky ako Gaussove distribúcie namiesto diskrétnych hodnôt, je možné ho použiť na generovanie nových obrázkov. Gaussova distribúcia je vzorkovaná, aby sa vytvoril vektor, ktorý sa privádza do dekódovacej siete, ktorá vykresľuje obraz na základe tohto vektora vzoriek. V podstate sa model učí spoločné črty tréningových obrázkov a priraďuje im určitú pravdepodobnosť, že sa vyskytnú. Rozdelenie pravdepodobnosti sa potom môže použiť na spätné inžinierstvo obrázka, čím sa generujú nové obrázky, ktoré sa podobajú pôvodným cvičným obrázkom.
Pri trénovaní siete sa zakódované údaje analyzujú a model rozpoznávania vytvára dva vektory, ktoré vykresľujú strednú a štandardnú odchýlku obrázkov. Na základe týchto hodnôt sa vytvorí rozdelenie. Toto sa robí pre rôzne latentné stavy. Dekodér potom odoberie náhodné vzorky zo zodpovedajúcej distribúcie a použije ich na rekonštrukciu počiatočných vstupov do siete.
Aplikácie automatického kódovania
Autokodéry je možné použiť pre široké rôzne aplikácie, ale zvyčajne sa používajú na úlohy, ako je redukcia rozmerov, odšumovanie údajov, extrakcia prvkov, generovanie obrázkov, predikcia sekvencie po sekvenciu a systémy odporúčaní.
Odšumovanie údajov je použitie automatických kódovačov na odstránenie zrna/šumu z obrázkov. Podobne je možné automatické kódovanie použiť na opravu iných typov poškodenia obrazu, ako sú rozmazané obrázky alebo chýbajúce časti obrázkov. Zníženie rozmerov môže pomôcť vysokokapacitným sieťam naučiť sa užitočné vlastnosti obrázkov, čo znamená, že automatické kódovače môžu byť použité na rozšírenie tréningu iných typov neurónových sietí. Platí to aj pre používanie autokódovačov na extrakciu funkcií, pretože autokódery možno použiť na identifikáciu funkcií iných množín tréningových údajov na trénovanie iných modelov.
Pokiaľ ide o generovanie obrázkov, automatické kódovanie je možné použiť na generovanie falošných ľudských obrázkov alebo animovaných postáv, čo má uplatnenie pri navrhovaní systémov rozpoznávania tvárí alebo automatizácii určitých aspektov animácie.
Modely predikcie od sekvencie k sekvencii možno použiť na určenie časovej štruktúry údajov, čo znamená, že na generovanie ďalších dokonca v sekvencii možno použiť autokóder. Z tohto dôvodu by sa na generovanie videí mohol použiť automatický kódovač. Nakoniec, hlboké automatické kódovače možno použiť na vytváranie systémov odporúčaní na základe vzorov týkajúcich sa záujmu používateľov, pričom kódovač analyzuje údaje o interakcii používateľov a dekodér vytvára odporúčania, ktoré zodpovedajú zavedeným vzorom.
Bloger a programátor so špecializáciou v Strojové učenie a Deep Learning témy. Daniel dúfa, že pomôže ostatným využívať silu AI pre sociálne dobro.
Možno budete chcieť
Ako sa trénujú modely strojového učenia?
Ako zistiť, kedy systémy na syntézu obrazu vyrábajú skutočne „originálny“ materiál
Microsoft navrhuje GODIVA, rámec strojového učenia textu na video
Výskumníci AI vyvinuli metódu na opätovné použitie existujúcich liekov na boj proti Covid-19
Čo je to klastrovanie K-Means?
Riadené verzus nekontrolované učenie