Umělá inteligence

Umělá inteligence je soubor softwarových a hardwarových technologií, který pomáhá automatizovat, zrychlovat, zpřesňovat, škálovat lidské kognitivní schopnosti (vnímání, rozhodování, uvažování). Jedná se o systém, který je schopen dosahovat komplexnějšího cíle (hraj šachy, parkuj, …).

Rozdělení

Obecná umělá inteligence

    • dokáže zcela samostatně uvažovat a jednat
    • volí si cíle a prioritizuje je
    • Učí se učit – metalearning
    • Vylepšuje sebe, hledá své nedostatky a opravuje je
    • V realitě neexistuje
    • Známe ji jen ze sci-fi (Centrální Mozek Lidstva, Matrix, Terminátor, Asimov, …)

Úzká umělá inteligence

  • Provádí automatizaci konkrétní přesně ohraničené lidské činnosti
  • Většinou je lepší jak člověk (přesnost, rychlost, škálovatelnost)
  • Je nepoužitelná v jiných úlohách, než na které byla vytvořena
  • Již existuje a většina lidi ji používá, aniž by si to uvědomovala (Google překladač, různí asistenti, našeptávače atd.)

Historie

  • Již stovky let se vede Matematicko-filozofická debata, jak lidské uvažování matematicky formalizovat, jak se výpočet může podobat lidskému myšlení, jak funguje lidský mozek
  • 1950 - Turingův test
  • 1997 - IBM DEEP BLUE porazilo Kasparova (tým obsahoval mnoho programátorů a 4 velmistrům v šachu, kteří definovali pravidla, jak se zachovat, v jakých herních situacích. Herní prostor byl prohledáván velkým výpočetním výkonem.
  • 2004 - DARPA, vyhlásila soutěž, jaký tým přejede autonomním autem mohavskou poušť (200 km), nejlepší tým urazil 11 km
  • 2005 - většina týmů přejelo celou poušť
  • 2011 - IBM systém Watson vyhrál JEOPARDY, rychlé zpracování velkého množství nestrukturovaných dat, pochopení lidsky položené otázky.
  • 2012 - počítač poznal na obrázku kočku, sám se naučil, jak ji poznat
  • 2016 - DEEPMIND porazila velmistra v GO, cvičila se sama na sobě
  • 2017 - Počítač porazil člověka v Pokeru (v týmy 1 Čech, 2 Slováci)
  • 2018 - Google nasadil autonomní taxík

Přístupy k umělé inteligenci

Symbolická AI (GOFAI Good Old FinE AI)

Jedná se o nejstarší přístup, jak vytvořit umělou inteligenci. Základem je snaha o pochopení a napodobení, jak si člověk ukládá a zpracovává znalosti. Znalosti o světě relevantním k řešení problému jsou ukládány do datové struktury jako grafy, myšlenkové mapy, pravidla apod. Programátoři se snaží napodobit lidskou práci s informacemi při řešení problému, vytváří algoritmy pro inteligentní prohledávání stavového prostoru, algoritmy vyhodnocující pravidla apod.

Výsledkem je popis znalostí a práce s nimi pomocí symbolického jazyku jako je LISP nebo Prolog. Příkladem je Deep Blue vs Kaparov, dokazování matematických vět, herní algoritmy postav nebo zákony robotiky od Asimova.

Statisticko-matematická AI

V posledních letech se začíná prosazovat tento typ umělé inteligence. Souvisí to s rostoucími výpočetními kapacitami počítačů. U GOFAI přístupu jsou na počátku data, která je potřeba analyzovat. Doménový experti a programátoři vytvoří model (expertní systém), který dává výsledky.

U statistické umělé inteligence je postup obrácený. Na počátku jsou data a výsledky a úkolem počítače je vytvořit model/program, který nejlépe převádí vstupní data na výsledky. Výsledkem je blackbox, který v dnešní době funguje lépe než člověk.

Principů, na kterých je lze vytvořit statistickou umělou inteligenci je více, od genetických algoritmů, přes rozhodovací strom, náhodný les, support vector, Bayesian, optimalizací rovnic až po neuronové sítě. Právě neuronové sítě se v současnosti ukazují jako nejvhodnější.

Typy statistické umělé inteligence

  • S lektorem – model se vytváří na základě dat, které lektor popsal. Typickou úlohou je klasifikace, detekce.
  • Bez lektora – při vytváření modelu se vychází pouze z dat, AI v nich sama hledá vzorce, podobnosti, tvary, anomálie apod. které jsou statisticky významné. Typickou úlohou je clustering, vyhledání vzorů.
  • Posilované učení – nejčastěji se používá v robotice. Po provedené akci AI dostane zpětnou vazbu v podobě odměnu nebo trestu.

Neuronové sítě

Neuronové sítě se velmi inspirují biologickým mozkem. V biologickém mozku je základním prvkem neuron. Neuron je propojen synapsemi na další neurony a vytváří tak hustou síť. Chování mozku je ovlivněno chováním a reakcemi na vnitřní i vnější prostředí organizmu. Během života dochází k procesu učení, kdy jsou vytvářeny, posilovány nebo oslabovány spoje mezi neurony.

U umělých neuronových sítí (ANN) jsou základním stavebním prvkem perceptrony. Jedná se o matematickou funkci nazývanou aktivační, která má na vstupu je N hodnot a N vah. Příkladem funkce může být vážený součet. Neuronová síť může používat různé funkce na různých místech sítě, aby dosahovala správné funkcionality. Výstupem je pak hodnota z různých oborů hodnot.

Stejně jako se v biologickém mozku spojují neurony pomocí synapsí, tak i umělé neuronové síti jsou perceptory propojeny. Ta obsahuje vstupní vrstvu, skryté vrstvy a výstupní vrstvu.

 

Úlohy pro neuronové sítě

  • Klasifikace snímků do tříd
  • Detekce – hledání objektů na snímkách a ve videích
  • Segmentace – určení přesného obrysu objektu
  • Regresní úlohy – odhad hodnot proměnných na základě historických dat
  • Shlukování dat – obecné zatřiďování výrobků
  • Optimalizace – obchodní cestující, komprimace, rozvržení výroby, …

Typy neuronových sítí

Existují různé typy umělých neuronových sítí, které se liší vnitřní strukturou a použitím.

Konvoluční neuronové sítě (CNN)

Konvoluční neuronová síť se skládá z různých vrstev. V principu se z několika okolních bodů vypočítá nový bod. Toto se opakuje. Dochází tak k postupné komprimaci obrazu. Pokud CNN použijeme například pro úlohu klasifikace, tak vstupní vrstva obsahuje X * Y vstupních perceptorů, které jsou postupně komprimovány na N výstupních perceptorů, které jsou reprezentovány textovými třídami popisující obrázky. Tento typ sítě právě používáme pro zpracování obrazových vstupů nebo dat, které mají závislosti v umístění jako data z radioteleskopů, audio data, genetická data apod.


Princip konvoluce


Více vrstev CNN



R-CCN

Tento typ sítě se používá pro detekci objektů ve vstupním obrázku. Některé vrstvy detekují obdélníkové oblasti obrázku, které k sobě patří. Tyto části obrázku jsou poté zpracovány CNN částí sítě, která se je pokusí klasifikovat podle naučených tříd. Proti CNN je tato síť výpočetně náročnější, protože při zpracování dochází k mnohonásobné klasifikaci různých částí obrázku.

 

U-Net

Neuronová síť používaná pro segmentaci obrázků. Proti R-CNN je detekovaná přesná oblast objektu.



 

Opakující se neuronová síť (RNN – Recurent NN)

Tento typ neuronové sítě se používá pro analýzu dat, kde je důležitý kontext. Minulá data mohou vliv na aktuálně zpracovávaný data - predikce časových řad. Případně se používají pro práci s text – překlady, Text to Speech úlohy. Neuronová síť má díky zpětný vazbám v některých vrstvách „paměť”.

Generative Adversarial Networks (GAN)

Tato síť se používá pro generování objektů na základě popisu. Jedná se v principu o inverzní CNN síť. Na vstupu je popis, co se vygenerovat a na výstupu je vygenerovaný obrázek. Použití může být pro generování testovacích anonymizovaný dat, vylepšování/zkreslování obrázků a videí (změny obličeje podle mluveného slova, vytváření fake news, odstranění objektů z fotografií atd.)