Thủ thuật tái tham số hoá z = mu + sigma * eps
VAE không lấy mẫu trực tiếp từ N(mu, sigma^2) vì như vậy gradient không truyền qua phép
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-gaussian-sampling.
Nội dung đề bài
Mô tả bài toán
VAE không lấy mẫu trực tiếp từ N(mu, sigma^2) vì như vậy gradient không truyền qua phép lấy mẫu. Thay vào đó ta viết z = mu + sigma * eps với eps ~ N(0, 1), biến ngẫu nhiên thành một phép biến đổi khả vi theo mu và sigma.
Yêu cầu
Viết hàm reparameterize(mu, sigma, eps) trả về danh sách z với zi = mui + sigmai * epsi.
Quy ước nộp bài
Nộp hàm reparameterize trong solution.py. Hệ thống gọi hàm trực tiếp và so phần tử với sai số 1e-6; không đọc stdin và không in ra stdout.
Input
- mu: danh sách kỳ vọng.
- sigma: danh sách độ lệch chuẩn, cùng độ dài với mu.
- eps: danh sách nhiễu chuẩn, cùng độ dài với mu.
Output
Danh sách số thực z, cùng độ dài với đầu vào.
Ràng buộc
- Ba danh sách phải cùng độ dài; nếu khác, ném ValueError.
- Chỉ dùng Python thuần hoặc NumPy, không cần thư viện khác.
Ví dụ 1
Input
reparameterize(mu=[0.0, 1.0], sigma=[1.0, 2.0], eps=[0.5, -0.5])
Output
[0.5, 0.0]
Ví dụ 2
Input
reparameterize(mu=[2.0, 3.0, 4.0], sigma=[0.0, 0.0, 0.0], eps=[1.0, 2.0, 3.0])
Output
[2.0, 3.0, 4.0]
Giải thích
Với mu = [0, 1], sigma = [1, 2], eps = [0.5, -0.5] ta được z = [0 + 1 * 0.5, 1 + 2 * (-0.5)] = [0.5, 0.0].
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.
