|
|
||
|---|---|---|
| .. | ||
| lab | ||
| CNN_Architectures.md | ||
| ConvNetsPyTorch.ipynb | ||
| ConvNetsTF.ipynb | ||
| README.md | ||
README.md
Konvoluční neuronové sítě
Už jsme viděli, že neuronové sítě jsou poměrně dobré při práci s obrázky, a dokonce i jednovrstvý perceptron dokáže rozpoznat ručně psané číslice z datasetu MNIST s přiměřenou přesností. Dataset MNIST je však velmi specifický – všechna čísla jsou vycentrovaná uvnitř obrázku, což úlohu zjednodušuje.
Kvíz před přednáškou
V reálném světě chceme být schopni rozpoznat objekty na obrázku bez ohledu na jejich přesnou polohu. Počítačové vidění se liší od obecné klasifikace, protože když se snažíme najít určitý objekt na obrázku, prohledáváme obraz a hledáme specifické vzory a jejich kombinace. Například při hledání kočky bychom mohli nejprve hledat horizontální linie, které mohou tvořit vousky, a poté určitá kombinace vousků nám může říct, že se jedná o obrázek kočky. Relativní poloha a přítomnost určitých vzorů jsou důležité, nikoli jejich přesná poloha na obrázku.
K extrakci vzorů použijeme pojem konvolučních filtrů. Jak víte, obrázek je reprezentován jako 2D matice nebo 3D tenzor s barevnou hloubkou. Aplikace filtru znamená, že vezmeme relativně malou matici jádra filtru a pro každý pixel v původním obrázku vypočítáme vážený průměr s okolními body. Můžeme si to představit jako malé okno, které se posouvá po celém obrázku a průměruje všechny pixely podle vah v matici jádra filtru.
![]() |
![]() |
|---|
Obrázek od Dmitry Soshnikov
Například pokud aplikujeme 3x3 vertikální a horizontální filtry hran na číslice z MNIST, získáme zvýraznění (např. vysoké hodnoty) tam, kde jsou vertikální a horizontální hrany v původním obrázku. Tyto dva filtry tedy mohou být použity k "hledání" hran. Podobně můžeme navrhnout různé filtry pro hledání jiných nízkoúrovňových vzorů:
Obrázek Leung-Malik Filter Bank
Nicméně, zatímco můžeme navrhnout filtry pro extrakci některých vzorů ručně, můžeme také navrhnout síť tak, aby se vzory učila automaticky. To je jedna z hlavních myšlenek za CNN.
Hlavní myšlenky za CNN
Fungování CNN je založeno na následujících důležitých myšlenkách:
- Konvoluční filtry dokážou extrahovat vzory
- Síť můžeme navrhnout tak, aby se filtry učily automaticky
- Stejný přístup můžeme použít k hledání vzorů ve vysokoúrovňových prvcích, nejen v původním obrázku. Extrakce vlastností v CNN tedy funguje na hierarchii vlastností, počínaje nízkoúrovňovými kombinacemi pixelů až po vysokoúrovňové kombinace částí obrázku.
Obrázek z práce Hislop-Lynch, založený na jejich výzkumu
✍️ Cvičení: Konvoluční neuronové sítě
Pokračujme v průzkumu, jak konvoluční neuronové sítě fungují a jak můžeme dosáhnout trénovatelných filtrů, prostřednictvím následujících notebooků:
Pyramidová architektura
Většina CNN používaných pro zpracování obrázků následuje tzv. pyramidovou architekturu. První konvoluční vrstva aplikovaná na původní obrázky obvykle obsahuje relativně malý počet filtrů (8-16), které odpovídají různým kombinacím pixelů, jako jsou horizontální/vertikální linie nebo tahy. Na další úrovni snižujeme prostorovou dimenzi sítě a zvyšujeme počet filtrů, což odpovídá většímu počtu možných kombinací jednoduchých vlastností. S každou vrstvou, jak se blížíme k finálnímu klasifikátoru, se prostorové rozměry obrázku zmenšují a počet filtrů roste.
Jako příklad se podívejme na architekturu VGG-16, sítě, která dosáhla 92,7% přesnosti v top-5 klasifikaci ImageNet v roce 2014:
Obrázek z Researchgate
Nejznámější architektury CNN
Pokračujte ve studiu nejznámějších architektur CNN
Prohlášení:
Tento dokument byl přeložen pomocí služby pro automatický překlad Co-op Translator. Ačkoli se snažíme o přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace se doporučuje profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.




