peň Čo sú to CNN (konvolučné neurónové siete)? - Spojte sa.AI
Spojte sa s nami
Masterclass AI:

AI 101

Čo sú to CNN (konvolučné neurónové siete)?

mm
Aktualizované on

Možno vás zaujímalo, ako dokáže Facebook alebo Instagram automaticky rozpoznať tváre na obrázku, alebo ako vám Google umožňuje hľadať na webe podobné fotografie jednoduchým odovzdaním vlastnej fotografie. Tieto funkcie sú príkladmi počítačového videnia a využívajú ich konvolučné neurónové siete (CNN). Čo presne sú konvolučné neurónové siete? Poďme sa hlboko ponoriť do architektúry CNN a pochopiť, ako fungujú.

Čo sú to neurónové siete?

Predtým, ako začneme hovoriť o konvolučných neurónových sieťach, poďme na chvíľu definovať bežnú neurónovú sieť. tam je ďalší článok na tému dostupných neurónových sietí, takže sa im tu nebudeme príliš venovať. Aby sme ich však stručne definovali, ide o výpočtové modely inšpirované ľudským mozgom. Neurónová sieť funguje tak, že prijíma údaje a manipuluje s nimi úpravou „váh“, čo sú predpoklady o tom, ako vstupné funkcie súvisia navzájom a s triedou objektu. Keď je sieť trénovaná, hodnoty váh sa upravujú a dúfajme, že sa budú zbližovať s váhami, ktoré presne zachytávajú vzťahy medzi funkciami.

Takto funguje dopredná neurónová sieť a CNN sa skladajú z dvoch polovíc: doprednej neurónovej siete a skupiny konvolučných vrstiev.

Čo sú to konvolučné neurónové siete (CNN)?

Aké sú „konvolúcie“, ktoré sa dejú v konvolučnej neurónovej sieti? Konvolúcia je matematická operácia, ktorá vytvára množinu váh, v podstate vytvára reprezentáciu častí obrazu. Tento súbor závaží sa označuje ako jadro alebo filter. Vytvorený filter je menší ako celý vstupný obrázok a pokrýva iba časť obrázka. Hodnoty vo filtri sa vynásobia hodnotami na obrázku. Filter sa potom presunie, aby sa vytvorila reprezentácia novej časti obrázka, a proces sa opakuje, kým sa nepokryje celý obrázok.

Ďalším spôsobom, ako o tom premýšľať, je predstaviť si tehlovú stenu, pričom tehly predstavujú pixely vo vstupnom obrázku. Po stene, ktorá je filtrom, sa posúva „okno“ tam a späť. Kocky, ktoré sú viditeľné cez okno, sú pixely, ktorých hodnota je vynásobená hodnotami vo filtri. Z tohto dôvodu sa tento spôsob vytvárania závaží pomocou filtra často označuje ako technika „posuvných okien“.

Výstup z filtrov, ktoré sa pohybujú po celom vstupnom obrázku, je dvojrozmerné pole predstavujúce celý obrázok. Toto pole sa nazýva a "mapa funkcií".

Prečo sú konvolúcie nevyhnutné

Aký je účel vytvárania konvolúcií? Konvolúcie sú nevyhnutné, pretože neurónová sieť musí byť schopná interpretovať pixely v obraze ako číselné hodnoty. Funkciou konvolučných vrstiev je previesť obraz na číselné hodnoty, ktoré dokáže neurónová sieť interpretovať a následne z nich extrahovať príslušné vzory. Úlohou filtrov v konvolučnej sieti je vytvoriť dvojrozmerné pole hodnôt, ktoré možno preniesť do neskorších vrstiev neurónovej siete, teda tých, ktoré sa naučia vzory v obraze.

Filtre a kanály

Foto: cecebur cez Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Convolutional_Neural_Network_NeuralNetworkFeatureLayers.gif)

CNN nepoužívajú iba jeden filter na učenie vzorov zo vstupných obrázkov. Používa sa viacero filtrov, pretože rôzne polia vytvorené rôznymi filtrami vedú k zložitejšej a bohatšej reprezentácii vstupného obrazu. Bežné počty filtrov pre CNN sú 32, 64, 128 a 512. Čím viac filtrov je, tým viac príležitostí má CNN preskúmať vstupné údaje a poučiť sa z nich.

CNN analyzuje rozdiely v hodnotách pixelov, aby určila hranice objektov. Na obrázku v odtieňoch šedej by CNN sledovala iba rozdiely v čiernobielom výraze od svetla k tme. Keď sú obrázky farebné, CNN berie do úvahy nielen tmu a svetlo, ale musí brať do úvahy aj tri rôzne farebné kanály – červenú, zelenú a modrú. V tomto prípade majú filtre 3 kanály, rovnako ako samotný obrázok. Počet kanálov, ktoré má filter, sa označuje ako jeho hĺbka a počet kanálov vo filtri sa musí zhodovať s počtom kanálov na obrázku.

Konvolučná neurónová sieť (CNN) architektúra

Poďme sa pozrieť na kompletnú architektúru konvolučná neurónová sieť. Konvolučná vrstva sa nachádza na začiatku každej konvolučnej siete, pretože je potrebné transformovať obrazové dáta do numerických polí. Konvolučné vrstvy však môžu nasledovať aj po iných konvolučných vrstvách, čo znamená, že tieto vrstvy môžu byť naskladané jedna na druhú. Mať viacero konvolučných vrstiev znamená, že výstupy z jednej vrstvy môžu podstúpiť ďalšie konvolúcie a môžu byť zoskupené do príslušných vzorov. Prakticky to znamená, že ako obrazové dáta postupujú cez konvolučné vrstvy, sieť začína „rozpoznávať“ zložitejšie črty obrazu.

Prvé vrstvy siete ConvNet sú zodpovedné za extrakciu funkcií nízkej úrovne, ako sú pixely, ktoré tvoria jednoduché čiary. Neskoršie vrstvy siete ConvNet tieto čiary spoja do tvarov. Tento proces prechodu z povrchovej analýzy na hĺbkovú analýzu pokračuje, kým ConvNet nerozpozná zložité tvary, ako sú zvieratá, ľudské tváre a autá.

Potom, čo dáta prejdú cez všetky konvolučné vrstvy, postupujú do husto prepojenej časti CNN. Husto prepojené vrstvy sú to, ako vyzerá tradičná dopredná neurónová sieť, séria uzlov usporiadaných do vrstiev, ktoré sú navzájom prepojené. Dáta postupujú cez tieto husto prepojené vrstvy, ktoré sa učia vzory, ktoré boli extrahované konvolučnými vrstvami, a tým sa sieť stáva schopnou rozpoznávať objekty.