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

„Algoritmus“ je slovo, které se často objevuje. Ale když vytváříme konverzace kolem algoritmů YouTube nebo Facebooku, o čem vlastně mluvíme? Co jsou to algoritmy a proč si na ně lidé tolik stěžují?

Algoritmy jsou pokyny pro řešení problémů

Žijeme ve světě, kde počítačům rozumíme jen mlhavě, i když prostupují každým okamžikem našeho života. Existuje však jedna oblast informatiky, kde každý může pochopit základy toho, co se děje. Tato oblast informatiky se nazývá programování.

Programování není okouzlující práce, ale je základem veškerého počítačového softwaru, od Microsoft Office po robocallery. A i když vaše znalosti programování pocházejí výhradně ze špatných filmů z 90. let a nekonvenčních zpráv, pravděpodobně nepotřebujete nikoho, aby vám vysvětloval, co programátor dělá. Programátor napíše kód pro počítač a počítač se řídí pokyny tohoto kódu, aby provedl úkoly nebo řešil problémy.

Ve světě počítačové vědy je algoritmus jen luxusní slovo pro kód. Jakákoli sada instrukcí, která počítači říká, jak řešit problémy, je algoritmus, i když je úkol velmi snadný. Když zapnete počítač, následuje soubor pokynů „jak zapnout“. To je algoritmus v práci. Když počítač NASA používá nezpracovaná data rádiových vln k vykreslení fotografie vesmíru, funguje to také jako algoritmus.

Slovo „algoritmus“ lze použít k popisu jakékoli sady instrukcí, a to i mimo oblast počítačů. Například váš způsob třídění stříbra v zásuvce je algoritmus, stejně jako způsob mytí rukou po použití koupelny.

Ale jde o to: V dnešní době bývá slovo „algoritmus“ vyhrazeno pro některé velmi specifické technické konverzace. Neslyšíte lidi mluvit o „základních matematických“ algoritmech nebo „MS Paint graffiti tool“ algoritmech. Místo toho slyšíte uživatele Instagramu, jak si stěžují na algoritmy pro návrhy přátel, nebo skupiny na ochranu soukromí, které napadají algoritmy sběru dat Facebooku.

Je-li „algoritmus“ univerzálním termínem pro výpočetní instrukce, proč jej tedy používáme téměř výhradně k popisu matoucích, magických a zlých aspektů digitálního světa?

Většina lidí používá „algoritmy“ a „strojové učení“ zaměnitelně

V minulosti programátoři a popkultura označovali většinu výpočetních instrukcí jako „kód“. Z velké části to platí i dnes. Strojové učení je velká, zakalená oblast výpočetní techniky, kde máme tendenci používat slovo „algoritmus“ místo „kódu“. To pochopitelně přispělo ke zmatku a neklidu kolem slova „algoritmus“.

Strojové učení existuje již dlouhou dobu, ale velkou součástí digitálního světa se stalo až za posledních zhruba 15 let. I když strojové učení zní jako složitá myšlenka, je docela snadné jej pochopit. Programátoři nemohou psát a testovat specifický kód pro každou situaci, takže píší kód, který se umí psát sám.

Berte to jako praktičtější formu umělé inteligence. Pokud kategorizujete dostatek e-mailů svého šéfa jako spam, váš e-mailový klient začne automaticky zasouvat všechny e-maily vašeho šéfa do složky se spamem. Podobně Google používá strojové učení, aby zajistil, že výsledky vyhledávání na YouTube zůstanou relevantní, a Amazon pomocí strojového učení navrhuje, které produkty byste si měli koupit.

Samozřejmě, strojové učení není všechno v pořádku. Název „strojové učení“ zní dost strašidelně, aby to některým lidem znepříjemnilo, a některá oblíbená použití strojového učení jsou eticky sporná. Algoritmy, které Facebook používá k dolování dat nebo uživatelů na celém webu, jsou nelichotivým příkladem strojového učení.

V tisku uslyšíte o „algoritmu Googlu“ pro hodnocení výsledků vyhledávání, „algoritmu YouTube“ pro doporučování videí a „algoritmu Facebooku“ pro rozhodování o tom, které příspěvky uvidíte na své časové ose. To vše jsou předměty sporů a debat.

Proč jsou algoritmy kontroverzní

Dlouhé dělení je známý algoritmus (kromě mnoha dalších) pro dělení čísel. Jen to místo počítačů provádějí školáci. Váš procesor Intel používá při dělení čísel úplně jiný algoritmus, ale výsledky jsou stejné.

Řeč na text obecně používá strojové učení, ale nikdo nemluví o „algoritmu“ převodu řeči na text, protože existuje objektivně správná odpověď, kterou každý člověk okamžitě rozpozná. Nikoho nezajímá, „jak“ počítač zjistí, co jste řekli, nebo zda jde o strojové učení či nikoli. Jen nás zajímá, zda stroj dostal správnou odpověď.

Jiné aplikace strojového učení však nemají tu výhodu, že mají „správnou“ odpověď. Proto se algoritmy staly pravidelným předmětem konverzace v médiích.

Algoritmus pro řazení seznamu podle abecedy je jen způsob, jak splnit definovaný úkol. Ale algoritmus, jako je Google pro „hodnocení nejlepších webových stránek pro vyhledávání“ nebo YouTube pro „doporučení nejlepšího videa“, je mnohem vágnější a nesplňuje definovaný úkol. Lidé mohou diskutovat o tom, zda tento algoritmus poskytuje výsledky, které by měl, a lidé na to budou mít různé názory. Ale s naším příkladem abecedního řazení může každý souhlasit s tím, že seznam skončí abecedně seřazený tak, jak má. Není tu žádná kontroverze.

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

Základem veškerého softwaru jsou algoritmy. Bez algoritmů byste neměli telefon ani počítač a pravděpodobně byste tento článek četli na kusu papíru (ve skutečnosti byste ho nečetli vůbec).

Široká veřejnost však nepoužívá slovo „algoritmus“ jako souhrnný termín pro počítačový kód. Ve skutečnosti většina lidí předpokládá, že existuje rozdíl mezi počítačovým kódem a algoritmem – ale není. Kvůli spojení slova „algoritmus“ se strojovým učením se jeho význam zamlžil, ale jeho použití se stalo konkrétnějším.

Měli byste začít používat slovo „algoritmus“ k popisu i těch nejtriviálnějších částí počítačového kódu? Pravděpodobně ne, protože ne každý pochopí, co tím myslíte. Jazyk se neustále mění a vždy se mění z dobrého důvodu. Lidé potřebují slovo, které by popsalo matoucí, neprůhledný a někdy pochybný svět strojového učení, a „algoritmus“ se tím slovem stává – prozatím.

Jak již bylo řečeno, je dobré mít na paměti, že algoritmus (a strojové učení) je ve svém jádru shluk kódu, který je napsán k řešení úkolů. Neexistuje žádný kouzelný trik; je to jen složitější iterace softwaru, který už známe.

Zdroje: Břidlice, Wikipedie, GeeksforGeeks