Úvod do neurónových sietí

Ako fungujú neurónové siete 

Neurónové siete sú v súčasnosti mnohými považované za jeden z najlepších algoritmov strojového učenia. Vo vybraných úlohách dokážu priniesť výsledky s veľmi vysokou presnosťou a majú pomerne širokú škálu použitia. Napríklad pri aplikáciách počítačového videnia či spracovaní zvuku. V závislosti od použitej architektúry ich niekedy možno označiť aj ako hlboké strojové učenie.

Rovnako ako mnohé iné algoritmy strojového učenia aj neurónové siete fungujú tak, že vytvoríme model, ktorý následne natrénujeme na čo najväčšom množstve označených dát. Na základe týchto známych trénovacích dát sa tak model naučí „predpovedať“ výsledky nových neznámych prípadov.

Príkladom z oblasti počítačového videnia môže byť klasifikácia obrazu.

Zdroj: pasja1000 upravené, Pixabay

Chceme vytvoriť klasifikátor, ktorý vyhodnotí, či je na vstupnom obrázku človek alebo nie. Zoberieme teda niekoľko (pár tisíc) rôznych obrázkov ľudí. Tieto obrázky použijeme ako vstup pre natrénovanie modelu siete. Počas tréningu si sieť z trénovacích obrázkov sama vyberie a naučí konkrétne obrazové príznaky, ktoré potrebuje pre správnu klasifikáciu. Po dostatočne dlhom tréningu potom bude sieť vedieť s veľkou presnosťou vyhodnotiť, či je na novom vstupnom obrázku človek alebo nie. A to bez toho, aby vopred vedela informácie typu človek má hlavu, trup, 2 ruky, 2 nohy, atď. Z tohto pohľadu teda neurónová sieť funguje ako „čierna skrinka“, čo ale môžeme niekedy považovať aj za nevýhodu.

Architektúra neurónovej siete 

Klasická dopredná neurónová sieť sa skladá z konečného počtu uzlov – neurónov. Niektoré z nich sú navzájom poprepájané, pričom prepojenia medzi neurónmi majú svoje ohodnotenia, označované ako váhy. Tieto neuróny sú potom usporiadané do vrstiev. Spravidla jednej vstupnej vrstvy, z niekoľkých skrytých vrstiev a z jednej výstupnej vrstvy. To, aké a koľko vrstiev je  použitých, koľko neurónov obsahujú jednotlivé vrstvy a ako sú vrstvy poprepájané, nazývame architektúra siete. Počet skrytých vrstiev a počty neurónov v jednotlivých vrstvách označujeme ako hyperparametre siete. Príklad doprednej neurónovej siete s dvomi skrytými vrstvami je na nasledujúcom obrázku.

Zdroj: vlastné

Hyperparametre neurónovej siete

Máme tu ukážku siete, kde je zľava ako prvá vstupná vrstva s 5 vstupnými neurónmi, 2 skryté vrstvy, ktoré majú obe po 7 neurónov a na záver výstupná vrstva so 4 výstupnými neurónmi. Úlohou vstupnej vrstvy je tu prijímať vstupné dáta pre vyhodnocovanie, resp. aj pre trénovanie. Úlohou výstupnej je zas podanie výsledkov, ktoré sieť dosiahla na základe spracovania vstupných dát. Úlohou skrytých vrstiev je spracovanie a transformovanie vstupných dát tak, aby ich výstupná vrstva dokázala finálne vyhodnotiť. Pokiaľ je týchto skrytých vrstiev dostatočne veľa, napríklad 20, hovoríme o hlbokých neurónových sieťach a hlbokom strojovom učení.

Vrstvy v sieti môžu byť rôzne poprepájané, príklad na obrázku patrí medzi plne prepojené siete. To znamená, že neurón v skrytej vrstve je prepojený so všetkými neurónmi v predchádzajúcej aj nasledujúcej vrstve. Ak výstup neurónu závisí len od prichádzajúcich výstupov z predošlej vrstvy, t. j. nie je prítomná existencia cyklov, tak ako na obrázku, ide o dopredné (feed-forward) siete.

Navrhnúť architektúru siete pre konkrétnu úlohu môže byť náročná úloha a nie je možné spísať nejaký jednoduchý súbor pravidiel ako to spraviť. Boli však vytvorené návrhové heuristiky, ktoré by nám mali pomôcť, aby sme pre vybranú úlohu dosiahli čo najlepší pomer cena/kvalita.

V nasledujúcom článku priblížime, čo je to počítačový neurón, ako presne sieť funguje a aká je za tým matematika.

Zdroje:

http://neuralnetworksanddeeplearning.com/index.html

https://www.bogotobogo.com/python/scikit-learn/Artificial-NeuralNetwork-ANN-1-Introduction.php

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *