Výuka konvolučních neuronových sítí

Srp 18, 2021
admin

Umělá inteligence ušla dlouhou cestu a plynule překonává propast mezi možnostmi lidí a strojů. A datoví nadšenci po celém světě pracují na mnoha aspektech umělé inteligence a mění vize ve skutečnost – a jednou z takových úžasných oblastí je oblast počítačového vidění. Cílem tohoto oboru je umožnit a nakonfigurovat strojům, aby se na svět dívaly stejně jako lidé, a využívat tyto znalosti k několika úkolům a procesům (například rozpoznávání obrazu, analýza a klasifikace obrazu atd.). A pokrok v oblasti počítačového vidění pomocí hlubokého učení zaznamenal značný úspěch, zejména díky algoritmu konvoluční neuronové sítě.

V tomto kurzu se dozvíte:

  • Úvod do CNN
  • Co je to konvoluční neuronová síť?
  • Jak CNN rozpoznává obrázky
  • Vrstvy v CNN
  • Realizace příkladů použití pomocí CNN

Úvod do CNN

Yann LeCun, ředitel výzkumné skupiny AI společnosti Facebook, je průkopníkem konvolučních neuronových sítí. V roce 1988 vytvořil první konvoluční neuronovou síť s názvem LeNet. Síť LeNet se používala pro úlohy rozpoznávání znaků, jako je čtení poštovních směrovacích čísel a číslic.

Přemýšleli jste někdy o tom, jak funguje rozpoznávání obličejů na sociálních sítích, jak pomáhá detekce objektů při konstrukci samořízených automobilů nebo jak se provádí detekce nemocí pomocí vizuálních snímků ve zdravotnictví? To vše je možné díky konvolučním neuronovým sítím (CNN). Zde je příklad konvolučních neuronových sítí, který ilustruje, jak fungují:

Představte si, že existuje obrázek ptáka a vy chcete určit, zda je to skutečně pták, nebo nějaký jiný objekt. Nejprve do vstupní vrstvy neuronové sítě (vícevrstvé sítě používané ke klasifikaci věcí) vložíte pixely obrázku ve formě polí. Skryté vrstvy provádějí extrakci příznaků prováděním různých výpočtů a manipulací. Existuje více skrytých vrstev, například konvoluční vrstva, vrstva ReLU a vrstva sdružování, které provádějí extrakci příznaků z obrazu. Nakonec je zde plně propojená vrstva, která identifikuje objekt v obraze.

Konvoluční neuronová síť pro identifikaci obrazu ptáka

Obr: Konvoluční neuronová síť k identifikaci obrazu ptáka

Kurz hlubokého učení (s TensorFlow & Keras)

Ovládněte koncepty a modely hlubokého učeníPřehledný kurz

Kurz hlubokého učení (s TensorFlow Keras)

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

Konvoluční neuronová síť je dopředná neuronová síť, která se obecně používá k analýze vizuálních obrazů zpracováním dat s topologií podobnou mřížce. Je také známá jako konvoluční síť. Konvoluční neuronová síť se používá k detekci a klasifikaci objektů v obraze.

Níže je neuronová síť, která identifikuje dva typy květin:

V CNN je každý obraz reprezentován ve formě pole hodnot pixelů.

Operace konvoluce tvoří základ každé konvoluční neuronové sítě. Pochopme operaci konvoluce pomocí dvou matic a a b o rozměru 1.

a =

b =

Při operaci konvoluce se pole vynásobí po prvcích a součin se sečte, čímž vznikne nové pole, které představuje a*b.

První tři prvky matice a se vynásobí s prvky matice b. Součin se sečte a získá se výsledek.

Další tři prvky z matice a se vynásobí prvky v matici b a součin se sečte.

Tento proces pokračuje, dokud není operace konvoluce dokončena.

Jak CNN rozpoznává obrázky?

Považujte následující obrázky:

Barevná políčka představují hodnotu pixelu 1 a 0, pokud nejsou barevná.

Pokud stisknete zpětné lomítko (\), zpracuje se následující obrázek.

Pokud stisknete lomítko vpřed (/), zpracuje se níže uvedený obrázek:

Tady je další příklad, který znázorňuje, jak CNN rozpoznává obrázek:

Jak vidíte z výše uvedeného diagramu, rozsvítí se pouze ty hodnoty, které mají hodnotu 1. Obrázek se zobrazí jako 1.

Vrstvy v konvoluční neuronové síti

Konvoluční neuronová síť má několik skrytých vrstev, které pomáhají při získávání informací z obrazu. Čtyři důležité vrstvy v CNN jsou:

  1. Konvoluční vrstva
  2. ReLU vrstva
  3. Pooling vrstva
  4. Plně propojená vrstva

Konvoluční vrstva

Jedná se o první krok v procesu získávání cenných vlastností z obrazu. Konvoluční vrstva má několik filtrů, které provádějí operaci konvoluce. Každý obrázek je považován za matici hodnot pixelů.

Považujte následující obrázek o rozměrech 5×5, jehož hodnoty pixelů jsou buď 0 nebo 1. Existuje také matice filtrů o rozměru 3×3. Posuňte matici filtru nad obraz a vypočítejte bodový součin, abyste získali konvolovanou matici funkcí.

Vrstva ReLU

ReLU znamená rektifikovanou lineární jednotku. Po extrakci map příznaků je dalším krokem jejich přesunutí do vrstvy ReLU.

ReLU provede elementární operaci a nastaví všechny záporné pixely na hodnotu 0. Tím se do sítě zavede nelinearita a generovaným výstupem je rektifikovaná mapa příznaků. Níže je uveden graf funkce ReLU:

Původní obraz je snímán pomocí několika konvolucí a vrstev ReLU pro lokalizaci prvků.

Vrstva sdružování

Sdružování je operace zmenšení vzorku, která snižuje dimenzionalitu mapy prvků. Rektifikovaná mapa prvků nyní prochází vrstvou sdružování a vytváří sdruženou mapu prvků.

Vrstva sdružování používá různé filtry k identifikaci různých částí obrazu, jako jsou hrany, rohy, tělo, peří, oči a zobák.

Takto zatím vypadá struktura konvoluční neuronové sítě:

Další krok procesu se nazývá zploštění. Zploštění se používá k převodu všech výsledných dvourozměrných polí ze sdružených map příznaků na jeden dlouhý spojitý lineární vektor.

Zploštěná matice se přivádí jako vstup do plně propojené vrstvy pro klasifikaci obrazu.

Takto přesně CNN rozpozná ptáka:

  • Pixely z obrazu jsou přivedeny do konvoluční vrstvy, která provede operaci konvoluce
  • Výsledkem je konvoluční mapa
  • Konvoluční mapa je aplikována na funkci ReLU, která vytvoří rektifikovanou mapu příznaků
  • Obrázek je zpracován pomocí několika konvolucí a vrstev ReLU. pro lokalizaci rysů
  • Různé vrstvy slučování s různými filtry jsou použity pro identifikaci specifických částí obrazu
  • Slučovaná mapa rysů je zploštěna a přivedena do plně propojené vrstvy pro získání konečného výstupu

Bezplatný kurz strojového učení

Naučte se in-demand Machine Learning Skills and ToolsStart Learning

FREE Machine Learning Course

Use case implementation using CNN

Budeme používat datovou sadu CIFAR-10 od Canadian Institute For Advanced Research pro klasifikaci obrázků v 10 kategoriích pomocí CNN.

1. Stáhněte datovou sadu:

2. Importujte datovou sadu CIFAR:

3. Přečtěte názvy štítků:

4. Zobrazte obrázky pomocí matplotlib:

5. Zobrazte obrázky pomocí matplotlib. Použijte pomocné funkce pro zpracování dat:

6. Vytvořte model:

7. Použijte pomocné funkce:

8. Vytvořte vrstvy pro konvoluci a sdružování:

9. Použijte pomocné funkce:

. Vytvořte zploštělou vrstvu přetvořením vrstvy pro slučování:

10. Vytvořte plně propojenou vrstvu:

11. Nastavte výstup na proměnnou y_pred:

12. Použijte ztrátovou funkci:

13. Vytvořte optimalizátor:

14. Vytvořte proměnnou pro inicializaci všech globálních proměnných:

15. Spusťte model vytvořením relace grafu:

Sestavte modely hlubokého učení v TensorFlow a naučte se open-source framework TensorFlow pomocí kurzu hlubokého učení (s Keras &TensorFlow). Přihlaste se nyní!

Zjistěte více o CNN a hlubokém učení

Podíváte se, jak sestavit CNN s více skrytými vrstvami a jak identifikovat ptáka pomocí hodnot pixelů. Také jste dokončili ukázku klasifikace obrázků v 10 kategoriích pomocí datové sady CIFAR.

Můžete se také přihlásit do postgraduálního programu AI a strojového učení s Purdue University a ve spolupráci s IBM a proměnit se v odborníka na techniky hlubokého učení pomocí TensorFlow, softwarové knihovny s otevřeným zdrojovým kódem určené k provádění výzkumu strojového učení a hlubokých neuronových sítí. Tento program v oblasti umělé inteligence a strojového učení zahrnuje Python, strojové učení, zpracování přirozeného jazyka, rozpoznávání řeči, pokročilé hluboké učení, počítačové vidění a posilovací učení. Připraví vás na jeden z nejzajímavějších technologických oborů na světě.

Napsat komentář

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