양자 컴퓨터 입문자를 위한 기초 양자역학 살펴보기
양자 이론… 슈뢰딩거… 아인슈타인… 코펜하겐 해석..
양자 컴퓨터를 입문하려고 하는 입장에서 이 용어들이 주는 거리감은 엄청납니다. 이 복잡해보이는 용어들과 양자 역학에 대한 무수히 많은 담론은 일반인은 물론 고도로 훈련받은 학자들마저도 양자컴퓨터에 쉽사리 접근하기 힘들게 합니다.
하지만 양자역학은 커녕 물리학 자체를 제대로 배운 적도 없지만 양자컴퓨터를 공부하고 몇몇 양자 데이터사이언스 연구를 진행하고 있는 KQC입장에서 이는 너무 과한 거리감이 아닌가 생각됩니다.
그렇다고 양자역학이 쉽다는 것은 전혀 아니지만, 단지 양자컴퓨터를 기존의 난제들을 풀기 위한 툴로 보고 이를 활용하고자 한다면, 양자역학 전체를 이해할 필요는 없습니다. 우리가 아무리 딥러닝을 이용하여 좋은 모형들을 만들 수 있음에도 불구하고 기저에 있는 실해석학, 자료구조, 전자기학 등의 이론들을 모두 이해하고 있지는 않은것 처럼 말입니다.
우리가 양자컴퓨터를 다루기 위해서 필요한 것은 선형대수학입니다. 양자 이론의 복잡한 개념들은 모두 선형대수학을 통해서 표현이 가능합니다. 역으로, 선형대수학을 안다면 양자역학의 이론들을 모두 이해할 필요는 없다고 말할 수 있습니다.
따라서 이번 포스팅에서는 고전 역학과 구별되는 양자 역학의 핵심적인 개념을 살펴보고 이들이 어떻게 선형대수학으로 표현되는 지를 알아보고자 합니다. 아래의 내용은 이해의 대상이라기 보다는 표현과 약속에 관한 이야기에 가깝습니다. 이를 감안하고 보시면 훨씬 더 쉽게 받아들일 수 있을거라고 생각됩니다. 또한 이번 글은 앞으로 KQC가 다루게 될 여러가지 기술적인 내용들을 이해하시는 데 꼭 필요한 기초적인 내용을 다룹니다.
1. Superposition
양자역학의 중첩
양자 이론은 물리학이라기 보다는 정보에 관한 이론으로 생각하는 것이 더 이해하기 쉬운 것 같습니다. 양자 이론은 기본적으로는 관측 불가능한 매우 작은 세계에 대한 이야기를 하고자 하는 이론이기 때문입니다.
양자이론의 양자(Quantum)의 어원은 “얼마나 많은”이라는 뜻의 라틴어 Quantus에서 유래했습니다. 여기서 양자는 구체적으로는 하나,두개 하고 셀수 있는 것, 연속적이지 않고 이산적인 단위를 가지는 어떤것을 의미합니다. 따라서 셀 수 있는 모든 것이 양자 역학의 대상입니다. 여러가지 실험과 이론을 통해서 세상의 모든 물리적 입자들은 이산적임이 알려졌습니다. 따라서 양자역학은 세상의 모든 입자들에 관심을 두는 학문이라고 말할 수 있습니다.
이 미시적 세계에서의 핵심적인 문제는 두 가지 상태를 가질 수 있는 물체가 관측되기 전까지 어떤 상태를 가지느냐에 대한 것입니다.
현재 학계의 정설은 이러한 물체가 관측되기 전까지는 이 두가지 상태가 확률에 비례해 동시에 존재한다는 해석입니다. 이를 물리적 용어로 Superposition(중첩)되어 있다고 표현합니다.
이러한 해석은 굉장히 비합리적인 망상같아 보이지만 아인슈타인, 보어, 슈뢰딩거 등 숱한 물리학자들의 논쟁에도 불구하고 여러 실험을 통해서 정설로 받아지고 있습니다. 양자 컴퓨터는 이러한 양자역학의 “중첩”개념을 이용해서 여러가지 계산적 이익을 얻어냅니다.
중첩의 수학적 표현
이 중첩은 선형대수학으로는 다음과 같이 표현됩니다. 어떤 한 물체가 A 혹은 B의 상태를 가질 수 있다고 생각해봅시다. 예를 들면 상자 안에 전구가 하나 있고 이 전구는 1/2 확률로 켜져 있을 수도 있고 켜져 있지 않을수도 있습니다. 이때 열 벡터를 이용하여 꺼져있는 상태를 [1,0], 켜지는 상태를 [0,1]로 나타냅시다. 그렇다면 상자를 열어보기 전까지의 전구의 상태는 아래와 같이 표현됩니다.
한 개의 전구가 아니라 여러개의 전구가 있다고 생각해 보면, 어떤 전구는 켜져 있을 수도 있고 또 다른 전구는 꺼져 있을 수도 있습니다. 이렇게 생각을 좀더 확장해 보면, 여러개의 전구에 대해 가능한 모든 상태의 조합을 벡터로 표현한 후 그 상태가 일어날 확률에 루트를 취한 값을 곱하고 이 모든 상태를 더하여서 중첩을 표현할 수 있습니다.
즉 이는 벡터들의 선형결합 형태입니다.
Quantum Bit
양자 컴퓨터의 기본 연산 단위는 큐빗(Qubit)입니다. 위에서 살펴 본 관측되기 이전에는 꺼져 있을 수도, 켜져 있을 수도 있는 전구가 바로 이 큐빗입니다. 이는 Quantum Bit의 줄임말이며 0과 1 둘 중 하나의 값을 가지는 bit와 유사하게 0과 1의 값을 중첩으로 가지는 연산 단위입니다.
표준적으로, 어떤 큐빗이 0의 상태를 가지는 것을 [1,0]로 정의하고 1의 상태를 가지는 것을 [0,1]로 정의합니다. 따라서 위에서 든 예시에서 살펴 본 [1/2,1/2]는 0과 1의 상태가 1/2 확률로 중첩되어 있는 큐빗을 의미합니다.
Dirac Notation
물리학에서는 특별히 이 선형 대수학들은 폴 디락이 만든 Dirac’s Notation (Braket Notation)을 이용해 표현합니다. Dirac Notation은 단순 표기 양식이며 기호를 이용해서 벡터 x가 열 벡터인지 행 벡터인지를 표현해 줍니다. 구체적으로 다음과 같이 표현할 수 있습니다.
따라서 양자역학에서 0이 나올 확률이 a인 큐빗을 표현하는 일반적인 방법은 다음과 같습니다.
2. Measurement
다음으로 중요한 양자역학의 컨셉은 “측정”(관측)입니다. 양자역학에서는 양자적 상태와 고전적 상태를 구분합니다. 양자적 상태에서는 위에서 서술한 중첩이라는 비합리적인 현상이 일어나지만, 이를 관측한 이후에는 이런 상태가 사라집니다. 다시 말하면, 관측 전에 특정 확률로 0과 1이 중첩되어 있는 큐빗이 관측되는 순간, 0이나 1의 값을 가지도록 고정이 된다는 점이고, 이 부분이 도저히 우리가 보는 세상에서는 이해가 안되는 부분입니다. 미시 세계에서는 “관측”이라는 행위 자체가 물체의 상태에 영향을 미치게 됩니다.
이를 수학적으로 표현하기 위해서 Observable이라는 컨셉을 사용합니다. Observable은 물체에서 관측할 수 있는 관측량을 의미합니다. 예를 들어 상자 속 전구의 예시에서 상자를 열면 전구가 켜져있는지 꺼져있는지는 알 수 있지만 전구가 유리로 만들어졌는지 플라스틱으로 만들어졌는지는 쉽사리 알기 어렵습니다. 이처럼 관측이 가능한 수치와 가능하지 않은 수치는 따로 있습니다.
양자역학에서는 이를 Observable로 표현합니다. 이는 몇가지 조건을 만족하는 행렬로 표현됩니다. M이라는 Observable에 대해서 이를 이용해 특정 상태의 양자를 관측하는 공식은 다음과 같습니다.
여러가지 Observable들이 있을 수 있지만, 예를 들어 M=[[1,0],[0,-1]] 으로 정의된 Observable을 이용하여 앞에서 정의한 psi 를 관측한 결과는 아래와 계산할 수 있습니다.
이를 역산하면 0이 나올 확률 a를 구할 수 있습니다.
3. Entanglement
Multiple Qubit
Entanglement를 이야기 하기 위해서는 앞에서 여러 전구를 생각했던 것처럼 여러 개의 큐빗을 생각해야 합니다. 먼저 수학적으로 여러 개의 큐빗을 어떻게 표현하는지 알아보도록 하죠. 양자 역학에서 여러개의 큐빗은 개별 큐빗은 Kronecker Product (혹은 Tensor Product)로 표현 할 수 있습니다. Kronecer Product는 다음과 같이 정의됩니다.
이 연산을 이용하여 여러개의 큐빗을 표현해 봅시다. 예컨데, 큐빗이 두개가 있다면 총 경우의 수는 00,01,10,11의 4개가 있고, 세개가 있다면 000,001,010,011,100,101,110,111의 8개가 있습니다. 이때 각 경우의 수는 다음과 같이 표현될 수 있습니다.
0과 1로만 이루어진 큐빗들이 뭔가 굉장히 깔끔하게 이뤄져 있는 느낌을 받으셨다면 이것은 우연이 아닙니다. 이러한 효과를 노리고 양자역학에서는 양자를 표현할 때 기본적으로 computational basis라는 것을 사용합니다. Computational basis에 대해서는 다음 글에서 다루도록 하겠습니다.
마찬가지로 0이 나올 확률이 각각 a,b인 두 큐빗은 다음과 같이 표현 될 수 있습니다.
Entanglement
자 드디어, 오늘의 마지막 주제인 Entanglement를 이야기할 수 있는 준비가 되었습니다.
고전적 세계와 구별되는 양자적 세계의 또다른 특징으로는 서로 다른 두 양자의 결과물이 서로 얽혀있을 수 있게 된다는 것 입니다. 이를 얽힘(Entanglement)라고 합니다.
예를 들어 아주 작아서 극성의 방향을 알 수 없는 자석이 있다고 생각해봅시다. 이 자석의 방향이 바뀌지 않게끔 자석을 쪼개면 두 자석의 극성의 방향은 일치하게 됩니다. 이때 두 자석 중 하나의 극성의 방향을 측정하면 즉각적으로 나머지 자석의 방향도 알 수 있게 됩니다.
즉, 하나의 양자 상태를 변화시켰는데 다른 하나 또한 함께 변화시키는 효과를 가져온 것입니다.
이를 통계학적으로는, 두개의 양자가 독립이 아니라 서로 종속되어 있다고 표현할 수 있겠습니다. 예를 들어 다음과 같은 케이스를 생각해 볼까요?
x가 0과 1 나올 확률은 각각 1/2입니다. 그러나 만약 y가 1로 관측되었다면, 위의 큐빗 상태에는 01 케이스가 없기 때문에 무조건 11의 케이스만 나오게 됩니다. 따라서 y의 결과물이 x에 영향을 미치게 됩니다.
양자 알고리즘에서는 이러한 얽힘이 좀 더 다양하게 나타나서, x만 조작한 후 y의 결과물을 활용하는 방식을 자주 사용합니다. 얽힘은 양자 컴퓨터의 핵심적인 이론이라고 할 수 있습니다.
지금까지 양자이론이 고전이론과 다른 “중첩”,”측정”,”얽힘”의 세가지 개념에 대해서 알아보았습니다. 양자 알고리즘은 기본적으로 이 세가지 개념을 토대로 설계됩니다. 다행히도, 이 세가지 물리학적 개념은 모두 수학적으로 표현할 수 있으므로, 양자 컴퓨팅을 공부하는 저희는 이제부터는 물리학은 좀 뒤로하고, 수학으로 이해하셨으면 합니다. 수학 역시 가까이 하기에는 너무 먼 당신이지만, 물리학보다는 훨씬 친근하게 느끼실 거에요.
오늘은 좀 길게 양자 컴퓨팅을 배우기 위해서는 꼭 알아야 하는 qubit에 대해서 이야기해 보았습니다. 앞으로 KQC가 기술적인 이야기를 많이 할텐데요. 이번 글이 여러분께 도움이 되었으면 합니다. 긴 글 읽어주셔서 감사하구요. 궁금한 점이나 의견이 있으시면 답글 남겨주세요.
KQC는 상용 양자 알고리즘 및 소프트웨어의 연구/개발을 학계와 업계의 협업을 통해 진행하고 있는 회사입니다. 새로운 기술과 영역에 도전하고 싶은 데이터 사이언티스트는 물론 양자 컴퓨팅을 활용하고자 하는 기업들의 연락을 기다립니다.
https://www.kqchub.com/contactus를 방문하셔서 form을 작성하시거나, info@kqchub.com으로 연락주세요.