Branch Log · Open in interactive viewer →

Section 6: Early Speaker Recognition Approaches

6.9 Factor Analysis

소수의 factor(요인)을 추출하여 변수들 사이의 공통점을 찾아내는 Factor Analysis(요인 분석) 방법을 알아보자.

예: 10개의 시험에서 받은 점수는 observed variable이다.

예: 지능이나 노력과 같은 부분은 unobserved variable(factor)이다.

더 나아가 factor는 common factor(공통요인) f 와 unique factor(고유요인) ϵ 으로 나뉜다.

Factor Analysis


6.9.1 Common factor

Factor analysis에서 deviation(편차)은 다음과 같이 표현한다.

xiμi=li1f1++likfk+ϵi

평균값으로 μi 를 갖는다.

이때 k<p 를 만족한다.(factors의 개수 < 변수의 개수)

평균은 0이며 유한한 분산값을 갖는다.


6.9.2 Loading matrix

p

개 임의의 변수를 합쳐서 vector x

로 두면, 식은 다음과 같이 표현할 수 있다. 이때 아래의 L

행렬을 loading matrix라고 지칭한다.

xμ=Lf+ϵ

따라서 N observations xi 가 있다고 하면, loading matrix를 이용해 다음과 같이 나타낼 수 있다.

xiμ=Lfi+ϵi

위 Factor analysis에서 사용하는 가정은 총 세 가지다.

  1. fi , ϵi 는 서로 independent하다.

  2. fi 는 zero expectation을 갖는다.

    확률 변수의 expectation: 확률 사건의 평균값, 사건이 일어나서 얻는 값과 사건이 일어날 확률을 곱한 값을 모든 사건에 대해 합한 값

𝔼(fi)=0
  1. fi 의 covariance는 identity matrix이다.
cov(fi)=I

6.10 Joint Factor Analysis

Joint Factor Analysis(JFA) 는 Factor Analysis를 GMM-UBM에 적용한 방법이다. 다음과 같은 GMM-UBM 모델이 있다고 하자.

speakers와 channels의 factors를 동시에 분석하기 때문에 joint라는 단어가 붙었다.

이때 JFA는 다음과 같은 식으로 나타낸다.

s=m+Vy+Ux+Dz

UBM의 supervector를 바로 대입할 수 있다.

위 loading matrix V,U,D 를 추정하기 위해서는 수많은 방정식을 풀어야 한다는 단점이 있다.


6.10.1 JFA for speaker recognition

일단 speaker factors y 를 구하면, y 를 kernel function에 대입하여 사용할 수 있다. 이러한 방법을 JFA-SVM이라고 한다. 그런데 JFA를 통해 얻어낸 channel factor x 가 speaker information을 포함하지 않는다고 가정했지만, 실제로는 그렇지 않다.

y

만 쓸 경우 x

에 포함된 유용한 정보를 모두 잃어버리게 된다. 이러한 배경에서 speaker, channel factor를 구분하지 않는 i-vector가 등장하게 된다.


6.11 i-vector

i-vector는 마찬가지로 Factor Analysis를 기반으로 하는 방법으로, JFA의 단점을 고려하여 단순화시킨 버전이다. 배경이 된 아이디어는 다음과 같다.

channel space U , speaker space V 를 합친다.

i-vector의 factor analysis equation을 살펴보자.

s=m+Tw

UBM의 supervector를 바로 대입하여 사용할 수 있다.

이를 i-vector 혹은 identity vector로 지칭하기도 한다. 보통 400~600 차원을 갖는다.

또한 위 방정식을 다음과 같은 성질을 갖는 것으로 해석할 수 있다.

이때 평균은 m , 분산은 TTT 이다.

참고로 total variability space T 는 JFA에서 speaker factor V 를 구하는 방법과 유사하다.


6.11.1 Channel compensation

speaker, channel information을 모두 가진 total factors w 를 speaker recognition에서 바로 사용할 수 없다. 따라서 추가로 channel compensation 과정을 거쳐야 한다.

결과는 channel information을 포함하지 않는다. 이렇게 구한 w 를 speaker recognition에 사용한다.

아래는 channel compensation으로 쓰이는 대표적인 네 가지 방법이다.


6.11.2 Speaker recognition with i-vector

i-vector를 이용한 cosine similarity는 다음과 같이 계산할 수 있다.

cos(w1,w2)=w1Tw2||w1||·||w2||

이렇게 구한 cosine similarity는 speaker recognition을 수행하기 위한 threshold로 사용하거나, SVM의 cosine kernel function K(w1,w2)=cos(w1,w2) 으로 사용할 수 있다.


6.13 JFA vs i-vector

요약하자면 두 방법은 모두 Factor Analysis 기반이지만, channel information을 다루는 방식이 다르다.

대체로 i-vector가 계산이 효율적이며 성능도 더 좋은 방법이다.