본문 바로가기
논문 공부

AUTOVC 논문 정리(2)

by Candy Lee 2021. 3. 1.

안녕하세요, 앞선 포스팅에 이어서 진행하겠습니다.

 

 

[Information Bottleneck]

 

Bottleneck 이라는 개념이 도입된 이유는 무엇일까요?

 

아마도, 해당 논문의 auto voice conversion이 autoencoder 구조 기반으로

 

이루어져 있습니다.

 

이는 전체 구조를 보았을 때

 

입력 값->hidden layer->출력 레이어를 거치면서

 

hidden layer에서 상대적으로 데이터 차원이 줄어들어

 

"><" 이러한 형식의 연산을 가지기 때문이라고 생각이 듭니다.

 

 

그래서 해당 논문에서의 Bottleneck은 encoder에서 decoder로 넘어가는

 

information의 흐름을 조절해 주는 부분을 말합니다.

 

 

좀 더 자세히 경우를 따져보도록 하겠습니다.

(Solid : Speaker Information, Striped : Content Information)

 

1st. Bottleneck이 너무 넓은 경우

Bottleneck too wide

 

먼저, 입력값 X1은 Speaker Information과 Content Information의 결합체입니다.

 

Bottleneck이 너무 넓은 경우 C1을 보시게 되면,

 

C1은 대부분 Content Information으로 채워져 있고 

 

일부분이 Speaker Information으로 반영된 상태임을 알 수 있습니다.

 

이러한 경우, C1(Content Embedding = Result of content encoder)

 

최적으로 구성되지 못했다고 볼 수 있습니다.

 

 

 

 

2nd. Bottleneck이 너무 좁은 경우

Bottleneck too narrow

우선 위의 그림과 같은 경우는 Bottleneck이 상대적으로 너무 좁게

 

설정되어 speaker information은 C1에 반영되지 않았지만, 

 

content information은 입력값에 비해 너무 적은 양의 값들이

 

반영되어 있어 중요한 information loss 를 유발할 수 있어서 좋지 못한 경우라고 볼 수 있습니다.

 

 

 

 

3rd. Bottleneck이 적합하게 잘 설정된 경우

Bottleneck just right

세번째 경우인 위의 그림은 Bottleneck이 알맞게 잘 설정되어서

 

입력값의 Speaker information은 모두 제거하고, content information 값을

 

잘 반영한 경우이므로 최적의 Bottleneck이 설정되었음을 알 수 있습니다.

 

그래서 핵심은 Ideal Bottleneck을 설정함으로써,

 

Speaker Information은 모두 제거하고(Speaker Disentanglement)

 

Content Information을 잘 반영하여 좋은 성능의 conversion 결과를 

 

이끌어 낼 수 있다는 것 입니다.

 

 

 

 

[AUTOVC 구조]

AUTOVC Architecture

위의 AUTOVC 구조는 앞선 포스팅에서 보여드린 Conversion Scheme과 연결지어 보면 

 

더욱 이해가 잘 될 것 같습니다.

 

그림 (a)는 Content Encoder이며 이는 입력 Speech로 부터 content information을 추출해서

 

content embedding을 생성합니다.

 

 

그림 (b)는 Speaker Encoder이며 이는 입력 Speech로 부터 speaker information을 추출합니다.

(Pre-trained 모델 사용합니다.)

 

 

그림 (c)는 Decoder이며 Speaker encoder과 Content encoder의 결과 값들을 기반으로

 

Conversion 예상 값을 Mel-spectrogram 형식으로 출력하게 됩니다.

 

 

그림 (d)는 여기에서 추가된 부분인데, 최종적으로

 

Decoder에서 얻은 예상 Mel-spectrogram을 Wave Data 형식으로

 

변환하는 Spectrogram-inverter에 해당합니다.

 

 

추가적으로 그림(e) & (f)는 Bottleneck에서 데이터들이

 

차원 감소를 위해 Downsampling과 Upsampling을 어떤 방식으로

 

진행하는지 시각화 해놓은 부분입니다. 자세한 내용은 논문을 참조해 주시면 되겠습니다.

 

 

 

 

 

[실험 및 결론]

해당 논문에서는 두가지 실험이 실행되었습니다.

 

두 실험 모두 VCTK corpus 데이터셋을 사용하였습니다.

 

 

1. 첫번째 실험

 

총 4개의 성별 그룹으로 나누어서 실험을 진행하였습니다.

M2M & F2F : same-gender conversion

M2F & F2M : cross-gender conversion

 

실험 결과를 보면 AUTOVC와 AUTOVC-one-hot를 기준으로

나머지 다른 baseline model를 비교한 결과를 보면

상대적으로 3점 대를 넘고 다른 비교군 보다 높은 성능을 보임으로서 

좋은 실험 결과를 도출했다는 것을 알 수 있습니다.

 

첫번째 실험 결과

비교군에 AUTOVC-one-hot 을 추가한 이유로는 다른 baseline model 에서는

 

Speaker information을 추출할때, one-hot을 기반으로 Speaker encoder를 설정하였기 때문에

 

성능 비교에서의 공정성을 부여하기 위해서 설정하였다고 합니다.

 

 

 

2. 두번째 실험

 

두번째 실험 결과

두 번째 실험에서는 다른 논문에서 시도하지 않았던

 

Zero-shot voice conversion을 수행하였고 다른 비교군들이

 

없었기 때문에 자체 AUTOVC 모델을 비교군으로 설정하여 실험을 수행하였습니다.

 

3점대에 비슷하거나 낮은 성능을 보인다는 것만으로도

 

Zero-shot conversion에서 경쟁력 있는 결과를 도출했음을 알 수 있습니다.

 

 

 

3. 결론

 

결론적으로 위의 논문에서는

 

Autoencoder 기반의 간단한 Conversion & Training 구조와

 

Bottleneck tuning을 제안하였고

 

non-parallel data에서도 좋은 성능을 보였다는 것을 

 

이 논문의 기여라고 말할 수 있습니다.

 

 

 

 

 

이상으로 논문 리뷰 포스팅을 마치겠습니다.

 

오늘도 감사합니다.

반응형

'논문 공부' 카테고리의 다른 글

AUTOVC 논문 정리(1)  (0) 2021.02.27
R-CNN & Fast R-CNN 비교 정리  (0) 2021.02.07
R-CNN 정리(3)  (0) 2021.01.21
R-CNN 정리(2)  (0) 2021.01.14
R-CNN 정리(1)  (0) 2021.01.11
Fast R-CNN 정리(4)  (0) 2021.01.07
Fast R-CNN 정리(3)  (0) 2021.01.04
Fast R-CNN 정리(2)  (0) 2021.01.03

댓글