Přeskočit na hlavní obsah

Úvod do kvantového strojového učení

Přehled a motivace

Než začneš, vyplň prosím tento krátký dotazník před kurzem, který je důležitý pro zlepšování našeho obsahu a uživatelského zážitku.

Note: This survey is provided by IBM Quantum and relates to the original English content. To give feedback on doQumentation's website, translations, or code execution, please open a GitHub issue.

Vítej v kvantovém strojovém učení!

Níže uvedené video poskytne stručný úvod, který je doplněn textem pod ním.

Pro stručné shrnutí a doplnění videa:

  • Byli jsme svědky toho, že určitý problém byl poprvé vyřešen na kvantovém počítači a poté lidé následně našli způsob, jak jej vyřešit na klasickém superpočítači. Tento cyklus, kdy se klasické a kvantové výpočty navzájem posouvají k jejich limitům, bude pravděpodobně pokračovat ještě několik let.
  • Existují konkrétní problémy, u nichž může mít kvantové počítání prokazatelnou výhodu nad klasickým počítáním, s ohledem na pokrok v oblastech, jako je redukce chyb a počet dostupných qubitů. Stále je to však doba zkoumání, hledání datových sad vhodných pro kvantové zpracování a užitečných kvantových příznakových map.
  • Kvantové strojové učení (QML) je jednou z mnoha vzrušujících oblastí, kde kvantové počítání může rozšířit nebo doplnit existující klasické pracovní postupy.

Strojové učení (ML) aplikuje algoritmy na datové sady, a proto by QML mohlo pravděpodobně zahrnovat kvantovou mechaniku buď na straně dat, nebo na straně algoritmů, případně obou. Všechny tyto možnosti jsou potenciálně zajímavé. Ale většinou se omezíme na diskuse o kvantových algoritmech aplikovaných na klasická data. Jedním z důvodů je to, že problémy ML s klasickými daty jsou již tak dobře prostudované a široce dostupné. Existuje široký zájem o řešení problémů, které začínají klasickými daty. Dalším důvodem je absence QRAM. Bez schopnosti uchovávat velká množství kvantových dat po relativně dlouhou dobu jsou metody, které začínají kvantovými daty, stále poměrně vzdálené od použití v průmyslu. Také není jasné, jak „kvantově přistupovat" ke klasickým datům efektivním způsobem. Dva typy ML, které jsou obzvláště zajímavé, jsou učení s učitelem, při kterém trénuješ algoritmus pomocí označené datové sady, a učení bez učitele, při kterém se algoritmus pokouší naučit rozdělení z neoznačených vzorků. Algoritmus bez učitele by se mohl například naučit, jak generovat nové vzorky ze stejného rozdělení, nebo jak shlukovat vzorky do skupin s podobnými vlastnostmi.

QML_CR_background_Sup_Unsup.avif

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ě oddělitelné. Pravý obrázek ukazuje shluky dat. V úloze učení bez učitele by tato data nebyla zpočátku označena a algoritmus by studoval rozdělení, případně by hledal shluky. Pro účely vizualizace příkladů shluků, které by algoritmus mohl identifikovat, byly datové body nyní označeny. Klíčovým rozdílem mezi těmito dvěma přístupy je, že proces učení s učitelem začíná s již označenými daty a proces bez učitele začíná s neoznačenými daty, i když jsou data na konci označena.

Ti, kteří mají zkušenosti se strojovým učením, už budou vědět, že mnoho metod řešení zahrnuje mapování dat do vícerozměrných prostorů. To je obzvláště dobře prozkoumáno v kontextu jader (kernels). Jako krátká připomínka: někdy mohou být data oddělitelná do kategorií přímkou, rovinou nebo nadrovinou (často budeme pro stručnost říkat jen „nadrovina") ve stejném počtu dimenzí, v jakém jsou data zadána. To je zobrazeno na prvním obrázku výše. Jindy nemusí být data oddělitelná nadrovinou v těchto dimenzích, jak je ukázáno na druhém obrázku. Ale stále může existovat struktura dat, kterou lze využít při mapování do vyšších dimenzí, což pak ponechává data oddělitelná v tomto vícerozměrném prostoru. To je ilustrováno na mapování 2D dat s kruhovou symetrií do 3D prostoru, v němž jsou datové body uspořádány podél paraboloidní plochy.

QML_CR_background_2D-3D.avif

Běžným cílem v QML je najít mapování z nižšídimenzionální sady příznaků do vícerozměrného prostoru, které efektivně odděluje naše datové body tak, abychom mohli mapování použít ke klasifikaci nových datových bodů. Ale to není snadný úkol a jakákoli diskuse o potenciální užitečnosti kvantových výpočtů ve strojovém učení musí být doprovázena příslušnými výhradami. Zejména musíme řešit nuance ve výběru datové sady a výzvy při dosahování škály užitečnosti. Musíme také opustit snahu překonat klasické algoritmy ML na datech, která jsou již efektivně a dobře zpracována klasickými algoritmy, a přesměrovat diskusi na zkoumání nových příznakových map, které by mohly být užitečné.

Řízení očekávání

Mnoho datových sad používaných v aplikacích QML popsaných v literatuře je „příznakově inženýrováno", což znamená, že datová sada je vybrána nebo generována specificky pro demonstraci úzkého případu použití, ve kterém jsou kvantové výpočty užitečné. Pokud se to zdá jako podvádění, nechápeme daný úkol. Neplatí, že některé kvantové příznakové mapy nám umožňují řešit všechny nebo mnoho klasifikačních úloh efektivněji nebo škálovatelněji než klasické algoritmy strojového učení. Spíše se některé kvantové příznakové mapy (ne všechny) chovají odlišně od klasických příznakových map. Úkolem je pak prozkoumat kvantové obvody v kontextu složitých datových struktur. Některé konkrétní otázky, na které je třeba odpovědět, jsou:

  1. Které kvantové obvody se s největší pravděpodobností budou chovat novým způsobem ve srovnání s klasickými alternativami?
  2. Existují reálné problémy zahrnující data s vlastnostmi, které je nejlepší zkoumat pomocí takových nových kvantových obvodů?
  3. Škálují tyto kvantové obvody na kvantových počítačích v blízké budoucnosti?

Nedostatečné vysvětlení

Často se setkáváme se zjednodušeným vysvětlením toho, jak mohou být kvantové výpočty výkonné. Zní to nějak takto:

Stejně jako klasické počítače používají bity informace, kvantové počítače používají qubity. Pro daný počet bitů, řekněme 4, může klasický počítač nabývat kteréhokoli z 24=162^4 = 16 možných stavů, zatímco kvantový počítač může existovat v superpozici všech 16 stavů současně a operace mohou být prováděny na této celé superpozici. V některých případech nám to přirozeně umožňuje navrhovat potenciálně zajímavé učicí algoritmy založené na mapováních do vícerozměrných prostorů.

Toto je pravdivé tvrzení, ale je nedostatečné a trochu zavádějící, jak vysvětlíme. Někdy se také zdůrazňují rozdíly mezi komplexními a reálnými koeficienty, například:

Pravděpodobnostní klasický systém, v němž lze systém popsat jako mající určité pravděpodobnosti nacházet se v různých stavech, lze popsat následovně.

s=a0000+b0001+c0010+...a,b,cR|s\rangle = a|0000\rangle+b|0001\rangle+c|0010\rangle+... a, b, c \in \reals

V takovém systému mohou být koeficienty aa, bb, cc a tak dále smysluplné pouze tehdy, jsou-li to kladná reálná čísla. Stavy v kvantových počítačích jsou popsány amplitudami pravděpodobnosti, které mohou být komplexními čísly.

ψ=A0000+B0001+C0010+...A,B,CC|\psi \rangle = A|0000\rangle+B|0001\rangle+C|0010\rangle+... A, B, C \in \mathbb{C}

Výše uvedená tvrzení byla formulována velmi opatrně tak, aby byla pravdivá (mnoho povrchně podobných tvrzení je nesprávných). Ale tato správná tvrzení nejsou vysvětlením síly kvantových výpočtů ve strojovém učení. Za prvé, jakákoli aplikace kvantových výpočtů na strojové učení bude zahrnovat měření a nemůžeme změřit qubit tak, abychom zjistili, že je ve více stavech současně. Můžeme připravit qubit v superpozici jako ψ=12(0+1)|\psi\rangle = \frac{1}{\sqrt{2}}\left(|0\rangle+|1\rangle\right), ale měření poskytne buď 0|0\rangle, nebo 1|1\rangle. Takže přinejmenším je tento příběh o zvyšování dimenzionality neúplný. Dále v kontextu jader nemůže být zvýšení dimenzí v kvantovém výpočtu postačující podmínkou pro výpočetní výkon nad klasickými alternativami, protože Gaussova jádra jsou nekonečně rozměrná. Jsou zde nuance v tom, že Gaussovy příznakové mapy se používají pouze ve spojení s „jaderným trikem", který obchází nutnost kdy vůbec počítat nekonečně rozměrný mapovaný vektor. Ale bod zůstává:

Vysoká dimenzionalita propletených kvantových stavů není exponenciální paralelismus a není postačující podmínkou pro zvýšený výkon ve strojovém učení.

V následujících lekcích představujeme pracovní postupy pro začlenění kvantových obvodů do úloh strojového učení a děláme to za výslovným účelem usnadnění zkoumání síly kvantových výpočtů. Žádná příznaková mapa ani algoritmus v tomto kurzu není prezentován jako rychlá cesta k lepším výsledkům strojového učení pro obecné problémy, protože žádná taková příznaková mapa ani algoritmus neexistuje. Místo toho představujeme širokou škálu kvantových nástrojů pro použití při zkoumání užitečných kvantových výpočtů.

Dekvantizace

Dekvantizace označuje nahrazení daného kvantového algoritmu klasickým algoritmem, který pracuje podobně jako kvantový algoritmus pro danou sadu úloh, obvykle včetně škálování. Podle některých definic by měl klasický algoritmus fungovat pouze polynomiálně pomaleji než kvantový algoritmus.

Několik algoritmů kvantového strojového učení (QML), o nichž se zpočátku předpokládalo, že poskytují významné zrychlení oproti klasickým algoritmům, bylo v posledních letech dekvantizováno. Tento proces dekvantizace vedl k důležitým poznatkům o potenciálních výhodách a omezeních kvantových přístupů ke strojovému učení.

Jeden z nejvýznamnějších výsledků dekvantizace pochází z práce Ewin Tang o doporučovacích systémech. Tang objevila klasický algoritmus, který by mohl provádět doporučovací úlohy rychlostí, o níž se dříve předpokládalo, že je dosažitelná pouze kvantovými počítači. Tento objev zpochybnil předpoklad, že kvantové algoritmy mají pro tento problém exponenciální výhodu. Novější práce od Shin et al. se zaměřila na identifikaci podmínek dekvantizovatelnosti funkcionální třídy variačního modelu kvantového strojového učení.

Jeden běžný přístup k dekvantizaci (i když ne jediný trik) je zvažování režijních nákladů na načítání dat. To znamená, že jakýkoli kvantový algoritmus aplikovaný na klasická data bude mít krok, v němž jsou klasická data kódována do kvantového počítače. Pokud kvantový algoritmus předpokládá výchozí bod, ve kterém jsou kvantová data již k dispozici, pak se efektivně skrývá čas potřebný pro kódování. Existují kontexty, v nichž může být předpoklad kvantových dat rozumný, ale mnoho zajímavých aplikací začne s klasickými daty. Některé případy dekvantizace ukázaly, že když je tento čas kódování zahrnut a když lze klasické načítání dat provádět efektivně, kvantový algoritmus již nepřekonává svůj klasický protějšek.

I když algoritmus nelze dekvantizovat, neznamená to, že je efektivnější nebo škálovatelnější než všechny klasické algoritmy. Jako extrémní, uměle vytvořený příklad: představ si algoritmus pro výběr j největších prvků ze sady velikosti k. Mohl bys napsat kvantový algoritmus, který používá Shorův algoritmus k rozkladu každého z k prvků na prvočíselné dělitele, a pak určit největší prvky pomocí prvočíselných dělitelů. Takový algoritmus pravděpodobně nelze dekvantizovat, ale je drasticky méně efektivní než klasické algoritmy pro dosažení stejného výběru největších prvků (i když ne zbytečnou rozkladovou část).

Důkaz existence

V roce 2021 publikovali výzkumníci z IBM Quantum® Yunchao Liu, Srinivasan Arunachalam a Kristan Temme článek v časopise Nature A rigorous and robust quantum speed-up in supervised machine learning. V souladu s výše uvedenými výhradami byl pro tuto práci pečlivě vybrán klasifikační problém, který je (1) známý jako klasicky obtížný a (2) vhodný pro to, aby kvantové algoritmy prokázaly zrychlení.

Článek se zabývá klasifikací dat založenou na diskrétních logaritmech. Cituji článek: „Pro velké prvočíslo pp a generátor gg grupy Zp=1,2,...,p1\mathbb{Z}^*_p = {1, 2, . . . , p − 1} se obecně věří hypotéze, že žádný klasický algoritmus nedokáže spočítat logg(x)\text{log}_g(x) pro vstup xZpx \in \mathbb{Z}^*_p v čase polynomiálním v n=log2(p)n = \lceil{\text{log}_2(p)}\rceil, což je počet bitů potřebných k reprezentaci pp." Oproti tomu je známo, že Shorův algoritmus řeší problém diskrétního logaritmu v polynomiálním čase. Tato volba úloh tedy současně splňuje kritéria uvedená výše: klasickou obtížnost (je nepravděpodobné, že by byla dekvantována) a známou vhodnost pro kvantové algoritmy.

Díky této uvážlivé volbě klasifikačního problému se autorům podařilo pomocí metod kvantových jader (stručně načrtnutých níže a podrobně rozebraných v dalších lekcích) prokázat exponenciální zrychlení, které je zároveň end-to-end a robustní. Pojmem „end-to-end" se zde myslí předpoklady o tom, že se začíná klasickými daty; autoři v tomto případě zahrnují i čas potřebný pro zakódování dat. Pojmem „robustní" se zde myslí skutečnost, že data, která mají být klasifikována, jsou kvantovým algoritmem oddělena širokým rozpětím, takže úspěch klasifikace je odolný vůči reálným vlivům, jako je konečná chyba vzorkování.

Tím vším chceme říci, že existují problémy, u kterých mohou kvantová jádra přinést exponenciální zrychlení. Současný stav poznání je však takový, že takové problémy jsou vybírány na základě pozorování nebo teoretických důvodů, proč by měly být přístupné kvantovým algoritmům. Není reálné očekávat kvantové zrychlení u úloh strojového učení, které klasické počítače již zvládají velmi dobře.

Identifikovat takové ideální případy pro zkoumání kvantové užitečnosti je obrovská odpovědnost, která leží na studujících tohoto kurzu. A není to úkol, který by bylo možné splnit v rámci kurzu, jako je tento. Tento průzkum je úkolem pro celou síť IBM Quantum Network, kterou tvoří výzkumníci, jako jsi ty. Tento kurz ti představí pracovní postupy QML a strategie kódování, abys mohl začít hledat kvantovou užitečnost ve své oblasti odborné expertízy.

Doufáme, že tento úvod vyjasnil několik věcí ohledně kvantového strojového učení:

  1. Kvantové algoritmy mohou nabídnout exponenciální zrychlení oproti klasickým algoritmům u velmi specifických problémů, které jsou klasicky obtížné a zároveň dobře přizpůsobené kvantovým algoritmům.
  2. Vysoká dimenzionalita provázaných stavů v kvantovém počítání je důležitá, ale sama o sobě nestačí k získání výhody oproti klasickým algoritmům.
  3. Nalézat problémy, které jsou dobře uzpůsobeny kvantovým algoritmům, je nesmírně obtížný úkol a do značné míry bude ležet právě na studujících tohoto kurzu.

Check-in questions

Čím se kvantové stavy liší od klasických stavů?

Odpověď:

Hodně. Zejména: komplexními koeficienty a superpozicí s jedinou kopií. Existuje mnoho dalších rozdílů, o kterých se budeme bavit v dalších lekcích, včetně provázanosti a interference.

Pravda, nebo nepravda? Silně provázané kvantové stavy nám umožňují efektivněji řešit většinu problémů strojového učení na kvantovém počítači.

Odpověď:

Nepravda. Většinu problémů strojového učení řeší klasické algoritmy velmi efektivně a kvantové algoritmy pravděpodobně nenabídnou žádné podstatné zrychlení. Cílem QML je najít datové sady s rysy, které jsou dobře popsány kvantovými stavy, a/nebo najít mapování datových rysů, která optimalizují přesnost modelů.

Course learning goals

Absolvováním tohoto kurzu si můžeš vybudovat následující základní dovednosti a kompetence. Studující budou schopni:

  1. Vysvětlit, co je QML a kde se kvantový svět napojuje na klasické strojové učení.

  2. Aplikovat kvantovou slovní zásobu a klíčové pojmy na ML pracovní postupy.

  3. Identifikovat klíčové součásti QML pracovního postupu (různých typů).

  4. Identifikovat různé typy QML a rozlišovat mezi nimi.

  5. Implementovat kvantové kernelové metody a variační kvantové klasifikátory pomocí primitiv Qiskit Runtime a podle Qiskit patterns.

  6. Identifikovat, kde je QML nejslibnější a kde ne.

  7. Přizpůsobit ukázkový problém vlastní datové sadě.

  8. Být si vědomi problémů v QML, jako je doba trénování, šum a hromadící se chyby při odečítání více stavů.

  9. Doporučit, kde by QML mohlo být pro jejich organizaci přínosné.

Course structure

Tento kurz se skládá z několika lekcí. Každá lekce obsahuje napříč textem několik kontrolních otázek, abys mohl/a průběžně procvičovat nové dovednosti nebo si ověřit porozumění. Tyto otázky nejsou povinné.

Na konci kurzu je kvíz s 20 otázkami. Abys získal/a odznak Quantum Machine Learning přes Credly, musíš v tomto kvízu získat alespoň 70 %. Pokud dosáhneš alespoň 70 %, tvůj odznak ti bude krátce poté automaticky zaslán e-mailem. Kvíz můžeš odeslat pouze dvakrát. Po prvním odeslání budeš mít možnost podruhé odpovědět na otázky, které jsi zmeškal/a. Po druhém odeslání je tvé skóre konečné. Další podrobnosti najdeš v kvízu.

Struktura kurzu je následující:

  • Lekce 1: Úvod a přehled
  • Lekce 2: Shrnutí strojového učení
  • Lekce 3: Kódování dat
  • Lekce 4: Kvantové kernelové metody a support vector machines
  • Lekce 5: Variační kvantové klasifikátory / neuronové sítě
  • Zkouška pro získání odznaku

Run your first QML code

Často je užitečné vidět, kam směřujeme, dřív než to rozdělíme na dílčí části a ponoříme se do pozadí. Buňky s kódem níže provádějí jednoduchou instanci kvantové kernelové metody. Konkrétně se počítá jeden prvek matice kernelu. Uživatelé, kteří jsou nováčky v kernelových metodách nebo kvantových kernelech, by se neměli nechat zastrašit; více lekcí v tomto kurzu bude věnováno rozboru toho, co přesně se v těchto buňkách děje.

Tímto kódem zároveň představujeme Qiskit patterns: framework pro přístup ke kvantovému počítání na škále užitečnosti (utility scale). Tento framework se skládá ze čtyř kroků, které jsou velmi obecné a lze je aplikovat na většinu problémů (i když v některých pracovních tocích se určité kroky mohou opakovat vícekrát).

Qiskit patterns:

  • Krok 1: Mapovat klasické vstupy na kvantový problém
  • Krok 2: Optimalizovat problém pro kvantové vykonání
  • Krok 3: Vykonat pomocí Qiskit Runtime Primitives
  • Krok 4: Analýza / následné zpracování

V buňkách níže nabízíme jen stručná vysvětlení jednotlivých kroků, právě tak, abys našel/našla příslušnou lekci a dozvěděl/a se víc.

# Added by doQumentation — required packages for this notebook
!pip install -q numpy pandas qiskit
# Import some qiskit packages required for setting up our quantum circuits.
from qiskit.circuit import Parameter, ParameterVector, QuantumCircuit
from qiskit.circuit.library import unitary_overlap

# Import StatevectorSampler as our sampler.
from qiskit.primitives import StatevectorSampler

# Step 1: Map classical inputs to a quantum problem:

# Start by getting some appropriate data. The data imported below consist of 128 rows or data points.
# Each row has 14 columns that correspond to data features, and a 15th column with a label (+/-1).
!wget https://raw.githubusercontent.com/qiskit-community/prototype-quantum-kernel-training/main/data/dataset_graph7.csv

# Import some required packages, and write a function to pull some training data out of the csv file you got above.
import pandas as pd
import numpy as np

def get_training_data():
"""Read the training data."""
df = pd.read_csv("dataset_graph7.csv", sep=",", header=None)
training_data = df.values[:20, :]
ind = np.argsort(training_data[:, -1])
X_train = training_data[ind][:, :-1]

return X_train

# Prepare training data
X_train = get_training_data()

# Empty kernel matrix
num_samples = np.shape(X_train)[0]

# Prepare feature map for computing overlap between two data points.
# This could be pre-built feature maps like ZZFeatureMap, or a custom quantum circuit, as shown here.
num_features = np.shape(X_train)[1]
num_qubits = int(num_features / 2)
entangler_map = [[0, 2], [3, 4], [2, 5], [1, 4], [2, 3], [4, 6]]
fm = QuantumCircuit(num_qubits)
training_param = Parameter("θ")
feature_params = ParameterVector("x", num_qubits * 2)
fm.ry(training_param, fm.qubits)
for cz in entangler_map:
fm.cz(cz[0], cz[1])
for i in range(num_qubits):
fm.rz(-2 * feature_params[2 * i + 1], i)
fm.rx(-2 * feature_params[2 * i], i)

# Pick two data points, here 14 and 19, and assign the features to the circuits as parameters.
x1 = 14
x2 = 19
unitary1 = fm.assign_parameters(list(X_train[x1]) + [np.pi / 2])
unitary2 = fm.assign_parameters(list(X_train[x2]) + [np.pi / 2])

# Create the overlap circuit
overlap_circ = unitary_overlap(unitary1, unitary2)
overlap_circ.measure_all()
overlap_circ.draw("mpl", scale=0.6, style="iqp")

# Step 2: Optimize problem for quantum execution

# Use Qiskit Runtime service to get the least busy backend for running on real quantum computers.
# from qiskit_ibm_runtime import QiskitRuntimeService

# service = QiskitRuntimeService(channel="ibm_quantum")
# backend = service.least_busy(
# operational=True, simulator=False, min_num_qubits=overlap_circ.num_qubits
# )

# Transpile the circuits optimally for the chosen backend using a pass manager.
# from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
# pm = generate_preset_pass_manager(optimization_level=3, backend=backend)
# overlap_ibm = pm.run(overlap_circ)

# Step 3: Execute using Qiskit Runtime Primitives

# Specify the number of shots to use.
num_shots = 10_000

## Evaluate the problem using statevector-based primitives from Qiskit
sampler = StatevectorSampler()
counts = (
sampler.run([overlap_circ], shots=num_shots).result()[0].data.meas.get_int_counts()
)

# Step 4: Analyze and post-processing

# Find the probability of 0.
counts.get(0, 0.0) / num_shots
--2025-05-09 10:04:28--  https://raw.githubusercontent.com/qiskit-community/prototype-quantum-kernel-training/main/data/dataset_graph7.csv
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.109.133, 185.199.108.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 49405 (48K) [text/plain]
Saving to: ‘dataset_graph7.csv.2’

dataset_graph7.csv. 100%[===================>] 48.25K --.-KB/s in 0.03s

2025-05-09 10:04:29 (1.37 MB/s) - ‘dataset_graph7.csv.2’ saved [49405/49405]
0.8199

I když nemusíš rozumět všem výše uvedeným krokům, měli bychom se pokusit pochopit výstup, abychom věděli, proč to děláme. Mnoho procesů ve strojovém učení používá skalární součiny jako součást binární klasifikace (mimo jiné). Kvantová mechanika s tím má zjevnou souvislost, protože pravděpodobnosti měření různých stavů ϕi|\phi_i\rangle jsou dány skalárním součinem s počátečním stavem ψ|\psi\rangle prostřednictvím skalárního součinu: Pi=ϕiψ2P_i = |\langle\phi_i|\psi\rangle|^2. To, co jsme výše udělali, je tedy vytvoření kvantového obvodu, který obsahuje příznaky našich dvou datových bodů, mapuje je do prostoru kvantového vektoru a poté odhaduje skalární součin v tomto prostoru pomocí měření. Jde o příklad kvantového odhadu jádra (quantum kernel estimation). Všimni si, že jsme tento proces provedli jen pro dva datové body (14. a 19.). Kdybychom to udělali pro všechny možné dvojice, mohli bychom vzít výstup (v tomto případě číslo 0,821…) a naplnit matici výsledků popisující překryv mezi všemi body v trénovací datové sadě. Toto je „matice jádra" (kernel matrix).

Check your understanding

Přečti si níže uvedenou otázku, zamysli se nad svou odpovědí a poté klikni na trojúhelník pro zobrazení řešení.

Ve výše uvedeném procesu jsme vypočítali prvek matice jádra pro 14. a 19. datový bod. Jakou hodnotu bychom měli získat, když použijeme dvakrát stejný datový bod (například 14. a znovu 14.)? Jinými slovy, jaké by měly být diagonální prvky matice jádra? Odpověz na tuto otázku bez přítomnosti šumu, ale ber na vědomí, že v přítomnosti šumu jsou odchylky od tvé odpovědi možné.

Odpověď:

Hodnoty na diagonále by měly být 1,0. Tento proces by měl počítat normalizovaný skalární součin vektoru se sebou samým, který musí být vždy roven jedné.