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

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

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

  • minimax Loss: ฟังก์ชันการสูญเสียที่ใช้ในบทความแนะนํา GAN
  • การสูญเสีย Wassstein: ฟังก์ชันการสูญเสียเริ่มต้นสําหรับเครื่องมือ TF-GAN อธิบายเป็นครั้งแรกในบทความในปี 2017

นอกจากนี้ TF-GAN ยังใช้ฟังก์ชันการสูญเสียอื่นๆ อีกมากมาย

ฟังก์ชันการสูญเสีย 1 หรือ 2 อย่าง

GAN อาจมีฟังก์ชันการสูญเสีย 2 ฟังก์ชัน ฟังก์ชันหนึ่งสําหรับการฝึกโปรแกรมสร้างโปรแกรม และฟังก์ชันสําหรับการฝึกการเลือกปฏิบัติ ฟังก์ชันการสูญเสีย 2 รายการทํางานร่วมกันเพื่อ แสดงการวัดระยะทางระหว่างการกระจายความน่าจะเป็นได้อย่างไร

ในรูปแบบการสูญเสีย เราจะดูตรงนี้ โปรแกรมสร้างและการเลือกปฏิบัติจะสูญเสีย การวัดระยะทางระหว่างการกระจายความน่าจะเป็นแต่ละครั้ง แต่ในทั้ง 2 แผนนี้ โปรแกรมสร้างคําจะส่งผลต่อการวัดระยะทางได้เพียงคําเดียว ได้แก่ คําที่แสดงถึงการกระจายข้อมูลปลอม ดังนั้นระหว่างการฝึกทํางานได้ เราจะข้ามคําอื่นซึ่งแสดงถึงการกระจายข้อมูลจริง

ส่วนโปรแกรมสร้างและโปรแกรมแยกส่วนเสียจะดูแตกต่างกันในตอนท้าย แม้ว่าข้อมูลเหล่านั้นจะมาจากสูตรเดียว

การสูญเสีย Minimax

ในบทความที่แนะนํา GAN โปรแกรมสร้างจะพยายามลดฟังก์ชันต่อไปนี้ให้เหลือน้อยที่สุด

$$E_x[log(D(x))] + E_z[log(1 - D(G(z)))]$$

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

  • D(x) เป็นการประมาณ &$33 ของการประมาณความเป็นไปได้ที่อินสแตนซ์ข้อมูล x จริงเป็นของจริง
  • Ex คือค่าที่คาดไว้ของอินสแตนซ์ข้อมูลจริงทั้งหมด
  • G(z) เป็นเอาต์พุตของตัวสร้างเมื่อให้เสียง z
  • D(G(z)) เป็นเครื่องเป่าสําหรับความน่าจะเป็นที่อินสแตนซ์ปลอมมีจริง
  • Ez คือค่าที่คาดหวังของอินพุตแบบสุ่มทั้งหมดไปยังโปรแกรมสร้าง (ผลคือค่าที่คาดไว้มากกว่าอินสแตนซ์ปลอมที่สร้างขึ้นทั้งหมด G(z))
  • สูตรมาจากเอนโทรปี-เอนโทรปีระหว่างการกระจายจริงกับการกระจายที่สร้างขึ้น

โปรแกรมสร้างจะไม่ส่งผลกระทบต่อข้อกําหนดของ log(D(x)) ในฟังก์ชันโดยตรง ดังนั้นสําหรับโปรแกรมสร้าง การลดการสูญเสียจะเท่ากับการย่อ log(1 - D(G(z)))

ใน TF-GAN โปรดดู minimax_discriminator_loss และ minimax_generator_loss สําหรับการติดตั้งใช้งานฟังก์ชันการสูญเสียนี้

การสูญเสีย Minimax ที่แก้ไข

เอกสาร GAN ฉบับแรกแจ้งว่าฟังก์ชันการสูญเสียมินิแมชชีนข้างต้นอาจทําให้ GAN ค้างในช่วงต้นของการฝึกอบรม GAN เมื่องานเสร็จได้ง่าย บทความจึงแนะนําให้แก้ไขการสูญเสียโปรแกรมสร้างเพื่อให้โปรแกรมสร้างพยายามเพิ่มlog D(G(z))ให้ได้มากที่สุด

ใน TF-GAN โปรดดู modified_generator_loss สําหรับการติดตั้งใช้งานการแก้ไขนี้

วาสเซอร์สไตน์

TF-GAN จะใช้ Wasserstein Lost ตามค่าเริ่มต้น

ฟังก์ชันการสูญเสียนี้ขึ้นอยู่กับการแก้ไขรูปแบบ GAN (เรียกว่า"Wasserstein GAN" หรือ "WGAN") ซึ่งตัวแยกประเภทไม่ได้แยกประเภทอินสแตนซ์ โดยเอาต์พุตแต่ละรายการจะระบุตัวเลข จํานวนนี้ต้องไม่น้อยกว่า 0 ขึ้นไป เราจึงใช้ 0.5 เป็นเกณฑ์ในการตัดสินว่าอินสแตนซ์จริงหรือปลอม การฝึกการแบ่งแยกทางปฏิบัติจะพยายามทําให้เอาต์พุตใหญ่ขึ้นสําหรับอินสแตนซ์จริงมากกว่าอินสแตนซ์ปลอม

เนื่องจากการเลือกปฏิบัติไม่สามารถแยกแยะระหว่างเรื่องจริงกับเรื่องสมมติได้ จึงไม่ทราบว่าอะไรเป็นการแบ่งแยก WGAN แทนที่จะเป็น "วิจารณ์" แทนที่จะเป็น "การเลือกปฏิบัติ" ความแตกต่างนี้มีทฤษฎีสําคัญ แต่สําหรับในทางปฏิบัติแล้ว เราสามารถรับรู้ได้ว่าอินพุตไปยังฟังก์ชันการสูญเสียไม่จําเป็นต้องเป็นความน่าจะเป็น

ตัวฟังก์ชันการสูญเสียเองนั้นค่อนข้างหลอกลวง

การสูญหายของวิกฤต: D(x) - D(G(z))

การเลือกปฏิบัติจะพยายามเพิ่มฟังก์ชันนี้ให้ได้สูงสุด กล่าวคือ พยายามเพิ่มความแตกต่างระหว่างเอาต์พุตในอินสแตนซ์จริงและเอาต์พุตบนอินสแตนซ์ปลอม

แพ้ Generator: D(G(z))

โปรแกรมสร้างนี้จะพยายามทํางานอย่างเต็มที่ กล่าวคือ จะพยายามขยายเอาต์พุตของการเลือกปฏิบัติสูงสุดสําหรับอินสแตนซ์ปลอม

ในฟังก์ชันเหล่านี้

  • D(x) เป็นเอาต์พุตของนักวิจารณ์สําหรับอินสแตนซ์จริง
  • G(z) เป็นเอาต์พุตของตัวสร้างเมื่อให้เสียง z
  • D(G(z)) เป็นเอาต์พุตของนักวิจารณ์สําหรับอินสแตนซ์ปลอม
  • เอาต์พุตของคําวิจารณ์ D ไม่ต้องอยู่ระหว่าง 1 ถึง 0
  • สูตรที่ได้มาจากระยะทางในการย้ายโลก ระหว่างการกระจายที่แท้จริงและที่สร้างขึ้น

ใน TF-GAN โปรดดู wasserstein_generator_loss และ wasserstein_discriminator_loss สําหรับการใช้งาน

ข้อกำหนด

เหตุผลทางทฤษฎีสําหรับ Wasserstein GAN (หรือ WGAN) กําหนดให้น้ําหนักของ GAN ทั้งหมดต้องถูกตัดจึงจะอยู่ในช่วงที่แคบ

ข้อดี

Wasserstein GANs มีความเสี่ยงที่จะเกิดการติดขัดน้อยกว่า GAN ขนาดเล็กที่สุด และหลีกเลี่ยงปัญหาเกี่ยวกับการไล่ระดับสีที่สูญหายไป ระยะทางในการย้ายโลกยังมีประโยชน์ตรงที่ได้เป็นเมตริกที่แท้จริงอีกด้วย ซึ่งก็คือการวัดระยะทางในพื้นที่ของการกระจายความน่าจะเป็น เอนโทรปี-เอนโทรปีไม่ใช่เมตริกในกลุ่มนี้