Skip to content

wav2vec 논문 리뷰

pingu605 edited this page Dec 21, 2023 · 1 revision

1) wav2vec 1.0

1. wav2vec 1.0

  • 기존의 음성인식은 전사 데이터의 부족 문제가 큼
  • unsupervised pre-training 를 통해 위의 문제 해결
  • 라벨링 되지않은 데이터를 활용해 pre-training 수행

2. 모델

  • 두개의 convolution neural network 사용

    image

    • encoder < f : X → Z >

      image

      • 5층의 CNN
      • 오디오 시그널을 latent space Z로 임베딩
    • context network < g : Z → C >

      image

      • 9층의 CNN

      • encoder의 출력 Z를 single contextualized tensor C 로 변환

        💡 single contextualized tensor

        • 입력 시퀀스에 대한 모델의 이해와 문맥을 반영하며, 이를 통해 텍스트 생성, 질문 응답, 언어 이해 의 역할 수행
    • 512 채널의 causal convolution network가 적용되었고, group normalization 및 ReLU 등 적용

      💡 causal convolution

      • 미래로 부터 과거 정보 유출 X
      • 다음 레이어에 미래의 값이 들어가지 않는 형태

3. 학습 방법

  • 목표 : contrastive loss 최소화

    💡 contrastive loss

    • 같은 클래스끼리 임배딩간 거리 최소화되도록 학습
    • 다른 클래스는 margin 이상이 되도록 학습
    • encoder network와 context network가 입력 음성의 다음 시퀀스가 무엇일지에 관한 정보를 음성 피처에 녹여내는 것
  • 순서

    1. Encoder
      • raw waveform을 latent space에 임베딩
    2. Group normalization
      • Single normalization group을 사용하는 group normalization와 동일한 각 샘플에 대해 특성 및 시간 차원에서 모두 정규화
    3. Context network
      • encoder 출력에 적용

2) wav2vec 2.0

1. wav2vec 2.0

  • self-supervised learing (자기지도학습) 으로 라벨링 없는 데이터를 활용하면 성능향상 가능

  • representation learing 후, 소량의 라벨링된 데이터로 fine tuning 하는 과정

    💡 representation learning (표현 학습)

    1. Representation Learning 이란?

    • 데이터를 특정 task에 맞게 잘 표현시켜서 학습 일 곱하기 이 → 1 x 2

    • input 값을 linear classifier 가 알맞게 분류하도록 표현

    • new representation 을 뽑게 학습하는 것

      image

  • wav2vec 1.0 에 트랜스포머를 추가해 성능 향상

2. wav2vec 핵심 기술

  • contrastive task

    • 라벨링되지 않은 데이터로 학습
  • bi-directional contextualized representation

    • 현재 위치를 masking 하고 주변 데이터로 masking 위치를 유추하는 트랜스포머 구조

      image

  • vector quantized targets

    • gumbel softmax 방법으로 영향을 많이 미치는 벡터 추출

3. 음성 데이터 self-training 방법

  1. Feature Encoder  < f : X → Z >

    • CNN 인코더에 넣어 X → Z

      image

  2. Quantization Module < Z → Q >

    • Feature Encoder 의 출력인 Z를 quantizer(양자화 모듈)을 통해 Q로 이산화

      💡 양자화

      • 연속된 변화량을 유한개의 레벨로 구분, 각 레벨이 특정 값을 부여

      • 예시

        image

  3. 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 끼리의 의존성이 클수록 높아짐