Během příštího desetiletí zažijeme doslova kvantovou revoluci. Počítače budou umět vypočítat věci, které si dnes ani nedokážeme představit.
Jedna, nula - již téměř sedmdesát let od svého vynálezu používají počítače binární kód a s bity pracují pouze pomocí operací ANO, NEBO nebo NE. Tyto operace jsou základem algoritmů všech programovacích jazyků a odvíjejí se od nich všechny složitější příkazy. Je-li tvrzení správné, proveď to (IF, THEN), není-li pravdivé, proveď ono (IF, ELSE). Počítače dodnes otrocky zpracovávají programový kód řádek po řádku a nezáleží na tom, zda používají běžný operační systém Windows, nebo zpracovávají složité kalkulace pro předpověď počasí.
Představte si ale počítač, který umí pracovat nejen s hodnotami „0“ a „1“, ale i s pravděpodobností, že výsledek operace se bude rovnat hodnotě „0“ nebo „1“. Nebude počítat podobně jako děti, které používají pro sčítání prsty na ruce a naučí se, že 1 + 1 Z 2 a 2 + 2 Z 4, ale jako dospělý člověk, který pochopí systém x + y Z z. Takový počítač nebude pracovat s předem pevně daným kódem, ale bude optimalizován tak, aby stejnou úlohu dokázal zpracovat rychleji a přesněji. Bude sám a nezávisle vyhledávat řešení, na které dnešní programátoři zatím ani nepomysleli, a bude schopen průběžně upravovat a zlepšovat svoji práci. O dospění počítačů se během nadcházejícího desetiletí postarají dvě technologické inovace: neurální sítě a kvantové počítače.
Jeden bit pro všechna čísla
Podstatou myšlenky kvantových počítačů je paradox, označovaný v populárně naučné literatuře termínem „Schrödingerova kočka“. Tento teoretický jev kvantové fyziky položil základ termínu „superpozice“. Zatímco v klasické fyzice superpozice definuje umístění a rychlost elementárních částic, díky objevům kvantové fyziky dokážeme určit stav částic pouze pomocí pravděpodobnosti. Superpozice všech možných stavů částice se stává jednoznačným stavem pouze na základě měření, které mimo jiné specifikuje spin a polohu elektronu. Kvantové počítače využívají superpozici k provádění přesných výpočtů.
Nejmenší jednotkou jsou qubity, které nereprezentují stavy 0 nebo 1, ale všechny pravděpodobnosti, že nastane stav 0 nebo 1. Dramatický nárůst výpočetního výkonu kvantových počítačů zajistí další kvantový jev, zvaný kvantové provázání. Dva spojené qubity mohou dosáhnout většího počtu pravděpodobnostních vztahů. Dva qubity pak ve výsledku mohou nabýt čtyř hodnot (00, 01, 10, 11). Čím víc qubitů se spojí, tím výraznější je podle vzorce 2N tento efekt, přičemž N označuje počet qubitů. 10 qubitů dosahuje 1 024 hodnot a jen 50 qubitů představuje více než biliardu různých stavů.
Hardware blízko absolutní nuly
Pro další vývoj kvantových počítačů je nutné překonat dvě základní překážky. Kvantové superpozice a kvantového provázání lze dosáhnout pouze na dobu několika mikrosekund a počítač musí být schopen výsledek spočítat během tohoto krátkého okamžiku. Navíc je nutné, aby během této doby byly qubity izolované od veškerých okolních vlivů. Vědci vyzkoušeli různé kandidáty na qubity, včetně iontů, fotonů a elektronů. Kvantové počítače od IBM a Googlu pracují s elektrickými obvody blížícími se v supravodivém stavu absolutnímu neutrálnímu bodu. Při tak nízkých teplotách dokáže elektrický proud téct zároveň oběma směry a dosahuje tak superpozice. Qubity těchto počítačů jsou ovládány, párovány a načítány pomocí mikrovlnného záření.
Programování algoritmů pro qubity
Programování kvantových počítačů není vůbec snadné. Jednotlivé kroky algoritmů jsou rozděleny do kvantových bran, simulujících klasické vztahy, jako jsou AND, OR či NOT. Za tímto účelem se qubity udržují v původním stavu a jsou poté několika kroky (viz vpravo) vzájemně párovány. Doposud existuje jen pár algoritmů optimalizovaných pro kvantové počítače. Jeden z nich vychází ze známého faktorizačního algoritmu matematika Petera Shora, který spočívá v kalkulaci prvočísel schopných celočíselně dělit jiná čísla. Přesně takový typ výpočtu je i pro běžné počítače extrémně náročný, a to i v případě, že jsou osazeny tisícovkami procesorů. John Martinis odhaduje, že kvantový počítač se 100 qubity by dokázal podobnou úlohu vyřešit téměř okamžitě. Tým tohoto profesora fyziky nyní pracuje pro Google na vývoji kvantového počítače se 49 qubity.
Podle Martinise bude ale muset podobný kvantový počítač využívat řadu dalších qubitů pro korekci výpočetních chyb: jakákoliv okolní interference totiž může zkreslit výsledek a kompletní kontrola je tedy nezbytně nutná. Otázka, do jaké míry lze tedy kvantové počítače škálovat, zůstává prozatím otevřená. Mohlo by se stát, že korekce chyb by se se vzrůstajícím počtem qubitů stala tak složitou, že by zabránila dalšímu vývoji větších kvantových počítačů, ale to je hodně pesimistická prognóza.
Pokud by ale další škálování bylo možné, kvantové počítače by dokázaly v budoucnu řešit mnohem rychleji úkoly spočívající v nalezení jediného správného řešení z ohromného množství možností. K takovým úkolům se již dnes superpočítače běžně používají, avšak současné stroje v případě velmi složitých úkolů, jakými jsou například analýzy energetických procesů v chemii nebo biologii, naráží na své výkonnostní limity. Mimo jiné i proto, že se v takových případech setkávají s kvantovými efekty. Alex Bocharov, který má na starosti vývoj kvantových počítačů ve společnosti Microsoft, odhaduje, že podobné úkoly budou schopny vyřešit pouze počítače pracující s 100 až 200 qubity.
Kód, který se sám vylepšuje
Umělé vytvoření myšlenkových procesů lidského mozku - právě tato představa stála před padesáti lety za vývojem prvních neurálních sítí. Neurální sítě dokážou zpracovávat složité vstupy, jakými jsou například obrázky nebo text, mnohem efektivněji, než by to dokázal jakýkoliv pevně daný programový algoritmus. Namísto postupného zpracování vstupních dat řádek po řádku nebo pixel po pixelu dokážou neurální sítě rozdělit obrázek na menší části, které pak pomocí neuronů paralelně analyzují. Neurony jsou v podstatě malé programy organizované ve vrstvách. Ty zvládnou v detailech snímku prostřednictvím filtrů odhalit typicky charakteristické prvky a ty pak poslat ke zpracování do další vrstvy neuronů.
Posun výpočtu do další vrstvy neuronů je posílen nebo zmírněn hodnocením výsledku. Během tréninku se síť na základě porovnání s miliony vzorových obrázků učí, do jaké míry má hodnotit výsledek neuronového odhadu. Samoučící se neuronové sítě mají navíc zabudovánu kontrolní smyčku, která při každém průběhu výpočtu upravuje hodnocení výsledku. Následné vrstvy neuronů sbírají výsledky většího počtu neuronů předcházející vrstvy. Tímto způsobem síť analyzuje větší výseč obrázku a výsledek odesílá do třetí vrstvy. Vrstvu po vrstvě pak neuronová síť analyzuje celý obrázek. Speciální neurony nakonec klasifikují obsah snímku a určí, co se na něm nachází.
Rychlejší učení bez lidské pomoci
Tento koncept je všeobecně známý pod označením „umělá inteligence“, tedy UI nebo anglicky AI. Umělá inteligence speciálně vycvičená na nějaký úkol dokáže překonat téměř jakýkoliv běžný program, a dokonce i nejschopnější lidské experty. Brutálním způsobem to dokázal například program AlphaGo. Umělá inteligence Deep-Mind, vyvíjená společností Google, se jen podle pravidel dokázala sama naučit hru Go, přičemž během tréninku hrála pouze sama proti sobě. Hra Go je podobná šachům, ale má mnohem větší množství herních pozic, o tolik větší, že by proti lidskému mistrovi žádný klasický program nedokázal vyhrát. Verze Zero překonala jednoho z nejlepších lidských velmistrů této hry po třech dnech učení a po 21 dnech porazila i předchozí generaci AlphaGo.
Ačkoliv Deep-Mind tento program zkušebně nakrmila záznamy milionů profesionálních utkání, nakonec se podle Demise Hassabise, hlavního vývojáře UI Deep-Mind, ukázalo, že vstup v podobě lidské zkušenosti z ohromného množství sehraných zápasů vedl tuto inteligenci k horším výsledkům, než kdyby trénovala pouze sama se sebou. Od té doby se program Alpha Zero naučil stejně rychle a efektivně hrát navíc i klasické šachy a jejich japonskou variantu Shögi. Zkušenost, že umělé inteligence principiálně dosahují lepších výsledků bez lidské pomoci, je aplikovatelná i na jiné úkoly. Projekt AutoML společnosti Google ukazuje, o kolik lepších výsledků dosahují neurální sítě, když do jejich tréninku lidé vůbec nezasahují. V projektu AutoML vyvíjí nadřazená neurální síť nové architektury neurálních sítí, které mají být trénovány pro specifické úlohy.
Jedna z odnoží AutoML s názvem NASNet nedávno dosáhla rekordu v rozpoznávání objektů z 15milionové snímkové databáze ImageNet. NASNet dosáhl po kratším tréninku většího úspěchu než všechny předchozí sítě.
Výpočty s UI a kvantovými počítači
Zadávání a praktické využití úkolů, které budou neurální sítě počítat, zůstává na lidech. Při dostatečné přípravě a tréninku by dokázaly neurální sítě výrazně urychlit vývoj v takových oblastech výzkumu, jakými jsou genová analýza nebo diagnostika rakoviny. Již dnes se neurální sítě běžně využívají při výzkumu biologických a chemických procesů. Neurální síť vyvinutá Wenem Torngem a Russem Altmanem ze Stanfordovy univerzity je pouze jedním z řady příkladů. Tato síť analyzuje úlohu jednotlivých aminokyselin v proteinech (viz vpravo). Výzkumníci dospěli k závěru, že jejich neuronová síť převyšuje předchozí experimentální analytické metody.
Demis Hassabis předpokládá, že jeden z potomků sítě AlphaGo Zero bude mít za úkol pomáhat lidem při vývoji materiálu, který by udržel supravodivý stav i za pokojové teploty. Odborníci na vývoj materiálů se k Hassabisově nápadu staví obezřetně a poukazují na to, že svět molekul je mnohem složitější než Go. UI rozhodně nezvládne být jediným nástrojem, který tento úkol vyřeší. Valentin Stanev z Marylandské univerzity dodává, že tento problém bez kvantových počítačů nevyřešíme.
***
Neurální sítě se učí korekcí chyb
Neurální sítě dokážou pomocí konvolučních neurálních sítí (CNN) identifikovat objekty na obrázcích stejně spolehlivě jako lidé. Zásadní roli zde hraje interakce dvou neuronových vrstev, konvoluce a podvzorkování (pooling), díky které dokážou ve zkoumaném snímku odhalit jeho charakteristiky. Aby se síť dokázala sama učit, používá zpětnou vazbu s odezvou obsahující informaci o správnosti řešení.
Konvoluce: Neurony používají různé filtry (např. filtry ostrosti a hran) pro identifikaci a zesílení charakteristických atributů sekcí obrazu.
Podvzorkování: Zbytečné informace se odfiltrují a výsledek je odeslán do následující konvoluční vrstvy, která kombinací výsledků většího počtu podvzorkování analyzuje větší sekce obrazu.
Klasifikace: Spojení všech extrahovaných vlastností obrazu: pro každý výsledek určí neuron pravděpodobnost správnosti řešení.
Korekce chyb: Korekční smyčka dává neuronům zpětnou vazbu, díky které mohou upravit své rozhodování. Neurony, které největší měrou přispěly k rozpoznání objektu, jsou nyní hodnoceny lépe.
Foto popis| Všemocnost qubitů Za ohromným výpočetním výkonem qubitů stojí dva jevy kvantové fyziky: superpozice a provázání.
Foto popis| Superpozice: Běžné počítače pracují s bity 0 a 1. Kvantové počítače využívají qubity, které dosahují hodnot dvou bitových stavů 0 a 1 prostřednictvím určité pravděpodobnosti.
Foto popis| Kvantové provázání: Větší počet qubitů lze spojit do jedné skupiny. Tři qubity dosahují osmi kombinací s určitou pravděpodobností. To znamená, že „n“ qubitů dokáže zároveň zpracovat 2n procesů. Při 50 qubitech je to více než biliarda stavů.
Foto popis| Kvantové počítače od Googlu a IBM (vpravo) jsou uloženy v kryostatu chlazeném na teplotu absolutní nuly. Jejich elektrické obvody jsou supravodivé a slouží jako qubity.
Foto popis| Kvantový čip Sedm qubitů osazených na tomto procesoru IBM se skládá ze supravodivých obvodů, ve kterých dokáže elektrický proud cestovat oběma směry. O propojení qubitů se stará tzv. vlnovod.
Foto popis| Obrázek výše ukazuje programovací rozhraní kvantového čipu IBM. Zelené body slouží pro ovládání stavu qubitů a modré znaky definují způsob jejich vzájemného propojení.
Foto popis| „Kvantové počítače potřebují pouhých pár sekund na výpočet toho, co běžným počítačům zabere celé dny.“ Prof. John M. Martinis Laboratoř kvantové UI Googlu
Foto popis| Samoučící se UI: Za 40 dní neporazitelná AlphaGo Zero je UI od Googlu, která se dokázala naučit hru Go (složitější než šachy) pouze pomocí pravidel. Během velmi krátké doby se stala neporazitelnou.
Foto popis| TPU procesory vyvinuté Googlem jsou výpočetní prvky optimalizované pro neurální sítě. AlphaGo Zero pracuje s pouhými čtyřmi TPU.
Foto popis| „Provozovat supravodivý počítač za pokojové teploty by představovalo svatý grál UI.“ Demis Hassabis Hlavní vývojář Deep-Mind
Foto popis| Krmení neurální sítě proteiny CNN (viz vlevo) dokáže rovněž analyzovat chování organických molekul. Pro tento účel dokázali výzkumníci na Stanfordově univerzitě přeměnit protein do voxelových kanálů (3D pixely) a nahrát je do CNN.
O autorovi| MARKUS MANDAU, autor@chip.cz