Co jsou to algoritmy a proč jsou kvůli nim lidé nepohodlní?

„Algoritmus“ – toto slovo se objevuje v našich konverzacích poměrně často. Ale když mluvíme o algoritmech, které používá třeba YouTube nebo Facebook, o čem vlastně diskutujeme? Co to algoritmy jsou a proč si na ně tolik lidí stěžuje?

Algoritmy jako návod k řešení problémů

Žijeme v době, kdy sice počítače používáme denně, ale často jen mlhavě tušíme, jak vlastně fungují. Existuje však jedna oblast informatiky, kde i laik může pochopit základní principy – a to je programování.

Programování není žádná velká věda, ale je to základní kámen veškerého počítačového softwaru, ať už jde o Microsoft Office nebo robotické vysavače. I když máte znalosti o programování pouze z nevalných filmů z devadesátek, jistě zhruba tušíte, co programátor dělá. Programátor píše kód, který počítač pak následuje, aby prováděl určité úkoly nebo řešil problémy.

Ve světě informatiky je algoritmus jednoduše jen jiný název pro kód. Jakákoli sada instrukcí, která počítači říká, jak má řešit daný úkol, je algoritmus. Dokonce i naprosto jednoduchý úkol, jako je zapnutí počítače, je založen na algoritmu „jak zapnout“. Také když počítač NASA na základě radiových vln vytváří fotografii vesmíru, jedná se o algoritmus.

Termín „algoritmus“ se dá použít k popsání jakékoli sady instrukcí, a to i mimo oblast výpočetní techniky. Například, způsob, jakým si ukládáte příbory do zásuvky, nebo postup, jakým si myjete ruce po použití toalety, je také algoritmus.

Ale je tu háček. V dnešní době se slovo „algoritmus“ používá hlavně v kontextu specifických technických diskuzí. Neslyšíme nikoho mluvit o algoritmech pro „základní matematické operace“ nebo o algoritmu pro „kreslení čar v Malování“. Místo toho si uživatelé Instagramu stěžují na algoritmy pro návrhy přátel a skupiny na ochranu soukromí kritizují algoritmy pro sběr dat Facebooku.

Pokud je tedy „algoritmus“ obecný termín pro výpočetní instrukce, proč ho téměř výhradně používáme k popisu matoucích a problematických aspektů digitálního světa?

„Algoritmy“ a „strojové učení“ se často zaměňují

Dříve programátoři i popkultura nazývali většinu výpočetních instrukcí „kódem“. To platí v podstatě i dnes. Strojové učení je ale rozsáhlá oblast, kde častěji používáme slovo „algoritmus“ místo „kódu“. A to přispívá k nejasnostem a negativním konotacím, které se s tímto termínem pojí.

Strojové učení není žádná novinka, ale v digitálním světě nabývá na významu až posledních patnáct let. Ačkoliv zní strojové učení složitě, princip je poměrně snadno pochopitelný. Programátoři totiž nemohou psát a testovat kód pro každou situaci zvlášť, proto píší kód, který se sám učí.

Je to v podstatě praktičtější forma umělé inteligence. Pokud dostatek e-mailů od svého šéfa označíte jako spam, váš e-mailový klient začne automaticky ukládat všechny jeho e-maily do složky se spamem. Stejně tak Google využívá strojové učení, aby zajistil, že výsledky vyhledávání na YouTube budou relevantní, a Amazon na základě strojového učení navrhuje, jaké produkty byste si měli koupit.

Nicméně, strojové učení není vždy pozitivní. Už samotný název „strojové učení“ zní pro někoho dost děsivě a některé způsoby jeho využití jsou eticky sporné. Například algoritmy, které Facebook používá ke sběru dat o uživatelích na internetu, jsou ne zrovna lichotivým příkladem.

V médiích slýcháme o „algoritmu Google“ pro hodnocení výsledků vyhledávání, o „algoritmu YouTube“ pro doporučování videí a o „algoritmu Facebooku“ pro rozhodování o tom, co se zobrazí na naší časové ose. A právě tyto algoritmy jsou častým terčem kritiky a diskusí.

Proč jsou algoritmy kontroverzní?

Dělení pod sebe je známý algoritmus, který používají žáci ve škole. Procesor Intel ovšem používá úplně jiný algoritmus pro dělení čísel, ale výsledky jsou stejné.

Převod řeči na text obvykle také využívá strojové učení, ale nikdo nemluví o „algoritmu“ pro převod řeči na text, protože existuje jednoznačná správná odpověď, kterou každý okamžitě pozná. Není důležité, jakým způsobem počítač zjistí, co jsme řekli, důležité je, zda dostal správný výsledek.

Oproti tomu, jiné aplikace strojového učení nemají tu výhodu, že by existovala „správná“ odpověď. A to je důvod, proč se algoritmy staly pravidelným tématem diskuzí v médiích.

Algoritmus pro seřazení seznamu podle abecedy je jen způsob, jak splnit jasně definovaný úkol. Ale algoritmy, jako je ten od Googlu pro „hodnocení nejlepších webových stránek“ nebo YouTube pro „doporučování nejlepšího videa“, jsou mnohem vágnější a nemají tak jasně definovaný cíl. Lidé se mohou dohadovat, zda algoritmus přináší správné výsledky a každý může mít na toto jiný názor. Ovšem s příkladem abecedního řazení souhlasí každý. Proto zde není žádná kontroverze.

Jak bychom tedy měli slovo „algoritmus“ používat?

Algoritmy tvoří základ veškerého softwaru. Bez nich bychom neměli ani počítače, ani telefony a tento článek bychom četli pravděpodobně na papíře (nebo vůbec).

Nicméně, široká veřejnost nepoužívá slovo „algoritmus“ jako zastřešující pojem pro počítačový kód. Většina lidí předpokládá, že existuje rozdíl mezi počítačovým kódem a algoritmem, i když tomu tak není. Propojením slova „algoritmus“ se strojovým učením se jeho význam trochu zamlžil, ale jeho použití se stalo specifičtějším.

Měli bychom tedy začít používat slovo „algoritmus“ i pro popis těch nejzákladnějších částí kódu? Pravděpodobně ne, protože ne každý by hned pochopil, co máte na mysli. Jazyk se neustále vyvíjí a vždy k tomu má dobrý důvod. Lidé potřebují slovo, které by popsalo matoucí, neprůhledný a někdy i pochybný svět strojového učení a tím slovem se stává – prozatím – právě „algoritmus“.

Je ovšem dobré mít na paměti, že algoritmus, a tedy i strojové učení, je v podstatě jen soubor kódu, který řeší určitý úkol. Není to žádná magie. Je to jen složitější varianta softwaru, který už známe.

Zdroje: Břidlice, Wikipedie, GeeksforGeeks