정준상관분석 (Canonical Correlation Analysis; CCA)

 

1. 개념

데이터 사이언스 분야에는 기존의 고차원 데이터를 이보다 더 작은 차원으로 축소하는 알고리즘이 존재합니다. 대표적으로 주성분분석(Principal component analysis; PCA)이 유명하고, 다소 생소하지만 이와 비슷한 개념을 가진 정준상관분석(Canonical correlation analysis; CCA)라는 기법도 있습니다.

 

주성분분석(PCA)이 하나의 독립변수 집합을 압축시키는 방법론이라면, 정준상관분석(CCA)은 최소 2개의 독립변수 집단의 상관관계를 파악하고 이 상관관계를 극대화하는 압축 표현을 찾는 기법입니다. 헬스케어 데이터를 예시로 좀 더 쉽게 접근해보자면 아래와 같은 표현이 가능할 것 같습니다.

 

주성분분석(PCA)는 건강 관련 데이터(혈압, 심박수, 체중, 콜레스테롤 수치 등) 수치를 종합적으로 표현하는 정보를 추출

정준상관분석(CCA)는 건강 데이터 말고도 운동량과 관련된 데이터(하루평균 걸음수, 이동거리, 푸쉬업 횟수)가 추가된 상태에서, 주어진 건강-운동량 관계를 잘 요약할 수 있는 정보를 추출

 

하나의 데이터셋에 속한 변수들 간의 상관관계를 찾는 것도 만만치 않은데, 이번에는 서로 다른 데이터셋의 요소끼리 상관관계를 찾아야 한다니.. 이를 어쩌면 좋을까요?

 

 

2. 문제 정의

이미지 출처: https://cypision.github.io/machine-learning/Canonical-Correlation-Analysis/

 

 

여기 두 데이터셋 $X$, $Y$가 있습니다. 각각의 데이터셋은 $n$개의 샘플을 가지고 있고 이들은 하나씩 쌍을 이루고 있습니다.

 

$i$ 번째 샘플: $(X^i,\ Y^i)$

 

$X$의 샘플 하나당 $p$개의 element가 존재 $(X \in \mathbb{R}^{n \times p})$ 하고 $Y$의 샘플들은 $q$개의 element로 구성$(Y \in \mathbb{R}^{n \times q})$되어 있습니다. 

 

본 기법에는 정준 변수(Canonical Variable)이라는 용어가 쓰이는데요. 정준 변수는 한쪽 독립변수집단을 선형결합(Linear combination)형태로 표현한 것입니다. 두 데이터셋에 대한 선형결합벡터를 각각 $w$, 그리고 $v$로 표현한다면, 아래와 같습니다.

 

$w = {(a_1, a_2,\ ..., a_p)}^{\top}$,  $v = {(b_1, b_2,\ ..., b_q)}^{\top}$

$X$의 정준 변수 $z_x = Xw$,    $Y$의 정준 변수 $z_y = Yv$

 

정준상관분석은 두 정준변수 $z_x$와 $z_y$의 상관관계를 최대화하는 $w, v$를 구하는 것이므로, 이를 식으로 나타내면 다음과 같습니다.

 

$\begin{align*}w^{\star}, v^{\star} &= \underset{w, v}{argmax}\;\;\text{corr}(Xw,\ Yv) \\&= \underset{w, v}{argmax}\;\;\ \frac{w^{\top}\Sigma_{xy}v}{\sqrt{w^{\top}\Sigma_{xx}w}\ \sqrt{v^{\top}\Sigma_{yy}v}}\end{align*}$

 

여기서 사용하는 상관 관계 척도는 피어슨 상관계수(Pearson correlation coefficient)라고 하며, 저 $\Sigma$를 공분산 행렬(Covariance Matrix)라고 부릅니다. 위 식에서 ${w_i}^{\top}\Sigma_{ij}w_j$ = ${w_i}^{\top}{X_i}^{\top}X_jw_j$ = ${(X_iw_i)}^{\top}X_jw_j$ = ${z_i}^{\top}z_j$ 이므로 다음과 같은 표현이 가능합니다.

 

$\begin{align*}w^{\star}, v^{\star} &= \underset{z_x, z_y}{argmax}\;\;\frac{{z_x}^{\top}z_y}{\sqrt{{z_x}^{\top}z_x}\sqrt{{z_y}^{\top}z_y}} \\&= \underset{w, v}{argmax}\;\;\frac{{z_x}^{\top}z_y}{{||z_x||}_2\; {||z_y||}_2}\end{align*}$ 

 

만약 여기서 $z_x$와 $z_y$가 단위 벡터라고 하면 위 식은 아래와 같이 한번 더 줄일 수 있습니다.

 

$w^{\star}, v^{\star} = \underset{z_x, z_y}{argmax}\;\;({z_x}^{\top}\ z_y)$

 

위의 식을 만족하는 $w$와 $v$는 꽤 많을 수 있습니다. 그래서 최적해를 찾는 데 있어 보통 추가적인 제약 사항을 걸어놓는데요. 바로 정준변수 쌍끼리는 독립이라는 전제를 달아놓는 것입니다. 같은 데이터셋에 포함되는 ${z_x}^i$와 ${z_y}^j$의 상관관계는 전무한 것으로 해석하자는 뜻입니다. 따라서, 임의의 $i, j \in (1, 2,\ ..., n),\;\; i \neq j$에 대해

 

$Cov({z_x}^i, {z_x}^j) = Cov({z_y}^i, {z_y}^j) = 0$

 

이제 앞서 설명한 내용을 종합하면 정준상관분석의 최종 목표는 다음을 만족하는 선형함수를 찾는 것이라 말할 수 있겠네요.

 

$\begin{align*}& w^{\star}, v^{\star} = \underset{z_x, z_y}{argmax}\;\;({z_x}^{\top}\ z_y) \\&{||z_x||}_2 = {||z_y||}_2 = 1 \\&\ \\&Cov({z_x}^i, {z_x}^j) = Cov({z_y}^i, {z_y}^j) = 0\;\;\text{for}\;\ i,\ j \in (1, 2,\ ...,\ n),\;\; i \neq j\end{align*}$

반응형