peň Čo je hlboké učenie? (2024) - Spojte sa.AI
Spojte sa s nami
Masterclass AI:

AI 101

Čo je hlboké učenie?

mm
Aktualizované on

Hlboké učenie je jednou z najvplyvnejších a najrýchlejšie rastúcich oblastí umelej inteligencie. Intuitívne pochopenie hlbokého učenia však môže byť ťažké, pretože pojem hlboké učenie zahŕňa množstvo rôznych algoritmov a techník. Hlboké učenie je tiež poddisciplínou strojového učenia vo všeobecnosti, takže je dôležité pochopiť, čo je strojové učenie, aby ste pochopili hlboké učenie.

Čo je to strojové učenie?

Hlboké učenie je rozšírením niektorých konceptov pochádzajúcich zo strojového učenia, takže z tohto dôvodu si nájdime chvíľu vysvetlenia, čo je strojové učenie.

Zjednodušene povedané, strojové učenie je metóda umožňujúca počítačom vykonávať špecifické úlohy bez explicitného kódovania každého riadku algoritmov používaných na splnenie týchto úloh. Existuje mnoho rôznych algoritmov strojového učenia, ale jedným z najčastejšie používaných algoritmov je viacvrstvový perceptrón. Viacvrstvový perceptrón sa tiež označuje ako neurónová sieť a skladá sa zo série uzlov/neurónov navzájom spojených. Vo viacvrstvovom perceptróne sú tri rôzne vrstvy: vstupná vrstva, skrytá vrstva a výstupná vrstva.

Vstupná vrstva prenáša dáta do siete, kde s nimi manipulujú uzly v strednej/skrytej vrstve. Uzly v skrytej vrstve sú matematické funkcie, ktoré môžu manipulovať s údajmi pochádzajúcimi zo vstupnej vrstvy a extrahovať príslušné vzory zo vstupných údajov. Takto sa neurónová sieť „učí“. Neurónové siete dostali svoj názov podľa toho, že sú inšpirované štruktúrou a funkciou ľudského mozgu.

Spojenia medzi uzlami v sieti majú hodnoty nazývané váhy. Tieto hodnoty sú v podstate predpoklady o tom, ako súvisia údaje v jednej vrstve s údajmi v ďalšej vrstve. Ako sa sieť trénuje, váhy sa upravujú a cieľom je, aby váhy/predpoklady o údajoch nakoniec konvergovali k hodnotám, ktoré presne reprezentujú zmysluplné vzorce v údajoch.

Aktivačné funkcie sú prítomné v uzloch siete a tieto aktivačné funkcie transformujú údaje nelineárnym spôsobom, čo umožňuje sieti naučiť sa zložité reprezentácie údajov. Aktivačné funkcie vynásobia vstupné hodnoty hodnotami hmotnosti a pridajú hodnotu odchýlky.

Čo je hlboké učenie?

Hlboké učenie je termín daný architektúram strojového učenia, ktoré spájajú veľa viacvrstvových perceptrónov, takže neexistuje iba jedna skrytá vrstva, ale veľa skrytých vrstiev. Čím „hlbšia“ je hlboká neurónová sieť, tým sofistikovanejšie vzorce sa sieť môže naučiť.

Siete hlbokých vrstiev pozostávajúce z neurónov sa niekedy označujú ako plne prepojené siete alebo plne prepojené vrstvy, pričom odkazujú na skutočnosť, že daný neurón udržiava spojenie so všetkými neurónmi, ktoré ho obklopujú. Plne prepojené siete je možné kombinovať s ďalšími funkciami strojového učenia a vytvárať tak rôzne architektúry hlbokého učenia.

Rôzne typy hlbokého učenia

Výskumníci a inžinieri používajú rôzne architektúry hlbokého učenia a každá z rôznych architektúr má svoj vlastný špeciálny prípad použitia.

Konvolučné neurónové siete

Konvolučné neurónové siete, alebo CNN, sú architektúrou neurónovej siete bežne používanou pri vytváraní systémov počítačového videnia. Štruktúra konvolučných neurónových sietí im umožňuje interpretovať obrazové dáta a konvertovať ich na čísla, ktoré dokáže interpretovať plne prepojená sieť. CNN má štyri hlavné zložky:

  • Konvolučné vrstvy
  • Vrstvy podvzorkovania/združovania
  • Aktivačné funkcie
  • Plne spojené vrstvy

Konvolučné vrstvy sú to, čo prijíma obrázky ako vstupy do siete, analyzuje obrázky a získava hodnoty pixelov. Podvzorkovanie alebo združovanie je miesto, kde sa hodnoty obrazu konvertujú/redukujú, aby sa zjednodušila reprezentácia obrázkov a znížila citlivosť obrazových filtrov na šum. Aktivačné funkcie riadia tok údajov z jednej vrstvy do ďalšej vrstvy a plne prepojené vrstvy sú tým, čo analyzuje hodnoty, ktoré reprezentujú obrázok, a učia sa vzory obsiahnuté v týchto hodnotách.

RNN/LSTM

Rekurentné neurónové siete, alebo RNN, sú obľúbené pre úlohy, kde záleží na poradí údajov, kde sa sieť musí dozvedieť o postupnosti údajov. RNN sa bežne používajú pri problémoch, ako je spracovanie prirodzeného jazyka, pretože pri dekódovaní významu vety záleží na poradí slov. „Rekurentná“ časť pojmu rekurentná neurónová sieť vychádza zo skutočnosti, že výstup pre daný prvok v postupnosti závisí od predchádzajúceho výpočtu, ako aj od aktuálneho výpočtu. Na rozdiel od iných foriem hlbokých neurónových sietí majú RNN „pamäte“ a na výpočet konečných hodnôt sa používajú informácie vypočítané v rôznych časových krokoch v sekvencii.

Existuje viacero typov RNN vrátane obojsmerných RNN, ktoré pri výpočte hodnoty položky zohľadňujú okrem predchádzajúcich položiek aj budúce položky v sekvencii. Ďalším typom RNN je a Long Short-Term Memory alebo LSTM, sieť. LSTM sú typy RNN, ktoré dokážu spracovať dlhé reťazce údajov. Bežné RNN sa môžu stať obeťou niečoho, čo sa nazýva „problém explodujúceho gradientu“. Tento problém sa vyskytuje, keď sa reťaz vstupných údajov extrémne predĺži, ale LSTM majú techniky na boj proti tomuto problému.

Automatické kódovače

Väčšina doteraz spomenutých architektúr hlbokého učenia sa používa skôr na problémy s riadeným učením ako na učebné úlohy bez dozoru. Autokodéry sú schopné transformovať nekontrolované údaje do kontrolovaného formátu, čo umožňuje použitie neurónových sietí na riešenie problému.

Automatické kódovače sa často používajú na detekciu anomálií v súboroch údajov, čo je príklad učenia bez dozoru, pretože povaha anomálie nie je známa. Medzi takéto príklady odhaľovania anomálií patrí odhaľovanie podvodov pre finančné inštitúcie. V tomto kontexte je účelom automatického kódovania určiť základnú líniu pravidelných vzorov v údajoch a identifikovať anomálie alebo odľahlé hodnoty.

Štruktúra autokódera je často symetrická, so skrytými vrstvami usporiadanými tak, že výstup siete pripomína vstup. Štyri typy automatických kódovačov, ktoré sa často používajú, sú:

  • Bežné/obyčajné automatické kódovače
  • Viacvrstvové kódovače
  • Konvolučné kódovače
  • Regulované kódovače

Bežné/obyčajné autokódery sú len neurónové siete s jednou skrytou vrstvou, zatiaľ čo viacvrstvové autokódery sú hlboké siete s viac ako jednou skrytou vrstvou. Konvolučné automatické kódovače používajú konvolučné vrstvy namiesto alebo navyše k plne prepojeným vrstvám. Regulované autokodéry používajú špecifický druh stratovej funkcie, ktorá umožňuje neurónovej sieti vykonávať zložitejšie funkcie, funkcie iné ako len kopírovanie vstupov na výstupy.

Generatívne adverzné siete

Generative Adversarial Networks (GAN) sú v skutočnosti viaceré hlboké neurónové siete namiesto jednej siete. Súčasne sa trénujú dva modely hlbokého učenia a ich výstupy sa posielajú do ďalšej siete. Siete si navzájom konkurujú a keďže získavajú prístup k svojim výstupným dátam, obe sa z týchto dát učia a zlepšujú sa. Tieto dve siete v podstate hrajú hru na falšovanie a odhaľovanie, kde sa generatívny model pokúša vytvoriť nové prípady, ktoré oklamú detektívny model/diskriminátor. GAN sa stali populárnymi v oblasti počítačového videnia.

Zhrnutie hlbokého učenia

Hlboké učenie rozširuje princípy neurónových sietí na vytváranie sofistikovaných modelov, ktoré sa dokážu naučiť zložité vzorce a zovšeobecniť tieto vzorce na budúce súbory údajov. Konvolučné neurónové siete sa používajú na interpretáciu obrázkov, zatiaľ čo RNN / LSTM sa používajú na interpretáciu sekvenčných údajov. Autokódovače dokážu transformovať učebné úlohy bez dozoru na učebné úlohy pod dohľadom. Nakoniec, GAN sú viaceré siete postavené proti sebe, ktoré sú obzvlášť užitočné pre úlohy počítačového videnia.

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.