# Bài 3: bốn cách mô hình hóa, không phải bốn loại task

[Bắt đầu](00-BAT-DAU-LOP-02.md) · Trước: [tác vụ](02-TAC-VU-VA-THAO-TAC.md) · Tiếp: [diffusion/FM](04-DIFFUSION-VA-FLOW-MATCHING.md)

## Mục tiêu và ký hiệu

Bạn cần đọc factorization/loss, tính một ví dụ nhỏ, và chỉ ra khối nào dùng cơ chế nào trong VITS. $x$ là đối tượng được mô hình hóa: waveform, mel hoặc token tùy section; $c$ là conditioning; $\theta,\phi$ là tham số học; $\mathbb E$ là kỳ vọng. Các số dưới là **toy biên soạn**, không phải output mô hình. Log là log tự nhiên.

## 1. Autoregressive: quyết định thứ tự điều kiện hóa

Với chuỗi $x_1,\ldots,x_T$, chain rule cho:

$$p(x\mid c)=\prod_{t=1}^{T}p(x_t\mid x_{<t},c).$$

$x_{<t}$ là các phần tử trước $t$. AR dùng mô hình cho những conditional này. $t$ có thể là số mẫu hoặc bước token, không bắt buộc là frame mel. WaveNet §2 dùng factorization trên waveform samples và causal convolutions. Khi train, prefix thật đã có nên tính các conditional song song; khi sampling AR thường phải dùng phần đã sinh. [WaveNet](https://arxiv.org/pdf/1609.03499).

**Toy:** chuỗi token A,B,A có $p(A\mid c)=0,6$, $p(B\mid A,c)=0,8$, $p(A\mid A,B,c)=0,3$. Xác suất chuỗi $=0,144$; negative log likelihood $=-\log 0,144\approx1,938$. Không được nhân ba marginal $p(x_t\mid c)$ nếu model có phụ thuộc prefix. Training teacher forcing dùng A,B thật; sampling một B sai có thể đổi conditional tiếp theo. Đây là cách lỗi có thể lan, không chứng minh AR audio nào cũng có lỗi lặp/chu kỳ.

**Biên:** một model AR trên codebook 1 nhưng song song trên thời gian ở các codebook còn lại là hybrid. Gọi toàn hệ “AR mọi token” bỏ mất ordering thực tế; xem bài 5.

## 2. GAN: học qua đối thủ, nhưng còn loss khác

Gọi $G(c)$ là generator và $D(x)$ là discriminator. Discriminator nhận thật/generator output trong distribution huấn luyện. Nó khác detector được đánh giá trên nhiều nguồn/unseen attacks.

Để thấy mục tiêu đối kháng bằng số, dùng least-squares GAN: mục tiêu D là thật→1, giả→0; G muốn D đánh đầu ra→1. HiFi-GAN §2.4 dùng dạng này cùng feature matching và mel reconstruction. Với $m$ là mel điều kiện và $x$ là waveform thật:

$$L_D=\mathbb E[(D(x)-1)^2+D(G(m))^2],\qquad
L_{G,adv}=\mathbb E[(D(G(m))-1)^2].$$

Một cặp toy có $D(x)=0,9$, $D(G(m))=0,3$: $L_D=0,01+0,09=0,10$; $L_{G,adv}=0,49$. Khi update G, giữ weights D nhưng gradient đi **qua** D tới G. Khi update D, không dùng update đó để học G. Đây mới là adversarial game; có hai networks chưa đủ.

HiFi-GAN là mel→waveform vocoder; generator convolutional, MPD/MSD đọc cấu trúc theo nhiều period/scale. Không có yêu cầu thêm random noise đầu vào G trong thiết kế ấy. GAN là kiểu học, không đồng nghĩa mọi G phải nhận latent noise. [HiFi-GAN §2.1–2.4](https://arxiv.org/pdf/2010.05646).

**Phản ví dụ:** D nhận diện output của G tốt trên corpus train, nhưng có thể coi một genuine qua codec là giả hoặc fake từ G mới là thật. Không có protocol transfer thì không thể gọi D là universal forensic detector. Việc MPD học periodic structure không chứng minh mọi HiFi-GAN output có một periodic artifact cố định.

## 3. VAE: latent và một cận của likelihood

$z$ là latent; $p_\theta(z\mid c)$ là prior; $p_\theta(x\mid z,c)$ là decoder distribution; $q_\phi(z\mid x,c)$ là approximate posterior dùng khi training. KL đo độ khác giữa hai distribution theo hướng viết trong công thức. Conditional negative ELBO có dạng:

$$L_{VAE}=\mathbb E_{q_\phi}[-\log p_\theta(x\mid z,c)]
+D_{KL}(q_\phi(z\mid x,c)\Vert p_\theta(z\mid c)).$$

Đây là likelihood term + prior matching; “reconstruction loss” cần biết distribution giả định. Gaussian observation với variance cố định cho squared error cộng hằng; Laplace cho L1 có scale. Không tùy ý thay mọi loss bằng MSE rồi nói vẫn cùng likelihood.

AEVB §2.2–2.4 đưa ELBO và reparameterization: Gaussian diagonal dùng $z=\mu+\sigma\epsilon$, $\epsilon\sim\mathcal N(0,I)$ để truyền gradient qua $\mu,\sigma$. [Kingma–Welling](https://arxiv.org/pdf/1312.6114).

**Toy một chiều:** prior $\mathcal N(0,1)$; posterior $\mathcal N(\mu,\sigma^2)$, với $\mu=1$, $\sigma^2=1$. Khi đó

$$KL=\tfrac12(\mu^2+\sigma^2-1-\log\sigma^2)=0,5.$$

Nếu expected negative log likelihood được cho là 2, negative ELBO bằng 2,5. Với một noise draw $\epsilon=0,5$, $z=1,5$. Khi sinh mới, không có $x$ thật để dùng posterior: sample từ prior rồi decode. Toy chỉ minh họa objective; không chứng minh encoder VAE luôn bỏ forensic detail hoặc output luôn mượt.

## 4. Normalizing flow: đổi biến có tính khả nghịch

Đổi ký hiệu để rõ chiều: $u$ có density đơn giản $p_U$; $x=f(u)$, $f$ là ánh xạ khả nghịch, khả vi với Jacobian không suy biến. Khi đó:

$$\log p_X(x)=\log p_U(f^{-1}(x))+
\log\left|\det\frac{\partial f^{-1}}{\partial x}\right|.$$

Jacobian là ma trận đạo hàm; determinant cho hệ số đổi thể tích. Flow finite-dimensional thường thiết kế để inverse/logdet tính được, dùng density cho likelihood hoặc variational inference. [Rezende–Mohamed §3.1](https://arxiv.org/pdf/1505.05770).

**Toy:** $u\sim\mathcal N(0,1)$, $x=2u+1$. Ở $x=1$, $u=0$ và inverse derivative $1/2$, nên $p_X(1)=p_U(0)/2\approx0,19947$. Phân phối x là $\mathcal N(1,4)$; trải rộng gấp đôi nên density trung tâm giảm một nửa. Bỏ Jacobian cho một density không chuẩn hóa đúng. $f(u)=u^2$ không phù hợp công thức inverse một-một này trên toàn trục; cần xử lý hai preimages hoặc hạn chế miền.

Không yêu cầu waveform decoder của toàn hệ khả nghịch chỉ vì latent prior có normalizing flow. Cũng không suy “flow matching không liên quan normalizing flow”: bài 4 sẽ phân biệt **training objective** với **họ ánh xạ**, có liên hệ CNF.

## 5. Ví dụ thật: đọc VITS ở training và inference

VITS Fig.1/§2 kết hợp conditional VAE, flow tăng biểu đạt prior, alignment, stochastic duration predictor và adversarial waveform learning. Training dùng posterior encoder từ linear spectrogram; inference dùng text, duration và sample latent qua prior/inverse flow rồi waveform decoder. Mel reconstruction là loss tính khi training, không bắt buộc có mel acoustic output tại inference. [VITS](https://arxiv.org/pdf/2106.06103).

Đây là một TTS nhiều cơ chế. “End-to-end TTS” không nghĩa một mạng duy nhất, một loss duy nhất, không latent hoặc không vocoder-like decoder. Khi mô tả phải vẽ cả train/inference; nhiều khối chỉ tồn tại ở một pha.

## 6. Audio-JEPA và giới hạn forensic

Những objectives trên học **phân phối sinh/tái tạo**. Downstream Audio-JEPA của mình học class labels bằng CE. JEPA latent prediction không phải VAE posterior inference: từ “latent” chung không làm hai objectives bằng nhau. Từ tên generator cũng chưa suy feature nào log-mel detector khai thác. [Chương 06, §2–3](../06-GIAI-PHAU-PAPER.md).

## Bài tập

1. AR toy cho chuỗi B,A có conditional 0,4 và 0,7. Tính probability/NLL. Vì sao không cần dùng 0,6 của token A đầu tiên?
2. GAN toy đổi $D(G(m))$ thành 0,8, giữ $D(x)=0,9$. Loss D và G thay ra sao? Có phải hai khối cùng thích thay đổi ấy?
3. Flow $x=3u-2$. Tính density ở $x=-2$. VAE toy đổi posterior mean từ 1 thành 2, variance giữ 1; KL bằng bao nhiêu?
4. VITS có GAN loss: có được bỏ conditional VAE/flow khỏi mô tả và gọi nó cùng kiến trúc HiFi-GAN không?

<details>
<summary>Đáp án có giải thích</summary>

1. $0,28$ và $-\log0,28\approx1,273$. Conditional A sau B khác probability A ở vị trí đầu.
2. D: $0,01+0,64=0,65$; G: $0,04$. G muốn fooled D; D muốn giảm score fake. Values chưa nói training đã hội tụ.
3. $p_U(0)/3\approx0,13298$; KL=$2$. Flow scale và KL mean penalty là hai phép tính khác nhau, không cùng task.
4. Không. Một thành phần/objective chung không cho toàn system identity. VITS là TTS; HiFi-GAN là vocoder. Cần ghi lớp thành phần được tái dùng và khác biệt train/inference.

</details>

## Đào sâu tự chọn

Tự dẫn ELBO từ Jensen với $q(z\mid x,c)$, rồi xem khi nào bound chặt. Vẽ hai chiều $f$ và $f^{-1}$ trước khi dùng công thức flow; VITS đặt chiều ánh xạ khác cách toy sinh x ở trên, nhưng change-of-variables phải nhất quán với chiều. Không cần cài/train các models để làm bài này.
