Articles

Konvoluční Neuronové Sítě Model Inovace pro Klasifikaci Snímku

Tweet share Podělte

Naposledy Aktualizován dne 5. července 2019

Jemný Úvod do Novinek v LeNet, AlexNet, VGG, Vzniku, a ResNet Konvoluční Neuronové Sítě.

Konvoluční neuronové sítě se skládá ze dvou velmi jednoduchých prvků, tj. konvoluční vrstvy a sdružování vrstev.

přestože je to jednoduché, existují téměř nekonečné způsoby, jak tyto vrstvy uspořádat pro daný problém s počítačovým viděním.,

naštěstí existují společné vzory pro konfiguraci těchto vrstev a architektonické inovace, které můžete použít k rozvoji velmi hlubokých konvolučních neuronových sítí. Studium těchto architektonických návrhových rozhodnutí vyvinutých pro nejmodernější úlohy klasifikace obrazu může poskytnout jak zdůvodnění, tak intuici, jak tyto návrhy používat při navrhování vlastních hlubokých konvolučních neuronových síťových modelů.

V tomto návodu, objevíte klíč architektury milníky pro použití konvoluční neuronové sítě pro náročné klasifikace obrazu problémy.,

Po dokončení tohoto kurzu budete vědět:

  • Jak vzor počtu filtry a filtrační velikosti při provádění konvoluční neuronové sítě.
  • jak uspořádat konvoluční a sdružující vrstvy v jednotném vzoru pro vývoj dobře fungujících modelů.
  • jak používat modul inception a zbytkový modul pro rozvoj mnohem hlubších konvolučních sítí.

Kick-start svůj projekt s mou novou knihu hluboké učení pro počítačové vidění, včetně krok za krokem tutoriály a soubory zdrojového kódu Python pro všechny příklady.

začněme.,

  • aktualizace Apr / 2019: opravený popis velikostí filtrů pro LeNet (díky Huang).

Návod Přehled

Tento výukový program je rozdělen do šesti částí; jsou to:

  1. Architektonický Design pro CNNs
  2. LeNet-5
  3. AlexNet
  4. VGG
  5. Založení a GoogLeNet
  6. Zbytková Síť nebo ResNet

Architektonický Design pro CNNs

prvky konvoluční neuronové sítě, jako jsou konvoluční a sdružování vrstev, jsou relativně jednoduché na pochopení.,

náročná část využití konvolučních neuronových sítí v praxi je, jak navrhnout modelové architektury, které nejlépe využívají tyto jednoduché prvky.

užitečným přístupem k učení, jak navrhnout efektivní konvoluční architektury neuronových sítí, je studium úspěšných aplikací. To je obzvláště jednoduché kvůli intenzivnímu studiu a aplikaci CNNs v letech 2012 až 2016 pro výzvu vizuálního rozpoznávání ImageNet ve velkém měřítku nebo ILSVRC., Tato výzva vyústila v rychlý pokrok v stavu techniky pro velmi těžké počítačové vidění úkolů a rozvoj obecné inovace architektura konvoluční neuronové sítě modelů.

začneme s LeNet-5, která je často popisován jako první úspěšné a důležité aplikace CNNs před ILSVRC, pak se podívejte na čtyři různé vítězné architektonické inovace pro konvoluční neuronové sítě vyvinut pro ILSVRC, a to, AlexNet, VGG, Vzniku, a ResNet.,

Tím, že pochopení těchto milník modely a jejich architektury nebo architektonických inovací z vysoké úrovni, budete rozvíjet porozumění pro použití těchto architektonických prvků v moderních aplikací CNN v počítačové vidění, a musí být schopen identifikovat a vybrat architektury prvky, které mohou být užitečné v designu z vašich vlastních modelů.

chcete výsledky s hlubokým učením pro počítačové vidění?

Vezměte si zdarma 7denní e-mailový crash kurz nyní (se vzorovým kódem).,

kliknutím se zaregistrujete a získáte také bezplatnou verzi PDF Ebook kurzu.

Stáhněte si ZDARMA Mini-Kurz,

LeNet-5

Možná, že první široce známá a úspěšná aplikace konvoluční neuronové sítě byl LeNet-5, popsal Yann LeCun, et al. ve svém příspěvku z roku 1998 s názvem „gradient-Based Learning Applied to Document Recognition“ (získejte PDF).

tento systém byl vyvinutý pro použití v ručně rozpoznávání znaků problém a prokázána na MNIST standardní dataset, dosažení přibližně 99.,2% přesnost klasifikace(nebo 0,8% chybovost). Síť byla poté popsána jako centrální Technika v širším systému označovaném jako graf transformátorové sítě.

je to dlouhý papír a možná nejlepší část, na kterou se zaměřit, je Oddíl II. B. který popisuje architekturu LeNet-5. V sekci, papír popisuje síť jako mít sedm vrstev se vstupními obrazy ve stupních šedi, které mají tvar 32×32, Velikost obrázků v datovém souboru MNIST.

model navrhuje vzor konvoluční vrstvy následovaný průměrnou vrstvou sdružování, označovanou jako subsamplingová vrstva., Tento vzor se opakuje dva a půlkrát, než jsou mapy výstupních funkcí zploštělé a přiváděny do řady plně připojených vrstev pro interpretaci a konečnou předpověď. Obrázek síťové architektury je uveden v článku a reprodukován níže.

Architektura LeNet-5 Konvoluční Neuronové Sítě pro Vlastnoručním Rozpoznávání Znaků (převzato od roku 1998 papír).,

vzor bloky konvoluční vrstvy a sdružování vrstev seskupeny dohromady a opakované zůstává společný vzor v navrhování a pomocí konvoluční neuronové sítě dnes, více než dvacet let později.

je zajímavé, že architektura používá jako první skrytou vrstvu malý počet filtrů, konkrétně šest filtrů o velikosti 5×5 pixelů., Po sdružování (tzv. podvzorkování vrstva), další konvoluční vrstva má mnoho dalších filtrů, opět s menší velikostí, ale menší než před konvoluční vrstvy, konkrétně 16 filtry o velikosti 5×5 pixelů, následuje opět sdružování. Při opakování těchto dvou bloků konvoluce a sdružování vrstev je trendem zvýšení počtu filtrů.

ve Srovnání s moderní aplikací, počet filtrů je také malý, ale trend zvyšování počtu filtry s hloubkou sítě také zůstává společný vzor v moderním použití techniky.,

zploštění funkce mapy a interpretace a klasifikace extrahované rysy plně propojené vrstvy také zůstává společný vzor dnes. V moderní terminologii, konečná část architektury je často označována jako klasifikátor, zatímco konvoluční a sdružovací vrstvy dříve v modelu jsou označovány jako extraktor funkcí.

můžeme shrnout klíčové aspekty architektury relevantní v moderních modelech takto:

  • vstupní obrázky s pevnou velikostí.
  • skupina konvoluční a sdružování vrstev do bloků.,
  • opakování konvolučních spojovacích bloků v architektuře.
  • zvýšení počtu filtrů s hloubkou sítě.
  • distinct extraction feature and classifier parts of the architecture.

AlexNet

práce, která snad mohla být připsána jiskření obnovený zájem o neuronové sítě a začátek dominance hluboké učení v mnoha počítačového vidění žádostí byl v roce 2012 papír Alex Krizhevsky, et al. s názvem “ klasifikace ImageNet s hlubokými Konvolučními neuronovými sítěmi.,“

článek popisuje model později označovaný jako „AlexNet“ určený k řešení výzvy vizuálního rozpoznávání ve velkém měřítku ImageNet nebo soutěže ILSVRC-2010 o klasifikaci fotografií objektů do jedné z 1000 různých kategorií.

ILSVRC byla soutěž, která se konala v letech 2011 až 2016, jejímž cílem bylo podpořit inovace v oblasti počítačového vidění. Před vývojem AlexNet byl úkol považován za velmi obtížný a daleko za schopnost moderních metod počítačového vidění., AlexNet úspěšně prokázat schopnost konvoluční neuronové sítě model v doméně, a zapálil oheň, který vyústil v mnoho dalších vylepšení a novinek, mnoho prokázána na stejné ILSVRC úkol v následujících letech. Obecněji, papír ukázal, že je možné rozvíjet hluboké a efektivní end-to-end modely pro náročné problém bez použití bez dozoru pretraining techniky, které byly v té době populární.

důležité v designu AlexNet byla sada metod, které byly nové nebo úspěšné, ale v té době nebyly široce přijaty., Nyní se staly požadavky při použití CNNs pro klasifikaci obrazu.

AlexNet využil opraveny lineární aktivační funkce ReLU nebo, jako nonlinearly po každém konvoluční vrstvy, namísto S-tvaru funkce, jako jsou logistické nebo tanh, které byly běžné až do tohoto bodu. Ve výstupní vrstvě byla také použita aktivační funkce softmax, která je nyní základem pro klasifikaci více tříd s neuronovými sítěmi.,

průměr sdružování používá v LeNet-5 byl nahrazen max pooling způsob, i když v tomto případě, překrývající sdružování bylo zjištěno, že předčí non-překrývajících sdružování, které je dnes běžně používané (např. kroku sdružování provozu je stejné velikosti jako sdílení operace, např. 2 o 2 pixely). Na adresu overfitting, nově navrhované vypuštění byla použita metoda mezi plně propojené vrstvy třídění součástí modelu ke zlepšení generalizace chyby.

Architektura AlexNet je hluboká a rozšiřuje se na některé vzory vytvořené pomocí LeNet-5., Obrázek níže, převzatý z papíru, shrnuje architekturu modelu, v tomto případě je rozdělen na dvě potrubí, aby se trénoval na hardware GPU té doby.

Architektura AlexNet Konvoluční Neuronové Sítě pro Objekt Photo Klasifikace (převzato z 2012 papír).

model má pět konvoluční vrstvy v feature extraction část modelu a tři plně propojené vrstvy v třídění součástí modelu.

vstupní obrázky byly fixovány na velikost 224×224 se třemi barevnými kanály., Z hlediska počtu filtry používané v každý konvoluční vrstva, vzor pro zvýšení počtu filtrů s hloubkou vidět v LeNet byl většinou dodržován, v tomto případě, rozměry: 96, 256, 384, 384, a 256. Podobně byl použit vzor snížení velikosti filtru (jádra) s hloubkou, počínaje menší velikostí 11×11 a klesající na 5×5 a poté na 3×3 v hlubších vrstvách. Použití malých filtrů, jako jsou 5×5 a 3×3, je nyní normou.,

na začátku a na konci detekční části modelu byl použit vzor konvoluční vrstvy následovaný sdružovací vrstvou. Zajímavé je, že byl použit vzor konvoluční vrstvy následovaný okamžitě druhou konvoluční vrstvou. Tento vzor se také stal moderním standardem.

model byl vyškolen s daty prsou, uměle zvyšuje velikost školení dataset a dát modelu větší příležitost dozvědět se o stejné vlastnosti v různých směrech.,

můžeme shrnout klíčové aspekty architektury relevantní v moderní modely takto:

  • Použití aktivační funkce ReLU po konvoluční vrstvy a softmax pro výstupní vrstvu.
  • použití Max Pooling namísto průměrného sdružování.
  • použití regularizace výpadku mezi plně připojenými vrstvami.
  • vzor konvoluční vrstvy přiváděné přímo do jiné konvoluční vrstvy.
  • použití zvětšení dat.,

vgg

vývoj hlubokých konvolučních neuronových sítí pro úlohy počítačového vidění se po Alexnetovi jevil jako trochu temné umění.

důležitou práci, který se snaží standardizovat návrh architektury pro hluboké konvoluční sítě a rozvíjet mnohem hlubší a výkonnější modely v procesu byl v roce 2014 knihu s názvem „Velmi Hluboké Konvoluční Sítě pro Velké Rozpoznávání Obrazu“ od Karen Simonyan a Andrew Zisserman.

jejich architektura je obecně označována jako VGG po názvu jejich laboratoře, skupiny vizuální geometrie v Oxfordu., Jejich model byl vyvinut a demonstrován stejněilsvrc soutěž, v tomto případě verze ilsvrc-2014 výzvy.

první důležitý rozdíl, který se stal de facto standardem je použití velkého počtu malých filtrů. Konkrétně, filtry s velikost 3×3 a 1×1 s krokem jedna, liší od velké filtry v LeNet-5 a menší, ale stále poměrně velké filtry a velký krok čtyři v AlexNet.,

Max pooling vrstvy se používají poté, co většina, ale ne všechny, konvoluční vrstvy, učení z příkladu v AlexNet, ale všechny sdružování se provádí s rozměry 2×2 a na stejný krok, který také se stal de facto standardem. Konkrétně sítě VGG používají příklady dvou, tří a dokonce čtyř konvolučních vrstev naskládaných dohromady před použitím vrstvy max pooling. Důvodem bylo, že skládané konvoluční vrstvy s menšími filtry přibližují účinek jedné konvoluční vrstvy s filtrem větší velikosti, např., tři naskládané konvoluční vrstvy s filtry 3×3 přibližují jednu konvoluční vrstvu filtrem 7×7.

dalším důležitým rozdílem je velmi velký počet použitých filtrů. Počet filtrů se zvyšuje s hloubkou model, i když začíná na poměrně velký počet 64 a zvyšuje prostřednictvím 128, 256 a 512 filtry na konci funkce extrakce součástí modelu.

byla vyvinuta a vyhodnocena řada variant architektury, ačkoli dva jsou označovány nejčastěji vzhledem k jejich výkonu a hloubce., Jsou pojmenovány podle počtu vrstev: jsou to VGG-16 a VGG-19 pro 16 a 19 naučených vrstev.

Níže je tabulka převzata z papíru; poznámka: dva pravé sloupce označující konfigurace (počet filtry) používané v VGG-16 a VGG-19 verze architektury.

Architektura VGG Konvoluční Neuronové Sítě pro Objekt Photo Klasifikace (převzato z 2014 papíru).,

návrh rozhodnutí v VGG modely se staly výchozím bodem pro jednoduché a přímé použití konvoluční neuronové sítě obecně.

a Konečně, VGG práce byla mezi prvními, uvolnit cenný model závaží pod permisivní licencí, která vedla k trend mezi hluboké učení, počítačové vidění výzkumných pracovníků. To zase vedlo k těžkému využití předem vyškolených modelů, jako je VGG v transfer learning jako výchozí bod pro nové úkoly počítačového vidění.,

můžeme shrnout klíčové aspekty architektury relevantní v moderních modelech takto:

  • použití velmi malých konvolučních filtrů, např.
  • použití max pooling o velikosti 2×2 a kroku stejných rozměrů.
  • důležitost stohování konvolučních vrstev dohromady před použitím sdružovací vrstvy k definování bloku.
  • dramatické opakování konvolučního sdružovacího bloku.
  • vývoj velmi hlubokých (16 a 19 vrstev) modelů.,

Založení a GoogLeNet

Důležité inovace v použití konvoluční vrstvy byly navrženy v roce 2015 papíru Christian Szegedy, et al. s názvem “ jít hlouběji s konvolucí.“

V novinách, autoři navrhují architekturu, která je označována jako počátek (nebo vzniku v1 odlišit ji od rozšíření) a konkrétní model s názvem GoogLeNet, které dosáhly nejlepších výsledků v roce 2014 verze ILSVRC výzvu.

klíčová inovace na modelech inception se nazývá modul inception., Toto je blok paralelní konvoluční vrstvy s různě velkých filtrů (např. 1×1, 3×3, 5×5) a 3×3 max pooling vrstvy, jejichž výsledky jsou pak spojeny. Níže je uveden příklad modulu inception převzatého z papíru.

příklad modulu Naive Inception (převzato z papíru 2015).

problém s naivní provádění vzniku modelu je, že počet filtrů (hloubka nebo programy) začíná budovat rychle, a to zejména při vzniku moduly jsou naskládány.,

provádění konvolucí s většími velikostmi filtrů (např. 3 a 5) může být výpočetně nákladné na velkém počtu filtrů. K řešení tohoto problému se používají konvoluční vrstvy 1×1 ke snížení počtu filtrů v modelu inception. Konkrétně před konvolučními vrstvami 3×3 a 5×5 a po sdružovací vrstvě. Obrázek níže pořízený z papíru ukazuje tuto změnu na modul inception.

příklad modulu Inception s redukcí dimenzionality(převzato z papíru 2015).,

druhým důležitým konstrukčním rozhodnutím v modelu inception bylo připojení výstupu v různých bodech modelu. Toho bylo dosaženo vytvořením malých výstupních sítí mimo natáčení z hlavní sítě, které byly vyškoleny k předpovědi. Záměrem bylo poskytnout další chybový signál z klasifikačního úkolu v různých bodech hlubokého modelu, aby se vyřešil problém mizejících gradientů. Tyto malé výstupní sítě byly poté odstraněny po tréninku.,

Níže ukazuje, natočená verze (zleva doprava pro vstup-výstup) architektury GoogLeNet model převzat z papíru pomocí Vzniku moduly z vstup, vlevo výstup, třídění na pravé a dvě další výstupní sítě, které byly použity pouze během tréninku.

Architektura modelu GoogLeNet použitého během tréninku pro klasifikaci objektů (převzato z papíru 2015).,

Zajímavé je, že překrývající se max sdružování byl použit a velký průměr sdružování operace bylo použito na konci funkce extrakce součástí modelu před klasifikátor část modelu.

můžeme shrnout klíčové aspekty architektury relevantní v moderních modelech takto:

  • vývoj a opakování modulu Inception.
  • těžké použití konvoluce 1×1 ke snížení počtu kanálů.
  • použití zpětné vazby chyb na více místech v síti.
  • vývoj velmi hlubokých (22vrstvých) modelů.,
  • použití globálního průměrného sdružování pro výstup modelu.

zbytková síť nebo ResNet

konečná důležitá inovace v konvolučních neuronových sítích, kterou přezkoumáme, byla navržena společností Kaiming He, et al. ve svém příspěvku z roku 2016 s názvem „hluboké Zbytkové učení pro rozpoznávání obrazu.“

V příspěvku autoři navrhli velmi hluboký model nazvaný zbytková síť, nebo zkráceně ResNet, jehož příklad dosáhl úspěchu ve verzi 2015 ilsvrc challenge.

jejich model měl působivých 152 vrstev., Klíčem k návrhu modelu je myšlenka zbytkových bloků, které využívají spojení zástupců. Jedná se jednoduše o připojení v síťové architektuře, kde je vstup udržován tak, jak je (není vážený) a předán hlubší vrstvě, např. přeskočení další vrstvy.

zbytkový blok je vzor dvou konvolučních vrstev s aktivací ReLU, kde je výstup bloku kombinován se vstupem do bloku, např. Předpokládaná verze vstupu použitého přes 1×1, pokud je tvar vstupu do bloku odlišný od výstupu bloku, tzv., Tyto jsou označovány jako předpokládané zástupce připojení, oproti neváženému nebo totožnost zástupce připojení.

autoři začít s tím, co říkají obyčejné sítě, což je VGG-inspiroval hluboké konvoluční neuronové sítě s malými filtry (3×3), seskupeny konvoluční vrstvy následoval žádné spojení mezi nimi a průměrnou sdružování na konci funkce detektoru součástí modelu před plně připojen výstupní vrstva s softmax aktivační funkci.,

prostá síť je upravena tak, aby se stala zbytkovou sítí přidáním zkratových připojení, aby bylo možné definovat zbytkové bloky. Typicky je tvar vstupu pro připojení zástupce stejné velikosti jako výstup zbytkového bloku.

obrázek níže byl převzat z papíru a zleva doprava porovnává architektura VGG model, prostý konvoluční model a verze prostý konvoluční se zbytkovou moduly, tzv. reziduální sítě.,

Architektura Zbytkové sítě pro klasifikaci objektů (převzato z papíru 2016).

můžeme shrnout klíčové aspekty architektury relevantní v moderní modely takto:

  • Použití zástupce připojení.
  • vývoj a opakování zbytkových bloků.
  • vývoj velmi hlubokých (152vrstvých) modelů.

další čtení

tato část poskytuje více zdrojů na toto téma, pokud chcete jít hlouběji.,

papíry

  • gradient-based learning applied to document recognition, (PDF) 1998.
  • klasifikace ImageNet s hlubokými Konvolučními neuronovými sítěmi, 2012.
  • velmi hluboké konvoluční sítě pro rozpoznávání obrazu ve velkém měřítku, 2014.
  • jít hlouběji s konvolucí, 2015.
  • Hluboké Zbytkové Učení pro Rozpoznávání Obrazu, 2016

API

  • Keras Aplikací API

Články

  • 9 Hluboké Učení Papíry, co Potřebujete Vědět O
  • Jednoduchý Průvodce pro Verze Vzniku Sítě, 2018.,
  • architektury CNN: LeNet, AlexNet, VGG, GoogLeNet, ResNet a další., 2017.

Shrnutí

V tomto tutoriálu, se objevili klíč architektury milníky pro použití konvoluční neuronové sítě pro náročné klasifikace obrazu.

Konkrétně, jste se naučili,

  • Jak vzor počtu filtry a filtrační velikosti při provádění konvoluční neuronové sítě.
  • jak uspořádat konvoluční a sdružující vrstvy v jednotném vzoru pro vývoj dobře fungujících modelů.,
  • jak používat modul inception a zbytkový modul pro rozvoj mnohem hlubších konvolučních sítí.

máte nějaké dotazy?
Ptejte se v komentářích níže a já se budu snažit odpovědět.

vyvinout hluboké modely učení pro vidění dnes!

Vytvořte si vlastní modely vidění během několika minut

…,s jen pár řádků v pythonu kód,

Zjistit, jak můj nový Ebook:
Hluboké Učení pro Počítačové Vidění

To poskytuje self-studovat návody na témata, jako jsou:
klasifikace, detekce objektů (yolo a rcnn), face recognition (vggface a facenet), příprava dat a mnohem více…

konečně přinést hluboké učení na vaše vize projekty

přeskočit akademiky. Jen Výsledky.

podívejte se, co je uvnitř

Tweet Share