Přehled relevantních metod strojového učení
V této části si zopakujeme některé klíčové pojmy a metody z klasického strojového učení, které nám pomohou lépe pochopit postupy v kvantovém strojovém učení. Nejprve představíme obecné pojmy a pak se podrobněji zaměříme na dva typy strojového učení: kernelové metody (zejména v kontextu podpůrných vektorových strojů) a neuronové sítě. Mezi těmito metodami jistě existují souvislosti, ale budeme je považovat za odlišné kvůli rozdílům v kvantových postupech popsaných zde a v dalších lekcích. Jde pouze o stručný přehled a spoustu nuancí záměrně vynecháváme. Pro úplnější přehled strojového učení doporučujeme zdroje jako [1-3].
Typy strojového učení
Jednoduše řečeno, strojové učení je soubor algoritmů, které analyzují data a vyvozují závěry ze vzorů a vztahů v nich. V zásadě lze algoritmy strojového učení rozdělit do tří hlavních kategorií podle typu dat a způsobu, jakým se algoritmy učí bez explicitního programování:
- Učení s učitelem: Při učení s učitelem jsou data používaná k trénování modelu označena (opatřena štítky). Cílem těchto algoritmů je naučit se vztah mezi daty a odpovídajícími štítky nebo výstupy a zobecnit ho na neviděná data. Běžnými úlohami v této třídě jsou klasifikace a regrese.
- Učení bez učitele: Na rozdíl od učení s učitelem využívá učení bez učitele neoznačená data k trénování modelu strojového učení. Cílem těchto algoritmů je odhalit skryté vzory a struktury v datech. Do této třídy patří například shlukovací algoritmy a algoritmy pro redukci dimenzionality. Lze sem zařadit i některé generativní modely, jako jsou generativní adversariální sítě a variační autokodéry.
- Zpětnovazební učení: Algoritmy v této kategorii strojového učení jsou definovány agentem, který interaguje s prostředím. Agent provádí akce a přijímá zpětnou vazbu od svého prostředí v podobě odměn a trestů. Prostřednictvím tohoto mechanismu zpětné vazby se agent nakonec naučí provádět správnou sadu akcí k plnění konkrétního úkolu.

Levý obrázek ukazuje dvě kategorie označených dat jako při učení s učitelem. V tomto případě jsou kategorie lineárně separabilní. Pravý obrázek zobrazuje shluky dat. Při úloze učení bez učitele by tato data nebyla zpočátku označena a algoritmus by studoval jejich rozložení, přičemž by hledal například shluky. Pro účely vizualizace shluků, které by algoritmus mohl identifikovat, jsou datové body nyní označeny. Klíčový rozdíl mezi oběma přístupy spočívá v tom, že při učení s učitelem začínáme s již označenými daty, zatímco při učení bez učitele začínáme s neoznačenými daty, i když na konci mohou být data označena.
Zavedení pojmu „kvantový" do strojového učení
Nyní můžeme začít zkoumat, jak se do strojového učení zavádí „kvantový" přístup. V tomto širším členění bereme v úvahu jak typ modelu/algoritmu na výpočetním zařízení, tak typ dat, která do něj vstupují. Obrázek výše shrnuje možné kombinace.

Například CC znamená, že máme klasickou datovou sadu – například obrázky, zvuk nebo text, které lze uložit na klasických počítačích – a ke spuštění algoritmu strojového učení používáme také klasický počítač. To je přesně klasické nastavení strojového učení. Naproti tomu QQ znamená, že ke zpracování kvantových dat používáme kvantový počítač. Pojem „kvantová data" může mít různé významy a může záviset na kontextu. Kvantová data lze chápat jako soubor výsledků měření získaných z kvantového zařízení, nebo mohou odkazovat na stavy připravené na kvantovém počítači jiným algoritmem. V budoucnu by to mohlo odkazovat i na data uložená v QRAM (Quantum Random Access Memory), která v současnosti neexistuje. Když výzkumníci hovoří o kvantovém strojovém učení, obvykle mají na mysli režim CQ, kde je zpracovávaná datová sada klasická a zařízení provádějící algoritmus strojového učení je kvantový počítač. V následujících částech kurzu se zaměříme právě na takové algoritmy.
Podpůrné vektorové stroje
Nyní si zrekapitulujeme třídu algoritmů nazývanou podpůrné vektorové stroje (support vector machines) z pohledu klasického strojového učení. Později ukážeme, jak do tohoto algoritmu zapojit kvantové výpočty.

Představme si úlohu binární klasifikace na datové sadě s dvourozměrným příznakovým prostorem, jak je znázorněno v grafu. Jednou z možností klasifikace této datové sady je najít přímku, nebo obecněji nadrovinu, která odděluje dvě třídy. V praxi existuje nekonečně mnoho oddělujících nadrovin, takže otázka zní: Jak definovat tu optimální? Myšlenka spočívá v tom, že obzvláště dobrá rozhodovací hranice by měla maximalizovat okraj (margin), definovaný jako vzdálenost k nejbližším bodům v každé třídě. V tomto kontextu se datové body s nejmenší vzdáleností k rozhodovací hranici nazývají podpůrné vektory.
Lineární rozhodovací hranici lze popsat různými způsoby; v jistém smyslu nejpřímočařejší je způsob zobrazený v níže. Zde je soubor parametrů definujících nadrovinu, je tvá datová sada a je konstantní posun. je zobrazení z prostoru vstupních datových bodů, často (ale ne nutně) do prostoru vyšší dimenze. K tomuto zobrazení se vrátíme níže.
V modelu je vektor laditelných parametrů, které by se model naučil. Tuto formulaci nazýváme „primární formulací". Pomocí určité matematické manipulace lze ukázat, že existuje druhý způsob, jak formulovat stejný problém. Tuto formulaci nazýváme „duální formulací", znázorněnou rovnicí níže. Pro tuto formulaci je nutné optimalizovat přes parametry alfa. Hlavní rozdíl spočívá v tom, že v primární formulaci obsahuje rovnice skalární součin příznakového vektoru a laditelných parametrů, zatímco v duální formulaci je skalární součin mezi příznakovými vektory. Přestože duální forma zahrnuje jak příznaky trénovacích dat, tak odpovídající štítky, v příští části uvidíme, proč se ukazuje jako užitečnější než primární forma.