Konvoluční neuronové sítě (CNN): Úvod

Konvoluční neuronové sítě nabízejí škálovatelnější způsob rozpoznávání objektů a klasifikace obrázků.

Ve světě technologií dochází k mnoha pokrokům. Umělá inteligence a strojové učení jsou některé běžné, které můžete často slyšet.

V současné době se tyto technologie používají téměř ve všech oblastech, od marketingu, eCommerce a vývoje softwaru až po bankovnictví, finance a medicínu.

Umělá inteligence a ML jsou rozsáhlé obory a vyvíjejí se snahy o rozšíření jejich aplikací, aby bylo možné vyřešit mnoho problémů v reálném světě. To je důvod, proč jste v těchto technologiích mohli vidět mnoho větví; ML je podmnožinou samotné AI.

Konvoluční neuronové sítě jsou jednou z větví umělé inteligence, která se v dnešní době stává populární.

V tomto článku budu diskutovat o tom, co jsou CNN, jak fungují a jejich užitečnost v moderním světě.

Pojďme se rovnou ponořit!

Co je konvoluční neuronová síť?

Konvoluční neuronová síť (ConvNet nebo CNN) je umělá neuronová síť (ANN), která využívá algoritmy hlubokého učení k analýze obrázků, klasifikaci vizuálů a provádění úloh počítačového vidění.

CNN využívá principy lineární algebry, jako je násobení matic, pro detekci vzorů v obraze. Protože tyto procesy zahrnují složité výpočty, vyžadují grafické procesorové jednotky (GPU) pro trénování modelů.

Jednoduše řečeno, CNN používá algoritmy Deep Learning k převzetí vstupních dat, jako jsou obrázky, a přiřazení důležitosti ve formě zkreslení a naučitelných vah různým aspektům tohoto obrázku. Tímto způsobem může CNN rozlišovat mezi obrázky nebo je klasifikovat.

CNN: Stručná historie

Protože konvoluční neuronová síť je umělá neuronová síť, je důležité neuronové sítě opakovat.

Ve výpočtech je neuronová síť součástí strojového učení (ML) pomocí algoritmů hlubokého učení. Je to analogické vzorcům konektivity sledovaných neurony v lidském mozku. Umělé neuronové sítě se také inspirují tím, jak je uspořádána zraková kůra.

Pro různé účely se tedy používají různé typy neuronových sítí nebo umělé neuronové sítě (ANN). Jedním z nich je CNN používaný pro detekci a klasifikaci obrazu a další. Zavedl ji postdoktorandský výzkumník Yann LeCun v 80. letech 20. století.

Raná verze CNN – LeNet, pojmenovaná po LeCunovi, byla schopna rozpoznávat ručně psané číslice. Poté se používal v bankovnictví a poštovních službách pro čtení číslic na šekech a PSČ psaných na obálkách.

Nicméně, tato raná verze postrádala měřítko; proto se CNN v umělé inteligenci a počítačovém vidění příliš nepoužívaly. Také to vyžadovalo značné výpočetní zdroje a data pro efektivnější práci s většími obrázky.

Kromě toho v roce 2012 AlexNet přehodnotil hluboké učení, které využívá neuronové sítě skládající se z více vrstev. Přibližně v této době se technologie zlepšila a byly k dispozici velké soubory dat a těžké výpočetní zdroje, které umožnily vytvoření komplexních CNN schopných efektivně provádět činnosti počítačového vidění.

Vrstvy v CNN

Pojďme pochopit různé vrstvy v CNN. Zvýšení vrstev v CNN zvýší jeho složitost a umožní mu detekovat více aspektů nebo oblastí obrazu. Počínaje jednoduchou funkcí je schopen detekovat složité prvky, jako je tvar objektu a větší prvky, až nakonec dokáže detekovat obraz.

Konvoluční vrstva

První vrstva CNN je konvoluční vrstva. Je to hlavní stavební kámen CNN, kde probíhá většina výpočtů. Potřebuje méně komponent, jako jsou vstupní data, mapa prvků a filtr.

CNN může mít také další konvoluční vrstvy. Díky tomu je struktura CNN hierarchická, protože následující vrstvy mohou vizualizovat pixely v přijímacích polích předchozích vrstev. Dále konvoluční vrstvy transformují daný obrázek na číselné hodnoty a umožňují síti porozumět a extrahovat cenné vzory.

Sdružování vrstev

Sdružovací vrstvy se používají ke zmenšení rozměrů a nazývají se downsampling. Snižuje parametry použité ve vstupu. Operace sdružování může přesunout filtr přes celý vstup, jako je konvoluční vrstva, ale postrádá váhy. Zde filtr použije společnou funkci na číselné hodnoty v receptivním poli, aby se naplnilo pole výsledků.

Sdružování má dva typy:

  • Průměrné sdružování: Průměrná hodnota se vypočítává v přijímacím poli, které filtr přenese přes vstup a přenese do výstupního pole.
  • Max sdružování: Vybere maximální hodnotu pixelu a odešle ji do výstupního pole, když filtr přejde přes vstup. Maximální sdružování se používá více než průměrné sdružování.

Přestože při sdružování dochází ke ztrátě významných dat, stále nabízí CNN mnoho výhod. Pomáhá snižovat rizika nadměrné montáže a složitost a zároveň zvyšuje efektivitu. To také zvyšuje stabilitu CNN.

Plně připojená (FC) vrstva

Jak název napovídá, všechny uzly ve výstupní vrstvě jsou přímo připojeny k uzlu předchozí vrstvy v plně propojené vrstvě. Klasifikuje obrázek na základě extrahovaných prvků prostřednictvím předchozích vrstev spolu s jejich filtry.

Kromě toho FC vrstvy obecně používají funkci aktivace softmax pro správnou klasifikaci vstupů místo funkcí ReLu (jako v případě sdružování a konvolučních vrstev). To pomáhá vytvořit pravděpodobnost 0 nebo 1.

Jak CNN fungují?

Konvoluční neuronová síť se skládá z mnoha vrstev, dokonce i stovek z nich. Tyto vrstvy se učí identifikovat různé rysy daného obrázku.

Ačkoli jsou CNN neuronové sítě, jejich architektura se liší od běžných ANN.

Ten vkládá vstup přes mnoho skrytých vrstev, aby jej transformoval, kde každá vrstva je vytvořena se sadou umělých neuronů a je plně propojena s každým neuronem ve stejné vrstvě. Konečně je tu plně propojená vrstva nebo výstupní vrstva pro zobrazení výsledku.

Na druhou stranu CNN organizuje vrstvy do tří rozměrů – šířka, hloubka a výška. Zde se vrstva z neuronu spojuje pouze s neurony v malé oblasti namísto toho, aby se vztahovala ke každému z nich v další vrstvě. Nakonec je konečný výsledek reprezentován jediným vektorem s pravděpodobnostním skóre a má pouze hloubkový rozměr.

Nyní se můžete zeptat, co je „konvoluce“ v CNN.

Konvoluce se týká matematické operace ke sloučení dvou datových sad. V CNN je koncept konvoluce aplikován na vstupní data pro výstup mapy rysů pomocí filtrování informací.

To nás přivádí k některým důležitým pojmům a terminologiím používaným v CNN.

  • Filtr: Také známý jako detektor funkcí nebo jádro, filtr může mít určitý rozměr, například 3×3. Prochází vstupní obraz a provádí násobení matice pro každý prvek, aby se použila konvoluce. Aplikování filtrů na každý tréninkový obrázek v různých rozlišeních plus výstup konvolvovaného obrázku bude fungovat jako vstup pro následující vrstvu.
  • Padding: Používá se k rozšíření vstupní matice k hranicím matice vložením falešných pixelů. Je to provedeno proti skutečnosti, že konvoluce snižuje velikost matice. Například matice 9×9 se po filtrování může změnit na matici 3×3.
  • Krokování: Pokud chcete získat výstup menší než váš vstup, můžete provést krokování. Umožňuje přeskakování určitých oblastí, zatímco filtr klouže po obrázku. Vynecháním dvou nebo tří pixelů můžete vytvořit efektivnější síť snížením prostorového rozlišení.
  • Váhy a zkreslení: CNN mají ve svých neuronech váhy a zkreslení. Model se může tyto hodnoty naučit během tréninku a hodnoty zůstávají stejné v celé dané vrstvě pro všechny neurony. To znamená, že každý skrytý neuron detekuje stejné rysy v různých oblastech obrazu. V důsledku toho se síť stává tolerantnější při převádění objektů do daného obrázku.
  • ReLU: znamená Rectified Linear Unit (ReLu) a používá se pro efektivnější a rychlejší trénink. Mapuje záporné hodnoty na 0 a udržuje kladné hodnoty. Nazývá se to také aktivace, protože síť přenáší pouze aktivované vlastnosti obrazu do následující vrstvy.
  • Receptivní pole: V neuronové síti dostává každý neuron vstup z různých míst z předchozí vrstvy. A v konvolučních vrstvách každý neuron přijímá vstup pouze z omezené oblasti předchozí vrstvy, nazývané receptivní pole neuronu. V případě FC vrstvy je receptivním polem celá předchozí vrstva.

Ve výpočetních úlohách v reálném světě se konvoluce obvykle provádí v 3D obrazu vyžadujícím 3D filtr.

Když se vrátíme k CNN, obsahuje různé části nebo vrstvy uzlů. Každá vrstva uzlu má práh a váhu a je spojena s další. Po překročení prahového limitu jsou data odeslána do další vrstvy v této síti.

Tyto vrstvy mohou provádět operace ke změně dat, aby se naučily relevantní funkce. Tyto operace také opakují stovky různých vrstev, které se neustále učí detekovat další vlastnosti obrazu.

Části CNN jsou:

  • Vstupní vrstva: Zde se odebírá vstup, například obrázek. Bude to 3D objekt s definovanou výškou, šířkou a hloubkou.
  • Jedna/více skrytých vrstev nebo fáze extrakce prvků: tyto vrstvy mohou být konvoluční vrstvou, sdružovací vrstvou a plně spojenou vrstvou.
  • Výstupní vrstva: Zde se zobrazí výsledek.

Průchod obrazu konvoluční vrstvou se přemění na mapu prvků nebo aktivační mapu. Po konvoluci vstupu vrstvy konvolují obraz a předávají výsledek následující vrstvě.

CNN provede mnoho konvolucí a technik sdružování k detekci prvků během fáze extrakce prvků. Pokud například vložíte obrázek kočky, CNN rozpozná její čtyři nohy, barvu, dvě oči atd.

Dále budou plně propojené vrstvy v CNN fungovat jako klasifikátor extrahovaných prvků. Na základě toho, co o obrázku předpověděl algoritmus hlubokého učení, by vrstvy přinesly výsledek.

Výhody CNN

Vyšší přesnost

CNN nabízí vyšší přesnost než běžné neuronové sítě, které nepoužívají konvoluci. CNN jsou užitečné, zvláště když úkol zahrnuje velké množství dat, rozpoznávání videa a obrázků atd. Produkují vysoce přesné výsledky a předpovědi; proto jejich použití roste v různých odvětvích.

Výpočetní efektivita

CNN nabízejí vyšší úroveň výpočetní účinnosti než jiné běžné neuronové sítě. Je to kvůli použití procesu konvoluce. Používají také redukci rozměrů a sdílení parametrů, aby se modely rychleji a snadněji nasazovaly. Tyto techniky lze také optimalizovat pro práci na různých zařízeních, ať už jde o váš smartphone nebo notebook.

Extrakce funkcí

CNN se může snadno naučit funkce obrázku bez nutnosti ručního inženýrství. Můžete využít předtrénované CNN a spravovat váhy tak, že jim budete při práci na novém úkolu dodávat data a CNN se tomu bez problémů přizpůsobí.

Aplikace CNN

CNN se používají v různých průmyslových odvětvích pro mnoho případů použití. Některé ze skutečných aplikací CNN zahrnují:

Klasifikace obrázků

CNN se široce používají při klasifikaci obrázků. Ty dokážou rozpoznat cenné rysy a identifikovat objekty na daném obrázku. Proto se používá v odvětvích, jako je zdravotnictví, zejména MRI. Kromě toho se tato technologie používá při rozpoznávání ručně psaných číslic, což je jeden z prvních případů použití CNN v počítačovém vidění.

Detekce objektů

CNN dokáže detekovat objekty na snímcích v reálném čase a také je označit a klasifikovat. Proto je tato technika široce používána v automatizovaných vozidlech. Také umožňuje inteligentním domácnostem a chodcům rozpoznat obličej majitele vozidla. Používá se také v sledovacích systémech s umělou inteligencí k detekci a označování objektů.

Audiovizuální párování

Pomoc CNN při audiovizuálním párování pomáhá zlepšovat platformy pro streamování videa, jako je Netflix, YouTube atd. Pomáhá také plnit požadavky uživatelů, jako jsou „milostné písně od Eltona Johna“.

Rozpoznávání řeči

Kromě obrázků jsou CNN užitečné při zpracování přirozeného jazyka (NLP) a rozpoznávání řeči. Příkladem v reálném světě by mohl být Google využívající CNN ve svém systému rozpoznávání řeči.

Rekonstrukce objektu

CNN lze použít při 3D modelování reálného objektu v digitálním prostředí. Pro modely CNN je také možné vytvořit 3D model tváře pomocí obrázku. Kromě toho je CNN užitečná při vytváření digitálních dvojčat v biotechnologiích, výrobě, biotechnologiích a architektuře.

Využití CNN v různých sektorech zahrnuje:

  • Zdravotnictví: Počítačové vidění může být použito v radiologii, aby pomohlo lékařům odhalit rakovinné nádory s lepší účinností u člověka.
  • Zemědělství: Sítě mohou využívat snímky z umělých satelitů, jako je LSAT, a využívat tato data ke klasifikaci úrodné půdy. To také pomáhá předpovídat úrovně úrodnosti půdy a vyvinout účinnou strategii pro maximalizaci výnosu.
  • Marketing: Aplikace sociálních médií mohou navrhnout osobu na obrázku zveřejněném na něčím profilu. To vám pomůže označit lidi ve vašich fotoalbech.
  • Maloobchod: Platformy elektronického obchodu mohou pomocí vizuálního vyhledávání pomoci značkám doporučit relevantní položky, které si cíloví zákazníci chtějí koupit.
  • Automobilový průmysl: CNN nachází využití v automobilech ke zlepšení bezpečnosti cestujících a řidičů. Činí tak pomocí funkcí, jako je detekce čáry jízdního pruhu, detekce objektů, klasifikace obrazu atd. To také pomáhá světu samořiditelných vozů více se vyvíjet.

Zdroje k učení CNN

kurz:

Coursera má tento kurz na CNN, který můžete zvážit. Tento kurz vás naučí, jak se počítačové vidění v průběhu let vyvíjelo, a některé aplikace CNN v moderním světě.

Amazonka:

Můžete si přečíst tyto knihy a přednášky a dozvědět se více o CNN:

  • Neuronové sítě a hluboké učení: Zahrnuje modely, algoritmy a teorii hlubokého učení a neuronových sítí.
  • Průvodce konvoluční neuronovou sítí pro počítačové vidění: Tato kniha vás naučí aplikace CNN a jejich koncepty.
  • Praktické konvoluční neuronové sítě s Tensorflow: Pomocí této knihy můžete vyřešit různé problémy v počítačovém vidění pomocí Pythonu a TensorFlow.
  • Advanced Applied Deep Learning: Tato kniha vám pomůže pochopit CNN, hluboké učení a jejich pokročilé aplikace, včetně detekce objektů.
  • Konvoluční neuronové sítě a rekurentní neuronové sítě: Tato kniha vás naučí o CNN a RNN a o tom, jak tyto sítě budovat.

Závěr

Konvoluční neuronové sítě jsou jednou z nově vznikajících oblastí umělé inteligence, strojového učení a hlubokého učení. Má různé aplikace v současném světě téměř ve všech odvětvích. Při pohledu na jeho rostoucí využití se očekává, že se bude více rozšiřovat a bude užitečnější při řešení skutečných problémů.