Umělé neuronové sítě šikovně kopírují činnosti, ve kterých náš mozek vyniká. Ale zatímco v mozku probíhají všechny přenosy simultálně, najednou, počítač takto pracovat neumí. Musí si vzít jednu buňku, spočítat pro ni výsledky na vstupu a nastavit výsledek pro výstup. A potom druhou buňku, třetí, atd. Pokaždé se zapojí procesor a paměť. Při dnešních výpočetních výkonech to už ale není takový problém, nicméně pořád platí, že neuronové sítě jsou pořádný žrout výkonu a tím i energie.
V centru výzkumu je věc, které se říká několikavrstvý perceptron. Ve své podstatě to je několik vrstev neuronů za sebou. První vrstva slouží jako vstup, v dalších vrstvách doje k vyhodnocení a poslední vrstva zobrazí výstup. Každý neuron a proto i každý model neuronu v počítači má přitom mnoho vstupů (dendritů) a jeden výstup (axon). Perceptron je potom uspořádán tak, že každý neuron následující vrstvy má spojení s každým neuronem předchozí vrstvy. Přenos informace na vstup neuronu, tedy po vlákně dendritu, většinu představuje nějaká nelineární funkce, jejíž výsledky mohou být od -1 do +1. Na začátku jsou hodnoty pro jednotlivá vlákna (říkáme tomu váhy) nastavena náhodně a síť je potřeba učit. Na vstup se posílají různá data a po každém průchodu těchto dat se nastavení jednotlivých vláken podle sofistikovaného algoritmu mění, aby bylo dosaženo požadovaného výstupu. Předností vícevrstvého perceptronu je to, že si po naučení dokáže poradit i s „pozměněnými" daty na vstupu a správně určit, jaký má být výstup. Něco jako když vidíte třeba auto v hustém dešti, mlze nebo šeru a přesto poznáte, že je to auto, jako když ho vidíte za jasného dne.
Pojďme se nyní podívat, jak můžeme optimalizovat tento na výpočty náročný proces pro mobilní zařízení. První cestou je přesunout výpočet na server, mobil pouze zajistí vstupní data a jejich přenos přes internet na server, kde dojde k vyhodnocení a odeslání výsledku zpět do mobilu. To je dnes nejpoužívanější řešení.
Druhou cestou může být obvod, který tak trochu simuluje neuron, že má tedy několik vstupů a jeden výstup a především, spočítání všech vstupu probíhá paralelně. Navíc místo digitálního výpočtu to uděláme analogově, ve své podstatě je každé takové vlákno malý násobič napětí, v neuronu se sečte celkový výsledek a ten se potom převede do digitální formy. Touto cestou se vydali výzkumníci z MIT a dokáží speciálním procesorem snížit energetickou náročnost celého výpočtu o 95%. Navíc používají ještě jeden fígl, váhy mohou být pouze -1 nebo +1. Sice tím dojde k určité ztrátě přesnosti, ale jenom malé, do 2 %. Umělé neuronové sítě, stejně jako biologické, se tedy dokáží dost dobře vypořádat s poškozením, jímž je vlastně omezení vah na pouhé dvě hodnoty.
Tak uvidíme, kdy se dočkáme integrace této architektury do procesorů pro mobilní zařízení. Řada věcí by potom mohla fungovat i bez připojení k internetu.
Zdroje
Larry Hardesty.: Neural networks everywhere, MIT News, February 13, 2018
Perceptron https://cs.wikipedia.org/wiki/Perceptron
Neuron https://cs.wikipedia.org/wiki/Neuron
MLP https://en.wikipedia.org/wiki/Multilayer_perceptron