-
Notifications
You must be signed in to change notification settings - Fork 2
wav2vec 논문 리뷰
- 참고
- 기존의 음성인식은 전사 데이터의 부족 문제가 큼
- unsupervised pre-training 를 통해 위의 문제 해결
- 라벨링 되지않은 데이터를 활용해 pre-training 수행
-
두개의 convolution neural network 사용
-
encoder < f : X → Z >
- 5층의 CNN
- 오디오 시그널을 latent space Z로 임베딩
-
context network < g : Z → C >
-
9층의 CNN
-
encoder의 출력 Z를 single contextualized tensor C 로 변환
💡 single contextualized tensor
- 입력 시퀀스에 대한 모델의 이해와 문맥을 반영하며, 이를 통해 텍스트 생성, 질문 응답, 언어 이해 의 역할 수행
-
-
512 채널의 causal convolution network가 적용되었고, group normalization 및 ReLU 등 적용
💡 causal convolution
- 미래로 부터 과거 정보 유출 X
- 다음 레이어에 미래의 값이 들어가지 않는 형태
-
-
목표 : contrastive loss 최소화
💡 contrastive loss
- 같은 클래스끼리 임배딩간 거리 최소화되도록 학습
- 다른 클래스는 margin 이상이 되도록 학습
- encoder network와 context network가 입력 음성의 다음 시퀀스가 무엇일지에 관한 정보를 음성 피처에 녹여내는 것
-
순서
- Encoder
- raw waveform을 latent space에 임베딩
- Group normalization
- Single normalization group을 사용하는 group normalization와 동일한 각 샘플에 대해 특성 및 시간 차원에서 모두 정규화
- Context network
- encoder 출력에 적용
- Encoder
-
self-supervised learing (자기지도학습) 으로 라벨링 없는 데이터를 활용하면 성능향상 가능
-
representation learing 후, 소량의 라벨링된 데이터로 fine tuning 하는 과정
💡 representation learning (표현 학습)
1. Representation Learning 이란?
-
데이터를 특정 task에 맞게 잘 표현시켜서 학습
일 곱하기 이 → 1 x 2
-
input 값을 linear classifier 가 알맞게 분류하도록 표현
-
new representation 을 뽑게 학습하는 것
-
-
wav2vec 1.0 에 트랜스포머를 추가해 성능 향상
-
contrastive task
- 라벨링되지 않은 데이터로 학습
-
bi-directional contextualized representation
-
현재 위치를 masking 하고 주변 데이터로 masking 위치를 유추하는 트랜스포머 구조
-
-
vector quantized targets
- gumbel softmax 방법으로 영향을 많이 미치는 벡터 추출
-
Feature Encoder < f : X → Z >
-
CNN 인코더에 넣어 X → Z
-
-
Quantization Module < Z → Q >
-
Feature Encoder 의 출력인 Z를 quantizer(양자화 모듈)을 통해 Q로 이산화
💡 양자화
-
연속된 변화량을 유한개의 레벨로 구분, 각 레벨이 특정 값을 부여
-
예시
-
-
-
Transformer Module < g : Z → C >
-
오디오 시퀀스 정보 추가
-
Z
-[트랜스포머]→
주변정보를 이용해 복원된 C 생성 -
context representations 와 해당 위치의 latent speech representations 이 유사하도록 학습시켜야 함 = contrastive loss
-
contrastive loss 최소화 → mutual information 최대화
💡 contrastive loss
- 같은 클래스끼리 임배딩간 거리 최소화되도록 학습
- 다른 클래스는 margin 이상이 되도록 학습
💡 mutual information (상호 의존 정보)
- X, Y 끼리의 의존성이 클수록 높아짐
-