Mitigação de erros de leitura para a primitiva Sampler usando M3
Estimativa de uso: menos de um minuto em um processador Heron r2 (NOTA: Esta é apenas uma estimativa. Seu tempo de execução pode variar.)
Contexto
Ao contrário da primitiva Estimator, a primitiva Sampler não possui suporte integrado para mitigação de erros. Vários dos métodos suportados pelo Estimator são especificamente projetados para valores esperados e, portanto, não são aplicáveis à primitiva Sampler. Uma exceção é a mitigação de erros de leitura, que é um método altamente eficaz e também aplicável à primitiva Sampler.
O addon M3 do Qiskit implementa um método eficiente para mitigação de erros de leitura. Este tutorial explica como usar o addon M3 do Qiskit para mitigar erros de leitura na primitiva Sampler.
O que é erro de leitura?
Imediatamente antes da medição, o estado de um registro de qubit é descrito por uma superposição de estados da base computacional, ou por uma matriz de densidade. A medição do registro de qubit em um registro de bit clássico então prossegue em duas etapas. Primeiro, a medição quântica propriamente dita é realizada. Isso significa que o estado do registro de qubit é projetado em um único estado de base que é caracterizado por uma sequência de s e s. A segunda etapa consiste em ler a string de bits que caracteriza esse estado de base e escrevê-la na memória do computador clássico. Chamamos essa etapa de leitura (readout). Acontece que a segunda etapa (leitura) incorre em mais erros do que a primeira etapa (projeção em estados de base). Isso faz sentido quando você lembra que a leitura requer detectar um estado quântico microscópico e amplificá-lo para o domínio macroscópico. Um ressonador de leitura é acoplado ao qubit (transmon), experimentando assim um deslocamento de frequência muito pequeno. Um pulso de micro-ondas é então refletido no ressonador, por sua vez experimentando pequenas mudanças em suas características. O pulso refletido é então amplificado e analisado. Este é um processo delicado e está sujeito a uma série de erros.
O ponto importante é que, embora tanto a medição quântica quanto a leitura estejam sujeitas a erros, esta última incorre no erro dominante, chamado erro de leitura, que é o foco deste tutorial.
Fundamentos teóricos
Se a string de bits amostrada (armazenada na memória clássica) difere da string de bits que caracteriza o estado quântico projetado, dizemos que ocorreu um erro de leitura. Esses erros são observados como aleatórios e não correlacionados de amostra para amostra. Provou-se útil modelar o erro de leitura como um canal clássico ruidoso. Ou seja, para cada par de strings de bits e , há uma probabilidade fixa de que um valor verdadeiro de será incorretamente lido como .
Mais precisamente, para cada par de strings de bits , há uma probabilidade (condicional) de que seja lido, dado que o valor verdadeiro é Ou seja,
onde é o número de bits no registro de leitura. Para concretude, assumimos que é um inteiro decimal cuja representação binária é a string de bits que rotula os estados da base computacional. Chamamos a matriz de de matriz de atribuição. Para um valor verdadeiro fixo, somar a probabilidade sobre todos os resultados ruidosos deve dar . Ou seja
Uma matriz sem entradas negativas que satisfaz (1) é chamada estocástica à esquerda. Uma matriz estocástica à esquerda também é chamada estocástica por coluna porque cada uma de suas colunas soma . Determinamos experimentalmente valores aproximados para cada elemento preparando repetidamente cada estado de base e então computando as frequências de ocorrência das strings de bits amostradas.
Se um experimento envolve estimar uma distribuição de probabilidade sobre strings de bits de saída por amostragem repetida, então podemos usar para mitigar o erro de leitura no nível da distribuição. O primeiro passo é repetir um circuito fixo de interesse muitas vezes, criando um histograma de strings de bits amostradas. O histograma normalizado é a distribuição de probabilidade medida sobre as possíveis strings de bits, que denotamos por . A probabilidade (estimada) de amostrar a string de bits é igual à soma sobre todas as strings de bits verdadeiras , cada uma ponderada pela probabilidade de que seja confundida com . Esta afirmação na forma matricial é
onde é a distribuição verdadeira. Em palavras, o erro de leitura tem o efeito de multiplicar a distribuição ideal sobre strings de bits pela matriz de atribuição para produzir a distribuição observada . Medimos e , mas não temos acesso direto a . Em princípio, obteremos a distribuição verdadeira de strings de bits para nosso circuito resolvendo a equação (2) para numericamente.
Antes de prosseguirmos, vale notar algumas características importantes desta abordagem ingênua.
- Na prática, a equação (2) não é resolvida invertendo . Rotinas de álgebra linear em bibliotecas de software empregam métodos que são mais estáveis, precisos e eficientes.
- Ao estimar , assumimos que apenas erros de leitura ocorreram. Em particular, assumimos que não houve erros de preparação de estado e medição quântica — ou pelo menos que eles foram mitigados de outra forma. Na medida em que esta é uma boa suposição, realmente representa apenas o erro de leitura. Mas quando usamos para corrigir uma distribuição medida sobre strings de bits, não fazemos tal suposição. Na verdade, esperamos que um circuito interessante introduza ruído, por exemplo, erros de porta. A distribuição "verdadeira" ainda inclui efeitos de quaisquer erros que não sejam mitigados de outra forma.
Este método, embora útil em algumas circunstâncias, sofre de algumas limitações.
Os recursos de espaço e tempo necessários para estimar crescem exponencialmente em :
- A estimativa de e está sujeita a erro estatístico devido à amostragem finita. Este ruído pode ser tornado tão pequeno quanto desejado ao custo de mais disparos (até a escala de tempo de parâmetros de hardware em deriva que resultam em erros sistemáticos em ). No entanto, se nenhuma suposição for feita sobre as strings de bits observadas ao realizar a mitigação, o número de disparos necessários para estimar cresce pelo menos exponencialmente em .
- é uma matriz . Quando , a quantidade de memória necessária para armazenar é maior que a memória disponível em um laptop poderoso.
Outras limitações são:
- A distribuição recuperada pode ter uma ou mais probabilidades negativas (ainda somando um). Uma solução é minimizar sujeito à restrição de que cada entrada em seja não negativa. No entanto, o tempo de execução de tal método é ordens de magnitude mais longo do que resolver diretamente a equação (2).
- Este procedimento de mitigação funciona no nível de uma distribuição de probabilidade sobre strings de bits. Em particular, ele não pode corrigir um erro em uma string de bits observada individualmente.
Addon M3 do Qiskit: Escalando para strings de bits mais longas
Resolver a equação (2) usando rotinas padrão de álgebra linear numérica é limitado a strings de bits com no máximo cerca de 10 bits. O M3, no entanto, pode lidar com strings de bits muito mais longas. Duas propriedades-chave do M3 que tornam isso possível são:
- Correlações no erro de leitura de ordem três e superior entre coleções de bits são assumidas como negligenciáveis e são ignoradas. Em princípio, ao custo de mais disparos, pode-se estimar correlações mais altas também.
- Em vez de construir explicitamente, usamos uma matriz efetiva muito menor que registra probabilidades apenas para strings de bits coletadas ao construir .
Em um nível alto, o procedimento funciona da seguinte forma.
Primeiro, construímos blocos de construção a partir dos quais podemos construir uma descrição efetiva simplificada de . Então, executamos repetidamente o circuito de interesse e coletamos strings de bits que usamos para construir tanto quanto, com a ajuda dos blocos de construção, um efetivo.
Mais precisamente,
-
Matrizes de atribuição de qubit único são estimadas para cada qubit. Para fazer isso, preparamos repetidamente o registro de qubit no estado todo-zero e depois no estado todo-um , e registramos a probabilidade para cada qubit de que seja lido incorretamente.
-
Correlações de ordem três e superior são assumidas como negligenciáveis e são ignoradas.
Em vez disso, construímos um número de matrizes de atribuição de qubit único , e um número de matrizes de atribuição de dois qubits . Essas matrizes de atribuição de um e dois qubits são armazenadas para uso posterior.
-
Após amostrar repetidamente um circuito para construir , construímos uma aproximação efetiva de usando apenas strings de bits que são amostradas ao construir . Esta matriz efetiva é construída usando as matrizes de um e dois qubits descritas no item anterior. A dimensão linear desta matriz é no máximo da ordem do número de disparos usados na construção de , que é muito menor que a dimensão da matriz de atribuição completa .
Para detalhes técnicos sobre o M3, você pode consultar Scalable Mitigation of Measurement Errors on Quantum Computers.
Aplicação do M3 a um algoritmo quântico
Aplicaremos a mitigação de leitura do M3 ao problema do deslocamento oculto. O problema do deslocamento oculto, e problemas intimamente relacionados como o problema do subgrupo oculto, foram originalmente concebidos em um contexto tolerante a falhas (mais precisamente, antes que os QPUs tolerantes a falhas fossem comprovados como possíveis!). Mas eles também são estudados com processadores disponíveis. Um exemplo de aceleração exponencial algorítmica obtida para uma variante do problema do deslocamento oculto obtido em QPUs IBM® de 127 qubits pode ser encontrado neste artigo (versão arXiv).
No que segue, toda a aritmética é Booleana. Ou seja, para , a adição, é a função XOR lógica. Além disso, a multiplicação (ou ) é a função AND lógica. Para , é definido pela aplicação bit a bit de XOR. O produto escalar é definido por .
Operador de Hadamard e transformada de Fourier
Na implementação de algoritmos quânticos, é muito comum usar o operador de Hadamard como uma transformada de Fourier. Os estados da base computacional às vezes são chamados de estados clássicos. Eles estão em uma relação um para um com as strings de bits clássicas. O operador de Hadamard de qubits em estados clássicos pode ser visto como uma transformada de Fourier no hipercubo Booleano:
Considere um estado correspondente a uma string de bits fixa . Aplicando , e usando