Stručný průvodce konvoluční neuronovou sítí (CNN)

Úvod:

Manan Parekh
Manan Parekh

následovat

16. července 2019 * 5 min čtení

konvoluční neuronová síť (CNN nebo ConvNet) je třída hlubokých neuronových sítí, která se většinou používá k rozpoznávání obrazu, klasifikaci obrazu, detekci objektů atd.

pokroky v počítačovém vidění s hlubokým učením byly konstruovány a zdokonalovány s časem, především přes jeden konkrétní algoritmus-konvoluční neuronovou síť.

Google používá pro vyhledávání fotografií, Facebook pro jejich automatické značkování algoritmy, Amazon pro jejich doporučení produktů, a seznam pokračuje dál a dál…

s pomocí CNN, můžete udělat spoustu skvělých věcí, jako je, udělal jsem ručně psaný model rozpoznávání číslic, který předpovídá číslici v obraze s 98.82% přesnost.

Bonus:

kód -> https://github.com/UPPERCASEGUY/CNN-implementation

můžete také vytvořit své skvělé modely s malou pomocí v koncepcích týkajících se CNN. Tento blog začne budovat vaše koncepty o CNN a je dobré jít!

konvoluční neuronové sítě:

klasifikace obrazu je úkolem pořízení vstupního obrazu a výstupu třídy nebo pravděpodobnosti tříd, které nejlépe popisují obraz. V CNN bereme obrázek jako vstup, přikládáme důležitost jeho různým aspektům / vlastnostem v obraze a dokážeme se odlišit od sebe. Předběžné zpracování požadované v CNN je mnohem menší ve srovnání s jinými klasifikačními algoritmy.

klasická CNN klasifikace mezi psem a kočkou

Architektura:

maticová reprezentace obrazu.

počítače nemohou vidět věci jako my, pro počítače obraz není nic jiného než matice.

CNN má obvykle tři vrstvy: konvoluční vrstvu, sdružující vrstvu a plně propojenou vrstvu.

různé vrstvy v CNN

konvoluční vrstva:

jsem si docela jistý, že jste ve svém životě narazili na slovo „konvoluce“ a zde se význam nemění. Ano! máte pravdu, tato vrstva je o konvolvování objektů na sebe. Konvoluční vrstva je základním stavebním kamenem CNN. Nese hlavní část výpočetní zátěže sítě.

hlavním cílem konvoluce je extrahovat prvky, jako jsou hrany, barvy, rohy ze vstupu. Jak jdeme hlouběji do sítě, Síť začne identifikovat složitější funkce, jako jsou tvary,číslice, části obličeje.

Convoluting 5x5x1 image with a 3x3x1 jader to get a 3x3x1 convolved feature

tato vrstva provádí bodový produkt mezi dvěma maticemi, kde jedna matice (známá jako filtr / jádro)je sada naučitelných parametrů a druhá matice je omezená část obrazu.

pokud je obraz RGB, filtr bude mít menší výšku a šířku ve srovnání s obrázkem, ale bude mít stejnou hloubku (výška x šířka x 3) Jako obrázek.

pro RGB obrazy lze konvolvující část vizualizovat následovně:

konvoluční operace na obrazové matici MxNx3 s jádrem 3x3x3

na konci procesu konvoluce máme doporučenou matici, která má menší parametry(rozměry) než skutečný obraz a jasnější vlastnosti než skutečný. Takže teď budeme od nynějška pracovat s naší doporučenou maticí.

Sdružovací Vrstva:

tato vrstva slouží výhradně ke snížení výpočetního výkonu potřebného pro zpracování dat. To se provádí snížením rozměrů doporučené matice ještě více. V této vrstvě se snažíme vytěžit dominantní prvky z omezeného množství okolí. Ujasněme si to na příkladu.

pooling vrstva

oranžová matice je naše představoval matice, hnědá je pooling jádro a dostaneme naši modrou matici jako výstup po pooling je hotovo. Takže tady děláme maximum ze všech čísel, která jsou v oblasti sdružování, a pokaždé přesouváme oblast sdružování, abychom zpracovali další sousedství matice.

existují dva typy technik sdružování: průměrné sdružování a maximální sdružování.

rozdíl mezi těmito dvěma je, že v průměrném sdružování bereme průměr všech hodnot oblasti sdružování a v maximálním sdružování bereme maximum ze všech hodnot ležících uvnitř oblasti sdružování.

takže po sloučení vrstvy máme matici obsahující hlavní rysy obrazu a tato matice má ještě menší rozměry, což v dalším kroku hodně pomůže.

plně připojená vrstva:

až dosud jsme neudělali nic o klasifikaci různých obrázků, to, co jsme udělali, je zvýrazněno některé funkce v obrázku a drasticky zmenšuje rozměry obrázku.

plně propojená vrstva uvnitř CNN

od této chvíle budeme vlastně dělat klasifikační proces.

Nyní, když jsme převedli náš vstupní obraz do vhodné formy pro naši víceúrovňovou plně propojenou architekturu, vyrovnáme obraz do jednoho sloupcového vektoru. Zploštělý výstup je přiváděn do předávací neuronové sítě a backpropagace aplikované na každou iteraci tréninku. Přes řadu epoch, model může rozlišovat mezi dominujícími a určitými nízkoúrovňovými rysy v obrazech a klasifikovat je.

souhrn:

  1. zadejte vstupní obraz do konvoluční vrstvy.
  2. vezměte konvoluci s doporučenými jádry / filtry.
  3. pro zmenšení rozměrů použijte sdružovací vrstvu.
  4. přidejte tyto vrstvy vícekrát.
  5. vyrovnejte výstup a přivádějte do plně připojené vrstvy.
  6. nyní trénujte model s backpropagací pomocí logistické regrese.

a vytvořili jste svou konvoluční neuronovou síť.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.