„Algoritmus“ je slovo, které se hodně hodí. Když ale vytváříme konverzace kolem algoritmů YouTube nebo Facebook, o čem to 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 jsou počítače chápány jen nejasně, i když prostupují každou chvíli našeho života. Existuje však jedna oblast počítačové vědy, kde každý může porozumět základům 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 robocallers . A i když vaše znalosti programování vycházejí pouze ze špatných filmů z 90. let a zpráv z jiného období, pravděpodobně nepotřebujete, aby vám někdo vysvětloval, co programátor dělá. Programátor zapíše kód pro počítač a počítač se bude řídit pokyny tohoto kódu k provádění úkolů nebo řešení problémů.
Ve světě počítačové vědy je algoritmus jen fantazijní slovo pro kód. Jakákoli sada pokynů, která řekne počítači, jak řešit problémy, je algoritmus, i když je úkol super snadný. Když zapnete počítač, bude postupovat podle pokynů „jak zapnout“. To je algoritmus v práci. Když počítač NASA používá k vykreslení fotografie kosmického prostoru nezpracovaná data o rádiových vlnách, jedná se také o funkční algoritmus.
Slovo „algoritmus“ lze použít k popisu libovolné sady instrukcí, dokonce i mimo výpočetní oblast. Například vaše metoda třídění příborů v zásuvce je algoritmus, stejně jako vaše metoda mytí rukou po použití koupelny.
Ale tady je věc: V dnešní době má slovo „algoritmus“ tendenci být vyhrazeno pro některé velmi specifické technologické konverzace. Neslyšíte lidi mluvit o algoritmech „základní matematiky“ nebo algoritmech „grafického nástroje MS Paint“. Místo toho uslyšíte, jak si uživatelé Instagramu stěžují na algoritmy návrhů přátel nebo skupiny ochrany soukromí, které porušují algoritmy sběru dat Facebooku.
Pokud je „algoritmus“ souhrnným pojmem pro výpočetní instrukce, proč jej 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 pokynů jako „kód“. To dnes z větší části zůstává pravdou. Strojové učení je velká, zatažená oblast výpočtu, kde místo slova „kód“ používáme slovo „algoritmus“. To pochopitelně přispělo ke zmatku a neklidu kolem slova „algoritmus“.
Strojové učení funguje už dlouhou dobu, ale stalo se velkou částí digitálního světa až za posledních zhruba 15 let. I když strojové učení zní jako komplikovaný nápad, je docela snadné mu porozumět. Programátoři nemohou psát a testovat konkrétní kód pro každou situaci, takže píší kód, který dokáže psát sám.
Představte si to jako praktičtější formu umělé inteligence. Pokud dostatečně rozdělíte e-maily svého šéfa jako spam, začne váš e-mailový klient automaticky vrážet všechny e-maily vašeho šéfa do složky spamu. Google podobně 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, jaké produkty byste si měli koupit.
Samozřejmě, strojové učení není všechno v pořádku a hloupé. Název „strojové učení“ zní dost strašidelně, aby některé lidi nepohodlně, a některá populární použití strojového učení jsou z etického hlediska sporná. Algoritmy, které Facebook používá k těžbě dat nebo uživatelům na webu, je nelichotivým příkladem strojového učení.
V tisku uslyšíte „Algoritmus Google“ pro hodnocení výsledků vyhledávání, „Algoritmus YouTube“ pro doporučení videí a „Algoritmus Facebooku“ pro rozhodování o tom, které příspěvky se na vaší časové ose zobrazí. To vše jsou předmětem sporů a debat.
PŘÍBUZNÝ: Problém s AI: Stroje se učí věci, ale nemohou jim porozumět
Proč jsou algoritmy kontroverzní
Dlouhé dělení je známý algoritmus (mezi mnoha jinými) pro dělení čísel. Je to tak, že to místo počítačů provádějí školáci. Váš procesor Intel používá úplně jiný algoritmus, když rozdělí čísla, ale výsledky jsou stejné.
Speech-to-text obecně používá strojové učení, ale nikdo nemluví o „algoritmu“ řeči na text, protože každý člověk může okamžitě rozpoznat objektivně správnou odpověď. Nikdo se nestará o to, „jak“ počítač zjistí, co jste řekli, nebo zda jde o strojové učení nebo ne. Záleží nám jen na tom, zda stroj dostal správnou odpověď.
Ale jiné aplikace strojového učení nemají výhodu „správné“ odpovědi. Proto se algoritmy staly běžným předmětem konverzace v médiích.
Algoritmus pro abecední řazení seznamu je jen způsob, jak splnit definovaný úkol. Algoritmus, jako je Google, pro určité „hodnocení nejlepších webů pro vyhledávání“ nebo YouTube pro „doporučení nejlepšího videa“, je však mnohem vágnější a nesplňuje definovaný úkol. Lidé mohou diskutovat o tom, zda tento algoritmus přináší 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čí seřazený podle abecedy, jak by měl. Není kontroverze.
Jak bychom měli použít slovo „Algoritmus?“
Algoritmy jsou základem veškerého softwaru. Bez algoritmů byste neměli telefon ani počítač a pravděpodobně byste tento článek četli na kousku 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. Většina lidí ve skutečnosti předpokládá, že existuje rozdíl mezi počítačovým kódem a algoritmem - ale neexistuje. Díky spojení slova „algoritmus“ se strojovým učením se jeho význam zamlžil, jeho použití se však 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 máte na mysli. Jazyk se neustále mění a vždy se mění z dobrého důvodu. Lidé potřebují slovo k popisu matoucího, neprůhledného a někdy pochybného světa strojového učení a tímto slovem se prozatím stává „algoritmus“.
Jak již bylo řečeno, je dobré mít na paměti, že algoritmus (a strojové učení) je ve své podstatě hromada kódu, který je napsán pro řešení úkolů. Neexistuje žádný kouzelnický trik; je to jen složitější iterace softwaru, kterou již známe.
Prameny: Břidlice , Wikipedia , GeeksforGeeks