
Boostrap vs Distilation
Boostrap 관련 포스팅
- SimCLR rivew https://kyujinpy.tistory.com/39
- moko review https://dhk1349.tistory.com/14
- BYOL review https://kyujinpy.tistory.com/44
사전학습 데이터 두가지
오디오 SSL 모델에서의 구성 요소:
입력 데이터:
1) Raw waveforms: wav2vec 2.0 [Baevski et al., 2020], data2vec.
2) Mel spectrograms: 대부분의 모델(EAT 포함)이 사용.
사전 학습 목표(Pretext Tasks):
사전 학습 목적(Objectives):
EAT의 설계 목표

1. 입력 데이터 처리: 패치 임베딩 (Patch Embedding)
처리과정
- padding 된 뒤 형태
- 예) 128x128
- 2D CNN을 사용하여 스펙트로그램을 패치 단위로 분할.
- CNN의 커널 크기와 스트라이드를 동일하게 설정해 패치 간의 독립성을 유지.
- 예) kernel size=16x16, stride=16
->8x8x768- Flatten 한 뒤 형태
- : 패치 개수 (스펙트로그램의 면적을 커널 크기로 나눔).
- : 임베딩 차원(패치당 특징 크기).
- transformer에서 사용하는 형식으로 맞춰주기 위해 Flatten
- 예) -> 64x768
- Fixed positional Encoding
- 패치에는 고유한 시간과 주파수 위치가 존재하므로, Transformer가 패치 간의 순서를 이해하도록 위치 정보를 제공.
- 1D 고정 위치 임베딩(Fixed Positional Encoding)을 사용하여 Xp에 위치 정보를 추가.
2. Utterance-Frame Objective(UFO)
EAT의 핵심 학습 전략은 발화 수준(utterance-level)과 프레임 수준(frame-level) 손실을 통합하여 학습하는 것.
->오디오 데이터의 전역(global) 및 로컬(local) 정보를 동시에 학습하는 것을 목표로 함
발화 수준(utterance-level) 손실
- 교사 모델(teacher model)의 타겟 생성 ()
- input: complete input patch embedddings
- 교사 모델(teacher model)의 Top-k(마지막 k개) Transformer 레이어 출력을 평균하여 생성된 맥락화된(contextualized) 표현 .
- 학생 모델(student model)의 출력 ()
- input은 가시적인 패치(마스크되지 않은 패치)
- cls token (초기화된 벡터)이 Transformer의 최종 레이어에서 CLS 토큰은 전체 입력 데이터의 전역 문맥을 학습한 상태로 출력
->
->는 학생 모델이 가시적인 패치를 처리한 결과 생성된 발화 수준의 전역 표현(utterance-level global representation)을 나타낸다.(by self-attention)- 발화 수준(utterance-level) 손실
- 생성
: 에서 패치 차원(P)에 대해 평균을 계산한 값으로, 발화 수준(utterance-level)의 전역 정보를 대표하는 하나의 임베딩 벡터- 와 사이 MSE loss계산
- 식:
로컬 프레임 수준(local Frame-level) 손실(MAE method 차용)
- student encoder output representations 가 원래 시퀀스에서 마스크 토큰과 결합(merged)
- lightweight CNN decoder를 사용해 마스킹된 위치에서 average features 를 예측
- masking 된 패치의 예측값 과 타겟값 사이 MSE loss
- 식
-> 최종 UPO loss
:
3. Masking Strategies in Pre-training
역 블록 마스킹(Inverse Block Masking)
기존 1D 랜덤 마스킹(->PxE) 대신, 시간-주파수 간의 상관성을 유지하는 2D 마스킹 방식(->TxFxE) 채택.
- 작동 원리:
- 처음에 모든 패치를 마스킹.
- 블록 단위로 일부 패치를 복원하여, 마스킹된 임베딩 수가 목표 마스킹 비율(80%)에 도달하도록 설정.
- 이때 블록은 패치 그룹의 크기를 말함
- ex) 2x2 -> 4개의 패치
- 1D 랜덤 마스킹과 비교:
- 2D 블록 단위로 패치를 복원하므로, 시간-주파수 영역에서의 상관성(correlation)이 유지
- given patch embedding 에 대해 1D random masking 과 달리, 로 reshape한 뒤 T,F두 차원에 대한 masking 적용
-> This maskmaintains correlation in both time and frequency dimensions, where T'= T /S and F'= F/S.
Multi-mask Approach
- 배경) 교사 모델과 학생 모델의 계산 부담 차이:
- 교사 모델:
전체 패치 임베딩을 처리해야 하므로 계산 자원이 더 많이 필요.
이는 학습 속도를 제한하는 요인이 될 수 있음.- 학생 모델:
가시적 패치(마스킹되지 않은 패치)만을 처리하므로 계산량이 상대적으로 적음.-> 결국 교사 모델이 1번 출력될 때, 학생모델은 여러 형태의 데이터를 입력받아 출력시켜서 선생 모델의 계산 반복 횟수를 줄이는 것! (다 대 일 구조)
- Multi-mask Approach의 작동 방식
- 동일한 스펙트로그램 패치에 대해 서로 다른 마스킹 변형을 생성.
예: 80%의 마스킹 비율을 유지하면서, 각 변형에서 마스킹된 블록의 위치가 다름.- 다중 클론 마스크 임베딩 생성: 동일한 입력 데이터(스펙트로그램)에서 생성된 다양한 마스킹 변형을 "클론(masked clones)" 형태로 생성.
예를 들어, 하나의 스펙트로그램 데이터에서 k개의 마스킹 변형을 생성.- 생성된 여러 마스킹 변형 데이터를 학생 모델에 동시에 입력.
이 데이터는 병렬 처리되어 한 번의 학습 반복에서 다양한 마스킹된 데이터를 동시에 학습 가능.
- Multi-mask Approach의 장점
- 학습 속도 향상:
병렬 처리를 통해 학습 반복(iteration) 당 처리되는 데이터 양 증가.
동일한 학습 시간 내에 더 많은 데이터를 처리하여 학습 속도 향상.- 데이터 활용도 증대:
동일한 입력 데이터를 다양한 마스킹 변형으로 활용하므로 데이터 다양성이 증가.
모델이 동일 데이터에 대해 다양한 맥락(context)을 학습하도록 유도.- 학습 효율성 극대화:
학생 모델의 계산 부담은 크게 증가하지 않으면서, 다양한 입력 패턴을 동시에 학습 가능.->결과적으로 모델이 더 강건하고 일반화된 표현을 학습할 수 있음.
τ 값을 선형적으로 증가시키는 전략을 채택.
- 초기 학습 단계에서는 더 높은 유연성과 랜덤성을 제공하고,
- 학습이 진행될수록 τ는 1에 가까워지며, 더 안정적인 학습이 가능해짐.
미세 조정 시 적용되는 데이터 증강 기법:
- SpecAug [Park et al., 2019]: 스펙트로그램의 시간 및 주파수 영역에 마스킹 적용.
- mixup [Zhang et al., 2017]: 두 스펙트로그램 데이터를 혼합하여 학습.
- droppath [Huang et al., 2016]: 경로를 무작위로 제거하여 학습.
- audio rolling: 오디오 신호를 시간 축에서 회전.
- random noise: 스펙트로그램에 랜덤 노이즈 추가.