GAN จะพยายามจำลองการแจกแจงความน่าจะเป็น ดังนั้นจึงควรใช้ฟังก์ชันการสูญเสียที่แสดงถึงระยะห่างระหว่างการแจกแจงข้อมูลของ GAN กับการแจกแจงข้อมูลจริง
คุณจับความแตกต่างระหว่างการแจกแจง 2 รายการในฟังก์ชันการสูญเสีย GAN ได้อย่างไร คำถามนี้เป็นประเด็นที่นักวิจัยกำลังศึกษาอยู่และมีการเสนอแนวทางต่างๆ มากมาย เราจะพูดถึงฟังก์ชันการสูญเสีย GAN ที่พบบ่อย 2 รายการที่นี่ ซึ่งทั้ง 2 รายการมีการใช้งานใน TF-GAN
- Minimax Loss: ฟังก์ชัน Loss ที่ใช้ในบทความที่แนะนำ GAN
- การสูญเสียของ Wasserstein: ฟังก์ชันการสูญเสียเริ่มต้นสำหรับ TF-GAN Estimator อธิบายเป็นครั้งแรกในบทความปี 2017
TF-GAN ใช้ฟังก์ชันการสูญเสียอื่นๆ อีกมากมายด้วย
ใช้ฟังก์ชันการสูญเสีย 1 หรือ 2 รายการ
GAN อาจมีฟังก์ชันการสูญเสีย 2 รายการ ได้แก่ 1 รายการสำหรับการฝึก Generative Adversarial Network (GAN) และอีก 1 รายการสำหรับการฝึก Discriminative Adversarial Network (DANN) ฟังก์ชันการสูญเสีย 2 รายการทํางานร่วมกันเพื่อแสดงการวัดระยะทางระหว่างการแจกแจงความน่าจะเป็นได้อย่างไร
ในรูปแบบการสูญเสียที่เราจะดูกันนี้ การสูญเสียของ Generator และ Discriminator มาจากค่าการวัดระยะทางเดียวระหว่างการแจกแจงความน่าจะเป็น อย่างไรก็ตาม รูปแบบทั้ง 2 รูปแบบนี้ ตัวสร้างจะส่งผลต่อคำเดียวในข้อมูลการวัดระยะทางเท่านั้น ซึ่งก็คือคำที่แสดงถึงค่ากระจายของข้อมูลปลอม ดังนั้นในระหว่างการฝึก Generative Adversarial Networks เราจะทิ้งคำศัพท์อื่นๆ ซึ่งแสดงถึงค่ากระจายของข้อมูลจริง
ผลลัพธ์ของการสูญเสียของ Generator และ Discriminator จะแตกต่างกันในท้ายที่สุด แม้ว่าจะมาจากสูตรเดียวกันก็ตาม
การสูญเสียแบบ Minimax
ในบทความที่แนะนำ GAN นี้ ตัวแกนจะพยายามลดฟังก์ชันต่อไปนี้ ขณะที่ตัวแยกแยะจะพยายามเพิ่มฟังก์ชันให้มากที่สุด
ในฟังก์ชันนี้
D(x)
คือค่าประมาณของข้อบ่งชี้เกี่ยวกับความน่าจะเป็นที่อินสแตนซ์ข้อมูลจริง x จะเป็นจริง- Ex คือค่าที่คาดหวังจากอินสแตนซ์ข้อมูลจริงทั้งหมด
G(z)
คือเอาต์พุตของเครื่องกำเนิดไฟฟ้าเมื่อได้รับสัญญาณรบกวน zD(G(z))
คือค่าประมาณของความน่าจะเป็นที่อินสแตนซ์ปลอมเป็นจริงของดิสคริมิเนเตอร์- Ez คือค่าคาดหวังของอินพุตแบบสุ่มทั้งหมดที่ส่งไปยังเครื่องมือสร้าง (หรือก็คือค่าคาดหวังของอินสแตนซ์จำลองทั้งหมดที่สร้างขึ้น G(z))
- สูตรนี้มาจากการครอส-เอนโทรปีระหว่างการแจกแจงจริงกับการแจกแจงที่สร้างขึ้น
ตัวแปร Generator ไม่สามารถส่งผลต่อเทอมของ log(D(x))
ในฟังก์ชันได้โดยตรง ดังนั้นตัวแปร Generator จะลดการสูญเสียได้เท่ากับการลด log(1 -
D(G(z)))
ใน TF-GAN ให้ดูการใช้ฟังก์ชันการสูญเสียนี้ที่ minimax_discriminator_loss และ minimax_generator_loss
การสูญเสียแบบ Minimax ที่แก้ไขแล้ว
บทความต้นฉบับเกี่ยวกับ GAN ระบุว่าฟังก์ชันการสูญเสียแบบ Minimax ข้างต้นอาจทําให้ GAN ติดอยู่ในระยะเริ่มต้นของการฝึก GAN เมื่องานของ Discriminator นั้นง่ายมาก ดังนั้น บทความจึงแนะนําให้แก้ไขการสูญเสียของเจนเนอเรเตอร์เพื่อให้เจนเนอเรเตอร์พยายามเพิ่ม log D(G(z))
ให้ได้สูงสุด
ใน TF-GAN ให้ดู modified_generator_loss เพื่อดูการใช้งานการแก้ไขนี้
Wasserstein Loss
โดยค่าเริ่มต้น TF-GAN จะใช้ Wasserstein loss
ฟังก์ชันการสูญเสียนี้ขึ้นอยู่กับการปรับแต่งรูปแบบ GAN (เรียกว่า "Wasserstein GAN" หรือ "WGAN") ซึ่งตัวแยกแยะไม่ได้จัดประเภทอินสแตนซ์จริงๆ โดยแต่ละอินสแตนซ์จะแสดงผลเป็นตัวเลข ตัวเลขนี้ไม่จำเป็นต้องน้อยกว่า 1 หรือมากกว่า 0 เราจึงใช้ 0.5 เป็นเกณฑ์ในการตัดสินว่าอินสแตนซ์เป็นของจริงหรือของปลอมไม่ได้ การฝึกตัวแยกแยะเพียงแค่พยายามทำให้เอาต์พุตสำหรับอินสแตนซ์จริงมีขนาดใหญ่กว่าอินสแตนซ์ปลอม
เนื่องจากไม่สามารถแยกแยะระหว่างเนื้อหาจริงกับเนื้อหาปลอมได้ เครื่องมือแยกแยะ WGAN จึงเรียกว่า "ผู้วิจารณ์" แทนที่จะเป็น "ตัวแยกแยะ" การแยกความแตกต่างนี้มีความสําคัญในทางทฤษฎี แต่ในทางปฏิบัติ เราอาจถือว่าการแยกความแตกต่างนี้เป็นการยอมรับว่าอินพุตของฟังก์ชันการสูญเสียไม่จำเป็นต้องเป็นค่าความน่าจะเป็น
ฟังก์ชันการสูญเสียนั้นดูเรียบง่ายแต่เข้าใจยาก
Critic Loss: D(x) - D(G(z))
ตัวแยกแยะจะพยายามเพิ่มฟังก์ชันนี้ให้มากที่สุด กล่าวคือ พยายามเพิ่มความแตกต่างระหว่างเอาต์พุตในอินสแตนซ์จริงกับเอาต์พุตในอินสแตนซ์จำลองให้มากที่สุด
การสูญเสียของ Generator: D(G(z))
เครื่องมือสร้างจะพยายามใช้ฟังก์ชันนี้ให้มากที่สุด กล่าวคือ พยายามเพิ่มเอาต์พุตของตัวแยกแยะสำหรับอินสแตนซ์ปลอมให้มากที่สุด
ในฟังก์ชันเหล่านี้
D(x)
คือเอาต์พุตของนักวิจารณ์สำหรับอินสแตนซ์จริงG(z)
คือเอาต์พุตของเครื่องกำเนิดไฟฟ้าเมื่อได้รับสัญญาณรบกวน zD(G(z))
คือเอาต์พุตของนักวิจารณ์สำหรับอินสแตนซ์จำลอง- เอาต์พุตของนักวิจารณ์ D ไม่จําเป็นต้องอยู่ระหว่าง 1 ถึง 0
- สูตรนี้มาจากระยะทาง Earth Mover ระหว่างการแจกแจงจริงกับการแจกแจงที่สร้างขึ้น
ใน TF-GAN ให้ดูการใช้งานที่ wasserstein_generator_loss และ wasserstein_discriminator_loss
ข้อกำหนด
เหตุผลทางทฤษฎีของ Wasserstein GAN (หรือ WGAN) กําหนดให้ต้องตัดน้ำหนักตลอดทั้ง GAN เพื่อให้อยู่ในช่วงที่จำกัด
ประโยชน์
Wasserstein GAN มีความเสี่ยงที่จะติดขัดน้อยกว่า GAN ที่อิงตาม Minimax และหลีกเลี่ยงปัญหาเกี่ยวกับ Gradient ที่หายไป ระยะทางของ Earth Mover ยังมีข้อดีตรงที่เป็นเมตริกที่แท้จริง ซึ่งเป็นการวัดระยะทางในพื้นที่ของรูปแบบการแจกแจงความน่าจะเป็น การเข้ารหัสข้ามไม่ใช่เมตริกในความหมายนี้