기술 칼럼

MATLAB을 사용한 다체 양자 시스템에 대한 텐서망 알고리즘 개선 사례

작성자: Anna Francuz 박사, University of Vienna


"우리 팀은 MATLAB을 사용해 텐서망 알고리즘의 미분에 대한 보다 안정적이고 효율적인 접근 방식을 개발했습니다... 우리는 이 워크플로를 적극적으로 적용하여 강하게 얽힌 양자 시스템에 대한 이해를 심화하고 있습니다."

양자 컴퓨팅 연구에서의 목표는 양자 우월성을 달성하는 것인데, 이는 최적화, 암호학 또는 신약 발견 등의 실용적인 작업에서 양자 컴퓨터가 기존 시스템을 능가하는 것을 말합니다. 그러나 대규모 양자 컴퓨터를 만들기 전에 먼저 보다 작은 규모의 테스트를 실행하고 해당 테스트 결과를 이론과 비교하는 것이 필요합니다. 그 연구는 강력하게 얽힌 다체 양자계에 중점을 두고 있으며, 비엔나 대학에서 제가 주로 연구하는 분야입니다.

지난 20여 년 동안 텐서망은 강하게 얽힌 시스템을 연구하는 데 사용할 수 있는 최고의 도구 중 하나임이 밝혀졌습니다. 이는 주로 얽힘 구조를 활용하여 계산 복잡성을 줄이는 방식(예를 들어 양자 몬테카를로 방법과 비교)에 기인합니다. 연구자들은 텐서망을 사용하여 최적화 기법을 사용하여 양자 시스템의 바닥 상태를 찾을 수 있으며, 이를 통해 자화 및 기타 관측 가능한 값을 계산하여 시스템의 속성을 파악하고 그 결과를 실험 데이터와 직접 비교할 수 있습니다.

최근까지 이러한 최적화를 수행하는 것은 문제가 있었습니다. 이전 접근 방식은 최적화를 구동하는 미분 과정에서 중요한 요소인 기울기에 대한 대략적인 계산에 의존했기 때문입니다. 이러한 단점은 심각한 오류 외에도 전역 최소값을 찾지 못하는 최적화로 이어지는 경우가 잦았습니다. 연구자들은 AD(자동 미분)으로 전환하여 이러한 단점 중 일부를 해결했지만, SVD(특이값 분해)를 미분할 때 발생하는 발산 문제와 AD를 코드에 구현하는 방식의 근본적인 문제 등 다른 문제도 나타났습니다.

MATLAB®을 사용해 저희 팀은 텐서망 알고리즘의 차별화를 위한 보다 안정적이고 효율적인 접근 방식을 개발했습니다. 우리는 이 새로운 AD 구현을 MATLAB 커뮤니티 툴박스를 사용한 텐서망 축약과 MATLAB Parallel Server™를 사용한 고성능 컴퓨팅이라는 두 가지 핵심 요소와 결합합니다. 우리는 이 워크플로를 적극적으로 적용하여 강하게 얽힌 양자 시스템에 대한 이해를 심화하고 있습니다.

양자물리학의 MATLAB 및 텐서망

작성자: Temo Vekua, MathWorks

양자물리학에서 텐서망의 응용은 양자정보이론 분야의 저명한 물리학자이자 리더인 뮌헨의 Max Planck 양자광학 연구소의 Ignacio Cirac 박사에 의해 개척되었습니다. 20년 전, Cirac 박사와 Frank Verstraete 박사는 양자 다체 시스템을 설명하기 위해 텐서망 이론을 개발했습니다. Francuz 박사는 자신의 학문적 뿌리를 Cirac 박사로 보고 있습니다. 그녀의 멘토인 Norbert Schuch 박사는 Max Planck Institute에서 박사후 연구원을 지냈고, Technical University of Munich에서 Cirac 박사와 함께 강사를 맡았으며, 나중에는 Garching에 있는 Max Planck Institute of Quantum Optics에서 종신 연구 그룹 리더를 지낸 후 University of Vienna에서 교수가 되었습니다.

Cirac 박사는 최초의 텐서망 구현에 MATLAB을 활용했습니다. 그와 약 40명의 연구자로 구성된 팀은 오늘날에도 계속해서 그것을 사용하고 있습니다. "저는 주로 과학 프로그래밍에 MATLAB을 사용합니다." 그의 말입니다. "MATLAB은 저에게 잘 맞으며, 올바르게 사용하면 컴파일 언어만큼 효율적일 수 있습니다." 이 분야에서 MATLAB을 필수적인 툴로 인정하는 것은 Francuz 박사도 마찬가지입니다. "저는 제 자신을 뛰어난 프로그래머라고 생각하지 않습니다. 그보다 저는 MATLAB을 사용해 이전에 시도된 적이 없던 텐서망 작업을 하는 물리학자입니다."

저차원(1차원 및 2차원)의 강한 상관관계를 갖는 양자 시스템을 연구하는 데 있어 텐서망의 가치를 이미 증명한 Cirac 박사와 그의 팀은 현재 이 방법을 3차원 시스템으로 확장하기 위해 노력하고 있습니다.

텐서망 축약, 자동 미분 및 최적화

양자물리학 연구자들은 텐서망을 사용할 때 종종 병진 불변 무한 시스템으로 작업합니다. 이러한 시스템은 무한히 확장되며 특정 거리만큼 이동(평행이동)될 때 모든 지점에서 동일한 속성을 갖습니다. 이는 양자 시스템의 총 에너지를 나타내는 연산자인 해밀토니언이 시스템 전체에서 주기적 반복이나 균일성을 보인다는 것을 의미합니다. 따라서 이러한 관측 가능한 값을 계산할 때마다 먼저 텐서망을 다루기 쉬운 값으로 축약해야 합니다(그림 1). 이를 우리 워크플로에서 사용하기 위해 우리는 Robert N. C. Pfeifer, Glen Evenbly 및 그들의 동료들이 개발하고 커뮤니티와 공유한 MATLAB 함수인 ncon을 사용합니다. ncon 함수를 사용하면 텐서망을 효율적으로 축약하고 유한한 값을 갖는 국소 관측값의 무한한 환경을 근사할 수 있습니다.

텐서망이 텐서의 가상 인덱스로 어떻게 축약되는지 보여주는 다이어그램입니다.

그림 1. B(오른쪽)에 표시된 정사격자의 상태 |Ψ(A)⟩는 A(왼쪽)의 텐서의 가상(검은색) 인덱스를 축약하여 생성됩니다. (이미지 출처: Francuz, A., Schuch, N., & Vanhecke, B. (2025). Stable and efficient differentiation of tensor network algorithms. Phys. Rev. Res., 7(1), 013237. American Physical Society. https://doi.org/10.1103/PhysRevResearch.7.013237. Licensed under CC BY 4.0.)

텐서망을 축약(MATLAB에서 dlarray 객체로 표현)한 후의 다음 단계는 바닥 상태를 계산할 때 최소화해야 하는 에너지의 기울기를 AD를 사용해 계산하는 것입니다. MATLAB 에서 AD 접근 방식을 구현하면서 기존 AD 구현의 세 가지 중요한 문제, 즉 높은 메모리 사용량, 기울기 계산의 불안정성, 역전파 기울기의 부정확성을 해결했습니다.

첫 번째 문제는 AD와 관련된 높은 메모리 사용량이었습니다. 일반적인 AD 접근 방식은 국소 관측값을 효율적으로 계산하기 위해 반복적 CTM(코너 전송 행렬) 절차 동안 생성된 중간 객체를 저장하기 위해 상당한 메모리가 필요합니다. (CTM은 특히 PEPS(투영 얽힘 쌍 상태)에서 2차원 텐서망의 축약을 근사화하는 데 사용되는 반복적 방법입니다.) 고정소수점 방정식의 미분을 수반하는 대체 접근 방식은 이 메모리 문제를 완화할 수 있지만 게이지 고정과 관련된 복잡성을 야기하기도 합니다. 게이지 고정은 모호성을 해결하여 텐서 표현의 일관성을 보장하지만, 이를 안정적으로 구현하는 것은 어려웠습니다. 우리는 이러한 어려움의 근본 원인을 파악하고 게이지를 안정적으로 고정하는 두 가지 실용적인 방법을 제안하여 메모리 문제를 해결했습니다.

두 번째 중요한 문제는 CTM 알고리즘의 핵심 구성 요소인 SVD의 기울기 계산이 불안정하다는 것입니다. 기울기는 조건이 좋지 않으며, 여러 개의 특이값이 동일한 축퇴의 경우, 정의되지 않습니다. 이러한 퇴화는 기울기 계산을 불안정하게 만들 수 있는데, 입력의 작은 변화조차도 특이 벡터에서 비례적으로 큰 변화를 일으킬 수 있기 때문입니다. 이 문제를 해결하기 위해 우리는 CTM 텐서망 내의 숨겨진 게이지 대칭을 발견하고 활용했습니다. 이러한 접근 방식은 기존 AD 범위를 넘어서면서 AD 프레임워크와 호환되는 안정적인 솔루션을 개발할 수 있게 해주었습니다.

마지막으로, 우리는 잘린 SVD를 통한 기울기의 역전파에 사용된 기존 방정식의 부정확성을 해결했습니다. 이러한 방정식은 잘린 스펙트럼이 0이라고 잘못 가정하여 필수 항목을 생략하고 상당한 오류를 초래했습니다. 파라미터 변화가 일련의 연산을 통해 어떻게 전파되는지 계산하는 역전파 기울기에는 정확한 최적화를 위해 정밀한 기울기 계산이 필요합니다. 우리는 잘린 스펙트럼을 고려하여 잘린 SVD에 대한 수정된 기울기 공식을 도출했습니다. 이러한 수정을 통해 기존 AD 코드를 약간만 수정하면서 정확도를 크게 향상시킬 수 있었습니다.

MATLAB 에서 AD 개선 사항을 구현한 후, 우리는 AD 구현에서 생성된 기울기를 최적화 작업(예: 양자 시스템의 바닥 상태를 찾기 위해 에너지를 최소화하는 작업)에 사용할 준비가 되었습니다. 워크플로의 이 부분에서는 Optimization Toolbox™의 fminunc 함수에 기반한 L-BFGS(Limited-memory Broyden-Fletcher-Goldfarb-Shanno) 알고리즘을 사용해 기울기를 계산하기 위해 작성한 사용자 지정 함수를 전달합니다. (그림 2)

개선된 AD 구현의 기울기를 사용하여 전역 최소값으로 수렴하는 최적화를 보여주는 플롯입니다.

그림 2. 두 가지 다른 기울기를 보여주는 최적화 플롯입니다. 기존 AD(주황색 사각형)의 기울기를 사용하면 최적화가 금방 중단됩니다. 개선된 AD 구현(녹색 원)의 기울기를 사용하여 최적화를 다시 시작하여 최적화가 전역 최소값으로 수렴됩니다. (이미지 출처: 이미지 출처: Francuz, A., Schuch, N., & Vanhecke, B. (2025). Stable and efficient differentiation of tensor network algorithms. Phys. Rev. Res., 7(1), 013237. American Physical Society. https://doi.org/10.1103/PhysRevResearch.7.013237. Licensed under CC BY 4.0.)

Austrian Scientific Computing에서 MATLAB을 사용한 병렬 연산

위상도는 양자 다체 시스템을 연구하는 데 중요한 도구입니다. 시간을 포함한 다양한 파라미터의 함수로 시스템의 여러 위상(상태)을 시각적으로 표현하기 때문입니다. 위상도를 작성하려면 특정 범위 내에서 해밀토니언의 파라미터를 변화시키고 각 파라미터 값에 대한 바닥 상태를 계산해야 합니다. 이를 통해 우리는 예를 들어 초전도 상태에서 절연 상태로 변하는 것처럼 시스템의 거동이 갑자기 변하는 경우 상전이를 식별할 수 있습니다.

단일 노트북에서 순차적으로 수많은 파라미터 값에 대한 바닥 상태를 계산하는 것은 엄청나게 느린 과정이 될 수 있고 메모리 요구사항도 표준 노트북이 제공하는 수준을 넘어서는 경우가 많기 때문에, 우리는 MATLAB Parallel Server™를 사용하여 Austrian Scientific Ccomputing(ASC)에서 이 처리를 수행할 계획입니다. ASC는 오스트리아에서 가장 강력한 슈퍼컴퓨터를 보유하고 있으며, VSC-4는 790개의 노드로 총 37,920개의 코어를 가지고 있고, VSC-5는 710개의 노드로 총 98,560개의 코어를 가지고 있습니다.

시작하기 위해, 저는 ASC의 HPC 시스템에서의 MATLAB 사용 및 MATLAB을 사용한 병렬 연산을 다루는 MathWorks 엔지니어가 진행한 워크숍에 참석했습니다. ASC에서 병렬 바닥 상태 계산을 실행하면 우리 팀은 가상 양자 시스템의 속성을 빠르게 계산하여 실험적으로 측정한 실제 시스템의 속성과 직접 비교할 수 있습니다.

사실, 현재 우리는 ASC에서 MATLAB Parallel Server를 사용하여 256개 양자 비트(큐비트)로 작동할 수 있는 프로그래밍 가능한 양자 시뮬레이터의 위상 다이어그램을 연구할 계획입니다. 2D 텐서망을 사용하여 이 시스템과 이와 유사한 시스템을 탐구하는 것이 우리의 지속적인 연구의 초점입니다.

글쓴이에 관하여

Anna Francuz 박사는 University of Vienna의 양자 정보 및 양자 다체 물리학 그룹의 박사후 연구원입니다. 그녀는 텐서망을 사용하여 물질의 위상을 연구하여 양자 다체 시스템의 얽힘 속성이 어떻게 물리적 현상을 발생시키는지 이해하고 있습니다.

2025년 기고

관련 기능에 대한 칼럼 보기