양자컴퓨팅에서 힐베르트 공간은 어려운 수학 용어처럼 보이지만 큐비트가 가질 수 있는 모든 상태를 담는 공간입니다. 중첩·측정·얽힘도 결국 이 공간 안에서 설명된다고 볼 수 있습니다. 어려운 내용이지만 쉽게 설명했으니 아래 글을 확인하시죠.

양자컴퓨팅에서 힐베르트 공간을 알아야 하는 이유
양자컴퓨팅을 공부하다 보면 브라켓 표기법과 상태벡터를 배운 뒤 힐베르트 공간이라는 용어를 만나게 됩니다. 이름부터 어렵게 느껴지지만 입문 단계에서 지나치게 추상적으로 접근할 필요는 없습니다.
양자컴퓨팅에서 힐베르트 공간은 큐비트가 가질 수 있는 모든 가능한 양자상태를 표현하는 수학적인 공간이라고 생각하면 됩니다. 우리가 |0⟩, |1⟩, |+⟩ 또는 일반적인 |ψ⟩라고 쓰는 상태들이 모두 이 공간 안의 벡터입니다.
단일 큐비트는 2차원의 복소수 벡터 공간에서 표현되고 두 큐비트는 4차원, 세 큐비트는 8차원의 공간에서 표현됩니다. 일반적인 n개의 큐비트 시스템은 2ⁿ차원의 상태공간으로 확장됩니다.
| 개념 | 양자컴퓨팅에서의 의미 |
|---|---|
| 힐베르트 공간 | 가능한 양자상태들이 존재하는 벡터 공간 |
| 벡터 | 특정한 양자상태 |
| 기저 | 상태를 표현하기 위한 기준 벡터 |
| 내적 | 두 상태 사이의 관계를 계산하는 연산 |
| 텐서곱 | 여러 양자시스템의 공간을 하나로 결합하는 방법 |
따라서 힐베르트 공간은 새로운 물리적 장소를 의미하는 것이 아닙니다. 양자상태와 연산을 일관된 방식으로 표현하기 위해 사용하는 수학적인 무대에 가깝습니다.
힐베르트 공간은 기본적으로 벡터 공간이다
힐베르트 공간을 이해하려면 먼저 벡터 공간이라는 개념부터 살펴보는 것이 좋습니다. 벡터 공간에서는 벡터끼리 더할 수 있고 하나의 숫자를 곱해 새로운 벡터를 만들 수도 있습니다.
양자컴퓨팅에서는 이러한 벡터의 성분으로 실수뿐 아니라 복소수를 사용합니다. 그래서 단일 큐비트의 일반적인 상태는 다음과 같이 표현할 수 있습니다.
|ψ⟩ = α|0⟩ + β|1⟩
여기에서 α와 β는 일반적으로 복소수입니다. |0⟩과 |1⟩은 상태를 표현하기 위한 기본 벡터이고 α와 β는 각각의 기저 상태가 얼마나 포함되어 있는지를 나타내는 확률진폭입니다.
같은 상태를 열벡터로 표현하면 다음과 같습니다.
[ α ]
|ψ⟩ = [ ]
[ β ]
브라켓 표기법과 열벡터 표기는 서로 다른 상태를 나타내는 것이 아닙니다. 같은 양자상태를 서로 다른 방식으로 적은 것입니다.
단일 큐비트의 힐베르트 공간은 왜 2차원일까
단일 큐비트에는 계산 기저라고 부르는 두 개의 기본 상태가 있습니다.
[1] [0]
|0⟩ = [ ] |1⟩ = [ ]
[0] [1]
이 두 벡터만 있으면 단일 큐비트가 가질 수 있는 모든 순수상태를 선형결합으로 표현할 수 있습니다. 그래서 단일 큐비트가 사용하는 상태공간은 2차원입니다.
중요한 점은 2차원이라고 해서 큐비트가 |0⟩과 |1⟩ 두 상태만 가질 수 있다는 뜻은 아니라는 것입니다. α와 β의 값을 바꾸면 두 기저 상태를 다양한 방식으로 결합할 수 있기 때문에 가능한 양자상태는 매우 많습니다.
|+⟩ = 1/√2 (|0⟩ + |1⟩) |−⟩ = 1/√2 (|0⟩ − |1⟩)
|+⟩와 |−⟩도 같은 2차원 힐베르트 공간 안에 존재하는 양자상태입니다.
힐베르트 공간에는 내적이라는 구조가 추가된다
힐베르트 공간은 단순히 벡터를 모아 놓은 공간보다 조금 더 많은 구조를 가지고 있습니다. 중요한 요소 가운데 하나가 내적입니다.
브라켓 표기법에서는 두 상태의 내적을 다음과 같이 표현합니다.
⟨φ|ψ⟩
내적을 이용하면 두 벡터 사이의 관계를 수학적으로 표현할 수 있습니다. 양자컴퓨팅에서는 상태의 길이, 두 상태의 직교 여부와 측정 확률 등을 이해하는 데 사용됩니다.
⟨0|0⟩ = 1 ⟨1|1⟩ = 1 ⟨0|1⟩ = 0 ⟨1|0⟩ = 0
|0⟩과 |1⟩의 내적이 0이라는 것은 두 상태가 서로 직교한다는 의미입니다. 자기 자신과의 내적이 1인 상태는 정규화된 상태라고 할 수 있습니다.
왜 양자상태의 길이는 1이어야 할까
양자상태는 힐베르트 공간에 존재하는 아무 벡터나 사용할 수 있는 것이 아니라 보통 노름이 1인 벡터로 표현합니다.
⟨ψ|ψ⟩ = 1
한 큐비트 상태가 α|0⟩ + β|1⟩이라면 다음 조건을 만족해야 합니다.
|α|² + |β|² = 1
그 이유는 |α|²와 |β|²가 계산 기저에서 각각 0과 1을 측정할 확률과 연결되기 때문입니다. 가능한 결과들의 전체 확률은 1이 되어야 합니다.
따라서 힐베르트 공간 전체가 가능한 상태를 표현하는 수학적인 공간이라면 실제 양자상태는 그 안에서도 정규화 조건을 만족하는 벡터로 생각할 수 있습니다.
기저를 바꿔도 힐베르트 공간은 그대로다
벡터 공간에서는 같은 벡터를 서로 다른 기저를 이용해 표현할 수 있습니다. 양자컴퓨팅에서도 마찬가지입니다.
가장 익숙한 기저는 |0⟩과 |1⟩을 사용하는 계산 기저입니다. 하지만 다음과 같은 두 상태도 하나의 기저로 사용할 수 있습니다.
{ |+⟩, |−⟩ }
두 집합은 같은 2차원 공간을 서로 다른 관점에서 표현합니다. 마치 평면 위의 한 점을 서로 다른 좌표축을 이용해 표시할 수 있는 것과 비슷합니다.
이 개념은 양자 측정에서도 중요합니다. 어떤 기저를 기준으로 측정하느냐에 따라 양자상태를 바라보는 방식과 결과의 확률분포가 달라질 수 있기 때문입니다.
양자 게이트도 힐베르트 공간 안에서 상태를 변화시킨다
양자컴퓨터는 양자 게이트를 이용해 큐비트의 상태를 변화시킵니다. 수학적으로 보면 양자 게이트는 힐베르트 공간의 상태벡터에 작용하는 행렬로 표현할 수 있습니다.
대표적인 X 게이트는 다음과 같은 방식으로 상태를 바꿉니다.
X|0⟩ = |1⟩ X|1⟩ = |0⟩
Hadamard 게이트는 계산 기저 상태를 중첩 상태로 바꿀 수 있습니다.
H|0⟩ = 1/√2 (|0⟩ + |1⟩)
이 과정에서 양자상태는 힐베르트 공간 밖으로 나가는 것이 아닙니다. 같은 공간 안에서 하나의 상태벡터가 다른 상태벡터로 변환됩니다.
일반적인 닫힌 양자시스템의 게이트 연산은 유니터리 변환으로 표현됩니다. 유니터리 변환은 상태벡터의 노름을 보존하기 때문에 정상적인 양자상태가 연산 뒤에도 정상적인 상태로 유지될 수 있습니다.
두 큐비트가 되면 공간은 4차원으로 커진다
힐베르트 공간이 양자컴퓨팅에서 중요한 이유는 여러 큐비트를 다룰 때 더욱 분명하게 나타납니다.
각각 2차원 공간을 갖는 두 큐비트를 하나의 시스템으로 결합하면 두 공간의 텐서곱을 사용합니다.
H₂qubit = H₁ ⊗ H₂
각 큐비트가 2차원이므로 두 큐비트의 결합된 공간은 2 × 2 = 4차원이 됩니다.
| 큐비트 수 | 힐베르트 공간의 차원 | 계산 기저 상태 수 |
|---|---|---|
| 1 | 2 | |0⟩, |1⟩ |
| 2 | 4 | |00⟩, |01⟩, |10⟩, |11⟩ |
| 3 | 8 | |000⟩ ~ |111⟩ |
| 4 | 16 | 16개 |
| n | 2ⁿ | 2ⁿ개 |
두 큐비트 상태는 일반적으로 다음과 같이 표현할 수 있습니다.
|ψ⟩ = α₀₀|00⟩ + α₀₁|01⟩ + α₁₀|10⟩ + α₁₁|11⟩
네 개의 계산 기저 상태가 필요하기 때문에 네 개의 복소수 진폭이 등장하는 것입니다.
n큐비트가 2ⁿ차원이 된다는 의미
양자컴퓨팅을 설명할 때 자주 등장하는 특징 가운데 하나가 큐비트 수가 증가하면 상태공간의 차원이 매우 빠르게 커진다는 점입니다.
10큐비트라면 1,024개의 계산 기저 상태가 존재하고 20큐비트라면 1,048,576개의 계산 기저 상태가 존재합니다. 이러한 상태를 고전 컴퓨터에서 상태벡터 형태로 그대로 저장하려면 각각의 기저 상태에 대응하는 복소수 진폭을 관리해야 합니다.
다만 힐베르트 공간의 차원이 커진다는 사실만으로 양자컴퓨터가 자동으로 2ⁿ배 빠른 계산을 한다는 뜻은 아닙니다. 실제 양자 알고리즘에서는 중첩된 상태에 적절한 연산을 적용하고 간섭을 이용해 원하는 결과가 측정될 가능성을 높이는 과정이 필요합니다.
텐서곱이 여러 큐비트를 하나의 시스템으로 만든다
두 개의 독립적인 큐비트 상태가 각각 |ψ⟩와 |φ⟩라고 하면 전체 시스템의 상태는 다음과 같이 표현할 수 있습니다.
|ψ⟩ ⊗ |φ⟩
예를 들어 첫 번째 큐비트가 |0⟩이고 두 번째 큐비트가 |1⟩이라면 다음과 같습니다.
|0⟩ ⊗ |1⟩ = |01⟩
텐서곱은 단순히 상태를 옆에 붙이는 기호 이상의 의미를 가집니다. 여러 개의 독립적인 양자시스템을 하나의 더 큰 힐베르트 공간에서 표현할 수 있도록 해주는 수학적인 규칙입니다.
얽힘을 이해하려면 힐베르트 공간이 필요하다
양자컴퓨팅의 중요한 특징인 얽힘도 힐베르트 공간과 텐서곱을 이해하면 훨씬 자연스럽게 설명할 수 있습니다.
두 큐비트의 모든 상태가 각각의 단일 큐비트 상태를 텐서곱한 형태로 분리되는 것은 아닙니다. 대표적인 예가 Bell 상태입니다.
|Φ+⟩ = 1/√2 (|00⟩ + |11⟩)
이 상태는 두 개의 독립적인 단일 큐비트 상태를 단순히 텐서곱한 형태로 분해할 수 없습니다. 이러한 상태를 얽힌 상태라고 합니다.
즉 힐베르트 공간을 이해하면 얽힘을 신비한 현상으로만 보는 대신 여러 양자시스템이 결합된 상태공간의 구조로 이해할 수 있습니다.
측정도 힐베르트 공간의 기저와 연결된다
양자 측정 역시 힐베르트 공간과 밀접하게 연결되어 있습니다. 계산 기저에서 한 큐비트를 측정한다고 생각해 보겠습니다.
|ψ⟩ = α|0⟩ + β|1⟩
이 상태를 계산 기저에서 측정하면 0 또는 1이라는 결과를 얻게 됩니다.
P(0) = |⟨0|ψ⟩|² = |α|² P(1) = |⟨1|ψ⟩|² = |β|²
즉 측정 확률은 상태벡터와 측정 기저 사이의 내적을 이용해 계산할 수 있습니다. 벡터, 기저와 내적이라는 힐베르트 공간의 요소가 실제 양자 측정 규칙과 직접 연결되는 것입니다.
힐베르트 공간의 완전성은 입문 단계에서 어떻게 이해하면 될까
수학적으로 엄밀하게 말하면 힐베르트 공간은 내적이 정의되어 있고 완전성을 만족하는 벡터 공간입니다. 여기에서 완전성은 공간 안에서 적절하게 수렴하는 벡터들의 과정이 결국 그 공간 안의 벡터로 수렴한다는 의미와 관련되어 있습니다.
다만 일반적인 유한 개수 큐비트를 배우는 입문 양자컴퓨팅에서는 이 부분을 처음부터 깊게 공부하지 않아도 됩니다. 유한차원의 복소 내적공간에서는 필요한 완전성이 자동으로 성립하기 때문에 실제 학습에서는 복소수 벡터, 기저, 내적과 텐서곱을 먼저 이해하는 것이 훨씬 중요합니다.
양자장론이나 연속적인 물리계처럼 무한차원 공간을 다루기 시작하면 완전성의 의미가 더 중요해지지만 일반적인 큐비트 기반 양자컴퓨팅 입문에서는 뒤로 미뤄도 괜찮습니다.
힐베르트 공간과 블로흐 구는 같은 것일까
단일 큐비트를 공부할 때 힐베르트 공간과 함께 블로흐 구를 배우기 때문에 두 개념이 같은 것처럼 느껴질 수 있습니다.
하지만 블로흐 구는 단일 큐비트의 순수상태를 사람이 직관적으로 이해할 수 있도록 3차원으로 시각화한 표현입니다. 실제 양자상태의 수학적인 표현은 2차원 복소 벡터를 사용하는 힐베르트 공간에서 이루어집니다.
| 구분 | 힐베르트 공간 | 블로흐 구 |
|---|---|---|
| 목적 | 양자상태를 수학적으로 표현 | 단일 큐비트 상태를 시각화 |
| 표현 | 복소 벡터 공간 | 3차원 구 |
| 다중 큐비트 | 텐서곱으로 확장 가능 | 일반적으로 같은 방식의 시각화 어려움 |
| 주요 활용 | 상태·연산·측정의 수학적 계산 | 한 큐비트의 직관적인 이해 |
블로흐 구는 매우 유용하지만 양자컴퓨팅 전체를 이해하려면 결국 상태벡터와 힐베르트 공간의 표현으로 돌아오게 됩니다.
힐베르트 공간을 이해하면 무엇이 쉬워질까
- |ψ⟩가 단순한 기호가 아니라 상태벡터라는 점을 이해할 수 있다.
- 중첩을 기저벡터의 선형결합으로 이해할 수 있다.
- 양자 게이트를 상태공간의 변환으로 이해할 수 있다.
- 내적과 측정 확률의 관계를 이해하기 쉬워진다.
- 여러 큐비트가 왜 2ⁿ차원 상태공간을 만드는지 알 수 있다.
- 텐서곱을 이용해 여러 양자시스템을 결합할 수 있다.
- 얽힌 상태가 단순한 개별 큐비트 상태의 조합과 어떻게 다른지 이해할 수 있다.
즉 힐베르트 공간 자체를 계산하는 일이 양자 알고리즘의 목적은 아닙니다. 대신 양자컴퓨팅에서 사용하는 거의 모든 상태와 연산을 이해하기 위한 공통된 수학적 틀을 제공한다는 점이 중요합니다.
초보자는 어디까지 공부하면 충분할까
힐베르트 공간이라는 이름 때문에 함수해석학이나 고급 수학부터 공부해야 한다고 생각할 필요는 없습니다. 큐비트 기반 양자컴퓨팅을 시작하는 단계라면 다음 순서 정도로도 충분합니다.
| 단계 | 먼저 이해할 내용 |
|---|---|
| 1단계 | 복소수·벡터·행렬의 기본 연산 |
| 2단계 | |0⟩와 |1⟩의 상태벡터 표현 |
| 3단계 | 선형결합과 양자 중첩 |
| 4단계 | 내적·노름·직교·정규직교 기저 |
| 5단계 | 유니터리 행렬과 양자 게이트 |
| 6단계 | 텐서곱과 다중 큐비트 |
| 7단계 | 측정과 얽힘 |
이 정도를 이해하면 대부분의 입문 양자회로와 양자 알고리즘에서 사용되는 힐베르트 공간의 기본 개념을 따라갈 수 있습니다.
힐베르트 공간 이해 점검 체크리스트
- 힐베르트 공간을 양자상태가 존재하는 수학적 벡터 공간이라고 설명할 수 있는가
- 한 큐비트의 상태공간이 왜 2차원인지 설명할 수 있는가
- |0⟩와 |1⟩가 정규직교 기저라는 점을 이해했는가
- α|0⟩ + β|1⟩가 선형결합이라는 점을 알고 있는가
- 양자상태가 노름 1을 만족해야 하는 이유를 이해했는가
- 내적과 측정 확률이 어떻게 연결되는지 설명할 수 있는가
- 두 큐비트의 공간이 왜 4차원이 되는지 알고 있는가
- n큐비트의 상태공간이 2ⁿ차원이 된다는 점을 이해했는가
- 텐서곱과 얽힘의 관계를 기본 수준에서 설명할 수 있는가
- 블로흐 구와 힐베르트 공간이 같은 개념이 아니라는 점을 구분할 수 있는가
핵심 용어와 마무리 정리
| 용어 | 의미 |
|---|---|
| 힐베르트 공간 | 내적과 완전성을 갖춘 벡터 공간으로 양자상태를 표현하는 수학적 공간 |
| 상태벡터 | 힐베르트 공간에서 하나의 양자상태를 나타내는 벡터 |
| 기저 | 공간의 모든 벡터를 선형결합으로 표현할 수 있게 하는 기준 벡터 |
| 내적 | 두 벡터 사이의 관계와 직교성을 계산하는 연산 |
| 노름 | 벡터의 크기를 나타내는 값 |
| 정규직교 기저 | 각 벡터의 노름이 1이고 서로 직교하는 기저 |
| 텐서곱 | 여러 양자시스템의 상태공간을 결합하는 연산 |
| 유니터리 연산 | 양자상태의 노름을 보존하는 변환 |
| 얽힘 | 복합 시스템의 상태가 개별 시스템 상태의 단순 텐서곱으로 분리되지 않는 상태 |
힐베르트 공간은 양자컴퓨팅을 어렵게 만들기 위해 등장한 추상적인 수학 개념이 아닙니다. 큐비트의 상태, 양자 게이트, 중첩, 측정과 얽힘을 하나의 규칙으로 설명하기 위해 필요한 기본적인 상태공간입니다.
처음에는 단일 큐비트를 2차원 복소 벡터로 이해하는 것부터 시작하면 됩니다. |0⟩과 |1⟩을 기저로 사용하고 두 상태를 선형결합하면 다양한 큐비트 상태를 표현할 수 있습니다.
여러 큐비트가 결합되면 텐서곱을 통해 공간의 차원이 2ⁿ으로 커지고 이 더 큰 공간 안에서 중첩과 얽힘 같은 양자컴퓨팅의 중요한 현상이 표현됩니다.
결국 힐베르트 공간에서 가장 먼저 기억해야 할 것은 복잡한 정의가 아니라 하나입니다. ‘양자상태가 움직이고 계산되는 수학적인 무대’라고 이해한 뒤 벡터·내적·기저·텐서곱을 하나씩 연결하면 이후의 양자역학과 양자컴퓨팅 수식이 훨씬 자연스럽게 보이기 시작합니다.
참고문헌
힐베르트 공간의 양자컴퓨팅 활용을 더 깊게 이해하려면 아래 공식 교육자료에서 상태벡터, 내적, 기저와 다중 큐비트의 텐서곱을 함께 살펴보는 것이 좋습니다.
- Microsoft Learn, Vectors and Matrices in Quantum Computing
- Microsoft Learn, The Qubit in Quantum Computing
- Microsoft Learn, Multiple-qubit Operations
- IBM Quantum Learning, Inner Products and Projections
- IBM Quantum Learning, Quantum Information for Multiple Systems
- Google Quantum AI, Cirq StateVectorMixin