Loss minimax của GAN
GAN gốc huấn luyện bộ sinh bằng giá trị minimax
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-cross-entropy.
Nội dung đề bài
Mô tả bài toán
GAN gốc huấn luyện bộ sinh bằng giá trị minimax V = E[log D(real)] + E[log(1 - D(fake))]. Bộ sinh muốn V nhỏ nhất nên thường tối ưu -V như một loss. Đây là dạng loss đối kháng kinh điển trước khi xuất hiện biến thể non-saturating.
Yêu cầu
Viết hàm gan_minimax_loss(d_real, d_fake) trả về -(mean(log(d_real)) + mean(log(1 - d_fake))).
Quy ước nộp bài
Nộp hàm gan_minimax_loss 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
- d_real: điểm số discriminator cho mẫu thật, mỗi giá trị trong (0, 1].
- d_fake: điểm số discriminator cho mẫu sinh, mỗi giá trị trong [0, 1).
Output
Một số thực là loss minimax của bộ sinh.
Ràng buộc
- Hai dãy phải cùng độ dài và khác rỗng; nếu không, ném ValueError.
- Điểm số phải nằm trong miền hợp lệ (0 < d_real <= 1, 0 <= d_fake < 1); nếu không,
ném ValueError.
Ví dụ 1
Input
gan_minimax_loss(d_real=[0.9, 0.8], d_fake=[0.1, 0.2])
Output
0.32850406697203605
Ví dụ 2
Input
gan_minimax_loss(d_real=[1.0], d_fake=[0.0])
Output
0.0
Giải thích
Với d_real = [0.9, 0.8] và d_fake = [0.1, 0.2], mean(log(0.9), log(0.8)) bằng -0.16425203348601802 cho cả hai phía, nên loss là 0.32850406697203604.
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.
