Konvoluční neurální sítě
Poznámka:
Další podrobnosti najdete na kartě Text a obrázky .
Schopnost používat filtry k použití efektů na obrázky je užitečná při úlohách zpracování obrázků, jako je například použití softwaru pro úpravy obrázků. Cílem počítačového zpracování obrazu je však často extrahovat význam nebo alespoň užitečné přehledy z obrázků; které vyžaduje vytvoření modelů strojového učení, které jsou natrénované tak, aby rozpoznávaly funkce na základě velkých objemů existujících imagí.
Návod
V této lekci se předpokládá, že znáte základní principy strojového učení a že máte koncepční znalosti hlubokého učení s neurálními sítěmi. Pokud s strojovém učení začínáte, zvažte dokončení modulu Úvod do konceptů strojového učení v Microsoft Learn.
Jednou z nejběžnějších architektur modelů strojového učení pro počítačové zpracování obrazu je konvoluční neurální síť (CNN), která je typem architektury hlubokého učení. Sítě CNN používají filtry k extrakci map číselných znaků z obrázků a následnému vložení hodnot znaků do modelu hlubokého učení k vygenerování předpovědi štítku. Například ve scénáři klasifikace obrázků představuje popisek hlavní předmět obrázku (jinými slovy, co je to obrázek?). CNN model můžete vytrénovat na obrázcích různých druhů ovoce (jako jsou jablka, banány a pomeranče), aby předpovězený popisek udával typ ovoce na uvedeném snímku.
Během trénování sítě CNN se jádra filtru zpočátku definují pomocí náhodně generovaných hodnot hmotnosti. Jakmile proces trénování postupuje, vyhodnocují se předpovědi modelů proti známým hodnotám popisků a váhy filtru se upraví, aby se zlepšila přesnost. Vytrénovaný model klasifikace obrázků ovoce nakonec používá váhy filtru, které nejlépe extrahují funkce, které pomáhají identifikovat různé druhy ovoce.
Následující diagram znázorňuje, jak funguje síť CNN pro model klasifikace obrázků:
- Obrázky se známými štítky (například 0: jablko, 1: banán nebo 2: oranžová) se zasílají do sítě pro trénování modelu.
- Jedna nebo více vrstev filtrů se používá k extrakci funkcí z jednotlivých imagí, jak se předává přes síť. Jádra filtru začínají náhodně přiřazenými váhami a generují pole číselných hodnot označovaných jako mapy funkcí. Další vrstvy mohou "spojovat" nebo "redukovat" mapy příznaků a vytvářet menší pole, která zvýrazňují klíčové vizuální prvky extrahované filtry.
- Mapy funkcí jsou zploštěné do jednorozměrného pole hodnot prvků.
- Hodnoty funkcí se předávají do plně propojené neurální sítě.
- Výstupní vrstva neurální sítě používá softmax nebo podobnou funkci k vytvoření výsledku, který obsahuje hodnotu pravděpodobnosti pro každou možnou třídu, například [0,2, 0,5, 0,3].
Během trénování se pravděpodobnosti výstupu porovnávají se skutečným popiskem třídy – například obrázek banánu (třída 1) by měl mít hodnotu [0,0, 1,0, 0,0]. Rozdíl mezi predikovanými a skutečnými skóre třídy se používá k výpočtu ztráty v modelu a váhy v plně připojené neurální síti a jádry filtru ve vrstvách extrakce funkcí jsou upraveny tak, aby se snížila ztráta.
Proces trénování se opakuje v několika epochách , dokud se nenaučí optimální sada hmotností. Pak se váhy uloží a model se dá použít k předpovídání popisků pro nové obrázky, pro které je popisek neznámý.
Poznámka:
Architektury CNN obvykle obsahují několik konvolučních vrstev filtru a další vrstvy, které snižují velikost map funkcí, omezují extrahované hodnoty a jinak manipulují s hodnotami funkcí. Tyto vrstvy byly vynechány v tomto zjednodušeném příkladu, aby se zaměřily na klíčový koncept, což je to, že filtry slouží k extrakci číselných funkcí z obrázků, které se pak používají v neurální síti k předpovídání popisků obrázků.