Umělá inteligence a strojové učení (SŠ)

Typický ročník4. SŠ
Interval vhodných ročníků2. SŠ – 4. SŠ
Učivoumělá inteligence, strojové učení, metody AI, prohledávání, splňování podmínek, optimalizace, zkreslení v datech, trénovací data, hodnocení modelu, limity a rizika AI
Předcházející modul Základy umělé inteligence a strojového učení
Bezprostřední výsledky učení
  • Vysvětlí základní pojmy a principy fungování umělé inteligence a strojového učení.
  • Na konkrétním příkladu popíše, jak strojové učení probíhá a co ovlivňuje kvalitu modelu.
  • Rozpozná základní typy úloh strojového učení (klasifikace, regrese, shlukování) a uvede k nim příklady.
  • Vysvětlí, jak může zkreslení v trénovacích datech ovlivnit chování modelu a proč je důležité ho rozpoznat.
  • Popíše vybrané metody AI (např. prohledávání stavového prostoru, optimalizace) a jejich využití při řešení problémů.
  • Rozliší mezi realistickými možnostmi a přehnanými očekáváními od AI, uvede příklady z praxe a fikce.
Související RVP výsledky učení
  • Umělá inteligence: princip strojového učení; aplikace umělé inteligence; limity, přínosy a rizika umělé inteligence.

Tento modul nabízí úvod do klíčových principů umělé inteligence a strojového učení s důrazem na porozumění základním pojmům, typickým úlohám a způsobu, jakým se modely učí ze vstupních dat. Nezabývá se do hloubky konkrétními technologiemi, které se rychle vyvíjejí, ale soustředí se na stabilní a nadčasové myšlenky – od prohledávání a optimalizace až po principy generalizace a zkreslení v trénovacích datech. Téma je zasazeno do kontextu reálného světa, s důrazem na kritické myšlení, reflexi možností a omezení AI a její dopad na společnost.

Bloky a dosažený postup

1. Základní principy a pojmy Splněno základních cvičení: 0/6

Tento blok doporučujeme řešit.
2. Aplikace umělé inteligence Splněno základních cvičení: 0/7
3. Metody umělé inteligence Splněno základních cvičení: 0/7
4. Strojové učení Splněno základních cvičení: 0/7
5. Vyhodnocení a předpojatost strojového učení Splněno základních cvičení: 0/7
6. Opakování Splněno základních cvičení: 0/4
1. Základní principy a pojmy
Souhrn tématu

Vymezení umělé inteligence

Souhrn tématu

Umělá inteligence (zkráceně AI z anglického Artificial Intelligence) označuje programy řešící složité problémy (např. hraní šachů nebo řízení auta) a také obor informatiky zabývající se vytvářením těchto programů. Umělá inteligence nejsou jen roboti, častěji jde o počítačový program bez fyzické podoby. Umělá inteligence má využití všude, kde existují složité problémy, například ve zpracování přirozeného jazyka, robotice a počítačovém vidění.

Definice umělé inteligence

Neexistuje jednotná definice umělé inteligence. Někdy se za umělou inteligenci považují programy, které se chovají jako lidé, to je ale omezující v tom, že lidé se často nechovají inteligentně, dělají chyby a některé složité problémy řešit neumí. Vhodnější je proto považovat za umělou inteligenci programy, které se chovají inteligentně (racionálně). Inteligentní chování znamená, že se program snaží maximalizovat očekávaný užitek (např. pravděpodobnost výhry v šachu).

Turingův test

V polovině 20. století navrhl Alan Turing známý test na rozpoznání umělé inteligence: Pokud nejsme při písemné komunikaci schopni rozlišit, zda si povídáme s člověkem nebo programem, pak můžeme daný program považovat za umělou inteligenci. Turingův test odpovídá definici umělé inteligence jako programu, který se chová jako člověk, což je omezující – aby program prošel tímto testem, nesmí odpovídat příliš rychle a musí záměrně dělat chyby, jaké by udělal člověk (např. při násobení velkých čísel).

AI efekt

Umělá inteligence řeší složité problémy – problémy, jejichž řešení ještě donedávna vyžadovalo lidskou inteligenci. Jakmile si zvykneme na to, že daný problém umí počítače řešit, přestaneme ho považovat za složitý a program, který ho řeší, přestaneme považovat za umělou inteligenci. Tento neustálý posun toho, co považujeme za umělou inteligenci, se označuje jako AI efekt.

Úzká vs. obecná umělá inteligence

Souhrn tématu

Umělá inteligence: pojmy

Souhrn tématu

Pro správné pochopení zpráv a jiných textů o umělé inteligenci je potřeba znát řadu pojmů. Jejich přesný význam je často komplikovaný a ne úplně jednoznačný (mají třeba více významových odstínů a použití). Naše stručné popisy se snaží zachytit jejich základní podstatu.

Typy a kategorie

android robot vypadající jako člověk, mívá povrchový materiál připomínající kůži autonomní robot robot, který pracuje samostatně generativní AI vytváří nový obsah (obraz, text, zvuk) humanoidní robot robot, který svou konstrukcí připomíná člověka inteligentní agent program interagující s prostředím a využívající umělou inteligenci jazykový model odhaduje pravděpodobnost dalšího slova v rozepsaném textu robot stroj, který se pohybuje v prostoru a rozhoduje se na základě stavu okolí obecná AI umí řešit libovolný problém alespoň tak dobře jako lidé superinteligence vysoce převyšuje schopnosti lidí ve všech oblastech umělá inteligence (AI) program schopný provádět úkol vyžadující inteligenci úzká AI řeší pouze určitý specializovaný typ problému (např. vysávat) vysvětlitelná AI lze poskytnout vysvětlení, proč se chová tak, jak se chová

Metody, techniky, přístupy

Bayesovská síť pravděpodobnostní model zachycující vztahy mezi událostmi fuzzy logika typ logiky umožňující pracovat s nepřesností a nejistotou expertní systém kombinuje znalosti a pravidla získaná od odborníků na daný problém genetický algoritmus optimalizační algoritmus inspirovaný evolucí a biologickými procesy dědičnosti GPT typ velkého jazykového modelu (Generativní Předtrénovaný Transformátor) hluboké učení neuronové sítě s mnoha vrstvami, které se učí hierarchickou reprezentaci vlastností hrubá síla zkoušení všech možností neuronová síť model strojového učení volně inspirovaný mozkem perceptron nejjednodušší neuronová síť s jediným neuronem prohledávání (stavového prostoru) algoritmy pro hledání optimálních plánů (např. dalšího tahu v piškvorkách) posilované (zpětnovazební) učení strojové učení využívající interakci a zpětnou vazbu na provedené akce rozhodovací strom model strojového učení využívající podmínky (při rozhodování procházíme větvemi stromu podle toho, které podmínky jsou splněné) strojové učení techniky založené na automatizovaném učení z dat či zkušenosti velký jazykový model rozsáhlá neuronová síť predikující pravděpodobnost dalšího slova

Oblasti, aplikace, úlohy

doporučovací systém poskytuje personalizovaná doporučení (např. hudby) chatovací program program schopný konverzovat s člověkem (většinou psanou formou) počítačové vidění získávání informací z obrazových dat predikce předpověď či odhadnutí kategorie nebo hodnoty (např. zítřejší teploty) robotika vývoj strojů, které se pohybují v prostoru rozpoznávání řeči automatický převod mluvené řeči do textu syntéza řeči umělá tvorba lidské řeči úloha s omezujícími podmínkami úloha nalézt hodnoty proměnných, které splňují různá provázaná omezení (např. sudoku) zpracování přirozeného jazyka strojové zpracování běžných lidských jazyků (např. čeština, angličtina)
Souhrn tématu

Historie umělé inteligence

Souhrn tématu

Před rokem 1950

  • Karel Čapek napsal divadelní hru R.U.R, ve které bylo poprvé použito slovo robot (1920).
  • První počítače, používané především pro výpočty v průběhu druhé světové války (např. pro dešifrování).
  • První model neuronu, který se stal základem neuronových sítí.

1950–1960

  • Základy umělé inteligence jako vědy, první principy algoritmů umělé inteligence.
  • Alan Turing navrhuje test strojové inteligence (Turingův test), kdy člověk musí rozpoznat, zda komunikuje s počítačem či člověkem.
  • Začátek vývoje průmyslových robotů.

1960–1970

  • Využívání pravidlových systémů a logického odvozování, rozvoj technik prohledávání stavového prostoru.
  • První chatovací programy (např. Eliza).
  • První programy hrající deskové hry (např. dámu, piškvorky) na úrovni amatéra.
  • První samostatně se pohybující roboti (např. Shakey).
  • Základy zpracování přirozeného jazyka, první demonstrace strojového překladu.
  • Základy rozpoznávání obrazu.

1970–1990

Souhrn tématu

Využití a schopnosti umělé inteligence

Souhrn tématu

Mezi typické aplikace umělé inteligence patří:

  • robotika (např. robotický vysavač, průmysloví roboti, samořídící auta),
  • doporučovací systémy (např. doporučování filmů, hudby, knih),
  • zpracování přirozeného jazyka (např. překládání mezi jazyky, internetový vyhledávač, detekce spamu),
  • rozvrhování a plánování (např. navigace, tvorba školního rozvrhu, plánování výroby v továrně),
  • počítačové vidění (např. rozpoznání osob, SPZ či rostliny na fotce),
  • počítačové hry (např. šachový program, chování nehráčských postav).

Umělá inteligence má využití především v oblastech, kde se vyskytují opakované, repetitivní činnosti (např. obsluha výrobních pásů, řízení strojů, základní administrativní úkony) nebo kde je potřeba zpracovat velké množství dat a hledat v něm vzory (např. odpovídání na otázky na základě textů na webu, personalizované doporučování produktů, detekce podvodných bankovních transakcí).

Umělá inteligence zatím nemá schopnosti, které vyžadují složitější manuální operace (např. stříhání vlasů), koordinaci rozmanitých činností (např. rekonstrukce bytu), sociální dovednosti a empatii (např. zdravotnictví) či kreativitu a samostatné formulování cílů (např. výzkum).

Souhrn tématu

Umělá inteligence: realita a fikce

Souhrn tématu

Umělá inteligence se často vyskytuje i v uměleckých dílech (knihy, filmy, divadelní hry). Její zobrazení ve fikci však často neodpovídá skutečnosti a je tedy užitečné umět rozlišovat, co je realita a co fikce. Fikce neumožňuje získat lepší představu o aktuální podobě a schopnostech umělé inteligence, ale přináší zajímavé etické a filozofické otázky.

Příklady známých fiktivních robotů a programů:

Golem, Frankenstein: Umělé myslící stroje z pověstí či knih, předchází použití slova robot.

Roboti v divadelní hře R.U.R. od Karla Čapka (první použití slova robot).

HAL 9000: Program řídící vesmírnou loď z filmu 2001: Vesmírná odysea. Známý tím, že se snaží zabít kosmonauty, aby dosáhl splnění zadaného úkolu.

Umělá inteligence ve filmu Matrix, která zotročila lidstvo jako zdroj energie.

Marvin: Paranoidní robot z knižní série Stopařův průvodce po galaxii.

2. Aplikace umělé inteligence
Souhrn tématu

Zpracování přirozeného jazyka

Souhrn tématu

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 mohou tak mít i miliardy slov.

ChatGPT
Souhrn tématu

Robotika

Souhrn tématu

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 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 ultrazvukový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.

Souhrn tématu

Počítačové vidění

Souhrn tématu

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 zadané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ů mohou 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 mohou 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.

3. Metody umělé inteligence
Souhrn tématu

Úlohy a metody umělé inteligence

Souhrn tématu

Na první pohled vypadá každý nový problém jinak, ale při vhodné abstrakci se často ukáže, že jde o jeden ze známých typů úloh, pro jehož řešení můžeme využít standardní postupy a algoritmy.

Typy úloh umělé inteligence

Mezi typy úloh řešených v umělé inteligenci patří:

  • plánování – nalezení (nejkratší) posloupnosti akcí, která nás dostane do cíle (nalezení cesty z bludiště, poskládání Rubikovy kostky, naplánování cesty auta do zadané lokace, řešení Sokobana, Autíček a podobných logických úloh)
  • splňování podmínek – nalezení hodnot proměnných, které splňují různá provázaná omezení (tvorba školního rozvrhu, řešení sudoku a podobných logických úloh)
  • optimalizace – hledání hodnot proměnných minimalizující nebo maximalizující zadanou funkci (sbalení batohu s nejvyšší hodnotou vybraných předmětů, hledání receptu na nejlepší sušenky)
  • řízení – nalezení strategie předepisující vhodnou akci pro různé situace (hraní šachu, jízda auta mezi dvěma křižovatkami)
  • predikce – určení kategorie nebo hodnoty nějakého atributu určitého vzorku (detekce spamu, rozpoznání rostliny na fotce, odhad zítřejších srážek)
  • generování – vytvoření textu nebo obrázku na základě jiného textu nebo obrázku (odpovídání na otázky, strojový překlad, vygenerování popsaného obrázku)

Mnohé problémy jsou kombinací více typů úloh. Například problém obchodního cestujícího (úloha najít nejkratší cestu, která projde všemi zadanými městy a vrátí se do výchozího bodu) zahrnuje plánování, optimalizaci i splňování podmínek.

Charakteristiky prostředí

Úlohy můžeme dále rozlišovat podle vlastností prostředí, se kterým program interaguje:

Příklady prostředí
Souhrn tématu

Prohledávání stavového prostoru

Souhrn tématu

Prohledávání stavového prostoru je základem mnoha technik umělé inteligence, využívá se například pro řešení logických úloh, výběr optimálního tahu, hledání nejkratší cesty nebo plánování akcí robota.

Stavový prostor úlohy se skládá ze stavů (možné konfigurace úlohy) a akcí (přechody mezi stavy). Jeden ze stavů je počáteční a alespoň jeden stav je cílový. Přechody mohou mít přidruženou cenu.

Stavový prostor jako graf

Stavový prostor lze reprezentovat ohodnoceným orientovaným grafem, jehož vrcholy odpovídají stavům a hrany akcím. Graf stavového prostoru je pro většinu praktických úloh příliš velký na to, abychom ho celý zkonstruovali v paměti, ale některé prohledávací algoritmy si postupně budují část tohoto grafu.

Plán je libovolná posloupnost akcí. Řešení úlohy je takový plán, který nás dostane z počátečního stavu do cílového. Optimální řešení je řešení, které má nejnižší cenu. (Cena plánu je nejčastěji součet cen jednotlivých přechodů.)

Příklad stavového prostoru (skřítek na mřížce)

Úlohou je dostat skřítka do domečku. Stavový prostor úlohy má 8 stavů (A–H) a 4 akce (doleva, doprava, dolů, nahoru). Počáteční stav je A, cílový stav F. Optimálním řešením úlohy je např. plán dolů–dolů. Příkladem řešení, které není optimální, je doprava–dolů–dolů–doleva.

Zkoušení všech možností

Kolik je různých plánů? Algoritmus stromového prohledávání
Souhrn tématu

Splňování podmínek v umělé inteligenci

Souhrn tématu

Mnoho úloh umělé inteligence lze formulovat jako splňování podmínek. Úloha splňování podmínek je zadaná sadou proměnných, jejich doménami (možné hodnoty) a sadou podmínek na kombinace hodnot proměnných. Ohodnocení (přiřazení hodnot některým proměnným) je řešením úlohy, pokud je úplné (přiřazuje hodnotu všem proměnným) a konzistentní (neporušuje žádnou podmínku). Někdy je navíc zadána účelová funkce určující hodnotu řešení, kterou chceme optimalizovat.

Oblast informatiky zabývající se touto úlohou se označuje jako programování s omezujícími podmínkami. Splňování podmínek je podstatou mnohých logických úloh (např. problém 8 dam, Einsteinova hádanka, algebrogram). V si můžete vyzkoušet sudoku, ploty a binární křížovku. Praktickou aplikací je třeba sestavování konfigurací produktu splňující zadaná omezení nebo tvorba rozvrhů (školní rozvrhy, jízdní řády, logistika výroby, rozpis zápasů na turnaji).

Problém 8 dam

Úkol rozestavit na šachovnici 8 dam tak, aby se žádné dvě vzájemně neohrožovaly. (Dáma se může pohybovat o libovolný počet polí vodorovně, svisle i diagonálně.) Úlohu lze zobecnit na „problém N dam“, které máme umístit na šachovnici velikosti N×N.

Einsteinova hádanka

Úkol odvodit vlastnosti několika objektů na základě omezených informací. Nejznámější zadání popisuje pět domů, které stojí vedle sebe, liší se barvou, národností majitelů, jejich oblíbeným nápojem, značkou cigaret a domácím mazlíčkem. K dispozici máme 15 informací typu „Angličan žije v červeném domě.“

Algebrogram

Úkol nahradit písmena za různé číslice tak, aby byl splněný zadaný vzorec. Příklad: SEND + MORE = MONEY.

Řešení úloh splňování podmínek

Jakmile nějaký problém namodelujeme jako úlohu splňování podmínek, lze využít obecné postupy pro jejich řešení. Naivní zkoušení všech možných ohodnocení (generuj a testuj) většinou bude příliš pomalé, protože počet možných ohodnocení roste exponenciálně k počtu proměnných. K řešení se proto typicky používá postupné budování řešení s propagací omezení, nebo postupné zlepšování úplného ohodnocení.

Které problémy jsou těžké? Splňování podmínek vs. plánování
Souhrn tématu

Optimalizace

Souhrn tématu

Optimalizace znamená hledání nejlepšího řešení. Hledáme hodnoty optimalizovaných proměnných, při kterých je zadaná účelová funkce nejvyšší (maximum), nebo nejnižší (minimum). Optimalizace se využívá například při plánování výroby, rozvrhování dopravy, návrhu telekomunikačních sítí a trénování modelů ve strojovém učení.

Optimalizační úlohy

Maximalizační a minimalizační úlohy lze řešit stejnými technikami, každý maximalizační problém lze totiž převést na minimalizační úlohu (a naopak) převrácením účelové funkce. Různé techniky se však liší v tom, zda je lze použít v diskrétním či spojitém prostoru (ve spojitém prostoru mohou proměnné nabývat libovolných reálných čísel) a zda může problém obsahovat omezující podmínky.

Příklady optimalizačních úloh
  • Problem batohu. Vybrat kombinaci předmětů, která se vejde do batohu omezené kapacity, aby celková hodnota byla co nejvyšší.

  • Problém obchodního cestujícího. Najít nejkratší cestu, která projde všemi zadanými městy a vrátí se do výchozího bodu.

  • Rozvrhování. Najít optimální (nejkratší, nejlevnější) rozvržení aktivit v čase s ohledem na dané zdroje a omezení.

  • Strojové učení. Zvolit parametry modelu (např. váhy neuronové sítě) minimalizující chybu predikcí na trénovacích datech.

  • Problém čokoládových sušenek. Najít recept na co nejlepší čokoládové sušenky.

Systematické prohledávání

Nejjednodušším přístupem je zkoušení všech možností (hrubá síla). Ve spojitém prostoru je možností nekonečně mnoho, lze však systematicky vyzkoušet všechny kombinace hodnot s určitým rozlišením (mřížkové prohledávání). Tento přístup je použitelný jen pro velmi malé problémy, protože počet možností roste exponenciálně s počtem proměnných. Při řešení problému batohu můžeme každý předmět buď vzít, nebo nevzít, existuje tedy 2^n možných kombinací předmětů.

Efektivnější je přiřazovat hodnoty proměnným postupně a průběžně odhadovat nejlepší možnou hodnotu řešení s daným částečným přiřazením. Když je tato mez horší než zatím nejlepší nalezené řešení, můžeme celou větev přeskočit a být si jistí, že jsme přitom nepřeskočili optimální řešení. Tato varianta stromového prohledávání se nazývá metoda větví a mezí (angl. branch and bound). Pro výběr dalšího stavu k průzkumu lze využít hladové kritérium – stav s nejlepší hodnotou meze (nebo jinou strategii stromového prohledávání stavového prostoru).

4. Strojové učení
Souhrn tématu

Princip strojového učení

Souhrn tématu

Umělá inteligence často využívá učení z dat, tzv. strojové učení. Vstupem strojového učení je velké množství dat (dataset), výstupem je naučený model pro řešení požadovaného úkolu. Máme-li dostatek dat popisujících vzhled a chování příšerek, můžeme naučit model, který bude pro nové příšerky odhadovat, zda jsou hodné, na základě jejich vzhledu.

Klíčovou ingrediencí pro strojové učení je velké množství dat. Jednotlivé příklady jsou typicky poměrně jednoduché (např. jedna fotka), ale je jich hodně (někdy i miliony). Aby byl model užitečný, nestačí, aby si zapamatoval trénovací data (memorizace), musí být schopen určovat správný výstup i pro příklady nové (zobecňování, generalizace).

Příkladem modelu je rozhodovací strom (na obrázku výše) nebo neuronová síť (model volně inspirovaný sítí neuronů v mozku). Strojové učení může v závislosti na množství dat trvat vteřiny i celé dny, pro urychlení se proto někdy využívají grafické procesory (GPU, graphics processing unit) a tenzorové procesory (TPU, tensor processing unit).

Strojové učení lze vnímat jako alternativu ke klasickému programování, při kterém programátor zapisuje posloupnost přesných instrukcí (např. if-then pravidla nebo heuristika na základě zkušenosti). Strojové učení bude vhodným přístupem zejména tehdy, když není jasné, jak by takový klasický program měl vypadat a přitom lze sehnat rozsáhlé množství příkladů (např. detekce spamu). Strojové učení spíše nebude vhodným přístupem pro kritická rozhodnutí, kde není tolerovatelná žádná chyba a potřebujeme vysokou předvídatelnost a transparentnost chování (např. bankovní převod).

Aplikace strojového učení (příklady)
  • detekce spamu
  • diagnóza nemoci
  • rozpoznání hlasu
  • překlad textů
  • doporučování filmů
  • řízení auta
  • generování obrázků podle popisu
Souhrn tématu

Úlohy strojového učení

Souhrn tématu

Pomocí strojového učení lze řešit rozličné typy úloh, mezi ty nejčastější patří:

  • regrese = odhad číselné hodnoty (Jak bude daný uživatel hodnotit daný film? Jaká bude teplota zítra odpoledne?)

  • klasifikace = určování příslušnosti k jedné z několika předem daných kategorií (Je daný e-mail spam? Která kytka je na fotce?)

  • shlukování = rozdělení příkladů do skupin s podobnými vlastnostmi (Které zprávy řeší podobné téma? Které chemické látky se chovají podobně?)

  • hledání anomálií = upozornění na podezřelé příklady, které se výrazně liší od zbytku dat (detekce případů, kdy bankovní účet nevyužívá jeho skutečný majitel)

  • řazení (ranking) = uspořádání příkladů (seřazení výsledků vyhledávání, seřazení doporučených videí)

  • generování = vytvoření textu nebo obrázku na základě jiného textu nebo obrázku (odpovídání na otázky, strojový překlad, vygenerování popsaného obrázku)

  • řízení = hledání strategie pro optimální rozhodování (hraní šachů a podobných her, řízení autonomního auta)

Souhrn tématu

Postup strojového učení

Souhrn tématu

Využití strojového učení zahrnuje následující fáze:

  1. příprava datasetu – může zahrnovat sběr a anotování dat (doplnění požadovaného výstupu)

  2. trénování modelu – určení vhodných hodnot parametrů modelu

  3. testování modelu – na nových datech, která model neviděl během trénování

  4. nasazení modelu – tedy jeho použití pro zadaný úkol

Typy přístupů

Přístupy ke strojovému učení lze rozlišit podle povahy signálu o požadovaném výstupu modelu:

  • učení s učitelem (angl. supervised learning) – požadovaný výstup je součástí trénovacích dat (např. zda je příšerka hodná, zda je e-mail spam). Doplňování požadovaných výstupů se říká anotování dat. Datům s požadovaným výstupem se pak někdy říká označkovaná data.

  • učení bez učitele (angl. unsupervised learning) – trénovací data neobsahují požadovaný výstup, úkolem je najít vzory v datech (např. podobné příšerky, podobné zprávy)

  • posilované učení (někdy též zpětnovazební učení, angl. reinforcement learning) = učení skrze interakci s prostředím zahrnující zpětnou vazbu na provedené akce (např. výhra v šachu, řízení auta bez nehod)

Různé přístupy jsou vhodné na různé typy úloh. Učením s učitelem se typicky řeší regrese, klasifikace, řazení a generování, učením bez učitele shlukování a hledání anomálií, posilovaným učením řízení. Často se však přístupy kombinují.

Modely

Příklad učení lineárního klasifikátoru příšerek
5. Vyhodnocení a předpojatost strojového učení
6. Opakování
NAPIŠTE NÁM

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

Napište nám

Nevíte si rady?

Před položením dotazu si prosím projděte návody:

Prosíme, nezasílejte dotazy na prozrazení řešení úloh či vysvětlení postupu. Pokud hlásíte chybu, upřesněte prosím, v čem přesně spočívá a připojte snímek obrazovky.

Čeho se zpráva týká?

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