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

Loss minimax của GAN

GAN gốc huấn luyện bộ sinh bằng giá trị minimax

AICơ bản12 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ủ đề

numpyganlossentry-ramp

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.

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.

Nhóm Zalo