양자 커널
양자 커널 소개
"양자 커널 방법"이란 양자 컴퓨터를 사용하여 커널을 추정하는 모든 방법을 가리킵니다. 여기서 "커널"은 커널 행렬 또는 그 개별 원소를 의미합니다. 특징 맵(feature mapping) 는 를 로 매핑하는 함수이며, 일반적으로 이고, 이 매핑의 목표는 데이터의 범주를 초평면으로 분리 가능하게 만드는 것입니다. 커널 함수는 특징 맵이 적용된 공간의 벡터를 인수로 받아 내적을 반환합니다. 즉, 이며 입니다. 고전적 관점에서는 커널 함수를 쉽게 계산할 수 있는 특징 맵에 관심을 갖습니다. 이는 종종 와 를 직접 구성하지 않고도, 원래 데이터 벡터만으로 특징 맵 공간에서의 내적을 표현할 수 있는 커널 함수를 찾는 것을 의미합니다. 양자 커널 방법에서는 특징 맵이 양자 Circuit에 의해 수행되며, 커널은 해당 Circuit의 측정과 상대적 측정 확률을 사용하여 추정합니다.
이 레슨에서는 상당한 얽힘(entanglement)을 사용하는 사전 코딩된 인코딩 Circuit의 깊이와, 직접 코딩한 Circuit의 깊이를 비교해 살펴볼 것입니다. 이는 어느 방법이 더 낫다고 주장하려는 것이 아닙니다. 사전 코딩된 Circuit이 너무 깊거나, 직접 구축한 Circuit의 얽힘이 충분하지 않을 수도 있습니다. 이 두 방법은 단지 여러분이 탐구할 수 있도록 제시하는 것입니다.
커널 행렬 추정 과정을 자세히 살펴보기 전에, Qiskit 패턴의 언어를 사용하여 전체 워크플로를 개략적으로 설명하겠습니다.
1단계: 고전적 입력을 양자 문제로 변환
- 입력: 훈련 데이터셋
- 출력: 커널 행렬 원소를 계산하기 위한 추상 Circuit
데이터셋이 주어지면, 출발점은 데이터를 양자 Circuit으로 인코딩하는 것입니다. 다시 말해, 데이터를 양자 컴퓨터 상태의 힐베르트 공간으로 매핑해야 합니다. 이를 위해 데이터에 의존하는 Circuit을 구성합니다. 이 방법은 다양하며, 이전 레슨에서 여러 옵션을 다루었습니다. 데이터를 인코딩하는 Circuit을 직접 구성하거나, zz_feature_map과 같은 사전 제작된 특징 맵을 사용할 수 있습니다. 이 레슨에서는 두 가지 방법을 모두 사용합니다.
단일 커널 행렬 원소를 계산하기 위해서는 두 개의 서로 다른 점을 인코딩해야 내적을 추정할 수 있다는 점에 유의하세요. 전체 양자 커널 워크플로는 물론 매핑된 데이터 벡터 간의 많은 내적과 고전적 머신러닝 방법을 포함합니다. 하지만 반복되는 핵심 단계는 단일 커널 행렬 원소의 추정입니다. 이를 위해 데이터 의존적 양자 Circuit을 선택하고 두 데이터 벡터를 특징 공간으로 매핑합니다.

커널 행렬을 생성하는 작업에서 특히 관심을 갖는 것은 모든 개의 Qubit가 상태에 있는 상태를 측정할 확률입니다. 이를 이해하기 위해, 하나의 데이터 벡터 를 인코딩하고 매핑하는 Circuit을 , 를 인코딩하고 매핑하는 Circuit을 로 나타내고, 매핑된 상태를 다음과 같이 정의합니다.
이 상태들이 바로 데이터를 고차원으로 매핑한 것이므로, 우리가 원하는 커널 원소는 내적