Neurónové siete pod skalpelom

V dnešnej časti Health AI si pod skalpel zobral neurónové siete Oliver Velich. Jednoducho a stručne nám vysvetlí, čo to vlastne je neurónová sieť a ktoré druhy sa používajú na analýzu v zobrazovacej medicíne.

Health AI je pravidelná rubrika venovaná technologickým inováciam v oblasti medicíny a life sciences. Partnerom obsahu je firma Cognexa, ktorá vyvíja špecializované softvérové riešenia, založené na technológii tzv. umelej inteligencie, aj pre organizácie v oblasti medicíny a life sciences.

Čo je to umelá neurónová sieť

Umelá neurónová sieť (niekedy sa môžete stretnúť aj so skratkami NN alebo ANN z anglického (Artificial) Neural Network) je špeciálny druh počítačového programu. Zjednodušene teda pre každý vstup v tvare súboru čísel vráti výstup ako iný súbor čísel. Špecifický je v tom, že mu nepovieme, akými pravidlami má nový súbor vytvoriť. Namiesto toho necháme tento program skúsiť uhádnuť správny výstup. Keďže sa mu to na začiatku určite nepodarí, povieme neurónovej sieti, ako mal správny výstup vyzerať a necháme ju upraviť samu seba tak, aby sa nabudúce pomýlila o niečo menej.

To, akým spôsobom sa sieť k výstupnému súboru čísel dopracuje a ako môže samu seba upravovať, bolo voľne inšpirované prirodzenou neurónovou sieťou. Prirodzenej neurónovej sieti sa však tá umelá približuje iba názvom výpočtových jednotiek – neurónov. Zatiaľ čo prirodzená neurónová sieť vykonáva komplexnejšie výpočty na omnoho väčšom počte neurónov, ktoré spolu komunikujú zložitejšími spôsobmi a ešte k tomu dokáže byť aj energeticky úspornejšia, umelé neurónové siete zostávajú relatívne jednoduché, avšak inžiniersky neustále zdokonaľované na riešenie jednotlivých úloh.

Neuróny v umelej neurónovej sieti môžu plniť rôzne funkcie. Takzvané vstupné neuróny slúžia ako reprezentácia vstupného súboru čísiel, výstupné neuróny naopak ako reprezentácia výstupu. Aby bolo možné naučiť sa vzťah medzi vstupom a výstupom, musia byť jednotlivé neuróny medzi sebou prepojené. Vrstvu neurónov tvoria neuróny, ktoré nie sú prepojené medzi sebou, ale typicky je každý neurón v jednej vrstve prepojený s každým neurónom v susedných vrstvách. Výpočet potom prebieha tak, že informácia sa postupne prenáša zo vstupnej vrstvy do výstupnej a každé prepojenie, ktoré túto informáciu prenáša, ju buď podporí, alebo potlačí. Neurón potom všetky prichádzajúce spojenia kombinuje a preposiela ďalej.

Na to, aby bol výpočet v umelej neurónovej sieti užitočný pre reálnu aplikáciu, sieť musí obsahovať aj iné vrstvy neurónov ako tie vstupné a výstupné. Takéto vrstvy sa potom nazývajú “skryté”. Výskum správania umelých neurónových sietí ukazuje, že zvyšovanie počtu vrstiev umožňuje neurónovej sieti naučiť sa riešiť komplexnejšie úlohy. Výkon počítačov však veľmi dlho neumožňoval v rozumnom čase prepočítať neurónovú sieť s viac ako pár vrstvami neurónov. V súčasnosti ale môžeme vytvárať neurónové siete s desiatkami vrstiev. Takýmto sieťam sa potom hovorí hlboké neurónové siete. Často sa potom môžeme stretnúť s odvodeným termínom Deep learning, ktorý znamená použitie hlbokej neurónovej siete na to, aby sa naučila riešiť zložitý problém.

Upravené z https://www.3blue1brown.com/videos-blog/2017/10/9/neural-network

 

Čo je to konvolučná neurónová sieť

Vývojom  sa postupne neurónové siete nevylepšovali iba „prehlbovaním”, ale hlavne spôsobom, ako si medzi sebou neuróny prenášajú informácie. Na podporu schopnosti neurónovej siete extrahovať z problému dôležité vlastnosti, sa do sietí zaviedli zložitejšie funkcie, nazývané konvolúcie a tak vznikla konvolučná neurónová sieť. Tieto funkcie neprenášajú do ďalšej vrstvy neurónov pôvodnú informáciu, ale mieru toho, ako veľmi pôvodná vrstva obsahuje nejaký lokálny vzor. Čím intenzívnejšie je lokálny vzor prítomný v pôvodnej vrstve, tým intenzívnejšiu informáciu obsahuje vrstva vytvorená konvolúciou. Pri učení sa takejto siete sa optimalizuje to, aké vzory budú jednotlivé konvolúcie sledovať.

Najužitočnejšiou vlastnosťou konvolúcií je, že nepredpokladá usporiadanie neurónov sekvenčne za sebou ale v dvojrozmernom, prípadne trojrozmernom poli. A keďže všetky digitálne obrazové dáta sú priamo uložené ako súbor čísiel v poli, konvolučnou neurónovou sieťou môžeme v obrázkoch efektívne zachytiť dôležitú informáciu závislú na kontexte svojho okolia.

V špeciálnom prípade je možné štruktúru konvolučnej neurónovej siete upraviť tak, aby umožňovala napríklad identifikovať niekoľko objektov naraz a vytvoriť podrobnú mapu ich umiestnenia (tiež nazývanú maska). Keďže táto mapa obsahuje aj informáciu o tvare a veľkosti objektu, rozširuje to možnosti použitia neurónových sietí aj na aplikácie, kde je potreba okrem identifikácie objektov aj ich presná kvantifikácia. Kvantifikácia v tomto prípade nemusí predstavovať iba počet ale napríklad aj objem či pravidelnosť tvaru.

Keď sa k týmto vlastnostiam pridá všeobecná flexibilita neurónových sietí prispôsobiť sa rôznorodým problémom, konvolučné neurónové siete sa stávajú vedúcim nástrojom na riešenie medicínskych problémov založených na spracovaní obrazu.

Oliver Velich, Machine Learning Engineer

 

Viac informácií

E-learningová učebnica pre predmet Umělá inteligence pre odbor Matematická biologie na Masarykovej univerzite v Brne. Kapitola Neuronové sítě – jednotlivý neuron. https://portal.matematickabiologie.cz/index.php?pg=analyza-a-hodnoceni-biologickych-dat–umela-inteligence–neuronove-site-jednotlivy-neuron

 článok Detekcia a rozpoznávanie mikroskopických objektov v obraze https://s.ics.upjs.sk/~lhajdukova/bp/clanok-04-17.pdf

Článok U-Net: Convolutional Networks for Biomedical Image Segmentation https://arxiv.org/abs/1505.04597