Umělá inteligence
Umělá inteligence tzv. AI (Artificial Intelligence)
Je nové počítačové odvětví, které bude čím dál více využívané jak v běžném životě, tak v průmyslu.
Pomáhá zvýšit výkonnost a produktivitu automatizováním, zrychlováním opakujících se procesů. Umožňuje předvídat automatizaci složitých nebo stále se opakujících úloh. Dokáže zpracovat velké množství vstupních dat a z nich vyhodnotit správné řešení.
Umělá inteligence je tvořená jak ze SW části (algoritmus), tak z HW části (PC tvořený co nejvíce jádry)
Počítače pro AI se dají rozdělit do dvou kategorií
- GPU servery určené pro strojové učení (Deep learning) kdy se algoritmus učí rozeznávat data, které má na vstupu (miliony obrázků, textu, videa). Tyto servery jsou většinou v provedení pro montáž do 19“ racku, osazeny ideálně dvěma CPU procesory o větším počtu jader (Intel Xeon), velkým počtem pamětí RAM i několik TB. Hlavně více grafickými kartami GPU obsahující řádově až tisíce jader (např. Nvidia Tesla P100 obsahuje 5300 jader). Velké množství jader zajistí rychlé učení daného algoritmu. Také velké množství úložného prostoru pomocí desítek HDD nebo SSD disků. Dalším důležitou součástí je výkonné chlazení a rychle připojení k internetu ideálně 10/100Gb.
- PC určené pro aplikaci umělé inteligence ve strojích, vozidlech, robotech a strojovém vidění. Většinou se jedná o malé kompaktní počítače v robustní provedení s pasivním chlazením osazených nějakou jednotkou GPU. Tyto počítače jsou často vybaveny procesory NVIDIA Jetson® Tegra X2/ Xavier/ Nano, které mají velký počet jader. Dále je možné je rozšířit o akcelerační chipset VPU Movidius Myriad X do slotů M2, mPCIe. Také o karty zpracovávající obraz pro strojové vidění s větším počtem HDMI/DVI/VGA/YPbPr video vstupů.
Hardware pro umělou inteligenci dodávame a stavíme na produktech firem: ADVANTECH, ADLINKTECH, NVIDIA, INTEL
Algoritmus umělé inteligence můžeme také rozdělit do několika kategorií
- Zpracovaní obrazu videa nebo fotografií (strojové vidění, čtení SPZ, rozpoznávání obličejů).
- Zpracování textu a komunikace se zákazníky (chatboti, google překladač)
- Provádění odborných analýz z dostupných dat (počasí, akcie, zdraví, chování, prodej).
- Autonomní řízení dopravních prostředků (Tesla, iRobot, Uber, Boeing)
- Algoritmus pro jeden účel třeba hraní her (šachy, go, starcraft)
Nyní se umělá inteligence dokáže lépe vypořádat se stále opakující situací nebo zpracováním velkého množství dat. V tomto odvětví překonává člověka a je efektivnější a levnější. (Narrow AI - Úzká umělá inteligence)
Zatím umělá inteligence nepřekoná člověka ve velkém množství dovedností, které je člověk schopen vykonávat (řídit auto, vařit, chodit, mluvit, dělat ihned nějakou práci která je mu přidělena, myslet a vyhodnotit situaci za pomocí emocí nebo morálky). (General AI - všeobecná umělá inteligence)
Není bez zajímavosti, že naše druhé oddělení Strojového vidění a robotiky využívá umělou inteligenci v některých svých aplikacích například pro Škodu Auto a.s. Umělou inteligenci využívá jak pro inteligentní řízení robotů, tak i pro systémy strojového vidění.
Trocha teorie:
Strojové učení, neuronové sítě a deep learning jsou termíny, které jsou používané pro aplikace vyžadující analýzu rozsáhlého objemu dat. Typickými aplikacemi mohou být rozpoznávání obrazu, řeči případně dalších aplikací, kde běžné postupy selhávají.
Deep learning (hluboké učení)
Deep learning je vědní obor, zabývající se strojovým učením a rozvojem umělé inteligence. Na jeho principu je založena celá řada moderních frameworků umožňujících vytvářet výpočetní modely, které slouží pro učení dat s různou úrovní abstrakce. Toho lze s výhodou použít pro aplikace rozpoznání obrazu, zvuku nebo jiné, kde je potřeba efektivně zpracovávat velké objemy dat.
Neuronové sítě
Neuronové sítě se využívají pro aplikaci Deep learning. V případě Deep learning se jedná o konvoluční neuronovou síť. Neuronové sítě našly inspiraci v lidském mozku, kde mozek zpracovává vnější vjemy pomocí předávání informací mezi biologickými neurony seskupených do neuronové sítě. Zjednodušeně řečeno, každý neuron na základě příchozích podmětů zareaguje určitým způsobem a výsledek zpracování předá ostatním neuronům v síti pro další zpracování. Jedná se o paralelní zpracování velkého objemu dat a vzájemná interakce mezi jednotlivými buňkami. Chování buněk (to jakým způsobem informace zpracují) se na základě zpětné vazby upravuje tak, aby výsledek zpracování nejvíce odpovídal realitě. Tomuto procesu se říká učení. Proces učení, je nejnáročnější část vývoje SW na bázi neuronových sítí. Je potřeba velké množství dat (vzorků) a postupné učení neuronové sítě nad tímto vzorkem dat.
Výhody/nevýhody neuronových sítí
Při použití neuronových sítí nevytváří programátor složité algoritmy na vyhodnocení, soustředí se hlavně na “natrénování” sítě na danou úlohu. To znamená, že samotný kód není až tak moc závislý na konkrétní úloze a v budoucnu lze bez zásahu do kódu, pouze natrénovat neuronovou sít na jinou úlohu Například změna tvaru a barvy produktu při vizuální kontrole výrobků. Neuronovou sítí lze řešit i úlohy, které často standardním způsobem řešit nejdou, nebo neexistuje dostatečně rychlé vyhodnocení.
Nevýhodou neuronových sítí je to, že sám programátor přesně neví, na základě čeho neuronová síť vyhodnotila vstupní data tak, jak je vyhodnotila. Je to všechno o tom, na co byla neuronová síť naučena. Další nevýhodou je v počátku nutnost získat velké množství “testovacích” dat, na které se síť bude učit. Čím více dat, tím lze očekávat, že vyhodnocení bude přesnější.