Umělá inteligence vs klasické algoritmické programování

Směrem k umělé inteligenci od klasického algoritmického programování

Anthony Quattrone, PhD 30. dubna 2022

Pokroky v umělé inteligenci umožnily efektivně řešit složité výpočetní problémy, které byly dříve obtížné, neřešitelné nebo vysoce kombinatorické. Tyto problémy zahrnují rozpoznávání obličejů, detekci objektů, plánování tras a vysoce personalizované online doporučovací systémy.

Výzvou pro organizace do budoucna je, aby se strategičtí rozhodovatelé rozhodovali mezi tradičními klasickými přístupy a přístupy umělé inteligence při řešení složitých výpočetních problémů. Každá z metod má při dodávání robustního systému jedinečné výzvy napříč dimenzemi přesnosti, nákladů, obtížnosti implementace a udržovatelnosti.

Klasický algoritmický programovací přístup k řešení problémů

Klasické programovací paradigma zahrnuje řešení problémů pomocí preskriptivních algoritmů a využitím dobře definované posloupnosti instrukcí. Vstupy jsou definovány a omezeny, vyvíjejí se algoritmy pro zpracování vstupů prostřednictvím definovaných programovacích paradigmat (procedurální, objektově orientované, funkcionální a logické) za účelem produkce výstupů.

Objevování algoritmů pro řešení časově a prostorově efektivních problémů je notoricky náročné. V teorii výpočetní složitosti jsou problémy buď P (Polynomiální), NP (Nedeterministicky Polynomiální), NP-Úplné nebo NP-Těžké. Polynomiální problémy lze rychle vyřešit a ověřit, zatímco nepolynomiální problémy nikoliv. Problémy NP je obtížné řešit pomocí klasických algoritmických přístupů.

Příkladem problému P je nalezení nejkratší cesty mezi dvěma body, zatímco příkladem problému NP je problém obchodního cestujícího, kde při zadání série lokalit je optimální cestou navštívit všechna místa cestováním na nejkratší možnou vzdálenost. Stalo se, že mnoho problémů, které je v současnosti nutné řešit výpočetně, spadá do kategorie NP. Ve většině případů je pro praktické účely často dostatečné přibližné řešení. Při přístupu k každodennímu životu lidé vždy přicházejí s přibližnými řešeními, tj. navigace.

Při řešení problémů v rámci klasického algoritmického paradigmatu efektivním způsobem existují implementační výzvy. Algoritmická složitost je odvětví informatiky, které se zabývá tím, jak efektivně algoritmy běží v časové (časová složitost) a prostorové oblasti (prostorová složitost).

Zatímco existuje mnoho různých způsobů implementace algoritmů, zřejmý, ale potenciálně neefektivní způsob implementace algoritmu se často označuje jako „naivní“ algoritmus. Většina efektivních algoritmů se snadno neobjevuje a počítačoví vědci pracují mnoho let na nalezení nejlepších algoritmů pro řešení tříd problémů. Algoritmy v produkčních systémech jsou implementovány časově a prostorově efektivními způsoby. Největší softwarové společnosti zajišťují nejvyšší algoritmické standardy prostřednictvím peer-programming, podobně jako peer-review. Efektivní implementace algoritmů vyžaduje mnoho let tréninku a vysokou míru dovednosti.

V praktickém smyslu, zatímco programovací techniky se vyvinuly a popularita programovacích jazyků (tj. C, C++, Java, JavaScript, PHP, Python) se měnila, základy zůstaly stejné od doby, kdy v 70. letech 20. století napsali v Bell Labs první moduly jazyka C. Existují praktické způsoby, jak uvést teoreticky náročné problémy do produkce, například pomocí distribuovaných systémů. Pokročilé přístupy přicházejí s vyššími náklady a jsou mimo možnosti všech kromě technologicky nejpokročilejších organizací.

Vzhledem ke složitosti klasických algoritmických programovacích přístupů organizace již dlouho považují za obtížné budovat efektivní týmy pro tvorbu takových systémů interně. Dále se mnohé potýkají s hledáním externích poskytovatelů pro řešení specifických výzev, které je teoreticky možné implementovat. Návrh konkrétního algoritmu se stává výrazně složitějším s rostoucí složitostí problému. To platí zejména pro multivariační problémy. Klasické algoritmické přístupy je nejlepší využít v situacích, kdy algoritmus dokáže problém rychle vyřešit a funguje pro většinu případů.

Přístup AI k řešení problémů

Paradigma umělé inteligence se pokusilo řešit problémy obecně tím, že do systému vkládalo vstupy a požadované výstupy a nechalo systém se naučit, jak problémy řešit. Současné přístupy AI běží na klasických počítačích prostřednictvím klasických programovacích technik. Nejzajímavějšími metodami AI jsou neuronové sítě a zpětnovazební učení.

Umělé neuronové sítě využívají lidské chápání toho, jak se lidská mysl učí a generalizuje problémy. Zpětnovazební učení využívá agenty, do kterých je vložen cílový stav a série scénářů. Učící algoritmus si přes více iterací zachovává preferované výsledky a opouští nepříznivé výsledky. Zpětnovazební učení je analogické s operantním podmiňováním. Agent se učí, jak dosáhnout cíle, přes mnoho trénovacích iterací.

Požadavkem pro trénování řešení umělé inteligence je buď dobře definovaná rozsáhlá datová sada, obvykle sestavená pomocí kombinace různých datových skladů nebo crowdsourcingu, nebo se systém může naučit dosáhnout cílového stavu proběhnutím série iterací. Příkladem toho je systém hrající hru sám proti sobě, jako je šachy nebo Go, aby se dále naučil vyvíjet strategie pro zlepšení výsledků. Umělé sítě a zpětnovazební učení se obojí spouštějí na scénářích, pro které nejsou trénovány, a jsou vyhodnocovány podobně jako jiné přístupy strojového učení. Tyto přístupy dobře generalizují a poskytují efektivní řešení pro danou třídu problémů. Řešení založená na umělé inteligenci se hodí pro problémy, které nelze snadno definovat pomocí sekvence instrukcí; místo toho vyžadují více „intuice“ a hodnotících úsudků.

Systémy umělé inteligence se typicky trénují pomocí datasetů a později vyhodnocují na evaluační sadě. Čím více kvalitních trénovacích dat je do systému AI vloženo, tím vyšší je pravděpodobnost, že systém bude fungovat na vysoké úrovni. Výhodou přístupů AI je, že se mohou v průběhu času nadále zlepšovat, jakmile se systém více učí. Komplexní problémy tak mohou být zobecněny a vyřešeny výpočetními systémy. To zahrnuje problémy tradičně řešené lidským vkladem, ačkoli úzká AI může být vnímána jako doplnění stávajícího lidského vkladu pro zajištění lepších výsledků.

Umělá inteligence a strojové učení jsou organizacemi již dlouho vnímány opatrně, protože takovým systémům chybí sledovatelnost a determinovatelnost toho, jak budou reagovat na případy použití. Proto se AI může v vzácných případech chovat a reagovat nepředvídatelně, když to člověk nejméně očekává. Proto je důležité mít jasně definované případy použití pro situace, kdy má být AI použita, jaké úrovně chyb jsou přijatelné a jak budou výstupy produkované systémy AI kontrolovány lidským vkladem za účelem zajištění přesnosti.

Celkově předpovídáme, že vyšší přesnost, kterou přinesou systémy AI, spojená s efektivitou získanou doplněním lidského vstupu, bude představovat tak velký finanční motiv, že ji v nadcházejících letech mnoho organizací nebude moci ignorovat a systémy AI se stanou všudypřítomnými.

Kdy zvolit umělou inteligenci a kdy zvolit klasický algoritmický programovací přístup k řešení problémů

Zatímco neexistují žádná striktní a rychlá pravidla pro to, kdy použít který přístup, jako obecné pravidlo platí, že problémy vyžadující přibližná řešení a zahrnující cílené dlouhodobé plánování, rozpoznávání složitých vzorů a zpracování množství proměnných jsou vhodnější pro AI. Klasické algoritmické přístupy jsou lépe vhodné pro přesná nebo téměř optimální řešení, která zahrnují složitou logiku a výpočty.

Volba správného přístupu může vaší organizaci přinést významné výhody, zatímco volba méně optimální metody může vést k podstatným ztrátám kapitálu, protože technologické projekty jsou nákladné. Často se volbou osvědčených a prokazatelných systémů, jako je Telemus AI™, organizacím daří zajistit úspěch jejich digitální transformace pomocí umělé inteligence.

Kontaktujte nás ještě dnes pro bezplatnou konzultaci o tom, jak může být Telemus AI™ integrován do vaší organizace.