ฟังก์ชันการสูญเสีย

GAN จะพยายามจำลองการแจกแจงความน่าจะเป็น ดังนั้นจึงควรใช้ฟังก์ชันการสูญเสียที่แสดงถึงระยะห่างระหว่างการแจกแจงข้อมูลของ GAN กับการแจกแจงข้อมูลจริง

คุณจับความแตกต่างระหว่างการแจกแจง 2 รายการในฟังก์ชันการสูญเสีย GAN ได้อย่างไร คำถามนี้เป็นประเด็นที่นักวิจัยกำลังศึกษาอยู่และมีการเสนอแนวทางต่างๆ มากมาย เราจะพูดถึงฟังก์ชันการสูญเสีย GAN ที่พบบ่อย 2 รายการที่นี่ ซึ่งทั้ง 2 รายการมีการใช้งานใน TF-GAN

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 นี้ ตัวแกนจะพยายามลดฟังก์ชันต่อไปนี้ ขณะที่ตัวแยกแยะจะพยายามเพิ่มฟังก์ชันให้มากที่สุด

Ex[log(D(x))]+Ez[log(1D(G(z)))]

ในฟังก์ชันนี้

  • D(x) คือค่าประมาณของข้อบ่งชี้เกี่ยวกับความน่าจะเป็นที่อินสแตนซ์ข้อมูลจริง x จะเป็นจริง
  • Ex คือค่าที่คาดหวังจากอินสแตนซ์ข้อมูลจริงทั้งหมด
  • G(z) คือเอาต์พุตของเครื่องกำเนิดไฟฟ้าเมื่อได้รับสัญญาณรบกวน z
  • D(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) คือเอาต์พุตของเครื่องกำเนิดไฟฟ้าเมื่อได้รับสัญญาณรบกวน z
  • D(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 ยังมีข้อดีตรงที่เป็นเมตริกที่แท้จริง ซึ่งเป็นการวัดระยะทางในพื้นที่ของรูปแบบการแจกแจงความน่าจะเป็น การเข้ารหัสข้ามไม่ใช่เมตริกในความหมายนี้