Audio-001, wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations, NeurIPS 2020
◼ Comment
- 오디오계의 BERT와 같은 느낌인거 같다
- 생각해보면 버트와 큰 느낌은 비슷하지만 입/출력 처리하는게 다르게 된다
- pretraining
- 오디오 입력을 어떻게 넣고 어떤 출력을 맞추게 할 것인가?
- 입력은 .wav 원시 값을 구간별로 짜르고 이를 모델에 넣는 식같다.
- 여러 모델(네트워크)가 있는데, context network라 불리는게 메인모델이고 이거에 넣는다는것 같다.
- 모델의 출력은 양자화한값이 되는것인데, 여기서 코드북 개념이 사용된다
- 컨텍스트 모델의 출력이 양자화벡터가 같도록 학습시키는건데, gradient가 흐르게하기 위해 몇가지 트릭이 들어간다
- finetuning
- ASR 테스크가 파인튜닝이라 보면되는거 같은데, 오디오 모델의 출력 갯수와 정답 텍스트랑 토큰이나 그런게 align이 안되어있다.
- 따라서 이를 해결해주는게 CTC 을 통한 loss 설계이고
- 인퍼런스시, 디코딩을 뒷단에 붙여줘서 제대로된 텍스트가 떨궈지도록 하는 컨셉이다
- CTC랑 언어모델이 vocab이 얼라인이 안되어있는 문제가 있는게, 이 방법의 단점이고 추후 후속작들에서 이런 문제들이 해결되는거 같음
- 결론: 연속 표현을 입력으로, 양자화된 표현을 타겟으로 사용하는 것이 최적
- 이런 결과도 있다고함
Abstract
우리는 처음으로, 음성 오디오만을 이용해 강력한 표현을 학습한 뒤 전사된 음성으로 미세 조정(fine-tuning)하는 방식이, 가장 우수한 준지도 학습(semi-supervised) 방법들을 능가하면서도 개념적으로 더 단순하다는 것을 보인다. wav2vec 2.0은 잠재 공간(latent space)에서 음성 입력을 마스킹하고, 잠재 표현을 양자화한 결과를 대상으로 하는 대조 학습(contrastive task)을 풀도록 설계되었으며, 이 두 과정은 동시에 학습된다.
Librispeech 전체 라벨 데이터를 사용한 실험에서 깨끗한/어려운(clean/other) 테스트 세트에서 각각 1.8/3.3의 단어 오류율(WER)을 달성했다. 라벨 데이터 양을 1시간으로 줄였을 때에도 wav2vec 2.0은 이전 최신 기법을 100배 적은 라벨 데이터로 능가하며, 100시간 서브셋에서 새로운 성능을 기록했다. 단 10분의 라벨 데이터와 53,000시간의 라벨 없는 음성 데이터로 사전학습(pre-training)만 해도 4.8/8.2의 WER을 달성했다. 이는 소량의 라벨 데이터만으로도 음성 인식이 가능함을 보여준다.
Introduction
신경망은 대량의 라벨링된 학습 데이터로부터 큰 혜택을 얻는다. 하지만 많은 상황에서 라벨링된 데이터를 확보하는 것은 라벨이 없는 데이터보다 훨씬 어렵다. 현재의 음성 인식 시스템은 수천 시간에 달하는 전사된 음성을 필요로 하지만, 이는 전 세계에서 사용되는 약 7,000여 개 언어 대부분에는 존재하지 않는다. 오직 라벨링된 예시만으로 학습하는 방식은 인간의 언어 습득 과정을 반영하지 못한다. 영아는 주변 성인의 말을 들으며 언어를 배우는데, 이는 음성에 대한 좋은 표현을 학습해야 하는 과정이다.
머신러닝에서는 자기지도학습(self-supervised learning)이 라벨이 없는 예시들로부터 일반적인 데이터 표현을 학습하고, 이후 라벨링된 데이터로 모델을 미세 조정(fine-tuning)하는 하나의 패러다임으로 부상했다. 이는 자연어 처리 분야에서 특히 성공적이었으며, 컴퓨터 비전에서도 활발한 연구 주제가 되고 있다.
이 논문에서는 원시 오디오 데이터로부터 표현을 자기지도학습 방식으로 학습하는 프레임워크를 제안한다. 우리의 접근법은 다층 합성곱 신경망을 통해 음성을 인코딩하고, 그 결과 생성된 잠재 음성 표현을 마스킹한다. 이는 마스크드 언어 모델링과 유사하다. 그런 다음, 이 잠재 표현들을 Transformer 네트워크에 입력하여 문맥화된 표현을 구축한다. 모델은 대조 학습 과제를 통해 학습되는데, 여기서 정답 잠재 표현을 방해 요소(distractor)들로부터 구분해야 한다.
훈련 과정의 일부로, 우리는 Gumbel Softmax를 활용해 잠재 표현을 이산적인 음성 단위로 학습한다. 이는 대조 과제에서 정답(target)을 표현하기 위한 것으로, 비양자화된 목표를 사용하는 것보다 더 효과적임을 발견했다. 라벨링되지 않은 음성 데이터로 사전 학습을 마친 후, 모델은 CTC(Connectionist Temporal Classification) 손실을 사용하여 라벨링된 데이터에서 미세 조정되고, 이후 다운스트림 음성 인식 과제에 활용된다.
2. 모델 (Model)
우리의 모델은 다층 합성곱 기반의 특성 인코더(feature encoder) 로 구성되며, 이는 원시 오디오 를 입력으로 받아 개의 시점에 대해 잠재 음성 표현 을 출력한다. 이 표현들은 Transformer 에 전달되어, 전체 시퀀스의 정보를 포착하는 문맥 표현 을 생성한다. 또한, 특성 인코더의 출력은 양자화 모듈을 거쳐 로 변환되며, 이는 자기지도 학습 목표에서 타깃 역할을 한다.
vq-wav2vec와 비교했을 때, 본 모델은 연속적인 음성 표현 위에 문맥 표현을 구축하고, 자기 주의(self-attention)를 통해 전체 잠재 표현 시퀀스의 종속성을 엔드-투-엔드 방식으로 포착한다.
특성 인코더(Feature encoder). 인코더는 시간 축 합성곱(temporal convolution), 층 정규화(layer normalization), GELU 활성 함수로 구성된 여러 블록으로 이루어진다. 입력되는 원시 파형은 평균 0, 분산 1로 정규화된다. 인코더의 전체 stride는 Transformer에 입력되는 시점 수 를 결정한다.
Transformer 기반 문맥 표현. 특성 인코더의 출력은 Transformer 아키텍처를 따르는 문맥 네트워크에 입력된다. 절대 위치 정보를 담는 고정 positional embedding 대신, 우리는 합성곱 층을 사용하여 상대적 위치 정보를 부여한다. 합성곱 출력은 GELU를 거쳐 입력에 더해지고, 이후 층 정규화가 적용된다.
양자화 모듈(Quantization module). 자기지도 학습을 위해, 특성 인코더 출력 는 곱셈 양자화(product quantization)를 사용하여 유한한 집합의 음성 표현으로 이산화(discretize)된다. 이는 여러 코드북(codebook)에서 양자화된 표현을 선택해 연결(concatenate)하는 방식이다. 코드북 수가 , 각 코드북 항목 수가 일 때, 선택된 항목들을 이어 붙인 후 선형 변환을 적용하여 를 얻는다.
우리는 Gumbel-Softmax를 활용해 코드북 항목을 미분 가능한 방식으로 선택한다. straight-through estimator를 사용하며, 는 로짓(logit)으로 매핑된다. 각 그룹 에서 -번째 항목을 선택할 확률은
로 계산된다. 여기서 는 온도(temperature)이며, , 이다. 순전파(forward pass)에서는 argmax로 코드워드를 선택하고, 역전파(backward pass)에서는 Gumbel-Softmax 출력의 실제 기울기를 사용한다.
(1) Noise (Gumbel noise)
-
그냥
softmax(logits)
만 쓰면 deterministic argmax입니다. -
학습 초반에는 어떤 코드북 벡터가 선택될지 결정적이어서, 탐색(exploration)이 거의 없음 → 몇 개 코드북만 계속 선택되고 나머지는 죽어버리는 "collapse" 현상 발생.
-
Noise를 넣으면 확률적 샘플링이 되어 다양한 코드북 항목을 골라보면서 학습합니다.
-
예: logits = [5.0, 1.0, 0.1] → softmax ≈ [0.99, 0.009, 0.001].
-
noise 없으면 항상 첫 번째 선택.
-
noise 있으면 두 번째, 세 번째도 가끔 뽑힐 수 있음 → 코드북이 골고루 학습될 기회가 생김.
-
-
(2) τ (temperature)
-
softmax 분포의 날카로움을 조절합니다.
-
예를 들어 logits = [2, 1]:
-
τ=1 → softmax = [0.73, 0.27]
-
τ=0.5 → softmax = [0.88, 0.12] (더 “one-hot”에 가까움)
-
τ=5 → softmax = [0.55, 0.45] (거의 균일, 탐색 ↑)
-
-
학습 초반에는 τ를 크게 해서 exploration ↑, 후반에는 τ를 줄여서 확실한 선택(exploitation).
-
이 annealing이 없다면 모델이 처음부터 특정 코드북으로만 수렴해버릴 수 있어요.
아래 코드들 참고
3 학습 (Training)
모델을 사전 학습(pre-train)하기 위해, 우리는 BERT의 마스크드 언어 모델링 [9]과 유사하게 **잠재 피처 인코더 공간(latent feature encoder space)**에서 일정 비율의 타임스텝을 마스크한다(§ 3.1). 학습 목표는 각 마스크된 타임스텝에 대해 방해 후보(distractors) 집합 안에서 올바른 **양자화된 잠재 음성 표현(quantized latent audio representation)**을 식별하는 것이다(§ 3.2). 이후 최종 모델은 라벨이 붙은 데이터에서 파인튜닝된다(§ 3.3).
3.1 마스킹 (Masking)
우리는 컨텍스트 네트워크에 입력하기 전에 특징 인코더 출력의 일부 타임스텝을 마스크하고, 이를 모든 마스크된 타임스텝에 공유되는 학습된 피처 벡터로 대체한다. 양자화 모듈의 입력은 마스크하지 않는다. 마스크 방법은 다음과 같다: 인코더가 출력한 잠재 음성 표현에서 무작위로 일정 비율 p
의 타임스텝을 시작점으로 선택하고, 선택된 각 시작점부터 연속된 M
개의 타임스텝을 마스크한다. 구간들은 겹칠 수 있다.
- 즉 context 의 출력에서 위처럼 마스킹을 하고 (마스킹이란 학습가능한 특정 마스킹벡터로 대체하는것)
- quantizer이서는 마스킹안함. quantizer의 출력이 레이블로 활용되기 때문에 noise입력에서 정상입력으로 복원하는 식으로 학습되는것
3.2 학습 목표 (Objective)
사전 학습 동안, 우리는 대조 학습 과제 Lm
을 풀어 음성 표현을 학습한다. 이 과제는 마스크된 타임스텝에 대해 올바른 양자화된 잠재 음성 표현을 방해 후보 집합 안에서 식별해야 한다. 추가적으로, 코드북 다양성 손실 Ld를 도입해 모델이 코드북 항목을 고르게 사용하도록 유도한다. 최종 손실은 다음과 같다:
여기서 α
는 조정 가능한 하이퍼파라미터다.
-
대조 손실 (Contrastive Loss):
마스크된 타임스텝t
에 대해 컨텍스트 네트워크 출력c_t
가 주어지면, 모델은 후보 집합Q_t
안에서 실제 양자화 표현q_t
를 식별해야 한다. 이 후보 집합은q_t
와 함께 동일 발화 내 다른 마스크된 타임스텝에서 균일 샘플링된K
개의 방해 요소를 포함한다. 손실 함수는 다음과 같다:여기서 유사도 함수는 코사인 유사도 이다.
-
다양성 손실 (Diversity Loss):
대조 과제는 코드북이 양성과 음성 예시를 표현하는 데 의존한다. 따라서Ld
는 모델이 코드북 항목을 고르게 사용하도록 유도한다. 각 코드북 그룹의 소프트맥스 확률 분포의 엔트로피를 최대화하여, 모든 코드북 엔트리가 균등하게 사용되도록 한다:
(자연로그 사용, G=1, V=4로 간단화)
-
어떤 배치에서의 softmax 출력(시간축별) 예시:
-
위치 A: [0.7, 0.1, 0.1, 0.1]
-
위치 B: [0.6, 0.2, 0.1, 0.1]
-
위치 C: [0.5, 0.2, 0.2, 0.1]
-
-
평균 mean(A,B,C) =
-
논문 식대로 를 계산하면(자연로그) 약
-
-
대비: 완전 균등 분포 이라면
-
-
→ 더 음수(즉 엔트로피가 더 크다)
-
=> 정리: 균등할수록 값은 더 음수가 되고, 그 결과 α·Ld가 전체 손실을 더 낮추므로 최적화가 균등 분포를 선호합니다. (숫자 예시는 논문 정의와 일치합니다.)
(참고로 Ld=0
이 되는 극단적 경우는 가 [1,0,0,...] 처럼 한 항목만 완전히 사용하는 경우 — 이건 엔트로피 0 → 바람직하지 않음)
즉 argmax로 코드북 벡터를 골라야하는 현재 방식에서는 균등하게 선택되게 될 것!
3.3 파인튜닝 (Fine-tuning)
사전 학습된 모델은 음성 인식을 위해 파인튜닝된다. 이를 위해 컨텍스트 네트워크 위에 무작위로 초기화된 **선형 투사층(linear projection)**을 추가하여 작업 어휘를 나타내는 C
개의 클래스로 매핑한다.
context network가 일종의 BERT같은 개념이 되는듯
예를 들어 Librispeech에서는 문자 단위 타깃을 위한 29개 토큰과 단어 경계 토큰을 사용한다. 모델은 **CTC 손실 [14]**로 최적화된다. 또한 학습 중 오버피팅을 늦추고 오류율을 크게 개선하기 위해 **SpecAugment [41]**의 변형을 적용하여 타임스텝과 채널을 마스크한다. 특히 라벨이 적은 Libri-light 서브셋에서 성능 향상 효과가 크다.
2. CTC (Connectionist Temporal Classification)
CTC는 이런 정렬(align) 불명확성 문제를 해결하는 알고리즘이에요.
-
아이디어:
-
네트워크는 매 타임스텝마다 “어휘 집합 + blank 토큰” 분포를 출력.
-
정답 시퀀스에 대해 가능한 모든 **정렬 경로(path)**를 고려.
-
예: 정답이 "HI"라면, 네트워크 출력이
[H,H,blank,I,I]
나[blank,H,blank,I]
등 여러 path가 가능.
-
-
모든 가능한 path의 확률을 합쳐 정답 시퀀스의 확률을 정의.
-
손실은 정답 시퀀스의 음수 로그우도(-log likelihood).
-
→ 즉, CTC는 정렬을 직접 찾지 않고 “모든 가능한 정렬의 합”으로 학습합니다.
3. Librispeech 레이블 (토큰 단위)
-
Librispeech에서는 토큰 단위를 **문자(character)**로 선택했어요.
-
26개 알파벳 + 아포스트로피(’) + 공백 + 특수 “word boundary” 토큰.
-
총 29개 문자 + blank = 30 클래스 정도.
-
-
따라서 컨텍스트 출력은 각 타임스텝에서 이 30개 클래스 중 하나의 분포를 출력합니다.
4. SpecAugment (파인튜닝에서 쓰이는 데이터 증강)
-
음성 인식 학습은 쉽게 오버피팅돼요, 특히 라벨이 적을 때.
-
그래서 **SpecAugment [41]**이라는 증강 기법을 사용합니다.
-
wav2vec 2.0에서는 파인튜닝 중 컨텍스트 입력 특징에 마스크를 추가하는 변형을 씁니다:
-
Time masking: 랜덤하게 연속된 타임스텝 구간을 마스크 (특수 벡터로 대체).
-
Channel masking: 특징 차원(예: 768차원 중 일부)을 골라 일정 구간을 0으로 만듦.
-
-
효과: 모델이 특정 구간에만 의존하지 않고 더 일반적인 패턴을 학습 → WER 개선.
4.1 데이터셋 (Datasets)
비라벨(unlabeled) 데이터로는 전사(transcription)가 없는 Librispeech 코퍼스(LS-960, 960시간 분량의 오디오) 또는 LibriVox의 오디오 데이터를 사용한다(LV-60k). 후자의 경우 [27]의 전처리 과정을 따르며, 그 결과 총 53.2k 시간의 오디오가 만들어진다.
우리는 다섯 가지 라벨링 데이터 설정에서 파인튜닝을 수행한다:
-
960시간 분량의 전사된 Librispeech 전체,
-
100시간 분량의 train-clean-100 서브셋,
-
그리고 원래 Librispeech에서 추출된 Libri-light 제한된 자원 환경용 서브셋: train-10h (10시간 라벨링), train-1h (1시간 라벨링), train-10min (10분 라벨링).
이 분할들에 대해서는 Libri-light 평가 프로토콜을 따르고, 표준 Librispeech dev-other/clean 및 test-clean/other 세트로 평가한다.
추가적으로, 우리는 TIMIT 데이터셋 [13]에서 음소 인식(phoneme recognition)을 위해 사전 학습된 모델을 파인튜닝한다. TIMIT은 약 5시간 분량의 오디오와 세밀한 음소 라벨을 포함한다. 표준 train, dev, test 분할을 사용하며, 표준 프로토콜에 따라 음소 라벨을 39개 클래스로 축소한다.
Pretraining
- Librispeech (LS-960): 전사가 없는 960시간 오디오.
- LibriVox (LV-60k): [27] 전처리 후 53.2k 시간 오디오.
- Librispeech 전사본 전체: 960h
- Librispeech clean-100: 100h
- Libri-light subsets: 10h, 1h, 10min
- TIMIT: 5h (39개 음소 클래스)
4.2 사전 학습 (Pre-training)
모델은 **fairseq [39]**으로 구현하였다.
-
마스킹 전략:
전체 타임스텝의 를 시작 인덱스로 샘플링하고, 각 인덱스 뒤의 타임스텝을 마스크한다.
이로 인해 전체 타임스텝의 약 **49%**가 마스크되며, 평균 span 길이는 14.7(약 299ms)이다. (자세한 내용은 부록 A 참고) -
피처 인코더:
7개 블록으로 구성되며, 각 블록은 512 채널의 시계열(convolution) 층, stride (5,2,2,2,2,2,2), 커널 크기 (10,3,3,3,3,2,2)를 가진다.
출력은 49Hz 주파수(약 20ms stride)와 receptive field 25ms를 갖는다.
상대적 위치 임베딩을 위한 합성곱 계층은 커널 크기 128, 그룹 16을 사용한다. -
모델 구성:
-
BASE: Transformer 블록 12개, 모델 차원 768, FFN 차원 3,072, 어텐션 헤드 8개.
-
오디오 250k 샘플(15.6초)을 crop하여 배치를 구성, GPU당 1.4M 샘플 이하.
-
총 64개 V100 GPU로 1.6일 동안 학습. 총 배치 크기는 1.6시간.
-
-
LARGE: Transformer 블록 24개, 모델 차원 1,024, FFN 차원 4,096, 어텐션 헤드 16개.
-
오디오 320k 샘플(20초)을 crop, GPU당 1.2M 샘플 이하.
-
128개 V100 GPU에서 Librispeech는 2.3일, LibriVox는 5.2일 학습. 총 배치 크기는 2.7시간.
-
-
드롭아웃은 Transformer, 피처 인코더 출력, 양자화 모듈 입력에서 0.1.
-
LayerDrop 비율: BASE는 0.05, LARGE는 0.2, 단 LV-60k에서는 LayerDrop 없음.
-
-
최적화:
Adam [29]을 사용, 학습률은 업데이트의 첫 8% 동안 warmup 후 피크에 도달, 그 뒤 선형적으로 감소.-
BASE: 피크 학습률 , 총 400k 업데이트.
-
LARGE: 피크 학습률 , 총 250k 업데이트.
-
LV-60k에서 LARGE: 600k 업데이트.
-
-
세부 설정:
-
다양성 손실(식 2)의 가중치 .
-
양자화 모듈: , 이론적 최대 코드워드 102.4k.
-
엔트리 크기: BASE는 128, LARGE는 384.
-
Gumbel softmax 온도 : BASE는 2→0.5, LARGE는 2→0.1로 점진적으로 감소(업데이트마다 0.999995 곱).
-
대조 손실(식 3)의 온도 .
-
작은 Librispeech 데이터셋에서는 피처 인코더 마지막 층 활성화에 L2 정규화를 적용하고, 인코더 gradient는 10배 축소.
-
이 경우 인코더에 layer normalization을 쓰지 않고, 원시 파형 대신 첫 인코더 출력에 정규화를 적용.
-
대조 손실에서는 distractor 사용.
-
검증 세트에서 이 가장 낮은 체크포인트를 최종 모델로 선택.
-
4.3 파인튜닝
사전 훈련 후, 학습된 표현을 라벨링된 데이터에서 파인튜닝하고 트랜스포머 위에 무작위로 초기화된 출력층을 추가하여 문자(Librispeech/Libri-light) 또는 음소(TIMIT)를 예측합니다. Libri-light의 경우, 모든 부분집합에 대해 두 가지 다른 학습률(2e-5와 3e-5)로 세 개의 시드를 훈련시키고, 공식 4-gram 언어 모델(LM)로 디코딩한 dev-other 부분집합에서 가장 낮은 WER을 달성한 구성을 선택합니다(빔 50, 고정된 모델 가중치, LM 가중치 2, 단어 삽입 페널티 -1). 라벨링된 960시간 부분집합의 BASE 모델에 대해서는 1e-4의 학습률을 사용합니다.
Adam으로 최적화하며 삼단계 학습률 스케줄을 사용합니다: 처음 10%의 업데이트 동안 학습률을 워밍업하고, 다음 40% 동안 일정하게 유지한 후, 나머지 기간 동안 선형적으로 감소시킵니다. BASE는 GPU당 3.2M 샘플의 배치 크기를 사용하고 8개의 GPU에서 파인튜닝하여 총 배치 크기는 1,600초입니다. LARGE는 각 GPU에서 1.28M 샘플을 배치하고 24개의 GPU에서 파인튜닝하여 유효 배치 크기는 1,920초입니다. 처음 10k 업데이트 동안은 출력 분류기만 훈련되고, 그 후 트랜스포머도 업데이트됩니다. 파인튜닝 중에는 특징 인코더가 훈련되지 않습니다. 부록 B에 자세히 설명된 SpecAugment[41]와 유사한 전략으로 특징 인코더 표현을 마스킹합니다.
4.4 언어 모델과 디코딩
우리는 두 가지 유형의 언어 모델(LM)을 고려합니다: 4-gram 모델과 Librispeech LM 코퍼스에서 훈련된 트랜스포머[3]입니다. 트랜스포머 LM은 [51]과 동일하며 20개의 블록, 모델 차원 1,280, 내부 차원 6,144, 16개의 어텐션 헤드를 포함합니다. 베이지안 최적화를 통해 언어 모델의 가중치(구간 [0, 5])와 단어 삽입 페널티([−5, 5])를 튜닝합니다³: 4-gram LM에 대해서는 빔 500으로, 트랜스포머 LM에 대해서는 빔 50으로 128번의 시도를 실행하고 dev-other에서의 성능에 따라 최적의 가중치 세트를 선택합니다.
wav2vec이 예측한 캐릭터를 통해 CTC collapse을 통해 후보 텍스트를 생성하여 점수를 매김
- 최종 점수 = α × 음향점수 + β × 언어모델점수 + γ × 단어길이페널티
- 음향점수는 CTC로 후보 텍스트가 생성될 확률을 계산한거 같음
- Librispeech로 학습된 언어모델로다가, 언어모델점수를 계산. 아마 생성확률을 곱한거 일거 같음
- 음향모델은 알파벳 단위로 학습되는데, 언어모델은 토큰단위이기 때문에 어휘 불일치 문제가 있다함
- "Note that the vocabulary of our acoustic model (characters) does not match the vocabulary of the LM (words) which delays feedback from the LM and is likely to be detrimental. Most recent work [51, 58, 17, 42] uses the better performing word pieces [50] for both models."
테스트 성능은 n-gram LM에 대해서는 빔 1,500으로, 트랜스포머 LM에 대해서는 빔 500으로 측정됩니다. [44]의 빔 서치 디코더를 사용합니다.
5 결과 (테이블 기반 상세 분석)
5.1 저자원 라벨링 데이터 평가 (Table 1)
극저자원 설정 - 10분 라벨링 데이터
성능 비교 (test-clean/other WER):
- Discrete BERT: 16.3/25.2
- BASE (LS-960): 6.9/12.9 (Transformer LM 사용시)
- LARGE (LV-60k): 4.8/8.2 (Transformer LM 사용시)
핵심 발견: 48개 녹음(평균 12.5초)만으로 실용적인 음성 인식 가능
1시간 라벨링 데이터
성능 개선 패턴:
- Discrete BERT: 9.0/17.6
- LARGE (LV-60k): 2.9/5.8
- 상대적 개선: 약 68%/67% WER 감소
100시간 clean subset - 기존 방법과의 비교
기존 최고 성능:
- Noisy student (기존 SOTA): 4.2/8.6
- Iter. pseudo-labeling: 5.59/8.95
wav2vec 2.0 성능:
- LARGE (LV-60k): 2.0/4.0
- 상대적 개선: 52%/53% WER 감소
데이터 효율성 비교:
- 10시간 라벨링으로 2.6/4.9 WER → 여전히 기존 100시간 방법보다 우수
- 1시간 라벨링으로도 2.9/5.8 WER → 100배 적은 데이터로 경쟁력 있는 성능
5.2 고자원 데이터 평가 (Table 2)
960시간 전체 Librispeech 결과
wav2vec 2.0 성능:
- LARGE (LV-60k): 1.8/3.3 WER (test-clean/other)
기존 방법 비교:
- Supervised 최고 (Conformer): 1.9/3.9
- Semi-supervised 최고 (Noisy student): 1.7/3.4
아키텍처 제약:
- 기본 아키텍처만으로 2.1/4.6 WER ("LARGE - from scratch")
- 사전 훈련이 아키텍처 한계를 극복
성능 제약 요인 (논문 명시):
- 음향 모델 어휘(문자) ≠ 언어 모델 어휘(단어)
- word piece 사용시 더 나은 성능 기대 가능
5.3 TIMIT 음소 인식 (Table 3)
절대적 성능:
- LARGE (LS-960): 7.4/8.3 PER (dev/test)
기존 방법 대비:
- 이전 최고 (vq-wav2vec): 9.6/11.6 PER
- 상대적 개선: 23%/29% PER 감소
5.4 핵심 기술적 발견 (Table 4)
아키텍처 설계 검증:
- Baseline (연속 입력, 양자화 타겟): 7.97 WER
- 양자화 입력, 양자화 타겟: 12.18 WER (성능 저하)
- 연속 입력, 연속 타겟: 8.58 WER (차선책)
결론: 연속 표현을 입력으로, 양자화된 표현을 타겟으로 사용하는 것이 최적
이 결과들은 자기 지도 학습이 극저자원부터 고자원까지 모든 설정에서 기존 방법을 크게 앞서며, 특히 라벨링 데이터가 제한적일 때 혁신적인 성능 향상을 보임을 입증합니다.
6 결론
우리는 원시 파형의 잠재 표현을 마스킹하고 양자화된 음성 표현에 대한 대조 과제를 해결하는 음성 표현의 자기 지도 학습 프레임워크인 wav2vec 2.0을 제시했다. 우리의 실험은 음성 처리를 위한 라벨링되지 않은 데이터에서의 사전 훈련의 큰 잠재력을 보여준다: 단 10분의 라벨링된 훈련 데이터만을 사용할 때, 즉 평균 12.5초의 48개 녹음만으로도 Librispeech의 test-clean/other에서 4.8/8.2 WER을 달성한다.
우리의 모델은 잡음이 있는 음성에 대해 전체 Librispeech 벤치마크에서 새로운 최고 성능을 달성하는 결과를 이뤄냈다. clean 100시간 Librispeech 설정에서 wav2vec 2.0은 100배 적은 라벨링된 데이터를 사용하면서도 이전 최고 결과를 능가한다. 이 접근법은 대량의 라벨링된 데이터가 사용 가능할 때도 효과적이다. 우리는 seq2seq 아키텍처와 word piece 어휘로 전환함으로써 성능 향상을 기대한다.
Reference
댓글
댓글 쓰기