# Bài 9 — Diagnostics và đọc trọn recipe của paper

[Điểm vào](00-BAT-DAU-LOP-04.md) · Trước: [inference/scoring](08-INFERENCE-SCORING-FUSION.md) · Sau bài này: tự giải thích recipe rồi dùng [sổ nguồn](10-SO-DANG-KY-NGUON.md).

## Mục tiêu và tiền đề

Chọn phép phân tích phù hợp với câu hỏi, phân biệt quan sát với cơ chế, và trace detector của paper từ input đến update và score. Cần [cue/confound lớp 2](../lop-02-deepfake-bai-toan/08-CUE-CONFOUND-DOMAIN-SHIFT.md), [recipe lớp 3](../lop-03-ssl-jepa/14-HO-SO-RECIPE.md) và bài 1–8 lớp này. Protocol, uncertainty và lựa chọn metric học sâu ở lớp 5; ở đây chỉ xác định một phép đo cho phép phát biểu gì.

## 1. Bắt đầu từ câu hỏi, rồi mới chọn biểu đồ

| Câu hỏi | Phép phân tích | Có thể nói | Chưa đủ để nói |
|---|---|---|---|
| Nhãn/source/speaker có truy cập được từ H không? | Probe trên splits phù hợp | Head thuộc họ đã chọn khai thác được thông tin | Detector hiện tại đang dùng thông tin ấy |
| Đổi một yếu tố của input làm score đổi thế nào? | Paired perturbation/counterfactual | Độ nhạy dưới can thiệp cụ thể | Đã cô lập đúng một cue nếu nhiều yếu tố cùng đổi |
| Model đã học phụ thuộc thành phần nào? | Bỏ thành phần lúc inference, giữ weights | Tác động đối với model đã fit | Thành phần ấy là cần thiết cho mọi model có thể học |
| Không có thành phần ấy, hệ còn học được không? | Retrain ablation, ngân sách phù hợp | Khả năng bù trong recipe và budget đã kiểm | Inference model cũ không dùng thành phần |
| Hai representations có geometry gần nhau không? | CKA, spectrum/rank | Quan hệ theo phép đo geometry đã chọn | Cue forensic hoặc causal reliance giống nhau |
| Heatmap có phản ánh calculation không? | Gradient/attention + sanity checks | Độ nhạy/phân bổ theo phương pháp | Vùng sáng là vị trí fake hay nguyên nhân duy nhất |

Không dùng t-SNE như bằng chứng trực tiếp về unseen-generator generalization. Embedding nhìn tách lớp có thể phản ánh source; projection, subset và hyperparameters còn ảnh hưởng hình.

## 2. Ví dụ đã giải: decodable không đồng nghĩa được dùng

Cho representation $h=(c,n)$, trong đó c là cue nhãn, n là source. Dataset có đủ bốn tổ hợp $(c,n)\in\{0,1\}^2$; nhãn y=c. Detector đã fit có score $d=2c-1$, quyết định B khi d>0; không dùng n.

Source probe đọc coordinate thứ hai nên accuracy source bằng 100%. Tuy vậy, giữ c và đổi n từ 0 sang 1 thì d không đổi. Probe chứng minh **source truy cập được**; controlled intervention trên toy chứng minh detector này không phụ thuộc coordinate n. Trong audio thực, “đổi source” khó cô lập như đổi một coordinate, nên cần kiểm channel, content, speaker và alignment.

Probe mạnh quá có thể ghi nhớ labels/speaker IDs; probe yếu có thể bỏ sót thông tin phi tuyến. Phải ghi họ head, capacity, train data, split theo speaker/source, tuning budget và control. Hewitt–Liang nghiên cứu control tasks cho probes NLP; đó là nguồn cho tư duy kiểm soát capacity, không phải kết quả đã xác nhận trên Audio-JEPA. [Paper, §§2–3](https://aclanthology.org/D19-1275.pdf).

## 3. Ví dụ đã giải: inference ablation khác retrain ablation

Cho $h_1=h_2=c$, y=c, model $d=h_1+h_2-1$, quyết định B khi d>0, hai lớp cân bằng.

| Hệ | d khi c=0 | d khi c=1 | Accuracy toy |
|---|---:|---:|---:|
| Model gốc | −1 | 1 | 100% |
| Đặt h₁=0, giữ head và threshold | −1 | 0 | 50% |
| Bỏ h₁ rồi refit head thành 2h₂−1 | −1 | 1 | 100% |

Inference ablation gây lỗi vì model gốc đang phân chia contribution giữa hai coordinates. Retrain cho thấy h₂ đủ mang nhãn và head có thể bù. Không có mâu thuẫn giữa hai kết quả. Nếu threshold hoặc calibration cũng được refit sau ablation, phải ghi rõ: phép đo đã đổi thêm một thành phần.

Zeroing có thể tạo representation chưa từng thấy, đặc biệt trước LayerNorm. Bỏ layer khỏi weighted sum mà không chuẩn hóa lại weights thay đổi cả scale; chuẩn hóa lại cũng là một can thiệp khác. Chọn control theo câu hỏi, không tùy ý chọn bản dễ tạo performance drop.

## 4. Attention, saliency và geometry: mỗi loại có một giới hạn

Attention pooling weight không bằng causal importance. Với h₁=h₂, chuyển toàn weight từ token 1 sang token 2 vẫn giữ pooled output. Sau contextual encoder, một token còn chứa context của các token khác. Heatmap trên patch không tự là segment localization labels. Jain–Wallace thử permutation/adversarial attention với hidden states giữ nguyên trên NLP; không nên suy ra mọi attention ở mọi kiến trúc đều vô ích. [Method §4.2](https://aclanthology.org/N19-1357.pdf).

Gradient $\partial d/\partial x$ đo độ nhạy cục bộ của score đã chọn; gradient của sigmoid có thể nhỏ vì saturation. Ví dụ d=10x: tại x=1, $\partial d/\partial x=10$, còn $\partial\sigma(d)/\partial x=10\sigma(10)[1-\sigma(10)]\approx0,000454$. Một bản đồ gradient nhỏ không chứng minh input vô ảnh hưởng. Đổi đơn vị waveform, baseline và normalization của heatmap cũng đổi hình hoặc độ lớn.

Adebayo et al. dùng randomization của parameters và training labels để kiểm explanations có nhạy với model/data đã học hay không. Đây là phép kiểm phương pháp trên image models trong paper; qua sanity check chưa đủ chứng minh causal explanation trên audio. [Method §§3–4](https://papers.nips.cc/paper/8160-sanity-checks-for-saliency-maps.pdf). Lớp này **không thực hiện** randomization/retraining trên detector.

CKA cần cùng samples, cùng preprocessing và cách center được công bố. Linear CKA bất biến với orthogonal rotation và global isotropic scaling; không phải mọi invertible transform. Geometry gần nhau chưa chứng minh decision boundary hoặc domain reliance giống nhau. Rank cao cũng có thể gồm nhiều nuisance dimensions; rank thấp chưa đồng nghĩa collapse nếu nhãn vẫn truy cập được. [Kornblith et al., §§2–3, Table 1](https://proceedings.mlr.press/v97/kornblith19a/kornblith19a.pdf). Loss/variance/collapse đã học ở lớp 3.

## 5. Một audit bằng suy luận, chưa phải thí nghiệm đã chạy

Claim: “Model phát hiện artifact vì attention tập trung vào đầu clip.” Ba giải thích cạnh tranh là artifact ở đầu clip, leading silence/source cue, hoặc positional/normalization behavior. Một heatmap chưa phân biệt chúng.

Một phép kiểm phù hợp là cặp cùng content/process, matched leading silence, cùng codec, rồi can thiệp riêng vị trí bằng policy giữ nhãn. Đối chiếu score change với random regions có cùng duration/energy; ghi cue nào có thể bị mất. Nếu đổi cả silence và artifact, chưa biết yếu tố nào gây thay đổi. Nếu can thiệp làm input khác support train, thêm đó vào giới hạn. Đây là **thiết kế phép kiểm để hiểu claim**, không đề xuất chạy mới ở lượt này.

## 6. Ghép taxonomy vào recipe Audio-JEPA đã nộp

Các facts sau đọc từ Method của [PDF gốc, trang 3–6](<C:/Users/LENOVO/Downloads/SOICT_2026_paper_4308.pdf>) và đối chiếu snippets trong [hồ sơ root](research/root-source-review.md). “Reported” là paper mô tả; “source checked” là đọc code; cả hai không thay cho runtime đã chạy.

| Trục | Recipe được mô tả | Ý nghĩa/giới hạn |
|---|---|---|
| Task/supervision | Supervised utterance B/S detection | Không tự là partial localization hoặc attribution |
| Input | Toolkit 16 kHz, 64.600 samples; model resample 32 kHz, prefix 2,56 s, subtract waveform mean | Hai stages crop cần trace theo thứ tự; 64.600/16.000=4,0375 s trước model crop |
| Representation | 128 mel bins, 25 ms window, 10 ms hop, 20–8.000 Hz; pad/truncate 256 frames | Giới hạn mel 8 kHz dù model waveform 32 kHz; 256 frames là policy fixed grid |
| Encoder | AudioSet-pretrained Audio-JEPA ViT-Base: 12 blocks, D=768, 12 heads; 85,4 M encoder params được báo cáo | Pretraining target/checkpoint provenance đọc lớp 3; không suy ra mọi Audio-JEPA checkpoint cùng recipe |
| Geometry | Patch 8 frames × 32 mel bins; 32 time × 4 frequency positions = 128 tokens; no CLS | 128 tokens không phải 128 time frames; patch width 8 hops không bằng receptive field toàn model |
| Layer fusion | 12 block outputs + final normalized output; 13 softmax scalars initialized 0 | Ban đầu weights đều 1/13; final norm là readout bổ sung, không transformer block thứ 13 |
| Pooling/head | ASP attention 768→128→1; concat mean/std 1.536; LN, Linear 1.536→256, GELU, dropout 0,2, Linear 256→2 | Frozen backend vẫn nonlinear và input-dependent |
| Adaptation | Frozen encoder hoặc full fine-tune | Frozen vẫn chạy encoder; update paths khác nhau |
| Augmentation | SpecAugment-style time/frequency masks tối đa 16 frames/bins | Không có bằng chứng đã chạy RawBoost/LoRA/Group DRO trong lượt này |
| Optimization | 6 epochs, batch 32, AdamW decay 0,05; head LR 10⁻³, fine-tuned encoder LR 3×10⁻⁵; OneCycle warmup 0,1; AMP | Hyperparameters báo cáo không phải xác nhận một run tái lập |
| Loss | Weighted CE, B weight 9,6 theo paper | Source template dùng ns/nb; phải kiểm counts/reduction ở runtime mới kết luận effective weight |
| Score | d=z_B−z_S, high=B | Giữ polarity khi window pooling/fusion |

Tính parameters backend, có biases và affine LayerNorm:

$$P_{fusion}=13;\quad P_{ASP}=(768\cdot128+128)+(128\cdot1+1)=98\,561.$$

$$P_{head}=2\cdot1536+(1536\cdot256+256)+(256\cdot2+2)=397\,058.$$

$$P_{backend}=13+98\,561+397\,058=495\,632.$$

Đây là arithmetic theo kiến trúc mô tả, không model instantiation/count từ checkpoint. Con số 85,4 M của encoder được giữ là reported. Cache tất cả readouts FP32/mẫu cần $13\cdot128\cdot768\cdot4=5\,111\,808$ bytes ≈4,875 MiB, chưa có metadata/overhead; rẻ về compute head trials không đồng nghĩa cache nhỏ.

### Padding và freeze trong source đã đọc

Template v38 có encoder.eval(), no_grad và detach ở nhánh frozen; head vẫn ở train mode của model ngoài. ASP source chuẩn hóa attention trên toàn 128 tokens và không có argument padding mask. Toy mask ở bài 4 là cơ chế tổng quát để học, **không phải assertion recipe này đã mask đúng mọi padding**. Ngay cả mask tại pooling cũng không xóa ảnh hưởng padding đã đi qua encoder/full attention. Fixed grid/short-audio policy phải kiểm như một phần của observation.

Notebook v38–v41 là templates không có outputs đã chạy trong bản lưu được kiểm; lượt này đọc snippets v38 để đối chiếu cơ chế, không execute cells. Tên notebook/weights/config không chứng minh một run đã xảy ra. Việc chuyển patch weights và positional embeddings được paper mô tả; tương đương checkpoint nguồn nào vẫn cần provenance lớp 3. Xem [recipe cũ](../lop-03-ssl-jepa/14-HO-SO-RECIPE.md).

## 7. Phiếu đọc một kỹ thuật detector

Điền sáu dòng bằng câu hoàn chỉnh:

1. **Quan sát và nhãn:** detector thấy phần audio nào, prediction unit là gì?
2. **Forward:** input → feature/tensor axes → pooling/head → score direction.
3. **Update:** parameters/buffers nào đổi, gradient/loss/data nào quyết định update?
4. **Giả định:** cue/nuisance nào được giữ, xóa hoặc làm invariant?
5. **So sánh:** data, encoder pretraining, backend capacity, steps, tuning và inference cost có tương ứng không?
6. **Bằng chứng:** paper report, source/config, checkpoint/runtime, hay toy; còn điều gì chưa kiểm?

Ví dụ “LoRA giúp vì ít params” mới trả lời dòng 3 một phần. Cần rank/scaling/module placement, quality/budget tương ứng và inference policy. “EER giảm vì thêm dữ liệu” chưa tách source diversity khỏi extra optimization. Những câu hỏi này giúp đọc evidence; không mặc định kỹ thuật nào sẽ giúp Audio-JEPA.

## 8. Bài tập và tiêu chí giải thích

1. Source probe đạt 100% trên h=(c,n), detector d=2c−1: được kết luận detector dùng source chưa? Nêu phép phân biệt trên toy.
2. Tại sao inference ablation giảm accuracy nhưng retrain ablation giữ accuracy không mâu thuẫn?
3. 13 softmax layer weights có nghĩa 13 transformer blocks không? Giải thích input của ASP và shape output.
4. Encoder frozen + learned layer fusion/ASP/MLP có phải linear probe không? Chỉ chỗ nonlinear/input-dependent.
5. ASP template không có mask: có được viết “attention chỉ chuẩn hóa trên valid tokens” như fact của run không?
6. Một heatmap sáng ở vùng fake và gradient nhỏ ở vùng còn lại đủ chứng minh mechanism chưa? Nêu hai hạn chế.

<details>
<summary>Đáp án giải thích</summary>

1. Chưa. Probe đọc n, head dùng c; đổi riêng n giữ c thì d không đổi trên toy. Audio thực cần paired controls.
2. Model cũ phụ thuộc cách phân contribution đã fit; retraining có thể dùng thông tin dư thừa và bù weights. Hai phép đo khác estimand.
3. 12 blocks + final norm readout. Mỗi H có shape [batch,128,768]; fusion giữ shape, ASP output [batch,1536].
4. Không. Softmax weights được học; attention MLP/tanh/softmax phụ thuộc input, variance/sqrt nonlinear, head LN/GELU. Linear probe cần fixed readout và affine classifier.
5. Không. Đó là desired/general masked mechanism, không behavior source này. Cần phân biệt fixed-grid tokens với valid audio support.
6. Chưa: contextual mixing, correlated cues, score choice/saturation, perturbation side effects, heatmap normalization hoặc phương pháp không nhạy learned weights. Chọn ít nhất hai và giải thích vì sao ảnh hưởng claim.

</details>

Chỉ coi bài đạt khi giải thích được **đại lượng đo, giả định, và một phản ví dụ**, không chỉ trả lời đúng tên phương pháp. Trạng thái người học vẫn ở [sổ tiến độ](12-TIEN-DO-HOC-VA-BAN-GIAO.md), không tự cập nhật từ việc biên soạn đủ bài.
