เนื่องจาก GAN มีเครือข่ายที่ผ่านการฝึกแยกกัน 2 เครือข่าย อัลกอริทึมการฝึกจึงต้องจัดการกับความซับซ้อน 2 อย่างต่อไปนี้
- GAN ต้องจัดการกับการฝึก 2 ประเภทที่แตกต่างกัน (Generator และ Discriminator)
- การบรรจบของ GAN นั้นระบุได้ยาก
การฝึกแบบสลับ
ตัวแปรสร้างและตัวแยกแยะมีกระบวนการฝึกที่แตกต่างกัน แล้วเราจะฝึก GAN โดยรวมได้อย่างไร
การฝึก GAN จะดำเนินไปแบบสลับกันดังนี้
- ดิสคริมิเนเตอร์จะฝึกเป็นเวลาอย่างน้อย 1 ยุค
- เครื่องมือสร้างจะฝึกเป็นเวลาอย่างน้อย 1 ยุค
- ทำขั้นตอนที่ 1 และ 2 ซ้ำเพื่อฝึกเครือข่าย Generative และ Discriminator ต่อ
เราจะคงตัวสร้างไว้ในช่วงระยะการฝึกตัวแยกแยะ เนื่องจากการฝึกตัวแยกแยะพยายามหาวิธีแยกแยะข้อมูลจริงจากข้อมูลปลอม จึงต้องเรียนรู้วิธีจดจำข้อบกพร่องของเครื่องมือสร้าง ปัญหานี้แตกต่างออกไปสำหรับเครื่องมือสร้างที่ได้รับการฝึกฝนมาอย่างละเอียดกับเครื่องมือสร้างที่ไม่ได้ผ่านการฝึกฝนซึ่งสร้างเอาต์พุตแบบสุ่ม
ในทำนองเดียวกัน เราจะคงตัวแยกแยะไว้ในช่วงระยะการฝึกของตัวแปรสร้าง ไม่เช่นนั้น เครื่องมือสร้างจะพยายามโจมตีเป้าหมายที่เคลื่อนไหวและอาจไม่บรรลุเป้าหมาย
ขั้นตอนนี้ช่วยให้ GAN แก้ปัญหาการสร้างที่แก้ยากได้ เราเริ่มต้นแก้ปัญหาการสร้างที่ยากด้วยปัญหาการจัดประเภทที่ง่ายกว่ามาก ในทางกลับกัน หากไม่สามารถฝึกตัวแยกประเภทให้แยกความแตกต่างระหว่างข้อมูลจริงกับข้อมูลที่สร้างขึ้นได้ แม้แต่สำหรับเอาต์พุตจากเครื่องมือสร้างแบบสุ่มเริ่มต้น คุณก็ไม่สามารถเริ่มการฝึก GAN ได้
การบรรจบ
เมื่อตัวสร้างดีขึ้นด้วยการฝึก ประสิทธิภาพของตัวแยกแยะจะแย่ลงเนื่องจากตัวแยกแยะแยกความแตกต่างระหว่างภาพจริงและภาพปลอมได้ยาก หากเครื่องกำเนิดรหัสทำงานได้อย่างสมบูรณ์ ดิสคริมิเนเตอร์จะมีความแม่นยำ 50% ผลที่ได้คือตัวแบ่งจะโยนหัวก้อยเพื่อคาดคะเน
ความก้าวหน้านี้ก่อให้เกิดปัญหาในการบรรจบของ GAN โดยรวม เนื่องจากความคิดเห็นของตัวแยกแยะจะมีความเกี่ยวข้องน้อยลงเมื่อเวลาผ่านไป หาก GAN ยังคงฝึกต่อไปหลังจากที่ตัวแยกแยะให้ความคิดเห็นแบบสุ่มทั้งหมด ตัวแกนจะเริ่มฝึกกับความคิดเห็นที่ไม่เกี่ยวข้อง และคุณภาพของตัวแกนเองอาจลดลง
สำหรับ GAN การบรรจบมักเป็นสถานะที่เปลี่ยนแปลงไปอย่างรวดเร็ว ไม่ใช่สถานะที่คงที่