# 03 — Học biểu diễn, self-supervised learning và JEPA

**Bản đồ lớp 3, cập nhật 11/10/2026.** Phần dưới định vị các khái niệm; cơ chế tính tay, bài tập và kiểm chứng nguồn nằm trong [bộ mười bài học sâu](lop-03-ssl-jepa/00-BAT-DAU-LOP-03.md). Mức đọc nguồn của lớp được cập nhật ở [sổ nguồn](lop-03-ssl-jepa/11-SO-DANG-KY-NGUON.md), thay cho trạng thái abstract-only cũ khi dùng các biến thể trong chương này.

| Muốn hiểu sâu | Điểm đọc |
|---|---|
| Information, accessibility, sufficiency và invariance | [Bài 1](lop-03-ssl-jepa/01-BIEU-DIEN-PHUC-VU-TASK.md) |
| Target types, loss reduction và gradient | [Bài 2](lop-03-ssl-jepa/02-TAXONOMY-TARGET-LOSS.md) |
| CPC, wav2vec2, HuBERT, WavLM, BEST-RQ | [Bài 3](lop-03-ssl-jepa/03-SPEECH-UNITS-CONTRASTIVE.md) |
| AudioMAE và data2vec | [Bài 4](lop-03-ssl-jepa/04-RECONSTRUCTION-CONTINUOUS-TARGET.md) |
| BYOL, SimSiam, VICReg và Barlow Twins | [Bài 5](lop-03-ssl-jepa/05-SELF-DISTILLATION-ASYMMETRY.md) |
| Một Audio-JEPA training step từ tensor đến EMA | [Bài 6](lop-03-ssl-jepa/06-JEPA-TRAINING-STEP.md) |
| Geometry và uncertainty của masking | [Bài 7](lop-03-ssl-jepa/07-MASKING-THIET-KE-NHIEM-VU.md) |
| Collapse, rank, variance và population | [Bài 8](lop-03-ssl-jepa/08-COLLAPSE-DIAGNOSTICS.md) |
| Encoder downstream, latent error, energy/probability | [Bài 9](lop-03-ssl-jepa/09-ENCODER-ERROR-SCORING.md) |
| Các biến thể mới và mức bằng chứng | [Bài 10](lop-03-ssl-jepa/10-BIEN-THE-VA-DOC-BANG-CHUNG.md) |

## 1. Representation là gì, và “tốt” nghĩa là gì?

Encoder $f_\theta$ biến input $x$ thành $h=f_\theta(x)$. Một representation tốt phải giữ thông tin giúp task và cho phép một downstream model truy cập thông tin đó với dữ liệu/compute phù hợp.

Ba câu hỏi riêng:

1. **Information:** embedding có chứa cue không?
2. **Accessibility:** classifier đơn giản có lấy cue đó ra được không?
3. **Stability:** cue có tiếp tục hữu ích dưới domain shift không?

ASR muốn phân biệt từ và âm vị; speaker verification muốn identity; deepfake detection muốn quá trình tạo/biến đổi. Cùng một phép invariance có thể giúp task này và hại task kia.

Ví dụ: làm embedding bất biến với biến đổi phổ nhẹ có thể giúp nhận diện cùng câu qua micro khác. Nhưng nếu dấu synthesis là sai khác phổ nhẹ, ta có thể đang dạy encoder xóa bằng chứng cần dùng.

**Invariance** là đầu ra gần giữ nguyên dưới một biến đổi; **equivariance** là đầu ra biến đổi có cấu trúc tương ứng. Detection không nhất thiết cần bất biến với tất cả nuisance ở mọi layer; model có thể dùng thông tin channel để điều chỉnh cách đọc artifact.

## 2. Taxonomy SSL theo các trục độc lập

SSL tạo supervision từ chính dữ liệu hoặc một quy trình tự động. “Không có human label” không có nghĩa không có inductive bias, target hay nguy cơ leakage.

| Trục | Các lựa chọn |
|---|---|
| Target chứa gì? | Signal values / discrete IDs / soft distributions / continuous features / relations |
| Target từ đâu? | Input / quantizer / offline clustering / fixed teacher / EMA teacher / current encoder |
| Context thấy gì? | Toàn input có mask / chỉ visible tokens / view augmentation / modality khác / quá khứ |
| Quan hệ học gì? | Reconstruct / discriminate / match views / predict masked region / predict future |
| Loss gì? | MSE / Huber / cosine / cross-entropy / KL / contrastive / distribution regularization |
| Điều gì chặn nghiệm hằng? | Negatives / fixed informative targets / asymmetry / teacher dynamics / variance-distribution constraints |
| Dữ liệu và budget? | Speech/general audio, giờ unique, samples seen, steps, model scale |

“Contrastive” là cấu trúc loss/quan hệ mẫu; “discrete target” là kiểu target. Một model có thể thuộc cả hai. “Non-contrastive” cũng không đồng nghĩa “JEPA”.

## 3. Các họ quan trọng và quan hệ của chúng

| Họ / ví dụ | Target và cách học | Điểm phân biệt |
|---|---|---|
| Autoencoder / MAE / AudioMAE | Giá trị input ở vùng bị che | Loss trong input space; decoder phục hồi signal representation |
| CPC / wav2vec2 | Chọn positive target giữa negatives; wav2vec2 dùng quantization | Contrastive discrimination, thường kèm diversity term |
| HuBERT | Cluster ID ở vị trí bị che | Hard pseudo-labels từ clustering; không cần contrastive negatives cho loss chính |
| WavLM | Masked-unit prediction với denoising/mixing | Objective và training recipe nhắm nhiều speech tasks |
| BYOL | Match representation giữa views, predictor và EMA target | Self-distillation/invariance; không chỉ là masked region prediction |
| data2vec | Predict contextualized continuous teacher features từ masked input | Latent prediction đã tồn tại trong speech trước Audio-JEPA |
| I-JEPA / Audio-JEPA | Predict representations của target regions từ context | Encoder–predictor decomposition và thiết kế context/target |
| BEST-RQ | Fixed random projection/codebook tạo hard IDs; masked CE | Quantizer không học và không phải offline speech clustering |
| BEST-RQ-2 | Fixed random patch IDs; visible-only ViT → predictor → categorical head | Encoder–predictor decomposition không bắt buộc continuous target hoặc EMA |
| Hybrid | Kết hợp nhiều target/loss | Cần ablation từng thành phần, không chỉ đặt tên hybrid |

Nguồn cốt lõi: [wav2vec2](https://arxiv.org/abs/2006.11477), [HuBERT](https://arxiv.org/abs/2106.07447), [WavLM](https://arxiv.org/abs/2110.13900), [data2vec](https://arxiv.org/abs/2202.03555), [BYOL](https://arxiv.org/abs/2006.07733), [AudioMAE](https://arxiv.org/abs/2207.06405). Lượt lớp 3 đọc method primary trên web/PDF và ghi version/sections ở sổ nguồn; không suy rằng mọi paper đều có bản PDF local.

## 4. Bốn loss cần hiểu

### Reconstruction loss

$$\mathcal L_{rec}=\frac{1}{|M|}\sum_{i\in M}\|D(f(x_C),i)-x_i\|^2.$$

$x_i$ là giá trị patch input. Cần tách target normalization, masked/unmasked positions và khả năng decoder. Reconstruction tốt chưa bảo đảm detection tốt; reconstruction kém cũng chưa chứng minh representation vô ích.

### Contrastive loss

Một dạng InfoNCE:

$$\mathcal L_{NCE}=-\log\frac{\exp(s(q,k^+)/\tau)}{\exp(s(q,k^+)/\tau)+\sum_{k^-}\exp(s(q,k^-)/\tau)}.$$

$k^+$ là positive, $k^-$ là negative; $\tau$ là temperature. Cách tạo positive/negative quyết định invariance. Nếu negative khác channel còn positive cùng channel, một nghiệm dễ là nhận ra channel.

### Hard-unit và soft-target prediction

Hard target: $\mathcal L=-\log p_\theta(c_i\mid x_C)$. Soft target distribution $q_i$: có thể dùng $D_{KL}(q_i\|p_\theta)$. Soft assignment giữ uncertainty giữa cluster, nhưng cluster vẫn có thể mã hóa nuisance.

### Latent regression

$$\mathcal L_{latent}=\frac{1}{|M|}\sum_{i\in M}d(\hat h_i,\operatorname{sg}(h_i^{target})).$$

$d$ có thể là squared distance, normalized MSE hoặc cosine-related loss. Công thức “MSE” trên paper không đủ để biết target centering, scale, dimensions hay gradients trong implementation.

## 5. Giải phẫu JEPA từng bước

JEPA là một họ kiến trúc dự đoán trong embedding space. Dưới đây là **teacher–student EMA formulation của I-JEPA/Audio-JEPA**, không phải định nghĩa bắt buộc cho mọi biến thể mang tên JEPA.

1. Chuyển input thành patch tokens, chọn context $C$ và target positions $M$.
2. **Context encoder** thấy context, tạo $h_C=f_\theta(x_C)$.
3. **Predictor** nhận $h_C$ và thông tin vị trí cần dự đoán, tạo $\hat h_M=g_\phi(h_C,M)$.
4. **Target encoder** thấy full input, tạo $h^{target}=f_{\bar\theta}(x)$; chỉ lấy output ở $M$ để tính loss.
5. Backprop cập nhật $\theta,\phi$; stop-gradient chặn gradient qua target branch.
6. Cập nhật target weights bằng EMA:

$$\bar\theta_{t+1}=\tau_t\bar\theta_t+(1-\tau_t)\theta_{t+1}.$$

```mermaid
flowchart LR
    X[Spectrogram] --> C[Chọn visible patches]
    C --> E[Context encoder]
    E --> P[Predictor + target positions]
    X --> T[Target encoder: full input]
    T --> S[Chọn target embeddings + stop-gradient]
    P --> L[Latent loss]
    S --> L
    L -. gradient .-> P
    L -. gradient .-> E
    E -. EMA weights .-> T
```

Nguồn formulation và masking: [I-JEPA](https://arxiv.org/abs/2301.08243) và [Audio-JEPA](https://arxiv.org/abs/2507.02915).

**Formulation khác implementation.** Paper I-JEPA viết squared L2 nhưng pinned official train code dùng target LayerNorm + Smooth-L1. Audio-JEPA v2 viết squared vector L2, còn pinned release chọn target standardization + normalized MSE/cosine-related loss. Latest LR/WD scheduler values cũng khác paper; config/card mới hơn checkpoint file không chứng minh recipe training checkpoint. [Bài 6](lop-03-ssl-jepa/06-JEPA-TRAINING-STEP.md) và [crosswalk](lop-03-ssl-jepa/research/jepa-code-doi-chieu.md) ghi function/config/commit và giới hạn provenance. Audio-JEPA callback cập nhật EMA ở batch end, nên không đồng nhất batch với optimizer step khi chưa biết accumulation/trainer limits.

### Stop-gradient, EMA và predictor làm những việc khác nhau

| Thành phần | Vai trò | Không tự bảo đảm |
|---|---|---|
| Stop-gradient | Target không chạy theo gradient trực tiếp của loss | Target luôn chứa thông tin |
| EMA | Target thay đổi chậm, làm reference ổn định hơn | Không có collapse với mọi data/loss/config |
| Predictor | Tách representation của context khỏi nhiệm vụ dự đoán | Predictor lớn hơn luôn tạo encoder tốt hơn |
| Masking | Xác định thông tin bị thiếu và context được phép dùng | Không có local shortcut |

Teacher thấy full input là một phần thiết kế target, không phải label leakage theo nghĩa sử dụng test labels. Nhưng target **contextualized** có thể chứa thông tin từ cả input; phải đọc đúng định nghĩa khi giải thích model đang predict cái gì.

EMA $\tau$ gần 1 làm target chậm hơn. Với $\tau$ cố định, đóng góp cũ giảm theo $\tau^k$, half-life là $\log(0.5)/\log(\tau)$ steps. Đây là thang động lực học, không phải “memory length” tuyệt đối vì lịch EMA và encoder thay đổi liên tục.

## 6. Masking là thiết kế task, không chỉ phần trăm

| Trục masking | Lựa chọn | Điều nó thay đổi |
|---|---|---|
| Geometry | Random patches / contiguous blocks / time bands / frequency bands | Context dễ nội suy hay cần hiểu quan hệ xa |
| Scale | Một frame / phoneme-like / đoạn dài | Mức thông tin cần dự đoán |
| Coverage | Tỉ lệ visible/target, số target blocks | Độ khó và lượng supervision |
| Separation | Khoảng cách context–target, neighborhood removed | Khả năng dùng hàng xóm làm shortcut |
| Schedule | Fixed / curriculum / adaptive | Task thay đổi khi representation trưởng thành |
| Axis semantics | Time-aware / frequency-aware | Bias phù hợp hoặc không với audio |
| Train location | Input / token / intermediate-layer masks | Model thấy bao nhiêu signal trực tiếp |

SpecAugment của downstream và masking pretraining có thể giống hình thức che, nhưng mục đích khác: một bên regularize classifier; một bên định nghĩa target prediction task. Patch removal khỏi encoder cũng không giống điền zero vào spectrogram.

**Mask khó hơn không tự tốt hơn.** Nếu context không còn đủ thông tin, task chủ yếu đo bất định không thể giảm. Nếu task quá dễ, encoder có thể chỉ học local interpolation. Cần đo task difficulty cùng downstream utility.

## 7. Collapse, anisotropy và task mismatch

| Hiện tượng | Mô tả | Quan sát nên dùng |
|---|---|---|
| Complete collapse | Mọi input gần cho cùng embedding | Variance gần 0, cosine gần 1, probes kém |
| Dimensional collapse | Biến thiên chỉ nằm trong ít chiều | Spectrum/rank, variance từng chiều |
| Anisotropy | Nhiều vector tập trung quanh hướng chung | Cross-sample cosine, mean direction, spectrum |
| Token/position shortcut | Token phân biệt vị trí nhưng không phân biệt utterance | Token variance cao, utterance variance thấp |
| Task mismatch | Có thông tin cho task A, yếu cho task B | Nhiều probes và matched downstream evaluation |

Anisotropy xuất hiện trong nhiều representation hữu ích. So với vector ngẫu nhiên isotropic chỉ là một reference hình học, không phải tiêu chuẩn “khỏe” của mọi model.

Một counterexample cho loss: nếu context encoder và target encoder luôn tạo cùng vector $v$, predictor luôn trả $v$, latent matching loss có thể rất thấp. Không có thông tin về utterance mà vẫn thắng objective. **Loss giảm không đủ để đánh giá representation.**

### Các họ cơ chế chống collapse

- **Contrastive negatives:** tạo incentive phân biệt positive và negatives; equal logits cho loss $\log K$, nhưng không tự là bằng chứng mọi optimizer tránh được stationary collapse.
- **Informative fixed targets:** labels/quantizer/teacher không tự trôi theo student; vẫn cần kiểm target có thông tin gì.
- **Architectural/training asymmetry:** predictor, stop-gradient, normalization, teacher update; là recipe cần kiểm chứng.
- **Variance/covariance regularization:** kiểm soát spread và redundancy.
- **Distribution regularization:** ràng buộc phân phối theo projection/statistics.
- **Auxiliary tasks/anchors:** thêm mục tiêu giữ một loại thông tin.

[VICReg](https://arxiv.org/abs/2105.04906) tách invariance, variance và covariance thành các term. Nó giúp hiểu khác biệt giữa “match views” và “giữ representation có biến thiên”. Áp dụng một regularizer vào forensic task vẫn cần kiểm nó có giữ cue hay chỉ làm spectrum đẹp hơn.

### Bộ đo hợp lý hơn một scalar

Theo dõi token variance, utterance variance, cross-utterance cosine, spectrum/rank (centered và uncentered), cùng probes/task performance trên dữ liệu tách riêng. Ghi layer, pooling, normalization, sample count và dataset. Rank tối đa còn bị chặn bởi số hàng quan sát; không dùng rank của utterance batch 64 để mong đủ 768 chiều sau centering.

## 8. JEPA để học feature và JEPA để chấm anomaly là hai cách dùng

### Cách dùng trong manuscript SOICT

Pretraining JEPA đã làm trước. Downstream dùng **context encoder**, bỏ predictor và target encoder, học head bằng nhãn genuine/spoof. Vì vậy detection score không phải latent-prediction loss.

Frozen setting vẫn học layer weights, attentive statistics pooling và MLP nên không phải linear probe. Paper Audio-JEPA gốc dùng target encoder cho downstream evaluation; đó là convention khác với context encoder trong manuscript. [Bài 9](lop-03-ssl-jepa/09-ENCODER-ERROR-SCORING.md) truy dấu head, weighted CE và logit-difference score từ PDF.

### Predictor-error scoring

Một ý tưởng scoring là:

$$s_{err}(x)=\mathbb E_{M}\left[\frac{1}{|M|}\sum_{i\in M}d(\hat h_i,h_i^{target})\right].$$

Error cao không bảo đảm fake: noise, accent, disfluency hoặc kênh lạ cũng tăng error; synthesis sạch và đều có thể dễ đoán hơn genuine. Error còn phụ thuộc mask, scale, target geometry và predictor calibration. Error âm học không tự là likelihood ratio.

Nếu fine-tune encoder cho CE rồi dùng predictor cũ, predictor đang dự đoán trong latent space đã thay đổi. Đây là compatibility problem; cần mô tả rõ cả encoder, target và predictor dùng từ checkpoint nào.

One-class, unsupervised scoring và supervised detector dùng error features là ba setup riêng, với baseline và claim khác nhau.

## 9. Bản đồ các nhánh JEPA hiện nay

| Nhánh | Bài học về taxonomy | Giới hạn khi liên hệ detection |
|---|---|---|
| I-JEPA | Latent regions, context/target geometry | Image semantics không bằng audio forensics |
| V-JEPA / video JEPA | Feature prediction qua không gian–thời gian | Audio masked-region prediction không tự là world model hành động |
| A-JEPA | Curriculum và time-frequency-aware masking | Khác paper Audio-JEPA dùng trong dự án |
| Audio-JEPA | General-audio ViT, random spectrogram masking | Đây là checkpoint downstream của paper mình |
| GMM-Anchored JEPA | Continuous prediction được hỗ trợ bởi clustering anchor | Clustering cue có thể khác forensic cue |
| S-JEPA | JEPA-style encoder–predictor với soft GMM posterior target | Không gộp với EMA regression formulation cho mọi JEPA |
| GLaS-JEPA | Current-encoder targets và SIGReg, không separate EMA teacher | Bằng chứng speech-task chưa là bằng chứng deepfake-task |
| BEST-RQ-2 | Discrete targets nhưng decomposition contextualize–predict | Cần phân loại cả target và architecture |

Nguồn mới: [A-JEPA](https://arxiv.org/abs/2311.15830), [GMM-Anchored JEPA](https://arxiv.org/abs/2602.09040), [S-JEPA](https://arxiv.org/abs/2606.19398), [GLaS-JEPA](https://arxiv.org/abs/2609.37798), [BEST-RQ-2](https://arxiv.org/abs/2606.30700). Lượt lớp 3 đã đọc các method sections được ghi trong sổ nguồn: S-JEPA dùng single KL với GMM target đổi qua hai pha, GLaS-JEPA dùng shared current encoder + SIGReg, BEST-RQ-2 dùng masked CE trên random IDs. Resource existence, checkpoint provenance và forensic utility là các mức kiểm chứng riêng; không có kết quả detection được tái lập ở đây. Xem [bài 10](lop-03-ssl-jepa/10-BIEN-THE-VA-DOC-BANG-CHUNG.md).

## 10. Các cặp khái niệm phải phân biệt

| A | B | Khác nhau ở đâu? |
|---|---|---|
| Continuous target | Continuous audio input | Kiểu supervision khác kiểu dữ liệu |
| Non-generative objective | Không dùng decoder/predictor | Predictor vẫn có thể là một network lớn |
| Latent prediction | Density estimation | Matching error chưa là xác suất |
| EMA target encoder | Frozen teacher | Một bên đổi theo student, một bên cố định |
| Self-distillation | Human-supervised knowledge distillation | Nguồn target khác nhau |
| Good ASR feature | Good forensic feature | Task-relevant information khác nhau |
| Frozen encoder | Linear probe | Head frozen-mode có thể phi tuyến và khá mạnh |
| Joint embedding | Joint embedding predictive | Matching embeddings chưa đủ mô tả task prediction |

## 11. Tự kiểm tra

1. Vẽ các nhánh của JEPA và đánh dấu tham số nhận gradient.
2. Nếu bỏ EMA nhưng thêm distribution regularizer, còn có thể là một JEPA variant không?
3. Vì sao AudioMAE encoder không nhất thiết thiếu artifact chỉ vì reconstruction làm mượt?
4. Khi nào mask random có thể làm nhiệm vụ quá dễ?
5. Có thể có anisotropy cao mà linear probe rất tốt không?
6. Vì sao ASR improvement của S-JEPA/GLaS-JEPA không đủ chứng minh lợi ích detection?

Hiểu JEPA là hiểu **thiết kế thông tin**: context được phép thấy gì, target phải chứa gì, predictor được phép bỏ gì, và điều gì ngăn nghiệm vô nghĩa.

## 12. Ba ý niệm lý thuyết để học tiếp

**Sufficiency và bottleneck.** Representation $h$ đủ cho label $y$ khi nó giữ thông tin cần để dự đoán $y$ từ $x$. Nén input không tự giúp: nếu bottleneck bỏ cue phân biệt genuine/spoof thì classifier mạnh hơn cũng không khôi phục được. Ngược lại, giữ toàn bộ channel information không bảo đảm classifier biết dùng nó đúng cách. Information-bottleneck là một lăng kính cho trade-off này, không phải giải thích tự động cho mọi neural encoder.

**Predictability và identifiability.** Một target khó predict có thể do context thiếu thông tin, target nhiều nhiễu, hoặc predictor chưa đủ năng lực. Chỉ nhìn error không biết nguyên nhân nào. Tương tự, task có thể có nhiều nghiệm representation cùng loss nhưng khác usefulness. Đây là lý do phải kiểm probes/downstream và các đối chứng, không chỉ tối ưu pretraining loss.

**Energy và probability.** Latent distance có thể xem như một compatibility energy cho context–target. Nó chưa là normalized density của waveform hoặc xác suất genuine. Muốn dùng error như score detection, cần chứng minh distributions và threshold behavior. Có encoder–predictor không tự biến Audio-JEPA thành một world model có hành động, planning hoặc temporal dynamics; các khả năng đó cần task và evidence riêng.
