GAN cố gắng sao chép một phân phối xác suất. Do đó, họ nên sử dụng các hàm tổn thất phản ánh khoảng cách giữa mức phân phối dữ liệu do GAN tạo ra và mức phân phối dữ liệu thực.
Làm cách nào để bạn nắm bắt được sự khác biệt giữa hai phân phối trong hàm tổn thất GAN? Đây là một lĩnh vực nghiên cứu đang được quan tâm và nhiều phương pháp đã được đề xuất. Chúng ta sẽ đề cập đến hai hàm tổn thất GAN phổ biến tại đây, cả hai đều được triển khai trong TF-GAN:
- tổn thất minimax: Hàm tổn thất được sử dụng trong tài liệu giới thiệu về GAN.
- Mất Wasserstein: Hàm tổn thất mặc định cho Bộ ước tính TF-GAN. Được mô tả lần đầu trong một tài liệu năm 2017.
TF-GAN cũng triển khai nhiều hàm tổn thất khác.
Một hàm tổn thất hay hai hàm tổn thất?
GAN có thể có hai hàm mất mát: một hàm để huấn luyện trình tạo và một hàm để huấn luyện trình phân biệt. Hai hàm tổn thất có thể hoạt động cùng nhau để phản ánh một phép đo khoảng cách giữa các phân phối xác suất như thế nào?
Trong các lược đồ tổn thất mà chúng ta sẽ xem xét ở đây, tổn thất của trình tạo và trình phân biệt bắt nguồn từ một phép đo khoảng cách duy nhất giữa các phân phối xác suất. Tuy nhiên, trong cả hai giao thức này, trình tạo chỉ có thể ảnh hưởng đến một thuật toán trong phép đo khoảng cách: thuật toán phản ánh sự phân phối của dữ liệu giả. Vì vậy, trong quá trình huấn luyện trình tạo, chúng ta sẽ loại bỏ thuật toán còn lại, thuật toán này phản ánh việc phân phối dữ liệu thực.
Cuối cùng, tổn thất của trình tạo và trình phân biệt sẽ khác nhau, mặc dù chúng bắt nguồn từ một công thức duy nhất.
Mất mát Minimax
Trong bài báo giới thiệu GAN, trình tạo cố gắng giảm thiểu hàm sau đây trong khi hàm phân biệt cố gắng tăng tối đa hàm đó:
Trong hàm này:
D(x)
là giá trị ước tính của hàm phân biệt về xác suất thực thể dữ liệu thực x là thực.- Ex là giá trị dự kiến trên tất cả các thực thể dữ liệu thực.
G(z)
là đầu ra của trình tạo khi được cung cấp tiếng ồn z.D(G(z))
là giá trị ước tính của bộ phân biệt về xác suất một thực thể giả là thực.- Ez là giá trị dự kiến trên tất cả dữ liệu đầu vào ngẫu nhiên cho trình tạo (trên thực tế, giá trị dự kiến trên tất cả các thực thể giả mạo được tạo G(z)).
- Công thức này bắt nguồn từ entropy chéo giữa các phân phối thực và phân phối được tạo.
Trình tạo không thể trực tiếp ảnh hưởng đến hạng log(D(x))
trong hàm, vì vậy, đối với trình tạo, việc giảm thiểu tổn thất tương đương với việc giảm thiểu log(1 -
D(G(z)))
.
Trong TF-GAN, hãy xem minimax_discriminator_loss và minimax_generator_loss để biết cách triển khai hàm mất mát này.
Mất mát Minimax đã sửa đổi
Bài báo gốc về GAN lưu ý rằng hàm tổn thất minimax ở trên có thể khiến GAN bị tắc nghẽn ở giai đoạn đầu của quá trình huấn luyện GAN khi công việc của bộ phân biệt rất dễ dàng. Do đó, bài báo đề xuất sửa đổi tổn thất của trình tạo để trình tạo cố gắng tối đa hoá log D(G(z))
.
Trong TF-GAN, hãy xem modified_generator_loss để biết cách triển khai nội dung sửa đổi này.
Mất mát Wasserstein
Theo mặc định, TF-GAN sử dụng mất mát Wasserstein.
Hàm tổn thất này phụ thuộc vào việc sửa đổi giao thức GAN (được gọi là "Wasserstein GAN" hoặc "WGAN") trong đó hàm phân biệt không thực sự phân loại các thực thể. Đối với mỗi thực thể, hàm này sẽ xuất ra một số. Số này không phải là số âm hoặc lớn hơn 0, vì vậy, chúng ta không thể sử dụng 0,5 làm ngưỡng để quyết định một thực thể là thật hay giả. Việc huấn luyện bộ phân biệt chỉ cố gắng làm cho đầu ra lớn hơn đối với các thực thể thực so với các thực thể giả.
Vì không thể phân biệt thực và giả, nên hàm phân biệt WGAN thực sự được gọi là "critic" (người phê bình) thay vì "discriminator" (phương thức phân biệt). Sự khác biệt này có tầm quan trọng về mặt lý thuyết, nhưng đối với mục đích thực tế, chúng ta có thể coi đó là sự xác nhận rằng dữ liệu đầu vào cho các hàm tổn thất không nhất thiết phải là xác suất.
Bản thân các hàm tổn thất rất đơn giản:
Mất điểm của nhà phê bình: D(x) - D(G(z))
Biến phân biệt cố gắng tối đa hoá hàm này. Nói cách khác, thuật toán này cố gắng tối đa hoá sự khác biệt giữa kết quả trên các thực thể thực và kết quả trên các thực thể giả.
Mất trình tạo: D(G(z))
Trình tạo cố gắng tối đa hoá hàm này. Nói cách khác, thuật toán này cố gắng tối đa hoá đầu ra của hàm phân biệt cho các thực thể giả mạo.
Trong các hàm này:
D(x)
là kết quả của công cụ đánh giá cho một thực thể thực.G(z)
là đầu ra của trình tạo khi được cung cấp tiếng ồn z.D(G(z))
là kết quả của trình đánh giá cho một thực thể giả.- Đầu ra của hàm đánh giá D không phải nằm trong khoảng từ 1 đến 0.
- Các công thức này bắt nguồn từ khoảng cách di chuyển đất giữa các phân phối thực và phân phối được tạo.
Trong TF-GAN, hãy xem wasserstein_generator_loss và wasserstein_discriminator_loss để biết cách triển khai.
Yêu cầu
Lý do lý thuyết cho GAN Wasserstein (hoặc WGAN) yêu cầu cắt trọng số trong toàn bộ GAN để các trọng số đó vẫn nằm trong phạm vi bị ràng buộc.
Lợi ích
GAN Wasserstein ít bị tắc nghẽn hơn GAN dựa trên minimax và tránh các vấn đề về độ dốc biến mất. Khoảng cách di chuyển đất cũng có ưu điểm là một chỉ số thực sự: một thước đo khoảng cách trong không gian của các phân phối xác suất. Cross-entropy không phải là một chỉ số theo nghĩa này.