ส่วน Generator ของ GAN จะเรียนรู้ในการสร้างข้อมูลปลอมโดยรวมความคิดเห็นที่ได้รับจาก Discriminator โดยจะเรียนรู้เพื่อทําให้ตัวแยกแยะจัดประเภทเอาต์พุตเป็น "จริง"
การฝึกอบรม Generatior ต้องมีการผสานรวมระหว่าง Generator กับตัวแบ่งที่แน่นหนากว่าการฝึกอบรมตัวแบ่ง ส่วนหนึ่งของ GAN ที่ใช้ฝึก Generative มีดังนี้
- อินพุตแบบสุ่ม
- เครือข่าย Generative ซึ่งเปลี่ยนอินพุตแบบสุ่มให้เป็นอินสแตนซ์ข้อมูล
- เครือข่ายตัวแยกแยะ ซึ่งจัดประเภทข้อมูลที่สร้างขึ้น
- เอาต์พุตตัวแบ่ง
- ความเสียหายของ Generator ซึ่งจะลงโทษ Generator ที่ไม่หลอกตัวแยกแยะได้
รูปที่ 1: การย้อนกลับในการฝึกโมเดล Generative
อินพุตแบบสุ่ม
เครือข่ายประสาทต้องการอินพุตรูปแบบใดรูปแบบหนึ่ง ปกติแล้วเราจะป้อนข้อมูลที่ต้องการดำเนินการ เช่น อินสแตนซ์ที่ต้องการจัดหมวดหมู่หรือทำการคาดการณ์ แต่เราจะใช้อะไรเป็นอินพุตสําหรับเครือข่ายที่แสดงผลอินสแตนซ์ข้อมูลใหม่ทั้งหมด
ในรูปที่พื้นฐานที่สุด GAN จะรับสัญญาณรบกวนแบบสุ่มเป็นอินพุต จากนั้นเครื่องกำเนิดไฟฟ้าจะเปลี่ยนสัญญาณรบกวนนี้ให้เป็นเอาต์พุตที่มีความหมาย การเพิ่มสัญญาณรบกวนช่วยให้ GAN สามารถสร้างข้อมูลที่หลากหลาย โดยสุ่มตัวอย่างจากส่วนต่างๆ ของข้อมูลประชากรเป้าหมาย
การทดสอบชี้ว่าความถี่ของสัญญาณรบกวนนั้นไม่สำคัญมากนัก เราจึงเลือกสิ่งที่สุ่มตัวอย่างได้ง่าย เช่น ความถี่แบบสม่ำเสมอ โดยทั่วไปแล้ว พื้นที่ที่จะสุ่มตัวอย่างเสียงรบกวนมักจะมีมิติข้อมูลเล็กกว่ามิติข้อมูลของพื้นที่เอาต์พุตเพื่อความสะดวก
การใช้ตัวแยกแยะเพื่อฝึก Generative
ในการฝึกอบรมเครือข่ายประสาท เราจะเปลี่ยนแปลงน้ำหนักของเครือข่ายเพื่อลดข้อผิดพลาดหรือการสูญเสียของเอาต์พุต อย่างไรก็ตาม ใน GAN ของเรา ตัวสร้างไม่ได้เชื่อมต่อโดยตรงกับ loss ที่เราพยายามจะส่งผล ข้อมูลของ Generator จะส่งไปยังเครือข่าย Discriminator และ Discriminator จะสร้างเอาต์พุตที่เราพยายามที่จะเปลี่ยนแปลง Loss ของ Generator จะลงโทษ Generator สำหรับการสร้างตัวอย่างที่เครือข่ายตัวแยกแยะจัดประเภทว่าเป็นของปลอม
เครือข่ายส่วนเกินนี้ต้องรวมอยู่ใน Backpropagation การย้อนกลับจะปรับน้ำหนักแต่ละรายการไปในทิศทางที่ถูกต้องโดยคำนวณผลที่น้ำหนักมีต่อเอาต์พุต ซึ่งก็คือผลที่เอาต์พุตจะได้รับหากคุณเปลี่ยนน้ำหนัก แต่ผลกระทบของน้ำหนักตัวสร้างจะขึ้นอยู่กับผลกระทบของน้ำหนักตัวแยกแยะที่ใช้ ดังนั้น การย้อนกลับจึงเริ่มต้นที่เอาต์พุตและไหลกลับผ่านตัวแยกแยะไปยังตัวสร้าง
ในขณะเดียวกัน เราไม่ต้องการให้ตัวแยกแยะเปลี่ยนแปลงระหว่างการฝึก Generator การพยายามยิงเป้าหมายที่เคลื่อนไหวจะทำให้ปัญหาที่ยากอยู่แล้วยากขึ้นไปอีกสำหรับเครื่องมือสร้าง
เราจึงฝึก Generator ด้วยขั้นตอนต่อไปนี้
- ตัวอย่างเสียงรบกวนแบบสุ่ม
- สร้างเอาต์พุตจากเสียงรบกวนแบบสุ่มที่บันทึกไว้
- รับการแยกประเภท "จริง" หรือ "ปลอม" ของตัวแยกแยะสำหรับเอาต์พุตของ Generative Adversarial Networks (GAN)
- คํานวณการสูญเสียจากการแยกประเภทตัวแบ่ง
- ย้อนกลับผ่านทั้งตัวแบ่งและตัวสร้างเพื่อรับอนุพันธ์
- ใช้การไล่ระดับเพื่อเปลี่ยนเฉพาะน้ำหนักของ Generator
นี่เป็นการฝึกซ้ำ 1 ครั้งของ Generator ในส่วนถัดไป เราจะดูวิธีฝึกทั้งตัวสร้างและตัวแยกแยะ