výhonek Co jsou to CNN (konvoluční neuronové sítě)? - Spojte se.AI
Spojte se s námi
Mistrovská třída AI:

AI 101

Co jsou to CNN (konvoluční neuronové sítě)?

mm
aktualizováno on

Možná vás napadlo, jak je Facebook nebo Instagram schopen automaticky rozpoznat obličeje na obrázku nebo jak vám Google umožňuje hledat na webu podobné fotografie pouhým nahráním vlastní fotografie. Tyto funkce jsou příklady počítačového vidění a jsou poháněny konvoluční neuronové sítě (CNN). Co přesně jsou konvoluční neuronové sítě? Pojďme se hluboce ponořit do architektury CNN a pochopit, jak fungují.

Co jsou to neuronové sítě?

Než začneme mluvit o konvolučních neuronových sítích, udělejme si chvíli na definici běžné neuronové sítě. Tady je další článek na téma dostupných neuronových sítí, takže se jim zde nebudeme příliš věnovat. Abychom je však stručně definovali, jedná se o výpočtové modely inspirované lidským mozkem. Neuronová síť funguje tak, že přijímá data a manipuluje s nimi úpravou „váh“, což jsou předpoklady o tom, jak spolu vstupní funkce souvisejí s třídou objektu. Jak je síť trénována, hodnoty vah se upravují a doufejme, že se sblíží k vahám, které přesně zachycují vztahy mezi prvky.

Takto funguje dopředná neuronová síť a CNN se skládají ze dvou polovin: dopředné neuronové sítě a skupiny konvolučních vrstev.

Co jsou konvoluční neuronové sítě (CNN)?

Jaké jsou „konvoluce“, ke kterým dochází v konvoluční neuronové síti? Konvoluce je matematická operace, která vytváří sadu vah, v podstatě vytváří reprezentaci částí obrazu. Tato sada závaží je označována jako jádro nebo filtr. Vytvořený filtr je menší než celý vstupní obrázek a pokrývá pouze část obrázku. Hodnoty ve filtru se vynásobí hodnotami na obrázku. Filtr se poté přesune, aby vytvořil reprezentaci nové části obrázku, a proces se opakuje, dokud není pokryt celý obrázek.

Dalším způsobem, jak o tom přemýšlet, je představit si cihlovou zeď, kde cihly představují pixely ve vstupním obrázku. Po stěně se posouvá „okno“, což je filtr. Cihly, které jsou viditelné v okně, jsou pixely, jejichž hodnota je vynásobena hodnotami ve filtru. Z tohoto důvodu je tato metoda vytváření závaží pomocí filtru často označována jako technika „posuvných oken“.

Výstupem z filtrů, které se pohybují kolem celého vstupního obrazu, je dvourozměrné pole reprezentující celý obraz. Toto pole se nazývá a "mapa funkcí".

Proč jsou konvoluce zásadní

Jaký je vlastně účel vytváření konvolucí? Konvoluce jsou nezbytné, protože neuronová síť musí být schopna interpretovat pixely v obrázku jako číselné hodnoty. Funkcí konvolučních vrstev je převést obraz na číselné hodnoty, které neuronová síť dokáže interpretovat a následně z nich extrahovat příslušné vzory. Úkolem filtrů v konvoluční síti je vytvořit dvourozměrné pole hodnot, které lze předávat do pozdějších vrstev neuronové sítě, tedy těch, které se naučí vzory v obrázku.

Filtry A Kanály

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

CNN nepoužívají pouze jeden filtr k učení vzorů ze vstupních obrázků. Používá se více filtrů, protože různá pole vytvořená různými filtry vedou ke složitější a bohatší reprezentaci vstupního obrazu. Běžné počty filtrů pro CNN jsou 32, 64, 128 a 512. Čím více filtrů je, tím více příležitostí má CNN zkoumat vstupní data a učit se z nich.

CNN analyzuje rozdíly v hodnotách pixelů, aby určila hranice objektů. Na obrázku ve stupních šedi by se CNN podívala pouze na rozdíly v černé a bílé, od světla k tmě. Když jsou obrázky barevné, CNN bere v úvahu nejen tmu a světlo, ale musí také vzít v úvahu tři různé barevné kanály – červenou, zelenou a modrou. V tomto případě mají filtry 3 kanály, stejně jako samotný obrázek. Počet kanálů, které má filtr, se označuje jako jeho hloubka a počet kanálů ve filtru musí odpovídat počtu kanálů v obrázku.

Konvoluční neuronová síť (CNN) Architektura

Pojďme se podívat na kompletní architekturu konvoluční neuronová síť. Konvoluční vrstva se nachází na začátku každé konvoluční sítě, protože je nutné transformovat obrazová data do číselných polí. Konvoluční vrstvy však mohou také následovat po jiných konvolučních vrstvách, což znamená, že tyto vrstvy mohou být naskládány jedna na druhou. Mít více konvolučních vrstev znamená, že výstupy z jedné vrstvy mohou podstoupit další konvoluce a být seskupeny do příslušných vzorů. Prakticky to znamená, že jak obrazová data postupují konvolučními vrstvami, síť začíná „rozpoznávat“ složitější rysy obrazu.

První vrstvy ConvNet jsou zodpovědné za extrahování nízkoúrovňových funkcí, jako jsou pixely, které tvoří jednoduché čáry. Pozdější vrstvy ConvNet spojí tyto čáry dohromady do tvarů. Tento proces přechodu od analýzy na úrovni povrchu k analýze na hluboké úrovni pokračuje, dokud ConvNet nerozpozná složité tvary, jako jsou zvířata, lidské tváře a auta.

Poté, co data projdou všemi konvolučními vrstvami, postupují do hustě propojené části CNN. Hustě propojené vrstvy vypadají jako tradiční dopředná neuronová síť, řada uzlů uspořádaných do vrstev, které jsou vzájemně propojeny. Data postupují přes tyto hustě propojené vrstvy, které se učí vzory, které byly extrahovány konvolučními vrstvami, a tím se síť stává schopnou rozpoznávat objekty.