Základy AI

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

mm
Přidejte Unite.AI mezi své preferované zdroje na Google

A convolutional neural network (CNN) je architektura neuronové sítě, která používá naučené filtry napříč lokálními oblastmi vstupu. CNN se staly základní součástí moderního computer vision, protože dokážou detekovat vzory bez ohledu na to, kde se objeví, a znovu použít stejné parametry napříč obrázkem.

CNN nepřevádí obrázek z nečíselné na číselnou formu – obrázek již přichází jako tenzor pixelových hodnot. Jejím účelem je převést tento tenzor na mapy rysů, které jsou užitečné pro klasifikaci, detekci, segmentaci nebo jiný úkol.

Klíčové poznatky

  • Konvoluce kombinuje lokální vstupní hodnoty s naučeným jádrem a vytváří mapu rysů.
  • Stride, padding, dilatace a pooling řídí prostorové rozlišení a receptivní pole.
  • Sdílení vah činí CNN efektivnějšími z hlediska počtu parametrů než plně propojená síť na surových pixelech.
  • Vision transformery nabízejí alternativu, ale CNN zůstávají silné pro efektivní a datově omezené systémy.
Convolutional neural network diagram showing a learned kernel sliding over an image, producing feature maps, residual blocks, global pooling, and an output head
CNN převádí lokální naučené filtry na postupně větší receptivní pole a úkolově specifické výstupy.

Jak funguje konvoluce

Jádro (kernel) je malá mřížka trénovatelných vah. Na každé pozici CNN násobí hodnoty jádra odpovídajícími vstupními hodnotami, sečte výsledky a obvykle přidá bias. Opakováním tohoto procesu po celém vstupu vzniká mapa rysů.

U barevného obrázku jádro pokrývá všechny vstupní kanály. Vrstva používá více jader k vytvoření více výstupních kanálů. Během trénování backpropagation vypočítává gradienty pro tyto váhy jader; operace konvoluce nevytváří novou pevnou sadu vah pro každý obrázek.

Stride, padding a dilatace

  • Stride určuje, jak daleko se jádro posouvá. Stride větší než jedna snižuje prostorové rozlišení.
  • Padding přidává hodnoty kolem vstupu, aby bylo možné zpracovat okrajové informace a kontrolovat velikost výstupu.
  • Dilation rozděluje prvky jádra, čímž rozšiřuje receptivní pole, aniž by se proporcionálně zvýšil počet parametrů.

Receptivní pole je oblast původního vstupu, která může ovlivnit jednotku. Vrstvení konvolucí jej rozšiřuje, což umožňuje pozdějším rysům kombinovat informace z širších oblastí.

Aktivace, normalizace a pooling

Konvoluční vrstvy jsou běžně následovány nelineárními aktivacemi a normalizací. Pooling shrnuje lokální oblasti pomocí operace, jako je maximum nebo průměr. Naučené konvoluce se stride mohou také provádět downsampling.

Pooling není povinný. Mnoho moderních sítí používá globální average pooling blízko výstupu místo zploštění velké mapy rysů do plně propojeného zásobníku. To snižuje počet parametrů a umožňuje síti agregovat prostorové důkazy.

Moderní architektura CNN

Typický model pro počítačové vidění obsahuje vstupní část (stem), sekvenci bloků rysů, fáze downsamplingu a úkolovou hlavu. Reziduální spojení umožňují bloku naučit se úpravu svého vstupu a poskytují přímou cestu pro informace a gradienty. Úspěch reziduálních sítí umožnil praktické trénování mnohem hlubších CNN.

Klasifikační hlavy vytvářejí skóre tříd. Detekční hlavy předpovídají kategorie a ohraničující rámečky. Segmentační architektury přidávají dekódovací cesty, které obnovují prostorové detaily. Stejný základ CNN lze znovu použít pomocí transfer learning.

Co se učí vrstvy CNN

Je běžné vizualizovat počáteční filtry, které reagují na hrany nebo textury, a pozdější reprezentace, které korelují s částmi nebo objekty. Jedná se o užitečnou intuici, ale není to pevné pravidlo. Rysy závisí na úkolu, architektuře, datech, cíli a trénovacím procesu a některé jednotky kombinují informace, které se nedají snadno přiřadit k lidskému konceptu.

CNN vs vision transformery

Vision transformery dělí obrázky na patche a používají attention k modelování vztahů mezi nimi. Mohou efektivně škálovat s velkými pretrénovacími datovými sadami. CNN zakomponují lokalitu a předpoklady o translaci přímo do architektury, což je může učinit efektivnějšími a datově úspornějšími v menších prostředích.

Mnoho praktických systémů kombinuje konvoluci a attention. Správná architektura závisí na přesnosti, latenci, paměti, trénovacích datech, hardwaru a nasazení – nikoli na tom, která rodina je nejnovější.

Omezení a praktické úvahy

CNN mohou být citlivé na posun distribuce, adversariální perturbace, zkratky v pozadí a zaujatá trénovací data. Nejsou dokonale invariantní vůči pozici, rotaci, měřítku ani úhlu pohledu. Augmentace a volby architektury mohou zlepšit robustnost, ale nezaručují ji.

Pro nasazení měřte end-to-end latenci, paměť, propustnost a chování podskupin. Kvantizace a ořezávání mohou snížit náklady, zejména pro edge AI, ale komprimované modely je třeba znovu ověřit.

Konvoluce, receptivní pole a moderní bloky CNN

Konvoluční vrstva posouvá naučená jádra po mřížce a sdílí váhy napříč pozicemi. Velikost jádra, stride, dilatace a padding určují tvar výstupu a receptivní pole. Počáteční vrstvy často reagují na lokální hrany nebo textury; hlubší vrstvy kombinují informace z větších oblastí, ačkoliv naučené reprezentace nemusí být snadno mapovatelné na lidské koncepty. Pooling nebo konvoluce se stride snižují prostorové rozlišení. Kanály nesou mapy rysů, zatímco skupinová a depthwise separabilní konvoluce vyměňují křížové míchání kanálů za nižší výpočetní náročnost. Reziduální spojení usnadňují optimalizaci velmi hlubokých sítí.

Pro výšku a šířku vstupu padding řídí zacházení s okraji a stride řídí vzorkování. Agresivní downsampling může vymazat malé objekty; nulový padding může vytvořit artefakty na okrajích; dilatace rozšiřuje kontext bez stejného růstu parametrů, ale může způsobit mřížkování. Batch normalization závisí na trénovacích statistikách, zatímco alternativy mohou fungovat lépe při malých batch velikostech. Moderní architektury kombinují úzká místa (bottlenecks), víceškálové rysy, attention nebo invertované rezidua. Vyberte architekturu podle rozlišení úkolu, šířky pásma paměti, latence a cílového hardwaru, nikoli jen podle přesnosti klasifikace obrázků.

Trénink, interpretace a nasazení

Používejte augmentace, které zachovávají štítky a odrážejí reálnou variabilitu, a rozdělte data podle subjektu nebo scény před augmentací. Transfer learning je běžný: nahradit úkolovou hlavu, vyškolit ji a poté opatrně odblokovat základní síť. Hodnoťte výkon specifický pro třídy, kalibraci, robustnost vůči rozmazání, kompresi, osvětlení, měřítku, ořezu a adversariálním perturbacím. Vizualizační metody jako mapy rysů a saliency mohou odhalit zkratky, ale jsou citlivé na metodu a referenční bod. Potvrďte podezřelou závislost pomocí kontrafaktuálních obrázků, testů zakrytí nebo změn datové sady.

Exportované CNN mohou být sloučeny, kvantizovány nebo zkompilovány pro GPU, NPU, prohlížeč nebo mikrokontrolér. Ověřte nasazený graf, včetně předzpracování a postzpracování, na konkrétních zařízeních. Měřte end-to-end latenci, paměť, energii a termické chování; dekódování vstupu může dominovat u malých modelů. Sledujte statistiky kamery a obrazu, distribuci výstupu a potvrzené chyby. Podepsané artefakty modelu, chráněné kanály aktualizací a elegantní selhání senzoru jsou součástí návrhu produkce. CNN kódují užitečný lokální bias, ale automaticky nerozpoznávají objekty ani kauzální scény.

Praktický příklad: nasazení CNN na inspekční kameru

CNN klasifikuje povrchové vady z vysoce rozlišených line-scan obrázků. Inženýři rozkládají obrázky na dlaždice s překrytím, aby malé vady přežily downsampling, zachovaly souřadnice pro revizi a ověřili augmentace vůči reálné optické variaci. Reziduální CNN a lehčí depthwise model jsou porovnány při stejném recall. Testy zahrnují okrajové vady, oslnění, kompresi, pohyb, šarže materiálu a výměny kamer, přičemž nezávislé výrobní šarže jsou vyhrazeny pro konečné hodnocení.

Kompilace sloučí a kvantizuje model pro edge akcelerátor, ale nasazený graf je porovnáván s referencí na citlivých případech vad. Dekódování, dlaždicování, inference a sloučení latence jsou měřeny end-to-end. Systém označuje vadné pixely a posun expozice odděleně od produktových vad. Operátoři mohou kontrolovat zdrojové dlaždice a přepisovat výsledky. Změny modelu a kamery jsou zaváděny postupně a linka si zachovává bezpečný manuální inspekční postup, když není k dispozici vision pipeline.

Důkazy o implementaci a provozní připravenost

Rozhodnutí o nasazení vyžaduje více než úspěšnou demonstraci. Definujte zamýšlené uživatele, provozní prostředí, vstupy, výstupy, závislosti, vlastníka a důsledek každého důležitého selhání. Zaveďte reprodukovatelnou základní linii a verzi hodnotící sady před laděním. Testujte běžné případy, okrajové podmínky, poškozené nebo chybějící vstupy, posun distribuce, výpadek závislostí, zneužití a skupiny nebo prostředí, která jsou pravděpodobně nedostatečně obsloužena. Měřte kvalitu úkolu spolu s kalibrací nebo nejistotou, latencí, propustností, náklady na zdroje, přístupností, soukromím a bezpečností. Zaznamenejte každou transformaci a prahovou hodnotu, aby nezávislý recenzent mohl výsledek reprodukovat a odlišit důkazy od atraktivního prototypu.

Před spuštěním přiřaďte pravomoc pro vydání, výjimky, změny, rollback a ukončení. Použijte postupné nasazení, zachovejte bezpečný fallback a ověřte monitorování pomocí úmyslně vložených selhání. Provozní telemetrie by měla odhalovat kvalitu vstupu, chování výstupu, verzi modelu nebo pravidla, stav závislostí, lidské zásahy a potvrzené výsledky, aniž by sbírala zbytečná citlivá data. Definujte prahové hodnoty upozornění a odpovědného, poté přezkoumejte reálné důkazy po nasazení místo předpokladu, že offline výkon přetrvá. Přehodnoťte, kdykoli se změní zdroje dat, uživatelé, modely, dodavatelé, politiky, hardware nebo cíle. Udržovaný systém také potřebuje zdokumentované postupy obnovy, učení z incidentů, mazání a uchovávání a jasný bod, kdy má být deaktivován nebo nahrazen.

Často kladené otázky

Musí CNN vždy používat pooling?

Ne. CNN může provádět downsampling pomocí konvoluce se stride a může zachovat rozlišení pro hustou predikci. Pooling je jedním z nástrojů návrhu, nikoli povinným požadavkem.

Jsou filtry CNN ručně navržené?

V natrénované CNN jsou hodnoty jader obvykle učeny z dat. To se liší od klasických vizuálních filtrů, jejichž koeficienty jsou předem zvoleny pro operace jako detekce hran.

Primární reference

Blogger a programátor se specializací na Machine Learning a Deep Learning témata. Daniel doufá, že pomůže ostatním využít sílu AI pro sociální dobro.