ai-441Đọc toàn bộ đề miễn phí

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

AICơ bản10 phút

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ủ đề

numpyvaereparameterizationentry-ramp

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].

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

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.

Nhóm Zalo