2012년 8월 20일 월요일

ICA에 대한 개인적인 해석



여러명이 동시에 말하는 상황에 여러대의 마이크로 녹음된 음성에서

사전 지식 없이 원래의 사람들의 목소리를 복원하고자 할때 사용하는 것이 ICA이다.

하지만 조건이 있다. 사람들의 목소리들 간에는 서로 독립적이어야 한다.

수학적으로 독립적이어야한다. 사람이 인식하기에 구분이 간다 만다 하는 정도의 문제가 아니다.

그리고 모든 사람들의 목소리를 녹음하는 마이크가 사람 수 만큼이거나 많아야 한다.

이 모두를 수학적으로 모델링 하면 다음과 같다.


X = A * S;

여기서, X는 마이크로 관찰된 신호, A는 사람들의 목소리의 가중치, S는 사람들의 목소리 신호.

마이크의 수는 a, 사람들의 수 b, 그리고 시간 축의 수 c

그럼 X의 크기는 (열의 수 x 행의 수) = a x c,

A의 크기는 a x b,

S의 크기는 b x c 이다.

그리고 마이크의 수와 사람의 수가 같다고 하면 A는 정사각형 행렬이 된다.


그럼 A행렬의 각 항목의 값만 알아 내면 모든 것이 해결된다.

근데 이 이후의 상황들이 너무나도 복잡하다. 좀더 읽어 봐야 겠다.

더 읽다 보니 제한 조건이 너무 많다.

사람들의 목소리 끼리 독립적이어야 한다는 조건은

수학적으로 다음과 같은 조건으로 대치된다.

Uncorrelated와 unit-variance이어야 한다.

만약 위와 같은 조건이 만족되지 못하다면 만족하게 만들어야 한다.

그와 같은 방법이 PCA가 되겠다. 그리고 ICA에서 이러한 과정을 Whitening이라고 한다.

그냥 생각해 봐도 어디에 ICA를 적용하려면 PCA는 항상 거쳐야 하는 사전 작업으로 여겨질 것이다.

PCA는 또다른 골치 꺼리 이므로 여기서 자세히 못 다룬다.

나중에 다루어봐야 겠다.

ICA는 PCA를 거친후의 확장형태로 이용하면 훨씬 성능이 좋다.

Matlab의 fastICA에 아주 잘 정리되어 있다.

blind source separation, feature extraction에 이용한다.

영상처리에 ICA 적용하는 방법은 다음과 같다.

영상의 작은 형태로 쪼개고 이 작은 영상을 가중치를 갖는 원소 영상으로 분해하는 것이다.

댓글 없음:

댓글 쓰기