Convolution (konvolúcia)
Čo je convolution?
Convolution (v slovenskom preklade konvolúcia) je matematická operácia, ktorá v kontexte umelej inteligencie a strojového učenia slúži na extrakciu príznakov z vstupných dát. Ide o základný stavebný prvok konvolučných neurónových sietí (CNN), kde sa využíva na spracovanie obrazových, zvukových aj textových dát. Konvolúcia funguje tak, že aplikuje filter (jadro) na vstupné dáta a vytvára tzv. feature mapu, ktorá zachytáva dôležité vzory a štruktúry.
Princípy konvolúcie v neurónových sieťach
Pri konvolúcii sa malá matica hodnôt – filter – posúva po vstupných dátach a v každej pozícii sa vypočíta súčet súčinov prekrývajúcich sa hodnôt. Výsledkom je nová reprezentácia dát, ktorá zvýrazňuje určité vlastnosti ako hrany, textúry alebo komplexnejšie vzory.
Filter má typicky veľkosť 3×3 alebo 5×5 pixelov pri spracovaní obrazu. Počas trénovania siete sa hodnoty filtrov automaticky upravujú, čím sa model učí rozpoznávať relevantné príznaky pre danú úlohu. Jedna konvolučná vrstva obsahuje desiatky až stovky takýchto filtrov, takže sieť sa naraz učí rozpoznávať mnoho rôznych vizuálnych prvkov, ktoré sú dôležité pre danú úlohu (napríklad odlíšenie mačky od psa).
Typy konvolúcie
Konvolúciu možno vnímať ako spôsob, akým sieť „prechádza“ obrázok alebo iné dáta a hľadá v nich vzory.
Štandardná 2D konvolúcia sa používa pri obrázkoch: malý filter sa posúva po výške a šírke a z každého miesta vyberie dôležité informácie (napr. hrany alebo textúry). Pri videu alebo 3D dátach, ako sú CT snímky, sa používa 3D konvolúcia, ktorá berie do úvahy aj čas alebo hĺbku, takže sleduje zmeny medzi snímkami alebo vrstvami.
Depthwise separable konvolúcia rozdelí výpočet na dve jednoduchšie fázy, čo výrazne šetrí počet parametrov aj výkon; využívajú ju napríklad ľahké modely navrhnuté pre mobilné zariadenia. Dilatovaná konvolúcia zas pridáva „medzery“ do filtra, vďaka čomu vidí väčšiu časť obrazu naraz bez toho, aby prudko rástol počet parametrov.
…konvolúcia ako matematická operácia sa rozvíjala v rámci matematickej analýzy a spracovania signálov už v 19. storočí. V neurónových sieťach ju medzi prvými výrazne využil Yann LeCun koncom 80. rokov pri rozpoznávaní ručne písaných číslic.
Konvolúcia dominuje pri počítačovom videní
Konvolučné neurónové siete postavené na princípe konvolúcie dominujú v úlohách počítačového videnia. Využívajú sa pri klasifikácii obrazu, detekcii objektov, segmentácii a rozpoznávaní tváre. V medicíne pomáhajú pri analýze röntgenových snímok a MRI záznamov.
Konvolúcia sa nevyužíva len pri obrázkoch, ale aj pri texte a zvuku. Pri spracovaní prirodzeného jazyka môže 1D konvolúcia zachytávať krátke slovné úseky (n‑gramy) a z nich vytvárať užitočné príznaky pre ďalšie spracovanie. Pri zvuku zase konvolučné siete pomáhajú pri rozpoznávaní reči či pri určovaní typu zvukovej udalosti na základe spektrálnych vzorov.
Napriek širokým možnostiam nie je konvolúcia všeliek. Pri veľmi hlbokých sieťach môže postupným zlučovaním vrstiev prichádzať k strate jemnej priestorovej informácie a detaily sa „rozmažú“. Samotné konvolučné vrstvy tiež často nedokážu zachytiť globálne súvislosti v dátach, napríklad vzťahy medzi vzdialenými objektmi v obraze alebo dlhodobé závislosti v textových či zvukových sekvenciách.
Zdroje a odkazy
Použité zdroje:
- Stanford University CS231n – Convolutional Neural Networks for Visual Recognition: https://cs231n.stanford.edu
Odporúčané zdroje:
- Deep Learning Book – Convolutional Networks: https://www.deeplearningbook.org
Uvedené informácie sú orientačné a môžu sa líšiť v závislosti od verzie, implementácie a prostredia.