Machine Learning/Algorithm

Whitening transformation

고슴군 2019. 10. 14. 14:07

Whitening transformation(혹은 sphering transformation)은 random variable의 벡터(covariance matrix를 알고 있는)를 covariance matric가 identity matrix인 variable들로 변형하는 linear transformation이다. 즉, 모든 변수가 uncorrelated이고 1의 분산을 갖는다. 이러한 transformation은 input vector를 white noise vector로 바꾸기 때문에 'whitening'이라고 불린다.

 

Whitening과 밀접하게 관련되어 있는 다른 transformation :

1. Decorrelation transformation : correlation을 제거하지만, 분산은 그대로 남긴다.

2. Standardization transformation : 분산을 1로 변화시키고, correlation은 그대로 남긴다.

3. Coloring transformation : White random variable을 특정한 covariance matrix를 갖도록 변형시킨다.

 

Whitening transformation을 수행하는 행렬은 unique하지 않다.

 

Whitening transformation이 실제로 데이터에 수행하는 것은 무엇일까? 

첫째, eigenvector matrix $E^{T}$(covariance로부터 계산됨) 를 곱함으로써 data를 decorrelate시킨다. 이 decorrelation 과정은 데이터의 principal axes가 가장 분산이 큰 axes와 align될 수 있도록 회전시킨다. 이 과정은 PCA에서 수행하는 것과 같은 과정이다.  

==>> 머신러닝 알고리즘의 학습 단계는 간단히 말하면 '최적화 문제'이다. Decorrelation 은 최적화 과정에서 빠르게 수렴할 수 있도록 도와준다. 

 

 

두번째 작업은 $D^{-1/2}$ 로 scaling 하는 것이다. 즉, 1보다 큰 분산을 가지는 차원에 대해서는 data를 squeeze하고, 1보다 작은 분산을 가지는 차원에 대해서는 stretch한다. Stretching과 squeezing은 데이터를 중심으로부터 'sphere'(구)의 형태를 띠게 한다 (그래서 whitening을 'sphering'이라고도 한다).

==>> Feature들이 같은 importance를 갖도록 도와준다. 

 

 

Whitening을 하기 위해서는 covariance matrix의 계산과 inverse의 계산이 필요하기 때문에 계산량이 많아, dimension의 개수가 많다면 시간이 많이 소요된다. 

 

 

[참조] https://en.wikipedia.org/wiki/Whitening_transformation        

        https://theclevermachine.wordpress.com/2013/03/30/the-statistical-whitening-transform/    

        https://stats.stackexchange.com/questions/326587/whitening-decorrelation-why-does-it-work

반응형