Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Candidata
Giorgia Caradonna
Matricola 1792970
Relatore
Professor Stefano Giagu
Sommario
Quello del Quantum Computing è un approccio nuovo e che presenta molte poten-
zialità: la possibilità di esprimere gli stati quantistici attraverso la sovrapposizione e
l’entanglement permetterebbe, infatti, di ottenere un potere computazionale immen-
so, nonché la capacità di risolvere problemi tuttora insolubili con gli strumenti della
computazione classica.
Tuttavia, questo approccio non è immune alla presenza di alcune criticità di
fondo che devono essere risolte: tra queste, va sicuramente menzionata la fragilità
intrinseca degli stati quantistici, (sotto forma di qubit), che sono soggetti ad errore
e perdita dell’informazione. Per contrastare questo problema, è stata elaborata la
teoria della Correzione di Errore Quantistica, che permette di creare un computer
quantistico affidabile e che possa operare anche in presenza di errori: a questo scopo,
sono stati introdotti molti codici e algoritmi per gestire le operazioni di decoding,
ciascuno con i propri vantaggi. Nel corso della seguente dissertazione, saranno
analizzati nel dettaglio i decoder basati su Reti Neurali Artificiali, che sono state
oggetto di enormi progressi negli ultimi anni e che possono costituire una soluzione
versatile e affidabile del problema.
Nel capitolo 1, dunque, saranno analizzati i concetti principali del Quantum
Computing e della tecnica della Correzione di Errore. Verranno analizzati i problemi
principali che intervengono in una implementazione pratica e verrà introdotto il
cosiddetto surface code, su cui ci si concentrerà nel corso della dissertazione.
Nel capitolo 2, verranno invece introdotte le Reti Neurali Artificiali e ne saranno
illustrate due tipologie: le Feed-Forward Neural Network e le Recurrent Neural
Network.
Infine, nel capitolo 3, seguendo la tesi di S. Varsamopoulos, Neural Network
Based Decoders for the Surface Code [9], verranno introdotti alcuni modelli di
decoder che usano le reti neurali, sottoposte ad un processo di training e testate.
Infine, verrà descritto, brevemente, un modello di decoder basato sulla tecnica del
Renormalization Group.
iv
Indice
4 Conclusioni 23
Bibliografia 24
1
Capitolo 1
dove ‡ x , (usato per descrivere gli errori di bit-flip), permette di passare da un elemento
della base computazionale all’altro, mentre ‡ z , (associato ad un errore di phase-flip),
aggiunge una differenza di base di fi tra |0Í ed |1Í. Infine, ‡ y esegue entrambe queste
operazioni, mentre la matrice I rappresenta l’identità [8]. Generalizzando quanto
detto, un computer quantistico può essere considerato come un registro finito di
n qubit, ovvero come una funzione d’onda nello spazio di Hilbert 2n -dimensionale
1.1 I concetti fondamentali del Quantum Computing 2
[2]. Su questi qubit possono essere applicate delle porte quantistiche, operazioni
unitarie che trasformano uno stato di input da m qubit in uno di output con la stessa
dimensione, con m Æ n. Esistono molti tipi di porte logiche, di cui è doveroso citare
il CNOT1 [1]. Questo tipo di approccio alla computazione tramite porte quantistiche
reversibili viene definito quantum circuit model ed è quello che verrà utilizzato nella
seguente dissertazione [9]. È bene quindi definire anche un ulteriore, importante,
concetto: si considerino due stati indipendenti |Â A Í e |Â B Í, tali che si possa scrivere
lo stato combinato |Â AB Í come:
ÿ
|Â AB Í = |Â A Í ¢ |Â B Í = cij |i, jÍ (1.3)
ij
dove per ¢ s’intende il prodotto tensoriale. È possibile allora definire uno stato
come entangled se non è possibile considerare lo stato puro di più particelle come il
prodotto degli stati puri di una singola particella [1].
Questi elementi consentono di introdurre i requisiti fondamentali che ogni com-
puter quantistico deve possedere, definiti come criteri di DiVincenzo [8], che sono
articolati nei seguenti punti:
3. Lunghi tempi di coerenza, molto maggiori rispetto a quelli tipici delle porte.
Difatti, uno dei principali problemi del Quantum Computing è quello della
decoerenza, la perdita dell’informazione dovuta all’interazione con l’ambiente o
con elementi esterni;
5. La capacità di una misura specifica per qubit. Quello dello della misura è un
problema fondamentale e verrà analizzato nel dettaglio. È possibile tuttavia
affermare che la misura di alcune proprietà generali dei qubit possono non
essere sufficienti e che è fondamentale eseguire misure sui singoli qubit al fine
di estrarre le informazioni necessarie.
- f
- (j)
stato -Si = E i |jL Í come syndrome word, dove E i è l’i-esimo operatore unitario
di errore che può essere applicato ad uno stato: se le syndrome word sono tutte
mutualmente ortogonali, il codice è detto non degenere. Questa costruzione permette
di mappare tutte le syndrome word rispetto ai qubit logici, ma ciò non si può fare
con i soli data qubit ed è quindi necessario introdurre gli ancilla qubit, in modo
da rendere questa operazione unitaria. Ciò può essere fatto mediante una misura
della syndrome, ovvero letture consecutive dei valori di verità nella stessa forma
dell’equazione 1.4 e che fornisce lo stesso risultato per syndrome word che risultano
da
- differenti
f code word, ma risultati diversi per diversi operatori di errore E Ÿ . Se
- (0)
-SŸ sono le syndrome word associate al sistema, allora:
ÿ ! -- fe - - fe -"
si -SŸ(0) SŸ(0) - + -SŸ(1) SŸ(1) -
- - -
S= (1.5)
Ÿ
Figura 1.1. Nella seguente figura, è descritta la struttura del surface code [9]. In (a) si
trova quella generale: i data qubit si trovano negli angoli, gli ancilla qubit
di tipo X sono nei quadrati bianchi, mentre quelli di tipo Z sono posti in
quelli grigi. In (b), è invece rappresentato un rotated surface code, con
data qubit posizionati agli angoli. Anche qui, gli ancilla qubit di tipo X
sono nei quadrati bianchi, mentre quelli di tipo Z sono nei quadrati grigi.
Sulla destra, sono riportati i controlli di parità per ciascun ancilla qubit.
Uno dei surface code più semplici da implementare è denominato rotated surface
code: un esempio, (rappresentato nella figura 1.1b nella pagina precedente), consiste
in nove data qubit, posti negli angoli, ed otto ancilla qubit, posti all’interno di
’tessere’ quadrate o semicircolari. In questo approccio, un qubit logico è definito
dagli operatori logici che determinano come il suo stato può essere modificato. Un
parametro importante di cui tener in considerazione, poi, è la code distance, che
verrà indicata con d e che permette di descrivere il grado di protezione del codice
contro l’errore. Nello specifico, è definito come il numero minimo di operazioni fisiche
necessarie per cambiare lo stato logico. Di conseguenza, il rotated surface code nella
figura 1.1b presenta d = 3.
Da questa figura, si nota anche che il valore di un certo controllo della parità
non si modifica se non cambia lo stato dei data qubit d’interesse o se cambia per
un numero pari di questi. In caso contrario, verrà fornito un valore diverso rispetto
a quello del ciclo precedente: se ciò avviene per cicli consecutivi, si parla di un
evento di rilevazione. In assenza di errori sugli ancilla qubit, un errore di tipo Z
(phase-flip) causerà due eventi di rilevazione su controlli di parità contigui, a meno
ciò non avvenga in corrispondenza di uno degli angoli (come si vede nella figura 1.2a).
Errori di tipo X (bit-flip), invece, causeranno molteplici errori sui data qubit, con
la formazione di catene di errori (figura 1.2a): nel complesso, si osserveranno due
eventi di rilevazione collocati agli estremi della catena. Un ultimo tipo di errore
da considerato è illustrato nella figura 1.2b. Un errore di misura è associato ad
un’errata lettura dei controlli di parità a livello degli ancilla qubit e può essere
individuato confrontando le error syndrome ottenute su cicli successivi. Infine, se la
probabilità di errore su un data qubit è uguale a quella di un errore di misura, d
cicli di correzione di errore sono ritenuti necessari per l’identificazione.
Figura 1.2. Nella seguente figura, sono raffigurati degli esempi di eventi di rilevazione in un
rotated surface code [9]. In (a), gli errori sono indicati con X o Z a seconda
del tipo, mentre gli eventi di rilevazione sono in rosso. In (b), è invece
rappresentato un rotated surface code con d = 3 su successivi step temporali:
l’alternarsi della presenza/assenza di eventi di rilevazione riguardanti lo
stesso controllo della parità permette di individuare un errore di misura.
Figura 1.3. La seguente figura, presente in [9], è un esempio di plot per valutare le per-
formance di decoding per differenti valori di d. Sono indicate, inoltre, la
threshold (indicata con FT-thr) e le pseudo-threshold per le varie curve
riportate (indicate con Ps-thr).
noti possono non essere scalabili, presentare tempi di esecuzione o performance non
appropriate. Per quanto concerne il tempo di esecuzione, questo va interpretato
sulla base del tempo necessario per eseguire le operazioni in un ciclo di correzione di
errore, che dipende anche da numerosi dettagli applicativi, che sono al di fuori dello
scopo di questa dissertazione [9]. Alcuni esempi di queste tecnologie, tuttavia, sono
descritte nel dettaglio in [8], dove sono analizzati qubit basati su superconduttori.
Tuttavia, per fornire un’idea, un rotated surface code con d = 3 presenta un tempo
massimo di esecuzione pari a 700 ns [9, 10].
Da questo punto di vista, la soluzione, al di là del semplice miglioramento delle
tecnologie, può essere individuata nello studio di decoder basati su Reti Neurali
Artificiali, in quanto presentano un tempo di esecuzione costante rispetto al numero
di qubit, offrendo performance migliori rispetto agli algoritmi classici.
Lo scopo del capitolo successivo, allora, sarà appunto quello di introdurre le Reti
Neurali e le tipologie che verranno utilizzate nei decoder descritti nel capitolo 3 a
pagina 16.
9
Capitolo 2
• layer nascosti o hidden layer, che son tutti quelli compresi tra layer di input e
di output.
Una Rete Neurale Artificiale può essere quindi descritta matematicamente come una
serie di trasformazioni funzionali [3]: è quindi possibile ottenere M combinazioni
lineari delle variabili di input x1 , . . . , xD nel seguente modo
D
ÿ (1) (1)
aj = wji xi + wj0 (2.1)
i=1
dove j = 1, . . . , M e l’apice (1) indica che ci si trova nel primo layer della rete.
Inoltre, i parametri wji vengono definiti pesi della rete, mentre i parametri wj0 sono
denominati bias. Infine, le quantità aj sono chiamate attivazioni (o attivazioni delle
unità di output, se associate al layer di output): non sono propriamente ciò che verrà
processato direttamente dai nodi che si trovano nei layer nascosti (unità nascoste)
1
Quello in figura, in realtà, è un grafo computazionale, dove ogni nodo indica una variabile. In
questo contesto, inoltre, si definisce come operazione una funzione in una o più variabili: senza
perdere di generalità, un’operazione fornisce una sola variabile di output ed è rappresentata tramite
una linea che connette i due nodi d’interesse [4]
2.1 I concetti principali e le Feed-Forward Neural Network 10
Figura 2.1. Questa figura, tratta da [3], rappresenta un esempio di generica Rete Neurale
con tre layer (o due, se si vogliono considerare solo i layer nascosti). I
pesi associati a ciascun layer sono rappresentati dai collegamenti tra i nodi,
mentre i vari bias sono rappresentati, rispettivamente, da input addizionali e
variabili nascoste (x0 e z0 ). Le frecce permettono di identificare la direzione
di propagazione dell’informazione.
zj = h(aj ) (2.2)
I passaggi appena descritti sono quindi ripetuti, considerando gli zj come i nuovi
input da fornire all’equazione 2.1. Alla fine del processo, le unità di attivazione
dell’output quindi sono trasformate tramite la funzione di attivazione per dare un
set di variabili di output, y1 , . . . , yK .
La funzione di attivazione va scelta con criterio, poiché non può essere lineare
per tutte le unità nascoste. In tal caso, la rete sarebbe infatti equivalente ad un’altra
priva di hidden layer, visto che la composizione di successive trasformazioni lineari è
nel complesso una trasformazione lineare.2 Di solito, in generale, si usano funzioni
come la sigmoide e la ReLU, definite come:
1
‡(x) = ; ReLU(x) = max (0, x) (2.3)
1 + e(≠x)
Un altro buon candidato è la tangente iperbolica, ma si possono trovare anche
variazioni delle funzioni appena indicate, spesso giustificate su base euristica.
2
L’unica eccezione a questo vincolo si ritrova nel caso in cui il numero di unità nascoste è minore
rispetto a quelle presenti nell’input o nell’output layer. In questo caso, non è possibile ottenere una
trasformazione lineare generale a causa della perdita dell’informazione dovuta alla riduzione della
dimensionalità [3].
2.1 I concetti principali e le Feed-Forward Neural Network 11
Le Feed-Forward Neural Network (o FFNN ) [5] sono una prima, diretta appli-
cazione di quanto detto sinora: l’informazione in questo caso procede dall’input
all’output, senza che vi siano delle connessioni di feedback che permettano di fornire
le informazioni sull’output ai layer precedenti. Ricapitolando, le informazioni pro-
cedono dagli input all’output passando per ciascun hidden layer, producendo degli
output.
Un altro modo di vedere il concetto di Rete Neurale è quello di espansione
del modello lineare [5]. Una trasformazione lineare è applicata non ad un vettore
d’input x, ma ad un input trasformato „(x), dove „ è una trasformazione non
lineare ignota3 . Nel deep learning, l’approccio è quello di far apprendere alla rete la
funzione „ partendo da un modello tale che y = f (x; ◊, w) = „(x; ◊)T w. Mediante
la cosiddetta fase di training della rete neurale, sono adattati i parametri ◊ che
consentono di discriminare „ da una classe di funzioni più ampia: di conseguenza,
il compito dell’algoritmo è unicamente quello di determinare i parametri in modo
da migliorare quanto più possibile la rappresentazione. Ciò avviene minimizzando
la distanza tra il valore desiderato degli output a quelli predetti dalla rete. Si
tratta, quindi, di un problema di minimizzazione attraverso una specifica metrica,
denominata loss o cost function, il cui valore viene calcolato al termine di ogni
fase di training, dopo aver aggiornato i pesi [9]. Una metrica molto utilizzata è
quella definita MSE (Mean Squared Error), che implica la minimizzazione dell’errore
quadratico medio tra valore desiderato e valore predetto:
N
ÿ 1 ÿN
E(w) = En (w) = (yn ≠ ŷi )2 (2.4)
n=1
N n=1
dove yn sono gli output della Rete Neurale, mentre ŷn sono gli output desiderati. Teo-
ricamente, al termine di questa fase, la rete dovrebbe essere in grado di determinare
l’output corretto, anche se l’input fornito non è uguale a quello fornito nel training:
questo è un problema importante, che viene definito, appunto, di generalizzazione.
2.1.1 La backpropagation
Ci si concentri ancora sulla fase di training: l’approccio standard è quello di
partire con una Rete con pesi randomici. La cost function è una funzione scalare
dei pesi che risulta minimizzata quando gli output ottenuti coincidono con quelli
desiderati e che viene valutata dopo l’aggiornamento dei pesi per ridurre l’errore.
In questo frangente, è di enorme aiuto l’algoritmo della backpropagation, spesso
denominata anche backprop, che consiste in un modo efficiente per valutare le derivate
della loss function rispetto ai pesi per ciascuna unità (si veda a tal riguardo [3, 4]).
Il nome deriva dal fatto che, nella fase di valutazione di queste derivate, gli errori
sono propagati ’all’indietro’ rispetto alla rete stessa.
3
Talvolta, per brevità, si preferisce utilizzare una notazione leggermente diversa da quella usata
(p) (p)
sinora, in cui x = {1, xi } indica le variabili d’input, mentre il vettore w = {wj0 , wjk } permette di
rappresentare sia i pesi, sia il bias. L’apice (p) indica, in questo caso, il p-esimo layer della rete
neurale in esame. Con y, invece, s’indica l’output ottenuto.
2.1 I concetti principali e le Feed-Forward Neural Network 12
dove n indica il singolo punto nel training set e k l’output specifico della rete neurale.
Inoltre, ynk e tnk indicano, rispettivamente, il singolo output e il singolo valore
desiderato della rete neurale d’interesse.
Si consideri quindi il calcolo della derivata della funzione En rispetto ad uno
dei pesi wji . Nel caso in esame, s’ignorino i bias: ciò implica che ciascuna unità
q
computa una somma pesata dai vari input nella forma aj = i wji zi , dove ciascun
termine è poi successivamente trasformato da una funzione di attivazione zj = h(aj ).
In questo caso, zi è l’attivazione di un’unità o un input che manda una connessione
all’unità j, mentre wij è il peso associato a tale operazione. I pesi sono inizializzati
allora con valori random, e sono cambiati nella direzione che andrà a ridurre l’errore
(seguendo l’approccio della discesa lungo il gradiente):
ˆEn (· +1) (· ) (· )
wij = ≠÷ ; wij = wij + wij (2.6)
ˆwij
dove ÷ è il cosiddetto learning rate e indica a quanto ammonta lo scarto dei
pesi per ciascuno step rispetto alla derivata della loss function appena calcolata.
Il processo è quindi iterativo, ed ogni volta il vettore dei pesi è aggiornato fino ad
ottenere il miglior risultato.
Allora, è possibile applicare la regola della derivazione a catena per valutare la
derivata nell’equazione 2.6, ottenendo che:
ˆEn ˆEn ˆaj
= = ≠” j zi (2.7)
ˆwji ˆaj ˆwji
È più sottile e delicato eseguire questo genere di operazioni in reti più sofisticate,
come le Recurrent Neural Network, che sono analizzate nella sezione successiva.
Figura 2.2. Visualizzazione del comportamento di una Recurrent Neural Network (figura
tratta da [9]). Questo grafico mostra i diversi modi d’illustrare i grafi com-
putazionali per una RNN, passando da una rappresentazione più sintetica
ad una che si basa sull’unfolding, che permette di evidenziare la struttura
ripetitiva della rete.
Figura 2.3. Questa figura, tratta da [9], permette di osservare una cella LSTM. Le celle sono
connesse tra di loro ricorsivamente: nello specifico, i rettangoli rappresentano
i vari layer nascosti che agiscono sulle variabili, mentre i cerchi sono associati
a delle operazioni pointwise. Sulla destra, è presente un riepilogo delle
equazioni vettoriali che permettono di descrivere l’azione dei vari elementi
della cella.
Queste relazioni sono riepilogate nella figura 2.3, dove è illustrata la struttura
interna di una cella LSTM.
16
Capitolo 3
Sulla base delle necessità evidenziate nella sezione 1.3, è giunto quindi il momento
di descrivere l’approccio delle Reti Neurali Artificiali (descritte in modo introduttivo
nel capitolo 2) per poter risolvere il problema del decoding nel Quantum Computing:
è proprio questo lo scopo del capitolo, in cui verrà seguito quanto riportato in [9,
10].
Proprio in [9, capitolo 4] è proposto un primo tentativo in questa direzione
usando le FFNN. Nel complesso, si nota che le performance ottenute sono simili
rispetto a quelle dell’algoritmo di Blossom, talvolta anche con poche error syndrome.
Per quanto riguarda i tempi di processamento necessari per l’algoritmo, è possibile
valutare il runtime per ciascun neurone: risulta quindi un tempo di crescita ’sub-
lineare’ rispetto alle unità che compongono i vari layer. I tempi di decoding che
ne derivano sono più alti rispetto a quelli a disposizione, rimanendo tuttavia vicini
a quelli necessari per l’algoritmo di Blossom: quindi, vi sono le basi per poter
sviluppare un tentativo in questa direzione.
ciascun set di errori porta alla stessa error syndrome. Terminato questo processo, si
passa alla fase di training, che si considera terminata quando la rete neurale è in
grado di predire almeno il 99% degli input forniti per il training.
Per i low level decoder, viene utilizzata una sola rete neurale: dopo aver fornito in
output le predizioni, bisogna verificare che queste generino la stessa error syndrome
osservata (figura 3.1a). Se ciò non accade, le correzioni non sono valide (figura 3.1b)
ed è necessario un processo di ricampionamento e rivalutazione finché tale condizione
non viene soddisfatta (figura 3.1c).
(a) Error syndrome os- (b) Correzione non vali- (c) Correzione valida
servata da
Figura 3.1. Le seguenti figure, tratte da [9, 10] permettono di descrivere il processo di
decoding per un low level decoder per un rotated surface code con d = 5. I
punti in rosso indicano l’error syndrome, mentre gli errori di bit-flip sono
indicati con delle X.
Al contrario, per gli high level decoder sono presenti due moduli che operano in
parallelo: uno di questi può essere costituito da un simple decoder, mentre l’altro è
una rete neurale. Il simple decoder è un modulo classico che riceve in input l’error
syndrome e propone delle correzioni valide, che corrispondono con l’error syndrome
osservata (si confrontino le figure 3.2a e 3.2b). La rete neurale, invece, si occupa di
predire se il simple decoder andrà a produrre un errore logico, che verrà cancellato
da ulteriori correzioni fornite in output (figura 3.2c). Il metodo è molto efficiente: il
simple decoder è progettato in modo da essere molto veloce, mentre le operazioni di
entrambi i moduli possono essere in parallelo.
(a) Error syndrome os- (b) Correzioni proposte (c) Correzione addizio-
servata dal simple decoder nale proposta per
cancellare l’errore lo-
gico
Figura 3.2. Le seguenti figure, tratte da [9, 10] permettono di descrivere il processo di
decoding per un high level decoder per un rotated surface code con d = 5.
I punti in rosso indicano l’error syndrome, mentre gli errori di bit-flip sono
indicati con delle X.
Il training dataset non può contenere tutte le possibili error syndrome, in quanto
ciò porterebbe ad una dimensione del campione e tempi di addestramento inac-
cettabili. Tuttavia, queste devono essere il più diversificate possibile, in modo da
garantire buone proprietà di generalizzazione della rete. Un approccio possibile,
quello del single probability dataset, è quello di creare un unico dataset basato su un
solo rate di errore fisico, per poi essere testato sugli altri. Questo modo di operare,
sebbene preveda l’addestramento di una sola rete neurale e possa essere applicato
ad un esperimento reale, presenta alcuni limiti. In primo luogo, il campionamento a
bassi rate di errore fisico implica la presenza di sample non abbastanza diversificati;
inoltre, non permette di avere un testing affidabile su un ampio range di tassi di
errore fisico. Ciò è dovuto al fatto che, ad un rate di errore fissato, alcuni set di
errori risultano essere più probabili di altri e solo questi vengono selezionati nella
fase di campionamento. Per questi motivi, sono stati sviluppati i multiple probability
dataset: quest’approccio prevede di creare diversi dataset a diversi rate di errori
fisici. Ciascun set viene in seguito utilizzato per addestrare una diversa rete neurale.
Tabella 3.1. Valori della pseudo-threshold per i modelli di decoder testati con depolarizing
error model e d = 3.
Decoder Pseudo-Threshold
FFNN lld 0.0911
RNN lld 0.0949
FFNN hld 0.0970
RNN hld 0.0969
Blossom 0.0825
Figura 3.3. La seguente figura [9] mostra le prestazioni delle diverse configurazioni testate per
un rotated surface code con d = 5 per il depolarizing error model. Il training
si ferma dopo 500 epoche: si continua così il training della configurazione
migliore finché non si osservano successivi aumenti dell’accuracy di training.
(si veda al riguardo la figura 3.3)2 . Sono molti i parametri che influenzano questa
scelta, tra cui agiscono principalmente la diversificazione dei sample ed il tipo di
rete neurale. Sono stati inoltre testati anche due tipi diversi di rete, la Feed-Forward
Neural Network e la Recurrent Neural Network. I risultati dei test, forniti sotto
forma di pseudo-threshold, sono riportati nella tabella 3.1.
Sulla base dei valori riportati, è stato possibile osservare che le Reti Neurali
Ricorrenti risultano più efficaci di quelle Feed-Forward, sia in termini di prestazioni,
sia perché risultano più semplici d’addestrare.
• Dimensione dei batch. Il training con batch (invece di usare l’intero dataset)
può aiutare nel migliorare l’accuracy e il tempo di training. In questo caso, i
batch comprendono 1000 o 10000 campioni;
Figura 3.4. Tempi di esecuzione in funzione del rate di errore fisico per rotated surface code
con d = 3 con depolarizing error model [9, 10]. Quelli testati sono high e
low level decoder implementati tramite FFNN e RNN.
3.1.4 Risultati
Le prestazioni di decoding sono testate tramite delle lifetime simulation, che
sono simulazioni che coprono una grande varietà di rate di errori fisici. È calcolato
anche il rate di errori logici come il rapporto tra il numero di errori logici trovati ed
il numero di cicli di correzione di errore considerati per individuarli.
Per il depolarizing error model è stato studiato un modello in cui è presente
solo un simple decoder che opera parallelamente ad una rete neurale, similmente
al processo indicato nella figura 3.1. In questo caso, sono usati cinque dataset di
training con diversi rate di errori fisici, pari a 0.2, 0.15, 0.1, 0.08 e 0.05. Analizzando i
3.1 Decoder basati su Reti Neurali per Surface Code 21
risultati presentati nella tabella 3.2, si nota che all’aumentare di d, aumenta anche la
pseudo-threshold, che comunque risulta migliore per i multiple probabilities dataset.
Tabella 3.3. Valori della pseudo-threshold per il circuit noise model. In questo caso, i
risultati dell’algoritmo di Blossom non sono considerati in quanto non è
stato possibile applicare l’algoritmo per d > 3.
Capitolo 4
Conclusioni
Nel corso di questa dissertazione, sono state illustrate alcune delle idee alla base
della tecnica della Correzione di Errore: dopo aver introdotto i concetti fondamentali
del Quantum Computing, è stato possibile metterne in luce alcuni importanti limiti
pratici. Tra questi, quello più importante è quello della decoerenza, ovvero la perdita
dell’informazione conservata nei qubit a seguito delle interazioni con l’ambiente.
Ciò pone dei limiti al tempo di esecuzione di un eventuale decoder che, a seconda
della tecnologia implementata, deve essere in grado di poter operare anche in tempi
dell’ordine delle centinaia di nanosecondi. Questo problema va accompagnato anche
alle richieste di poter ottenere un decoder sufficientemente affidabile, con performance
di decoding soddisfacenti e la capacità di poter operare indipendentemente dalle
dimensioni del sistema.
I recenti sviluppi delle reti neurali, esposte brevemente nel capitolo 2, hanno
aperto la strada a nuovi tipi di decoder che possano sfruttarne la versatilità e le
alte prestazioni. Questo approccio è quello alla base del capitolo 3, in cui è stato
descritto lo sviluppo di un decoder basato su reti neurali e adattato ad un rotated
surface code. Sono stati quindi descritti i risultati ottenuti con due tipi di reti neurali
(Feed-Forward e Ricorrenti) e due tipi di decoder diversi (high e low level decoder),
mostrando come sia possibile costruire strutture diverse per il depolarising error
model e per il circuit noise model. I decoder studiati risultano competitivi rispetto
all’algoritmo tradizionale di Blossom.
Tuttavia, sebbene quest’approccio risolva il problema del tempo di esecuzione,
presenta il problema dell’applicabilità dell’algoritmo su codici con valori di d più
grandi di nove, impedendo di costruire un rotated surface code con più di cento qubit.
È stato quindi illustrato un modo possibile per risolvere il problema, il Distributed
Neural Network based decoder, che permette di ottenere prestazioni in linea con gli
algoritmi studiati precedentemente, mitigando al contempo i problemi di scalabilità
del codice.
24
Bibliografia
[1] Jonas Amlöf. «Quantum error correction». Tesi di Dottorato. KTH School
of Engineering Sciences, 2016. url: https://www.diva-portal.org/smash/
get/diva2:894450/FULLTEXT01.pdf.
[2] Giuliano Benenti, Giulio Casati e Giuliano Strini. Principles of Quantum
Computation and Information. A cura di World Scientific Co. Pte. Ltd. Vol. I:
Basic Concepts. Singapore, 2004.
[3] Christopher M. Bishop. Pattern Recnognition and Machine Learning. A cura
di Springer. 2006.
[4] Richard O. Duda, Peter E. Hart e David G. Stork. Pattern Classification. A
cura di John Wiley & Sons Inc. 2001.
[5] Ian Goodfellow, Yoshua Bengio e Aaron Courville. Deep Learning. http :
//www.deeplearningbook.org. MIT Press, 2016.
[6] Sepp Hochreiter e Jürgen Schmidhuber. «Long Short-term Memory». In: Neural
computation 9 (dic. 1997), pp. 1735–80. doi: 10.1162/neco.1997.9.8.1735.
[7] Christopher Olah. Understanding LSTM Networks. 2015. url: https://colah.
github.io/posts/2015-08-Understanding-LSTMs/.
[8] Matthew David Reed. «Entanglement and Quantum Error Correction with
Superconducting Qubits». Tesi di Dottorato. Faculty of the Graduate School
of Yale University, 2013. url: https://arxiv.org/abs/1311.6759.
[9] Savvas Varsamopoulos. «Neural Network Based Decoders for the Surface Code».
Tesi di Dottorato. Delft University of Technology, 2019. doi: 10.4233/uuid:
dc73e1ff - 0496 - 459a - 986f - de37f7f250c9. url: https : / / doi . org / 10 .
4233/uuid:dc73e1ff-0496-459a-986f-de37f7f250c9.
[10] Savvas Varsamopoulos, Koen Bertels e Carmen Garcia Almudever. «Comparing
Neural Network Based Decoders for the Surface Code». In: IEEE Transactions
on Computers 69.2 (feb. 2020), pp. 300–311. issn: 2326-3814. doi: 10.1109/
tc.2019.2948612. url: http://dx.doi.org/10.1109/TC.2019.2948612.