Trung bình phân phối q(x_t | x_0)
Trong DDPM, quá trình khuếch tán thuận có phân phối đóng
Tiến độ của tôi ở bài này
Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: python-basics, ai-diffusion-forward.
Nội dung đề bài
Mô tả bài toán
Trong DDPM, quá trình khuếch tán thuận có phân phối đóng q(xt | x0) = N(sqrt(alphabart) * x0, (1 - alphabart) I), với alphabart = prodi <= t (1 - betai). Giá trị trung bình sqrt(alphabart) * x0 là hệ số co tín hiệu gốc sau t bước thêm nhiễu.
Yêu cầu
Viết hàm forwarddiffusionmean(x0, betas, t) trả về trung bình sqrt(alphabart) * x0.
Quy ước nộp bài
Nộp hàm forward_diffusion_mean trong solution.py. Hệ thống gọi hàm trực tiếp và so với sai số 1e-6; không đọc stdin và không in ra stdout.
Input
- x0: giá trị gốc (một số thực).
- betas: danh sách hệ số nhiễu beta_0, ..., beta_{T-1}.
- t: chỉ số bước, tính cả bước t (tức tích tới beta_t).
Output
Một số thực là trung bình của q(xt | x0).
Ràng buộc
- 0 <= t < len(betas); nếu không, ném ValueError.
- Mọi beta phải nằm trong (0, 1); nếu không, ném ValueError.
- Chỉ dùng Python thuần hoặc NumPy.
Ví dụ 1
Input
forward_diffusion_mean(x0=1.0, betas=[0.1, 0.2, 0.3], t=0)
Output
0.9486832980505138
Ví dụ 2
Input
forward_diffusion_mean(x0=1.0, betas=[0.1, 0.2, 0.3], t=2)
Output
0.7099295737400959
Giải thích
Với x0 = 1, betas = [0.1, 0.2, 0.3], t = 1, tích là 0.9 * 0.8 = 0.72, căn bậc hai là 0.8485281374238569.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
