Sei sulla pagina 1di 29

Correzione di errore nei qubit quantistici tramite

Reti Neurali Artificiali

Facoltà di Scienze Matematiche Fisiche Naturali


Corso di Laurea in Fisica

Candidata
Giorgia Caradonna
Matricola 1792970

Relatore
Professor Stefano Giagu

Anno Accademico 2019/2020


Tesi non ancora discussa

Correzione di errore nei qubit quantistici tramite Reti Neurali Artificiali


Tesi di Laurea. Sapienza – Università di Roma

© 2020 Giorgia Caradonna. Tutti i diritti riservati

Questa tesi è stata composta con LATEX e la classe Sapthesis.

Email dell’autore: caradonna.1792970@studenti.uniroma1.it


Ai miei genitori, per esserci sempre stati.
A Valentina, la mia sorella maggiore mancata.
A Matteo, per ’onestà intellettuale’.
Ai miei colleghi, per avermi accompagnata sin qui.
iii

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

1 Il Quantum Computing e i suoi problemi 1


1.1 I concetti fondamentali del Quantum Computing . . . . . . . . . . . 1
1.2 Tecniche e codici della Correzione di Errore Quantistica . . . . . . . 3
1.2.1 Teoria della Correzione di Errore Quantistica . . . . . . . . . 3
1.2.2 Il surface code . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Un approccio basato sulle Reti Neurali Artificiali . . . . . . . . . . . 7

2 Le Reti Neurali Artificiali 9


2.1 I concetti principali e le Feed-Forward Neural Network . . . . . . . . 9
2.1.1 La backpropagation . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Le Recurrent Neural Network . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 Long short-term Memory . . . . . . . . . . . . . . . . . . . . 14

3 Decoder basati su Reti Neurali Artificiali 16


3.1 Decoder basati su Reti Neurali per Surface Code . . . . . . . . . . . 16
3.1.1 Studio sulle tipologie di decoder . . . . . . . . . . . . . . . . 16
3.1.2 Parametri d’implementazione . . . . . . . . . . . . . . . . . . 17
3.1.3 Processo di training . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.4 Risultati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 Distributed Neural Network based decoder . . . . . . . . . . . . . . . 22

4 Conclusioni 23

Bibliografia 24
1

Capitolo 1

Il Quantum Computing e i suoi


problemi

1.1 I concetti fondamentali del Quantum Computing


Il Quantum Computing rappresenta un approccio alla computazione diverso
da quello classico, nato dalla necessità di risolvere problemi sinora non risolti: in
particolare, le sue attrattive si riscontrano già a partire dall’elemento fondamentale
dell’informazione quantistica, il qubit.
Un bit classico è un sistema binario, che può esistere in due stati distinti
(rappresentati come 0 ed 1); al contrario, un qubit può essere considerato come un
sistema quantistico a due livelli, descritto matematicamente da uno spazio di Hilbert
bidimensionale e complesso (indicato con H(2) ). Gli stati possono essere quindi
espressi in un numero infinito di configurazioni tramite combinazioni lineari degli
elementi della cosiddetta base computazionale (|0Í ed |1Í), tramite il Principio di
Sovrapposizione. Nello specifico, un qualunque stato del qubit sarà indicato come:

|ÂÍ = – |0Í + — |1Í (1.1)

dove |–|2 + |— 2 | = 1 [2]. Contrariamente a quanto può sembrare, un qubit presenta


solo un bit di informazione a causa dell’ortogonalità degli elementi della base e delle
proprietà legate alla misura nella Meccanica Quantistica [1].
Definito il singolo qubit, si può cercare di capire come manipolarne lo stato: da
questo punto di vista è utile definire una base di operatori unitari in H(2) , chiamati
operatori di Pauli e definiti attraverso la seguente rappresentazione matriciale:
A B A B A B A B
1 0 0 1 0 ≠i 1 0
I= ‡x = ‡y = ‡z = (1.2)
0 1 1 0 i 0 0 ≠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:

1. Un sistema fisico scalabile formato da molti qubit ’ben caratterizzati’. Ciò


implica che il sistema fisico abbia molti qubit che manifestino i fenomeni
appena descritti e che abbiano proprietà fisiche ben note;

2. La possibilità di inizializzare i qubit ad uno stato ben definito, come quello


fondamentale;

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;

4. Un set di porte quantistiche ’universali’. Analogamente al caso classico, molte


operazioni possono essere espresse come combinazioni di altre, permettendo
quindi di definire un set di possibili ’porte quantistiche universali’;

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.

I criteri di DiVincenzo hanno permesso di evidenziare uno dei principali ostacoli


per il Quantum Computing, ovvero la fragilità dell’informazione portata dai qubit.
Per poter risolvere questo problema, è importante definire e discutere la tecnica
della Correzione di Errore Quantistica.
1
Il CNOT è una porta quantistica che agisce su due qubit, uno che viene definito come control
qubit ed il secondo che agisce come target qubit. La porta cambia lo stato del target qubit se il
control qubit si trova nello stato |1Í, mentre non fa nulla se si trova nello stato |0Í.
1.2 Tecniche e codici della Correzione di Errore Quantistica 3

1.2 Tecniche e codici della Correzione di Errore Quan-


tistica
1.2.1 Teoria della Correzione di Errore Quantistica
Prima di poter definire le strategie di base della Correzione di Errore, è bene
definire quali siano le proprietà di un errore quantistico (si veda [8] al riguardo):
• Il no-cloning theorem. Il no-cloning theorem afferma che non è possibile
creare una copia artificiale di un qualunque sistema quantistico. Quindi, non
è possibile creare copie dello stato per trasmettere informazione in modo
indipendente;

• Gli errori quantistici sono continui. Osservando l’equazione 1.1, è possibile


osservare che un qubit può evolvere lungo due direzioni diverse. Ciò implica
che, con quanto si ha a disposizione, è impossibile descrivere completamente
l’errore tramite operatori di Pauli, se non tramite operazioni di discretizzazione
[9];

• Il problema della misura. L’unico modo di effettuare una misura in un sistema


quantistico è tramite una misura di tipo proiettivo, che determina una perdita
dell’informazione sulla sovrapposizione degli stati, senza che si sia verificato
un errore di qualunque tipo.
Esiste, fortunatamente, una strada per risolvere questo problema, che passa per
l’encoding di n qubit fisici in altri, definiti come qubit logici: ciò porta all’espansione
dello spazio di Hilbert considerato (ora H(2 ) ), portando alla definizione di una
n

base {|0Í , |1Í}¢n (base computazionale allargata). Un sottospazio di dimensione K,


definito come codice, è descritto dallo span delle code word (|0L Í e |1L Í), con cui
sono, appunto, indicati i qubit logici [1]. Questa operazione ha l’innegabile vantaggio
di creare stati che siano più resistenti alla presenza di errori, sebbene ciò non risolva
completamente il problema a livello dei qubit fisici. Il processo fin qui descritto
porta quindi alla distinzione tra i cosiddetti data qubit, che son quelli che contengono
l’informazione, e gli ancilla qubit, che formeranno nel complesso un sistema entangled
[9]. Gli ancilla qubit sono un set accessibile di qubit, preparati inizialmente in uno
stato noto del sistema e che prendono parte nelle operazioni unitarie: nella fase di
recupero dell’informazione, avviene un processo di disentanglement dal sistema, al
termine del quale devono essere resettati prima che avvenga una nuova correzione
[1].
Prima di procedere ulteriormente, (si veda [1] a tal riguardo), è bene definire una
misura collettiva S, che non perturbi lo stato e che non permetta di distinguere tra
le coppie di elementi, presi tra due basi mutualmente ortogonali, {|Âi Í(0) } e {|Âi Í(1) }.
Gli elementi di queste basi sono autovettori di S e presentano un set comune di
autovalori si . Questa misura può essere scritta come:
ÿ
S= si (|Âi Í(0) (0) ÈÂi | + |Âi Í(1) (1) ÈÂi |) (1.4)
i

Trovare gli autovalori (syndrome bit) ed eseguire l’operazione S, definita come


operazione di parità, non è banale: si definisca, tuttavia, in modo più generale, lo
1.2 Tecniche e codici della Correzione di Errore Quantistica 4

- 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)
Ÿ

da cui, se Ÿ è noto, posso applicare un adeguato operatore di recupero:


e - e -
RŸ = |0L Í SŸ(0) - + |1L Í SŸ(1) -
- -
(1.6)
Sulla base di quanto detto finora, è possibile definire un criterio necessario e
sufficiente per la correzione di errore per gli operatori Ei , che è possibile formalizzare
come:
ÈjL | Ei† E k |lL Í = Cik ”jl (1.7)
dove Cik = ÈmL | E i E k |mL Í è una matrice Hermitiana che non dipende da m. È
accettabile, in questo caso, che l’osservatore possa inferire la possibilità di un errore
senza che sia rivelata l’informazione sullo stato in sé: allora, il problema sarà capire
quale errore sia avvenuto. Verrà poi applicata un’operazione unitaria che permetta
di tornare allo stato iniziale desiderato con una certa probabilità.
L’informazione ottenuta viene allora mandata all’unità che contiene il decoder,
che si occupa di proporre le correzioni che andranno applicate sul sistema quantistico
per cancellare gli errori che sono stati individuati. Sviluppare dei decoder che
lavorino sulla base di queste proprietà (descritte in maggior dettaglio in [1]), non è
semplice, in quanto vi sono numerosi parametri di cui bisogna tener conto [9]:
• Tempo di esecuzione. Questo viene descritto come il tempo tra l’entrata
dell’input nel decoder e quello in cui sono fornite le correzioni in output. Visto
il problema della decoerenza, questo deve essere breve, pena l’accumularsi
incontrollabile di errori o comunque una minor efficienza;
• Performance di decoding. È l’abilità del decoder di identificare correttamente
gli errori fisici ed è spesso considerata tramite il rate di errori logici;
• Scalabilità. La capacità di decodificare qualunque sistema indipendentemente
dalle sue dimensioni: all’aumentare di queste, però, si avranno ripercussioni
sugli altri due parametri qui elencati.
È bene precisare che, in questo contesto, non è solo la misura della syndrome
ad essere necessaria, ma anche la presenza di operazioni fault tolerant, che tengano
conto dell’esistenza di errore: se anche solo uno dei passaggi presenti in un ciclo di
correzione presenta un errore, questo non verrà propagato in qubit diversi da quelli
dell’output dell’operazione stessa.
1.2 Tecniche e codici della Correzione di Errore Quantistica 5

1.2.2 Il surface code


Nell’ambito della Correzione di Errore Quantistica esistono molti tipi di codice,
ciascuno dei quali presenta specifici vantaggi, sebbene siano presenti alcune proprietà
comuni che ne permettano il corretto funzionamento, come la semplicità e l’efficacia
del processo di encoding. Il surface code [9] è un codice Topologico e Stabilizzatore2 :
come si vede dalla figura 1.1a, il surface code è formato da data e ancilla qubit,
con errori discretizzati per facilitare il processo d’identificazione: nello specifico,
sono da considerare soprattutto gli errori ‡x (bit-flip) e ‡z (phase-flip), in quanto
gli errori descritti da ‡y possono essere descritti usando gli altri operatori di Pauli.
Di conseguenza, sono richiesti solo ancilla qubit di tipo X e Z, che permettono di
identificare questi errori.

(a) Struttura del surface code (b) Rotated surface code

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.

Le interazioni locali sono imposte tramite specifici circuiti (error syndrome


measurement circuit o circuiti ESM ), che eseguono misure sugli ancilla qubit, prece-
dentemente preparati e correlati quantisticamente con i vicini data qubit tramite
quattro porte CNOT. Nello specifico, viene calcolata la parità tra un certo ancilla
qubit e i data qubit cui questo è connesso, fornendo quello che viene denominato
controllo della parità. Il surface code presenta numerosi vantaggi, come la struttura
semplice con vincoli locali sui qubit, ma ha anche delle limitazioni importanti. Infatti,
presenta al massimo solo quattro operatori di controllo della parità per qubit e la
necessità di un decoding molto veloce a causa dell’alto numero di qubit necessari.
2
I codici Topologici distribuiscono i qubit secondo una certa topologia e ne sfruttano le interazioni
locali, presentando il vantaggio di una struttura geometrica semplice e scalabile, nonché di un’alta
soglia di tolleranza all’errore. I codici Stabilizzatori, invece, sono basati sul controllo della parità
per effettuare la ricerca e correzione di errore, secondo le modalità descritte nella sottosezione 1.2.1.
Il surface code, quindi, rappresenta una sintesi tra le potenzialità di entrambe le tipologie.
1.2 Tecniche e codici della Correzione di Errore Quantistica 6

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.

(a) Esempio di vari tipi di (b) Rilevazione di un errore di mi-


errore su un rotated sura in un rotated surface code
surface code con d = con d = 3.
5

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.

L’individuazione di errori su qubit presenta ulteriori elementi problematici, come


la presenza di rumore non eliminabile. Questo è associato all’incapacità del decoder
1.3 Un approccio basato sulle Reti Neurali Artificiali 7

d’identificare sempre e correttamente l’errore a causa della degenerazione del surface


code (più set di errori generano la stessa error syndrome). La performance di un
decoder si misura analizzando il rapporto tra errori logici presenti rispetto al numero
di cicli del rotated surface code. Molto utili, sotto questo punto di vista, sono i grafici
dell’errore logico in funzione dell’errore fisico, che permettono di avere un’idea chiara
delle prestazioni di decoding. A questo scopo, è utile definire una threshold: questa è
individuata come il punto d’intersezione tra tutte le curve che rappresentano rate di
errori logici a diverse code distance. Inoltre, permette d’identificare il maggiore errore
fisico tale che le risorse fornite dalla Correzione di Errore Quantistica sono d’aiuto
nell’identificazione di errori. Un’ultima metrica da considerare per la valutazione
delle performance di un algoritmo è la cosiddetta pseudo-threshold, cioè il maggior
rate di errori fisici che il dispositivo dovrebbe avere affinché la Correzione di Errore
apporti benefici ed è definita come l’intersezione tra la curva del rate di errore logico
ad un d fissato con la curva tale che errore logico ed errore fisico sono uguali (la
bisettrice). Un esempio molto utile per capire le varie metriche è presente nella
figura 1.3.

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).

1.3 Un approccio basato sulle Reti Neurali Artificiali


Come già affermato, il problema principale del Quantum Computing è la decoe-
renza, cui consegue l’estrema fragilità degli stati quantistici: negli anni, sono stati
elaborati numerosi algoritmi classici per il decoding, tra cui l’algoritmo di Blossom 3 .
Sebbene le performance siano soddisfacenti, il tempo di esecuzione scala linearmente
(in una versione già ottimizzata) rispetto al numero di qubit e ciò potrebbe non essere
in linea con quanto richiesto dalle tecnologie a disposizione. Altri algoritmi classici
3
Questo algoritmo genera un grafo che contiene gli eventi di rilevazione, eseguendo un Minimum
Weigth Perfect Matching, in modo da trovare il minimo set di correzioni che causano l’error syndrome
rilevata [9]
1.3 Un approccio basato sulle Reti Neurali Artificiali 8

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

Le Reti Neurali Artificiali

2.1 I concetti principali e le Feed-Forward Neural Net-


work
Quello della Rete Neurale Artificiale è un modello che consiste in un gruppo
interconnesso di nodi [9]: nello specifico, ciascuno di essi riceve un input e manda in
output un segnale processato, adattato sulla base di alcuni parametri forniti alla rete
neurale e che agiscono indipendentemente. Le reti neurali sono spesso rappresentate
tramite diagrammi (come quello della figura 2.1 nella pagina seguente), che permette
di capire come i vari nodi son connessi tra di loro1 . È possibile notare che i nodi
possono essere pensati come unità che agiscono indipendentemente in layer. Nello
specifico, è possibile distinguere tra:

• layer d’input, che contiene i nodi associati alle variabili d’input;

• layer di output, che contiene i nodi associati alle variabili di output;

• 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.

o dall’output, in quanto devono essere trasformate tramite una trasformazione


differenziabile, che prende il nome di funzione di attivazione:

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

Sia data una funzione di errore E(w) nella forma:


N
ÿ N
ÿ 1
E(w) = En (w) = (ynk ≠ tnk )2 (2.5)
n=1 n,k
2

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

dove per semplicità si definisce ” j © ≠ ˆE


ˆaj come sensitività dell’unità j. Al tempo
n

stesso, zi = ˆwji , sulla base di quanto scritto precedentemente. Quindi, è necessario


ˆa j

calcolare il termine ”: questo è pari, per le unità di output a ” k = tk ≠ yk . Al


contrario, per le unità nascoste, è necessario utilizzare nuovamente la regola della
derivazione a catena:
ˆEn ÿ ˆEn ˆak
”j = ≠ =≠ (2.8)
ˆaj k
ˆak ˆaj
dove la somma è su tutte le unità cui l’unità j manda una connessione. At-
traverso le necessarie sostituzioni, è possibile ottenere la formula alla base della
backpropagation: ÿ
” j = hÕ (aj ) wkj ” k (2.9)
k
dove il valore di una qualunque ”j può essere calcolato propagando le varie ”k
all’indietro a partire da unità più ’in alto’ nella Rete, permettendo così di calcolarle
tutte. Da qui, è allora possibile procedere con il calcolo delle modifiche dei pesi, che
fornisce il seguente risultato:
ÿ
wij = ÷zi ” j = ÷zi hÕ (aj ) wkj ” k (2.10)
k
2.2 Le Recurrent Neural Network 13

È più sottile e delicato eseguire questo genere di operazioni in reti più sofisticate,
come le Recurrent Neural Network, che sono analizzate nella sezione successiva.

2.2 Le Recurrent Neural Network


Le Recurrent Neural Network o RNN [5, 9] sono delle reti neurali ideate per
processare una serie, anche lunga, di sequenze: l’idea alla loro base è piuttosto diversa
da quella delle FFNN e una rappresentazione della loro struttura è riportata nella
figura 2.2. Nello specifico, si consideri una sequenza di vettori xt , con t = 1, . . . , · ,
dove t assume la connotazione di indice temporale o di semplice posizione all’interno
di una sequenza. Nelle RNN, ciascun membro dell’output (con indice t) è una
funzione dei precedenti membri dell’output (indicati con l’indice t ≠ 1): questa
struttura ricorrente può essere espressa anche parlando un loop di feedback che
permette la persistenza dell’informazione.

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.

Nella figura 2.2, si fa riferimento anche all’unfolding di un grafo, che permette di


passare da una struttura ricorsiva ad una ripetitiva, associata di solito ad una catena
di eventi [5]. Esistono infatti due modi in cui è possibile rappresentare graficamente
una RNN: uno è un diagramma in cui vi è un nodo per ogni componente che potrebbe
esistere in una rappresentazione fisica del modello (raffigurato nella parte sinistra
della figura 2.2). Altrimenti, è possibile utilizzare un grafo computazionale unfolded,
in cui ciascun componente è rappresentato tramite molteplici variabili, una per
step temporale, rappresentando cosa accade nello specifico. È a tale modello che si
riferisce la rappresentazione a destra della figura 2.2.
In generale, molte RNN si reggono su equazioni che coinvolgono in qualunque
modo una ricorrenza e che possono essere rappresentate, usando la variabile h, nel
seguente modo:
ht = f (ht≠1 , xt ; ◊) (2.11)
Quando si tratta di eseguire predizioni, la rete tipicamente impara ad usare ht come
una sorta di ’sommario’ degli aspetti rilevanti della sequenza degli input passati fino
2.2 Le Recurrent Neural Network 14

a t: questo è soggetto alla perdita di informazioni in quanto mappa una sequenza


arbitrariamente lunga di input xt , . . . , x1 in un vettore ht di lunghezza fissata.

2.2.1 Long short-term Memory


Attualmente, la tipologia di Rete Neurale Ricorrente più usata nelle applicazioni
pratiche prende il nome di gated RNN, tra cui troviamo anche le long short-term
memory o LSTM [5]. Queste sono nate dall’idea di superare uno dei più grandi
problemi delle Recurrent Neural Network: l’aggiornamento dei pesi tramite la tecnica
della backpropagation. Applicando questo algoritmo al grafo unfolded che descrive
una RNN con un runtime di O(· ) è possibile ottenere quella che viene definita la
tecnica della backpropagation through time (anche BPTT) [5]. Non è scopo di questa
dissertazione fornire calcoli a tal riguardo, il cui svolgimento può essere trovato in [5,
6]. Ad ogni modo, gli errori calcolati con questa tecnica tendono ad esplodere o ad
annullarsi, con risultati disastrosi: infatti, nel primo caso i pesi tendono ad oscillare,
mentre nel secondo l’algoritmo potrebbe anche non funzionare [6].
Il modello LSTM [5–7] consente di risolvere questo problema introducendo delle
celle LSTM, che presentano una ricorrenza interna, detta anche self loop: in questo
caso, l’informazione è gestita da altri layer nascosti, che prendono complessivamente
il nome di gate. Dunque, le componenti principali di una cella sono le seguenti:
• state unit, la memoria interna delle unità, che viene aggiornata e gestita tramite
i vari gate;

• Input gate: ha lo scopo di controllare l’informazione in ingresso, preservandola


da perturbazioni in input;

• output gate: permette di accedere all’informazione connessa alle celle in usci-


ta e permette di preservare, al tempo stesso, l’informazione da eventuali
perturbazioni contenute in esse;

• forget gate: permette di gestire i pesi associati al self-loop, permettendo di


aggiornare la state unit.
Si veda ora nel dettaglio come l’input è gestito all’interno della cella [5, 7, 9]: è
importante precisare che le successive equazioni sono in forma vettoriale ma che, per
semplificare la notazione, gli elementi sono riportati senza il grassetto. Sia allora W
la connessione ricorrente tra il precedente input layer e quello attuale e U la matrice
dei pesi che connette gli input al layer nascosto: ciascuno di questi elementi presenta
un apice per poter identificare il gate cui ci si riferisce. Allora, il forget gate agisce
sui vettori d’input xt e ht≠1 calcolando il vettore ft secondo la seguente equazione:

ft = ‡(xt U f + ht≠1 W f ) (2.12)


dove la sigmoide permette di imporre che il peso sia tra zero ed uno, permettendo
di selezionare quanta informazione permanga dalle celle precedenti. Per quanto
riguarda l’input gate, questo agisce su due passi, con il calcolo di it e di C̃, un
potenziale vettore di candidati che può essere aggiunto alla state unit:

C̃t = tanh (xt U g + ht≠1 W g ); it = ‡(xt U i + ht≠1 W i ) (2.13)


2.2 Le Recurrent Neural Network 15

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.

dove il layer sigmoidale viene anche chiamato external input gate.


Inoltre, viene aggiornata la state unit:

Ct = ‡(ft · Ct≠1 + it · C̃t ) (2.14)

Infine, l’output gate si occupa di gestire l’informazione in output e che verrà


inviata alle celle successive, con il calcolo di ot e, quindi, di ht .

ot = ‡(xt U o + ht≠1 W o ); ht = tanh (Ct ) · ot (2.15)

Queste relazioni sono riepilogate nella figura 2.3, dove è illustrata la struttura
interna di una cella LSTM.
16

Capitolo 3

Decoder basati su Reti Neurali


Artificiali

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.

3.1 Decoder basati su Reti Neurali per Surface Code


3.1.1 Studio sulle tipologie di decoder
Esistono due tipologie di decoder che possono essere considerate: i low level
decoder (che verranno indicati anche come lld) e gli high level decoder (o hld).
Entrambi ricevono in input l’error syndrome, ma agiscono su diversi tipi di errori (su
qubit fisici o logici). I low level decoder, infatti, producono in output la distribuzione
di probabilità per ciascun data qubit, con predizioni che tentano di correggere gli
errori fisici. Al contrario, gli high level decoder predicono correzioni solo per lo
stato dei qubit logici: ciò rende la predizione più semplice, in quanto sono possibili
solo quattro tipi di errori logici possibili (quelli associati agli operatori definiti nelle
equazioni 1.2).
Per quanto concerne il processo di campionamento, sono eseguiti molteplici cicli
di correzione di errore, mantenendo in memoria i corrispondenti input e output.
Poiché il surface code è degenere, è necessario tener traccia delle frequenze con cui
3.1 Decoder basati su Reti Neurali per Surface Code 17

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.

3.1.2 Parametri d’implementazione


Si vuole quindi comparare i due tipi di decoder, discutendo quale tra le due
proposte sia la strategia migliore. Infatti, questi sono testati su due modelli di errore:
il depolarizing error model e il circuit noise model 1 .
1
Il depolarizing error model fornisce un errore di tipo ‡x ,‡ y ,‡ z ai soli data qubit con probabilità
pari a p/3 (nota anche come depolarizing noise). Il circuit noise model, invece, prevede un
depolarizing noise anche sugli ancilla qubit. Inoltre, le operazioni di preparazione degli stati e di
misura sono anch’esse soggette ad un errore con probabilità pari a p; infine, le porte logiche ad uno
e due qubit sono presunte perfette, ma seguite da un depolarizing noise o da una mappatura a due
qubit. In questa situazione specifica, ciascun caso presenta una probabilità pari a p/15, mentre la
situazione priva di errori ha probabilità 1 ≠ p.
3.1 Decoder basati su Reti Neurali per Surface Code 18

(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

Sono state testate diverse configurazioni di layer e nodi al fine d’individuare


quella che permette di raggiungere le migliori prestazioni con il minor training time
3.1 Decoder basati su Reti Neurali per Surface Code 19

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.

3.1.3 Processo di training


Si esaminino ora i vari parametri che caratterizzano il processo di training:

• 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;

• Learning rate. Il training è eseguito tramite una strategia che prevede la


diminuzione del learning rate, da attuare dopo un certo numero d’iterazioni in
cui non siano stati osservati incrementi nella training accuracy. Ad ogni modo,
questo parametro è compreso tra 0.01 e 0.0001;

• Generalizzazione. Al fine di ottenere risultati soddisfacenti in termini di


generalizzazione, il training prosegue finché il 95 % dei campioni di test non
viene classificato correttamente.
2
Nel caso in esame, le prestazioni sono valutate tramite l’accuracy, la frazione degli eventi
correttamente classificata dall’algoritmo.
3.1 Decoder basati su Reti Neurali per Surface Code 20

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.

Tuttavia, è fondamentale cercare anche di minimizzare i tempi di esecuzione e di


training della Rete Neurale. Questo dipende dal numero di qubit (che scala come
2d2 ≠ 1) e dalle dimensioni del dataset di training (che aumenta esponenzialmente
2
come 2d ≠1 ). Il tempo di training aumenta dunque esponenzialmente, anche se
ciò dipende fortemente dall’architettura utilizzata per la rete neurale. Per quanto
riguarda il tempo di esecuzione, invece, è stato osservato un comportamento costante
nel tempo: tuttavia, bisogna considerare che l’andamento costante è stato ottenuto in
una simulazione software e non in una reale implementazione hardware. Osservando
la figura 3.4, si può notare che i low level decoder, dovendo ripetere le predizioni,
presentano un andamento non costante del tempo di esecuzione, presentando anche
prestazioni più basse. Si nota anche che le RNN presentano tempi di esecuzione mag-
giori rispetto alle FFNN: tuttavia, date le migliori prestazioni sono state considerate
il modello di rete neurale migliore. Infine, si è osservato che il tempo di esecuzione
scala linearmente con il numero di qubit a causa dell’aumento delle dimensioni della
rete neurale (si vedano [9, 10] per dettagli).

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.2. Valori della pseudo-threshold per il depolarizing error model

Decoder d=3 d=5 d=7 d=9


Blossom 0.08234 0.10343 0.11366 0.11932
Single prob. dataset 0.09708 0.10963 0.12447 N/A
Multiple prob. dataset 0.09815 0.12191 0.12721 0.12447

Si notano anche prestazioni migliori rispetto all’algoritmo classico di Blossom: ciò


è dovuto sia al modo di operare dell’high level decoder, sia alla capacità d’individuare
errori correlati (≠i‡ y = ‡ x ‡ z ).
Per quanto concerne il circuit noise model, si ha la presenza di un simple decoder
e due reti neurali, che ricevono l’error syndrome in input. La prima permette di
distinguere tra gli eventi di rilevazione che sono causati da errori di misura e quelli
sui data qubit: solo questi ultimi andranno a formare l’error syndrome fornita in
input al simple decoder. Questo modulo, a sua volta, fornirà un set di correzioni
da apportare all’error syndrome. La seconda rete neurale, al contrario, riceve in
input l’error syndrome iniziale e predice se il simple decoder commetterà errori logici,
fornendo una serie di correzioni da combinare rispetto a quelle fornite dagli altri due
moduli.
Anche in questo caso sono stati usati cinque dataset di training con i rate di
errori fisici di valore sempre maggiore: 4.5 · 10≠3 , 1.5 · 10≠3 , 8.0 · 10≠3 , 4.5 · 10≠4 e
2.5·10≠4 . I risultati, presentati nella tabella 3.3, evidenziano che anche in questo caso
l’approccio con multiple probabilities dataset fornisce risultati migliori, soprattutto
per grandi valori di d: ciò è dovuto alla maggiore accuratezza dell’informazione
posseduta dalle reti neurali, come già osservato nella sottosezione 3.1.1.

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.

Decoder d=3 d=5 d=7


Single prob. dataset 3.99 · 10≠4 9.23 · 10≠4 N/A
Multiple prob. dataset 4.44 · 10≠4 1.12 · 10≠3 1.66 · 10≠4

Il problema principale di questo tipo di decoder è la grandezza dello spazio


campionato, che diventa esponenzialmente grande all’aumentare della code distance.
Questo è dovuto alle modalità con cui vengono forniti i dati alla rete neurale: infatti,
le error syndrome vengono raccolte da tutti i cicli di correzione di errore ed unite in
liste. Queste vengono poi fornite contemporaneamente alla rete neurale. Esistono
diverse modalità con cui si può cercare di mitigare il problema: una di queste consiste
nel fornire le error syndrome di ciascun ciclo una alla volta, invece di fornirle tutte
insieme, mantenendo uno stato intermedio del qubit logico. Un altro, consiste in un
approccio nuovo, spiegato nella prossima sezione.
3.2 Distributed Neural Network based decoder 22

3.2 Distributed Neural Network based decoder


Come si è visto nella sottosezione precedente, il maggior problema dei decoder
basati sulle Reti Neurali è la difficoltà nel garantire la scalabilità per grandi valori
di d, limitando la quantità di qubit presente su un codice e condizionando il numero
di dataset necessari. Un modo per risolvere il problema è tramite un Distributed
Neural Network based decoder, fondato sulla tecnica del Renormalization Group.
Questa prevede la suddivisione del codice in piccole ’tessere’, in cui sono presenti
un certo numero di qubit fisici e su cui sono calcolate le rispettive probabilità di
errore. Quindi, queste tessere sono ’raggruppate’ all’interno di tessere più grandi e
sono aggiornate le probabilità di errore finché non rimane un’unica tessera, che il
decoder usa per proporre correzioni. Il caso esaminato in [9, capitolo 6], prevede
l’uso di piccole regioni che si sovrappongono tra di loro (overlapping tiles), dove sono
ottenute le informazioni locali sugli errori dei qubit fisici: questo serve a superare il
fatto che i controlli della parità non possono essere suddivisi in tessere di grandezza
costante in modo che ogni controllo della parità corrisponde alla singola tessera.
Da qui, il codice ottenuto è passato ad un decoder composto da un simple decoder
e da una rete neurale. Il primo si occupa di fornire un set di correzioni per l’intero
lattice a partire dall’error syndrome ricevuta; da qui interviene la rete neurale, che
identifica le error syndrome per cui il simple decoder andrà a fornire un errore logico.
È possibile ottimizzare ulteriormente questo processo inserendo una rete neurale
binaria che permette di predire se l’error syndrome verrà predetta in modo corretto
o meno dal simple decoder. Questo approccio permette di ottenere performance
simili a quelle dell’algoritmo di Blossom e quelli esplorati nella sezione precedente,
mitigando i problemi di scalabilità del codice ed eventualmente permettendo un
ampliamento del training dataset.
23

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.

Potrebbero piacerti anche

  • Testo Regolamento
    Testo Regolamento
    Documento11 pagine
    Testo Regolamento
    Marianunzia Di Pasquale
    Nessuna valutazione finora
  • Tri 29sett
    Tri 29sett
    Documento1 pagina
    Tri 29sett
    Marianunzia Di Pasquale
    Nessuna valutazione finora
  • Sviluppo Serie Funzioni Iperboliche 1 2
    Sviluppo Serie Funzioni Iperboliche 1 2
    Documento1 pagina
    Sviluppo Serie Funzioni Iperboliche 1 2
    Marianunzia Di Pasquale
    Nessuna valutazione finora
  • 2188 - Dispareunia
    2188 - Dispareunia
    Documento10 pagine
    2188 - Dispareunia
    Marianunzia Di Pasquale
    Nessuna valutazione finora
  • Tesi Firmata
    Tesi Firmata
    Documento28 pagine
    Tesi Firmata
    Marianunzia Di Pasquale
    Nessuna valutazione finora
  • Tesi
    Tesi
    Documento30 pagine
    Tesi
    Marianunzia Di Pasquale
    Nessuna valutazione finora