Đến nội dung chính
AI tạo sinh

Diffusion Models hoạt động như thế nào?

Hiểu forward noising, dự đoán noise và reverse sampling mà không nhầm với phục hồi chính xác một ảnh.

Mức giải thích

Diffusion model học một quá trình tạo mẫu từ nhiễu bằng nhiều bước khử nhiễu có điều kiện. Khi sinh ảnh, mô hình không đơn giản mở lại một ảnh đã bị che, mà lấy mẫu theo phân bố đã học.

Mục tiêu học tập

  • Phân biệt quá trình thêm nhiễu cố định và quá trình reverse học được.
  • Đọc công thức lấy mẫu x_t và mục tiêu dự đoán noise đơn giản.
  • Nêu vai trò timestep, schedule và số bước sampling.

Từ dữ liệu đến nhiễu

Forward process của DDPM dùng các bước Gaussian với noise schedule được chọn trước. Khi train, có thể lấy trực tiếp một phiên bản nhiễu ở timestep t thay vì mô phỏng mọi bước từ đầu. Mạng nhận cả x_t và thông tin t.

Giá trị pixel cần theo quy ước normalization của mô hình. Không cộng cùng một độ nhiễu lên ảnh ở thang [0,1] và [0,255] rồi coi là cùng điều kiện training.

Mạng học dự đoán gì?

Một parameterization phổ biến dự đoán epsilon noise từ x_t và timestep. Cách parameterize bằng x0 hoặc velocity là lựa chọn khác. Noise-prediction loss và cách sampling phải nhất quán; không thay một công thức mà giữ mọi hệ số từ công thức khác.

Sampling và kiểm tra ví dụ

DDPM reverse transition và các sampler khác cần công thức cập nhật riêng. Mã chỉ kiểm tra forward mixture 1D với alpha-bar tự chọn; không có mạng khử nhiễu và không tạo ảnh. Nhờ vậy có thể kiểm tra hệ số mà không giả vờ đã huấn luyện generator.

Workflow & kiến trúc

Forward process thêm Gaussian noise theo lịch cố định. Reverse process học khử nhiễu có điều kiện theo timestep; không phải đảo ngược chính xác từng nhiễu của một ảnh riêng lẻ.
01x0 + timestep
02Forward noise sample
03Học epsilonθ
04Reverse sampling
Workflow minh họa · Các bước cần được điều chỉnh theo bài toán thực tế.

Ứng dụng & giới hạn

  • Hiểu pipeline sinh ảnh và các công việc khử nhiễu.
  • Kiểm tra training target, normalization và sampler compatibility.

Điểm mạnh

Một khuôn khổ xác suất có training targets cụ thể và quy trình sinh từng bước.

Giới hạn cần nhớ

Sampling có thể tốn tài nguyên; hình hợp mắt không chứng minh nội dung đúng, mới hay phù hợp mọi điều kiện.

Thử trong một project nhỏ

LEARN BY DOING

Tính hệ số của x0 và epsilon khi alpha-bar bằng 1 và khi gần 0. Giải thích vì sao mã khôi phục dùng epsilon thật không phải là phép thử model học được.

PYTHON · VÍ DỤ MINH HỌA
from math import sqrt
from random import Random
rng = Random(7)
x0, alpha_bar = 0.6, 0.8
epsilon = rng.gauss(0.0, 1.0)
xt = sqrt(alpha_bar)*x0 + sqrt(1-alpha_bar)*epsilon
recovered = (xt - sqrt(1-alpha_bar)*epsilon) / sqrt(alpha_bar)
assert abs(recovered - x0) < 1e-12
print({"x_t": xt})

Forward noising 1D; việc khôi phục dùng noise thật đã biết, không phải khả năng của một denoising model.

Nguồn tham khảo

  1. Ho, Jain & Abbeel — Denoising Diffusion Probabilistic Models (2020)
  2. Sohl-Dickstein et al. — Nonequilibrium Thermodynamics (2015)

KEEP EXPLORING

Đọc tiếp để nối các ý tưởng.