Aplikace umělé inteligence

Přejít ke cvičením na toto téma »

Umělá inteligence a strojové učení mají využití v mnoha oblastech aplikované informatiky. Na Umíme najdete základní přehled o následujících oblastech:

Co umělá inteligence v dnešní době umí a co ne, si můžete procvičit v rámci tématu Využití a schopnosti umělé inteligence.

Zpracování přirozeného jazyka

Přejít ke cvičením na toto téma »

Zpracování přirozeného jazyka (angl. natural language processing) je obor na pomezí informatiky (specificky umělé inteligence) a lingvistiky, který zkoumá analýzu a generování psaného či mluveného slova. Mezi úlohy zpracování přirozeného jazyka patří:

  • klasifikace textu (detekce spamu, určení žánru, určení autorství)
  • shlukování textů (vytvoření skupin podobných zpráv nebo souvisejících soudních případů)
  • korektura textu (kontrola pravopisu – spell-check, kontrola gramatiky – grammar check)
  • generování textu (odpovídání na otázky, shrnování textu, strojový překlad)
  • rozpoznávání řeči (řeč → text) a syntéza řeči (text → řeč)
  • popisování obrázků (obrázek → text) a generování obrázků (text → obrázek)

Pravidlový přístup

Dříve se na tyto úlohy využívaly pravidlové přístupy snažící se zachytit pravidla daného jazyka (např. časování sloves). Analýza textu byla rozdělena do několika navazujících úrovní (jazykových rovin): 1. morfologie (konstrukce slov), 2. syntaxe (skládání vět), 3. sémantika (význam vět) a 4. pragmatika (použití vět v kontextu). Postihnout přirozený jazyk pomocí pravidel se však ukázalo jako obtížné.

Komplikace zpracování přirozeného jazyka

Každé pravidlo má řadu výjimek a texty v přirozeném jazyce obsahují překlepy a jiné chyby, které je také potřeba modelovat, chceme-li textu porozumět. Další komplikací je nejednoznačnost na mnoha úrovních: homonyma, tj. slova s více možnými významy (los, stát, koruna), věty s více možnými významy („Sněz rychle chladnoucí polévku.“), zájmena odkazující se na dříve uvedené objekty (anafory) a další odkazy do jiných částí textu nebo i mimo něj (já, teď). Význam vět nelze vždy určit z významu dílčích slov, například při použití idiomů, metafor a metonymií.

Strojové učení

V dnešní době se zpracování přirozeného jazyka řeší téměř výhradně využitím strojového učení, které dosahuje výrazně lepších výsledků než pravidlové přístupy. K učení se využívají rozsáhlé kolekce textových dokumentů označované jako korpusy. Korpusy obsahují například digitalizované knížky, online encyklopedie (Wikipedia), někdy dokonce texty z většiny dostupných webových stránek a můžou tak mít i miliardy slov.

Výstupem strojového učení je jazykový model, který odhaduje pravděpodobnost dalšího slova v rozepsaném textu. Takový model lze pak využít ke generování textu v chatbotech (opakovaným výběrem některého z pravděpodobných dalších slov) nebo výběru nejpravděpodobnější věty z několika kandidátů (to se hodí třeba při rozpoznávání řeči nebo strojovém překladu). Jazykové modely realizované pomocí rozsáhlých neuronových sítí s miliardami parametrů (které se nastavují během učení) se označují jako velké jazykové modely (angl. large language models, LLM).

ChatGPT

Příkladem velkého jazykového modelu je GPT, generativní předtrénovaný transformátor. Jde o generativní model, protože umožňuje generovat text. Je předtrénovaný na rozsáhlém datasetu textů z většiny dostupných webových stránek. Transformátor (angl. transformer) je populární typ neuronové sítě umožňující efektivní učení na takto rozsáhlých datech. ChatGPT je pak název konkrétní aplikace (chatbota) využívající na pozadí tento velký jazykový model.

Reprezentace textu

Základní jednotkou při práci s textem jsou tokeny, což jsou typicky buď známá slova nebo části neznámých slov. Možných tokenů v jednom jazyce je pak třeba několik desítek tisíc. Rozdělení textu na tokeny se označuje jako tokenizace. Pro některé aplikace je výhodné slova převést do jejich základního tvaru, tzv. lemma (jablek → jablko, jsme → být).

Jednotlivá slova se často reprezentují pomocí tzv. vnoření slov (angl. word embeddings) jako vektory reálných čísel v mnohodimenzionálním prostoru. Slova podobného významu jsou v tomto prostoru blízko sebe.

Skupiny slov lze pak reprezentovat buď jako množinu, tedy bez ohledu na pořadí (angl. bag of words), nebo se zachováním pořadí jako tzv. n-gramy (např. bigramy jsou dvojice po sobě jdoucích slov).

Robotika se zabývá vývojem robotů, tedy strojů, které se pohybují v prostoru, vnímají své okolí a na základě jeho stavu se rozhodují. Roboti mají uplatnění v průmyslu (robotická ramena), dopravě (autonomní auta) i domácnosti (robotický vysavač).

Je „kuchyňský robot“ robot?

Navzdory pojmenování kuchyňský robot technicky robotem spíše není, protože nevnímá své okolí a nedělá žádná autonomní rozhodnutí.

Slovo „robot“ je odvozené ze slova „robota“ (práce poddaných) a bylo poprvé použito v divadelní hře hře R.U.R. (Rossumovi univerzální roboti) Karla Čapka v roce 1920. Android je označení pro humanoidní roboty, tedy roboty, kteří mají lidskou podobu. Robot však obecně lidskou podobu mít nemusí, pro mnohé aplikace to není ani potřeba, ani žádoucí (např. robotický vysavač). Měl by ale mít nějakou mechanickou část. (Pro čistě virtuální roboty, tedy programy automatizující činnosti, se někdy používá pojem bot.)

Části robota

Senzory umožňují robotovi vnímat prostředí. Několik příkladů:

  • GPS = určování polohy pomocí družic obíhajících Zemi
  • radar = měření vzdáleností od okolních objektů pomocí radiových vln
  • lidar = měření vzdáleností od okolních objektů pomocí světelných paprsků (měří čas, za jak dlouho se vrátí)
  • sonar = měření vzdálenosti pomocí zvukových (typicky ultazvukových) vln
  • kamera = zachycení obrazu, užitečné pro kategorizaci objektů
  • jednotka inerciálního měření (angl. Inertial Measurement Unit, IMU) kombinuje gyroskop, akcelerometr (a někdy také magnetometer) k určení orientace, rychlosti a zrychlení stroje

Řídící jednotka, typicky realizována skrze jednočipový počítač (mikrokontrolér), umožňuje robotovi zpracovat informace ze senzorů a rozhodnout se, jak reagovat.

Efektory umožňují robotovi ovlivňovat prostředí (např. robotická ramena a chapadla) a pohybovat se v něm (např. kola, pásy, robotické nohy).

Umělá inteligence

Umělá inteligence se v robotice využívá například k plánování trasy, lokalizaci robota a rozpoznávání okolních objektů. Tyto úlohy jsou komplikované kvůli tomu, že neznáme přesný stav světa (např. kvůli nepřesným měřením senzorů) a jak se bude svět vyvíjet (např. pohyb ostatních aut). Zdrojem nejistoty je i robot samotný, neboť provedení akcí není dokonale přesné (otočení o 89° místo zadaných 90°). Proto se k řešení využívají pravděpodobnostní modely, které dokáží modelovat i nejistotu. S každým novým měřením senzorů se tato nejistota snižuje, s ubíhajícím časem a pohybem naopak zvyšuje.

Při plánování je potřeba vzít v úvahu konstrukční omezení, kvůli kterým robot nemusí být schopen vykonat libovolný plán (např. auto se nemůže pohybovat po libovolné křivce, proto je parkování náročné). Plánování se proto někdy neprovádí v geometrickém prostoru světa, ale v konfiguračním prostoru daného robota, v němž jednotlivé stavy popisují kompletní stav robota (např. jeho pozici, otočení, rychlost).

Počítačové vidění je oblast umělé inteligence zabývající se získáváním informací z obrazových dat. Obrazová data nejsou jen fotky a obrázky, ale také videa, snímky medicínských měření (rentgen, ultrazvuk) a snímky z různých senzorů (radar, sonar). Typické úlohy počítačového vidění jsou:

  • rozpoznání obrazu – určení kategorie objektu (druh květiny na fotce, ručně napsaný znak)
  • detekce objektů – identifikace různých objektů včetně jejich lokalizace na snímku (chodci, tváře, dopravní značky)
  • segmentace obrazu – rozdělení obrazu na jednotlivé části nebo objekty (oddělení popředí a pozadí fotky, obarvení různých druhů tkání)

Příklady aplikací počítačového vidění

  • rozpoznávání naskenovaného textu (OCR z angl. optical character recognition)
  • rozpoznávání tváří (identifikace osob na fotkách)
  • určení druhu rostliny či zvířete na fotce
  • analýza medicínských měření (např. rentgenových snímků)
  • kontrola kvality výrobků (automatické odhalení defektů)
  • detekce událostí na videu (např. krádež zachycená bezpečnostním kamerovým systémem)
  • vyhledávání obrázku podle textového popisu (nebo obrázků podobných zadnému obrázku)
  • autonomní auta (např. detekce hranic vozovky, ostatních aut, chodců, rozpoznání dopravních značek)
  • roboti vnímající a reagující své okolí (např. chycení předmětu)

Počítačové vidění nelze řešit pomocí ručně zapsaných pravidel. (I tentýž předmět vypadá pokaždé jinak podle toho, jak je daleko, natočený, osvětlený nebo částečně zakrytý.) Proto se využívá strojové učení, kdy se program učí obecné rysy různých objektů na základě velkého množství příkladů. (Pokud se má program naučit klasifikovat různé druhy zvířat, potřebuje k učení fotky všech různých druhů, které má rozlišovat, ideálně v mnoha různých situacích.)

Základní rysy obrázků můžou být například hrany a rohy. Takové rysy lze z původního obrázku získat pomocí konvoluce, což je transformace obrázku, při které je každý pixel nahrazen váženým součtem hodnot pixelů v jeho okolí. Hodnoty vah můžou být různé a označují se jako tzv. konvoluční jádro (angl. kernel). Dříve bylo běžné určit tyto rysy manuálně a použít je jako vstup do jednoduchého modelu.

Dnes se využívají složitější modely, které se automaticky učí vhodné rysy samy extrahovat. (Potřebují však ještě větší množství příkladů než jednodušší modely, které používaly manuálně zadané rysy.) Nejčastěji se využívají hluboké neuronové sítě. Neuronové sítě jsou volně inspirované strukturou mozku, ale jde v podstatě jen o složitou matematickou funkci s mnoha parametry, jejichž hodnoty se učí z dat. Slovo „hluboké“ se zde odkazuje na fakt, že sítě obsahují mnoho vrstev, které postupně zachycují složitější rysy a vzory (hrany → základní geometrické tvary → komplexní tvary → „kočkovitost“ atp.). Na úlohy počítačového vidění se dobře hodí konvoluční neuronové sítě, které obsahují vrstvy provádějící konvoluci. Váhy konvoluce nejsou dané dopředu, učí se z dat.

NAPIŠTE NÁM

Děkujeme za vaši zprávu, byla úspěšně odeslána.

Napište nám

Nevíte si rady?

Nejprve se prosím podívejte na časté dotazy:

Čeho se zpráva týká?

Vzkaz Obsah Ovládání Přihlášení Licence