Programování vám pomůže chápat svět, říká slavný geek. Varuje před AI · · · 17. října 2019 Říkat počítači, co má dělat, je naprosto jedinečná činnost. Naučí nás to mnohem víc, než si uvědomujeme. Programovat nezvládne každý, ale všichni by měli vědět, jak algoritmy fungují. To si myslí profesor Donald Knuth, jeden z nejslavnějších počítačových nadšenců a držitel prestižní „počítačové nobelovky“. Jak začít programovat, radí legendární Donald Knuth | (0:45) | video: Pavel Kasík, Technet.cz Anglická verze Celý rozhovor si můžete přečíst i v anglickém znění „Zkouška. Nula jedna, nula jedna.” I při testování mikrofonu zkombinoval celoživotní lásku k počítačovým vědám a svůj nezvyklý smysl pro humor. Přednáškový sál byl plný, většinou studentů IT, kteří profesora Knutha znají jako autora legendárního díla Umění programování. Knuth začal ságu psát v roce 1962 a pracuje na ní neúnavně dodnes. Při rozhovoru s Donaldem Knuthem (81) si připadáte, jako byste četli knihu. Nad každou otázkou se zamyslí, aby vám dal přesnou odpověď. Je na něm vidět, že bere v potaz své publikum a hledá ta nejlepší vysvětlení a metafory. I přes svůj pokročilý věk aktivně programuje, vymýšlí i řeší hádanky a hledá nové způsoby, jak přiblížit informatiku dalším generacím studentů. Donald Knuth na Fakultě informatiky Masarykovy univerzity v Brně (2019) Donald Knuth na Fakultě informatiky Masarykovy univerzity v Brně (2019) Po přednášce na Fakultě informatiky Masarykovy univerzity v Brně jsme si s profesorem Knuthem sedli do tichého kouta hotelové haly. Původně na krátký rozhovor, ale nakonec jsme mluvili devadesát minut. Pokud čtenářům bude následující článek připadat příliš rozvleklý, znamená to pouze, že se nám nepodařilo slova profesora Knutha zprostředkovat dostatečně věrně. Během chvíle nás totiž přenesl napříč časem i prostorem až do počátku padesátých let. Do světa filosofie vědění, jedniček a nul, biblických symbolů, přesných definic a umělé inteligence. Počítače změnily všechno Jak byste definoval nekonečnou smyčku? To je zajímavá otázka. K tomu se ještě vrátíme. Donald Knuth, PhD. Americký informatik, matematik, spisovatel a pedagog, narozený 1938 ve Wisconsinu. Doktorát z matematiky získal na California Institue of Technology v roce 1963. Je autorem ságy Umění programování, zakladatelem oboru matematické analýzy algoritmů a autorem metody „dokumentovaného programování“. Jeho software pro sázení textu a matematických výrazů T[E]X se dodnes používá po celém světě. V roce 1974 byla tehdy 38letému profesorovi udělena Turingova cena, které se přezdívá „nobelovka za informatiku“. Když vás na začátku přednášky představovali, moderátor vaše životní úspěchy a ceny vyjmenovával několik minut. Jak byste se čtenářům představil vy sám? Samozřejmě bych mohl vyjmenovat, kde jsem studoval, které knihy jsem napsal a takové obecné věci. Ale můžu říct něco konkrétnějšího pro vaše publikum, a to že jsem hvězda. Nebo spíše planetka. Čeští astronomové objevili objekt s číslem 21656 a nazvali ho po mně Knuth. Samozřejmě doufám, že se nikdy nesrazí se Zemí nebo tak něco. Někdy jste označován za otce analýzy algoritmů. Jak počítače za posledních 70 let měnily lidskou civilizaci? Co je to civilizace? Řekněme, že je to vše, co se nevyskytovalo v přírodě, ale co přidali nebo vynalezli lidé. Jen v této hale si můžeme všimnout stovek různých výtvorů civilizace. Světel, skla, i to, že sedíme a jsme oblečení, budovy samotné. Naše civilizace je neuvěřitelně složitá; a byla složitá už předtím, než se objevily počítače. Když jsem byl ve vašem věku, byly počítače příšerně pomalé. Používám přirovnání, že jde o stejný rozdíl, jako mezi šnekem a tryskovým letadlem. A co se týká úložišť… Dvacet let jsem programoval s méně než megabytem paměti. Dnes můžete mít v kapse terabajt. Spousta věcí byla nepředstavitelná – ani jsme nevěděli, že bychom je mohli chtít – a dnes fungují a jsou běžné. Počítače jsou naprosto všude. Digitálně můžeme nasimulovat prakticky cokoliv. Jistě, digitálního jídla se nenajíme, ale je těžké najít nějakou oblast naší civilizace, kterou počítače nezměnily. Donald Knuth, emeritní profesor informatiky na Stanfordově univerzitě Donald Knuth, „Professor Emeritus of The Art of Programming“ na kalifornské Stanford University (Brno, 2019) Protože počítače jsou všudypřítomné, máme problém, který jsme před dvaceti lety neměli. Dlouhou dobu nás, počítačové vědce, nikdo neposlouchal. Mám obavy, že teď nám lidé naslouchají až příliš a mají pocit, že víme víc, než ve skutečnosti víme. Máme podle nich vyřešit úplně všechno. Téměř každý obor dnes využívá počítače. Dokonce i hudebníci a básníci využívají počítače. To dává nám, počítačovým odborníkům, příliš velkou odpovědnost. Samozřejmě, všechno by mohlo být lepší. A nebo také horší. Ohromné nebezpečí představují autonomní zbraně (jako například ve filmu Slaughterbots). Tisíce lidí z mého oboru, mě nevyjímaje, podepsaly otevřený dopis, který varuje před tímto nebezpečím autonomních zbraní. Fiktivní „dokument“ Slaughterbots varuje před nebezpečím AI: Počítače dokážou dělat věci rychleji než lidé. Jeden program se dá používat opakovaně. Liší se éra počítačů od těch předchozích především ve škálování, v jakém měřítku můžeme pracovat? Ne, je to něco víc. Když tvoříme instrukce pro počítač, něco mu vysvětlujeme. A abychom to zvládli, musíme přesně rozumět, co mu chceme vysvětlit. Když budu něco vysvětlovat vám, tak pokývnete hlavou a já budu vědět, že jste mě pochopil. Od počítače takovou zpětnou vazbu nedostanete. Počítač nepřikývne. Musíte mu to vysvětlit dokonale. Když někdo vytváří software na navrhování budov, musím jim rozumět mnohem lépe. Všichni, kdo se na tom podílí, se naučí spoustu nového. Každý, kdo dělá počítačové programy, musí přesně rozumět tomu, jak věci fungují. A samozřejmě, pokud vývojář udělá chybu, tak ji počítače budou bez přemýšlení neustále opakovat. Přesně o to jde. Naši civilizaci tvoří miliardy věcí. Všechno nemůžeme udělat bezchybně. Ale pokud si uvědomíte, co všechno by se mohlo pokazit, tak si nevedeme až tak špatně. Díky počítačům jsme si trochu lépe uvědomili důležitost kontextu a měřítko, ve kterém se pohybujeme. Počítače nás nutí rozumět světu Byli si první programátoři a informatici vědomi toho, jaký dopad budou počítače mít? Na začátku 60. let mi George Forsythe (zakladatel fakulty informatiky na Stanfordu, pozn. red.) řekl, že nejdůležitější na programování je, jak nás vzdělává. Co nás počítače učí, když je používáme. Ne to, co pro nás dělají, ale co nás učí. Donald Knuth přednáší na California Institute of Technology (1965) Donald Knuth na California Institute of Technology (1965) Až poté jsem zjistil, že to tak bylo od začátku. Když firma Remington v 50. letech postavila svůj první počítač UNIVAC, byl to v podstatě první počítač, který nestál na vojenském či vědeckém pracovišti. První UNIVAC měl asi čtyři zákazníky. Pojišťovací společnosti, americký Úřad pro sčítání lidu a armádu. Dalším byla společnost Nielsen. Později je proslavil systém zjišťování televizní sledovanosti. Ale v 50. letech měl Arthur Nielsen společnost, která se pokoušela analyzovat různé aspekty provozu firmy. Nielsen měl představivost a napadlo ho, hm, možná bych mohl využít počítač. Takže takový průkopník velkých dat. Ano. Pak lidé od UNIVACu přišli a studovali Nielsenovu firmu, aby zjistili, jak by jim počítač mohl pomoci. A díky tomu Nielsen zjistil, jak by mohl vést firmu efektivněji. I bez počítače. Stačilo, že byl donucen přemýšlet, jak využít počítač, aby lépe pochopil, jak jeho společnost funguje. Počítače nás nutí vyjadřovat se tak, aby nebyl možný žádný jiný výklad. Ano, úplně a jednoznačně. Viděl jsem to už mockrát. Počítače lidi, kteří je používají, proměňují. Většina lidí programování nerozumí. Ale téměř všechno je – tak či onak – závislé na počítačovém kódu. Nekoledujeme si o katastrofu? Jakou cenu platíme za to, že lidé naprosto nerozumí informatice? Nechci tu naznačovat, že jiné vědecké obory nejsou důležité. Myslím si naopak, že biologie je mnohem důležitější. Ale v každém případě nemůžeme čekat, že by sto procent lidí rozumělo počítačové vědě. Vive la différence. Různorodost je dobrá. Různí lidé rozumí různým aspektům světa více než ostatní. Vědomosti a znalosti nemají jen jeden rozměr. A věda se teď na školách učí víc než v minulosti. Lidé se mě ptají, jak mají učit programování. To je těžké, protože většina učitelů sama neprogramuje. Ale i kdyby o programování víc věděli, nebudou si s ním rozumět. Možná tak jeden člověk z padesáti v programování najde sám sebe. Jen někdo skutečně pochopí, jak to funguje pod kapotou... Takovým lidem to přijde přirozené. Pojďme těm lidem říkat počítačoví geekové. Já jsem se zřejmě jako takový geek narodil. Mým cílem není změnit celý svět na geeky. Snažím se psát knihy, ze kterých mohou něco naučit právě geekové. Mnohasvazková kniha „The Art of Computer Programming“ vychází postupně od roku... Mnohasvazková kniha „The Art of Computer Programming“ vychází postupně od roku 1968. Nyní má přes tři tisíce stran a Knuth na ní stále pracuje. Vážit si toho, čemu nerozumíme Co mají negeekové dělat? Negeekové, skamaraďte se s nějakým geekem! (smích) Tak lépe pochopíte, co geekové dělají, a geekové zase lépe pochopí, co dělají negeekové. Pracoval jsem na jednom projektu s grafickými návrháři a programátory. Všichni si vážili všech ostatních, byli jsme ve stejné místnosti a hodně jsme se toho od sebe vzájemně naučili. Donald Knuth vytvořil font Computer Modern pro svůj program TeX. Použil k tomu... Donald Knuth se proslavil i jako tvůrce programu TeX pro počítačové sázení textů. První verze vyšla v roce 1978. Vytvořil pro něj i font Computer Modern, který dal k dispozici zdarma. TeX je v různých variantách oblíbený hlavně mezi vědci a používá se dodnes. Vzpomeňte si na společnosti typu Pixar. Když jdete po jejich budově, narazíte na lidi se spoustu různých dovedností. Nikdo se nad ostatní nepovyšuje, všichni přispívají svým dílem. Napsal jste knihu Věci, o kterých informatici obvykle nemluví. Vysvětloval jste v ní svou osobní křesťanskou víru. Pro někoho může být překvapivé, že odborník na počítače věří v Boha. Já si uvědomuji, že jsem nábožensky založený i proto, že jsem se narodil, kde jsem se narodil. Kdybych byl z Indie nebo Japonska, byl bych jiný. Ale osobně věřím, že Bůh existuje. Díkybohu ovšem neexistuje způsob, jak to dokázat. Donald Knuth u příležitosti otevření výstavy Computer History Universe v roce... Donald Knuth (2011) Nemám kouzelný důkaz boží existence. Spousta lidí říká, že oni ano, ale já ho neznám. Kdyby existoval, nebylo by co hledat, co odhalovat, bylo by to směšně jednoduché. Vážím si toho, že některým věcem nerozumím a nikdy nebudu. Kdyby všechno v životě bylo jasné, jednoduché a jednoznačné, měl bych pocit, že v něm něco chybí. A kdyby byl můj život naopak plný tajemství, trpěl bych hroznou nejistotou. Jsem proto vděčný za to, že vím, že 1+1=2, i za všechny ostatní matematické jistoty, s jejichž pomocí mohu leccos exaktně dokázat. Tajemství mě zase učí pokoře, díky němu nečekám, že pochopím úplně vše. Ve svých přednáškách zdůrazňuji, že by lidé neměli něčemu věřit jen proto, že někdo chytrý řekl: takhle to je. Ale myslím, že jsou to důležité otázky, o kterých by lidé měli přemýšlet. Neměli by vůči nim být apatičtí. Donald Knuth na Fakultě informatiky MU v Brně (8. 10. 2019) Donald Knuth na FI MU v Brně Vy jste do Brna přijel uvést svou hudební skladbu, která je také duchovní. Je založena na jedné z knih Bible. Pokusil jsem se udělat něco nového a snad jsem uspěl. Řecký text knihy Zjevení jsem prakticky doslova přepsal do hudby. Kniha Zjevení je ze všech částí Bible nejmystičtější. Dospěl jsem k závěru, že je tajemná záměrně. Nemá dávat odpovědi, ale vzbuzovat otázky. Je v ní hodně čísel, hodně symbolů. Často se používá trojka jako symbol Boha, čtyřka jako symbol světa, sedmička odkazuje na vztah mezi Bohem a světem. Pečlivě jsem knihu prošel a našel víc než stovku symbolů. Založil jsem skladbu na stejném souboru symbolů, ale také jsem se pokoušel komponovat dobrou hudbu, takovou, kterou si můžete pobrukovat. Trvá devadesát minut a během nich na obrazovce ukazujeme slova a symboly, které se objevují v té které části skladby. Ukázka z Knuthovy skladby „Fantasia Apocalyptica“: Je komponování hudby podobné psaní počítačového kódu? Ó, to je neuvěřitelné podobné. Sice nepoužíváte stejný typ zápisu, ale společného to má hodně. Pracujete se schématy a snažíte se přijít na to, co posluchač očekává, nebo neočekává. Musíte postupovat systematicky. Nu, možná ne nutně, někteří skladatelé nejsou příliš systematičtí. Já jsem si do zápisu poznamenával, na co jsem v danou chvíli myslel. Protože jsem věděl, že si to později nebudu pamatovat. Na co se profesora Knutha ptají programátoři Neodolali jsme a položili jsme „emeritnímu geekovi“ otázky, které rozdělují komunitu programátorů. Používáte při odsazování kódu tabulátory nebo mezery? Včera jsem poprvé slyšel, že lidé tuhle preferenci dokonce dali do souvislosti s výší platu, což je celkem legrační. V každém případě používám k odsazování mezeru. Odsazuji ale o dvě mezery, ne o čtyři. Jedna mi přijde málo. Když čtu kód od jiných lidí, okamžitě odstraním tabulátory pomocí příkazu Untabify v mém Emacs editoru. Používáte zvýrazňovač syntaxe kódu? Ve svém Emacsu mám nastaveno naprosto minimalistické zvýraznění. Ukazuje mi to pouze závorky, které k sobě patří. Žádné barvy. Jen při sázení v T[E]Xu se mi formátování obarví červeně a sekvence zeleně, což mi pomáhá se v tom vyznat. Mají indexy polí začínat jedničkou nebo nulou? Jedno, nebo druhé, podle toho, co se v tom kontextu zrovna jeví jako přirozenější. Někdy můžete použít nulu pro něco jiného, co vám pak umožní zpřehlednit celý kód. Když se snažím něco vysvětlit, je jednodušší říct „počítej od jedné do n“ než „počítej od nuly do n minus jedna“. Jindy je naopak konvence „číslovat od nuly" jednodušší a čistší. (otázka inspirována komiksem XKCD, pozn. red.) Donald Knuth, emeritní profesor informatiky na Stanfordově univerzitě Donald Knuth, emeritní profesor informatiky na Stanfordově univerzitě Jaký počítač používáte? Počítač, který používám pro veškeré programování a sázení, je samostatný počítač se systémem Linux. Není připojen k Internetu. Pro procházení internetu používám Mac. Všechny mé rukopisy jsou ale na tom PC. Vše mám dokonale přizpůsobeno tak, aby to bylo efektivní pro mě a moji práci. Soubory přesouvám pomocí flash disku. Jak často zálohujete? Jednou za měsíc donesu zálohu svých dokumentů na Stanford. V tom okamžiku zkontroluji všechny změny. Dívám se na seznam změn (diff výpis) a znovu si všechno promýšlím. Kdyby to bylo v jednom počítači, neměl bych takovou příležitost. Takhle jsem si více vědom toho, co jsem za měsíc udělal. Takové oddělení mi vyhovuje. Jaká chybová hláška vás nejvíce štve? To se v průběhu let mění. Nedávno jsem narazil na svém Macu na chybu, že „zařízení Bluetooth ztratilo spojení“. Moje naslouchadla se mohou připojit k počítači jako bezdrátová sluchátka. Když jsem vyšel z místnosti a vrátil se, na obrazovce jsem našel stovku chybových hlášek, že zařízení Bluetooth ztratilo spojení. Nebyl způsob, jak je všechny zrušil, a tak jsem je musel odklikat jednu po druhé. Přestal jsem proto používat tuto bezdrátovou funkci. Žádají vás lidé z vašeho okolí, abyste jim pomohl s jejich počítačovými problémy, když přece děláte do těch počítačů? Mám sekretářku, která mě před takovými žádostmi chrání. Nestřílejte naslepo Jako osmák jste vyhrál soutěž „Ziegler’s Giant Bar”. Úkolem bylo odhadnout, kolik slov lze s pomocí písmen v tomto názvu vytvořit. Vy jste místo toho sestavil kompletní seznam 4 500 slov, které šlo vytvořit, což bylo téměř dvakrát více, než kolik slov našla porota. Jak jste na to šel? Popisuji to v jedné své knize (Vybrané práce o zábavě a hrách), dobře si to pamatuji. Předstíral jsem, že mám bolesti břicha, abych nemusel chodit do školy a mohl dva týdny zůstat doma. Reklama na Zíegler’s Giant Bar z 50. let 20. století Knuth soutěž s přehledem vyhrál. Pro svou školu vyhrál novou televizi, pro své spolužáky zásobu čokoládových tyčinek. Viděl jsem v knihovně pár velkých slovníků a táta měl doma úplné, nezkrácené vydání anglického slovníku. Prošel jsem systematicky všechna možná slova. Měl jsem po ruce kartičku s abecedním seznam písmen, která jsem mohl použít, jejich počty jsem si ale samozřejmě i pamatoval. Takže jsem mohl stránky projíždět celkem rychle a vynechávat stránky, na kterých nebyla slova s jinými písmeny. To, co počítač mohl udělat za pár sekund, jste dělal dva týdny. Ale stejně jste úlohu řešil s pomocí určitého algoritmu Vymyslel jste, jak úlohu vyřešit kompletně. Musel jsem mít jistotu, že nic nepřehlédnu. V každý okamžik jsem věděl, jaký prostor mám ještě před sebou, která slova už jsem zvážil a která ne. Ne všichni programátoři jsou tak svědomití a rozvážní. Co si myslíte o využití metody pokus omyl, kdy programátoři zkouší poslepovat různé kusy kódu a experimentují, dokud to najednou nezačne fungovat? Pokud to přeháníte, je to špatný přístup. Je to jako když se opice snaží napsat Shakespeara bušením do klávesnice. Na druhou stranu, když něco děláte, je chybou očekávat, že se vám to povede napoprvé. Je lepší začít něčím, co můžete v případě neúspěchu zahodit. Ale nezkoušejte věci naslepo. Snažte se zapomenout na to, že můžete svou práci zahodit. Snažte se přemýšlet systematicky. Pokud budete pouze náhodně experimentovat, vždycky budete muset začínat znovu od nuly. Měli byste se snažit odvést vždy co nejlepší práci, i když víte, že napoprvé to nebude ono. Obecně řečeno je experimentování, metoda pokus omyl, dobrá. Ale vždy se musíte snažit odvést co možná nejlepší práci. Pište počítačový kód tak, aby jej mohli číst lidé Hodně jste toho napsal o dokumentovaném programování (literate programming). Programátoři by podle vás měli psát kód ne jen tak, aby fungoval, ale také srozumitelně pro ostatní lidi. A také to znamená, že se ve svém kódu vyznáte, i když jej budete číst po měsíci. Nepřemýšlejte o programování jako o pokynech pro kompilátor. Představte si, že mluvíte s lidskou bytostí. Zlepší se tím i vaše porozumění tomu, co zrovna programujete. Jako profesor vím, jaké to je mluvit k třídě plné studentů. Takže když programuji, představuji si, že ten program vysvětluji celé třídě. Proto do kódu přidávám i komentáře vysvětlující, proč jsem něco neudělal tak, jak mě to napřed napadlo. Snažím se zahrnout svůj myšlenkový proces. Většina programátorů nedává do kódu komentáře, které by vysvětlily složitou část kódu. To pak takový kód činí obtížně čitelný. Tento princip se netýká jen programování. Obecně se hodí, když něco vysvětlujete, říci to formálně i neformálně. Když něco lidem vysvětlujeme, také rozlišujeme, na čem záleží, co se musí udělat přesně podle našich pokynů a kde naopak není přesný postup až tak podstatný. Neformálně řeknete „a teď jsem došel na konec tabulky“. Formálně byste to zjistili podmínkou „KDYŽ (i>n)“. Když programuji, dávám tam vždycky obojí. Ty dvě věci se navzájem podporují a doplňují. Dokumentované programování kombinuje přirozený a programovací jazyk. O co přichází někdo, kdo nikdy neprogramoval, kdo neovládá žádný programovací jazyk? Takový člověk si nevyzkoušel, co to znamená, když musíte něco říct zcela přesně a jednoznačně. V 60. letech běžel v USA seriál, ve kterém vystupovala robotická sekretářka. Pro některé lidi bylo neuvěřitelné, že počítač nerozumí kontextu a místo toho udělá přesně to, co mu řeknete. Takhle totiž lidé nefungují. Ta postava – velmi atraktivní mladá dáma – byla robot a lidé kolem ní se museli naučit vyjadřovat precizně, ne jen přibližně. První díl seriálu My Living Doll (anglicky): Čím se programování liší od jakékoli jiné lidské činnosti? Programování znamená, že musíte vše rozdělit do kroků a vysvětlit tak, aby to nebylo možné vykládat jinak, než chcete. Jistě, dá se vymyslet nějaký méně exaktní programovací jazyk... Ale podstata programování je jedinečná. Musíte být dokonale konkrétní, dokonale jednoznační. To vás donutí přemýšlet o tom, co se skutečně děje a co by se mohlo stát. Musíte zvážit jakýkoli scénář. Počítač nemá sám o sobě žádný úsudek. Aniž si to uvědomujeme, algoritmy řídí skoro vše kolem nás. Rozhodují o tom, zda dostaneme půjčku, udělují pokuty za rychlost a parkování, vyhledávají dopravní spojení. Co by o algoritmech měli vědět úplně všichni, nejen programátoři? Vím, co jsou algoritmy zač. Zasvětil jsem jim velkou část svého života. A tak je umím využívat. Když vidím jakýkoli systém nebo rozhodovací proces, přemýšlím, jak by mohl vypadat algoritmus, který za ním stojí. Jak funguje predikce na mé klávesnici? Můžu se díky tomu více dozvědět o tom, jak to funguje, můžu si představovat, co všechno bych musel počítači vysvětlit, aby to fungovalo. Pomocí algoritmů můžu analyzovat hudbu. Lidé vždycky mohli analyzovat řekněme harmonii akordů. Ale tím, že jsem musel harmonii exaktně a systematicky vysvětlit počítačovému algoritmu, mi umožnilo pochopit hudební zákonitosti lépe než dříve. Co byste řekl člověku, který chce začít s programováním? Pokud můžete začít s nějakým zábavným systémem, který bude vykonávat jednoduché příkazy, tak to na začátek není nikdy špatné. Naučí vás to doslovnosti. Jak dávat přesné instrukce, až do těch nejmenších detailů. Říkat přesně, úplně přesně, co se má dít. To je programování. Proslavil jste se matematickou analýzou algoritmů. Ale s tím, jak se počítače zrychlují, už pro řadu programátorů není důležité, zda něco bude trvat milisekundu nebo deset milisekund. Když musíte něco dělat bilionkrát, počítá se každá nanosekunda. Máte rád hlavolamy a své čtenáře jimi často zásobujete. Máte nějakou hádanku pro naše čtenáře? Dobře, zkusím si na nějakou vzpomenout. Tato je celkem jednoduchá: · Hádanka · Řešení Ve kterém městě je velikost XL menší než velikost L? Umělá inteligence neumí vysvětlovat Hodně se v posledních letech mluví o umělé inteligenci a strojovém učení. Pamatujete si, kdy jste tyto pojmy poprvé slyšel? Strojové učení přišlo mnohem později. Ale umělá inteligence byla jedním z důležitých témat informatiky od doby, kdy jsem byl na střední škole. Poprvé jsem ten pojem slyšel na vysoké škole. Snaha pochopit, jak lidský mozek funguje, to bylo jedno z odvětví, které inspirovalo lidi k posouvání hranic výkonu počítačů. Pamatuji si, jak jsem s počítačem prohrál mnoho šachových partií. V Santa Monice byla počítačová výstava. Počítač mě tam porazil v šachu a pak zazpíval oslavnou píseň. To pro mne bylo nezapomenutelné. Výzkum umělé inteligence prošel mnoha různými fázemi. Nejprve bylo cílem pomocí počítače zjistit, jak funguje lidský mozek. Ale pak si někteří odborníci řekli, že vlastně nemusíme řešit problémy tak, jak je řeší lidé. Nemusíme napodobovat lidský mozek. Strojové učení je nový druh mozku, hledá nové přístupy a možnosti. Donald Knuth na Fakultě informatiky MU v Brně (8. 10. 2019) Donald Knuth odpovídal v Brně na dotazy studentů Dnes máme umělé neuronové sítě, které fungují výborně, ale nedokážeme říci, jak budou fungovat v budoucnu, protože často nevíme, jak přesně fungují. Ale protože se zdá, že fungují, tak v tyto systémy vkládáme svou důvěru. Když ale neznáme jejich omezení, vzdalujeme se systému, kterému lze plně důvěřovat. Lidé chytřejší než já – třeba Stuart Russel – na to také upozorňují. Řekněme, že algoritmus používající strojové učení vyřeší nějakou důležitou matematickou záhadu, třeba slavný P=NP problém. Mohli bychom zkonstruovat nějakou ohromnou neuronovou síť, která nějakým způsobem dojde do stavu, že problém označí za vyřešený. Ale nebudeme vědět, jak to řešení vzniklo, neboť nám to ta síť nedokáže vysvětlit. Vzhledem k tomu, že strojové učení asi bude hrát stále větší roli v naší civilizaci, co by měli rodiče učit své děti o strojovém učení, algoritmech a umělé inteligenci? Lidé by měli chápat, jaké limity má strojové učení a z čeho tato omezení vycházejí. Můžete začít s příklady, které možná nejsou pro váš život až tak důležité, ale jsou snadno pochopitelné. Můžete vytvořit malou jednoúčelovou neuronovou síť a natrénovat ji pro nějaký jednoduchý úkol. Třeba něco legračního, jako rozpoznávání koní od hyen. Učit děti je vlastně v něčem podobné jako trénovat neuronovou síť, že? U nás doma jsme měli kromě malých dětí i kočky. A kočky byly chytřejší než naše malé děti. A pak najednou nebyly. Zčistajasna už nebyly nejchytřejší. Bylo to nesmírně zajímavé. A nakonec, jak byste definoval nekonečnou smyčku? Ale to už jsme přece probrali. 0:04 / 0:25[240p]Reklama (2 s) • 1/2Jak začít programovat, radí legendární Donald Knuth | (0:45) | video: Pavel Kasík, Technet.cz Autoři: Pavel Kasík, mla Zdroj: https://www.idnes.cz/technet/technika/donald-knuth-rozhovor-programovani-umela-inteligence-b rno-czech-republic.A191016_141814_tec_technika_pka