ต้นขั้ว Generative Adversarial Network (GAN) คืออะไร? - Unite.AI
เชื่อมต่อกับเรา
มาสเตอร์คลาส AI:

AI 101

Generative Adversarial Network (GAN) คืออะไร?

mm
วันที่อัพเดท on

Generative Adversarial Networks (GAN) เป็นประเภทของสถาปัตยกรรมโครงข่ายประสาทเทียม สามารถสร้างข้อมูลใหม่ได้ ที่สอดคล้องกับรูปแบบการเรียนรู้ สามารถใช้ GAN เพื่อสร้างภาพใบหน้ามนุษย์หรือวัตถุอื่นๆ เพื่อดำเนินการแปลข้อความเป็นรูปภาพ แปลงรูปภาพประเภทหนึ่งเป็นรูปภาพประเภทอื่น และเพื่อเพิ่มความละเอียดของรูปภาพ (ความละเอียดสูงสุด) ท่ามกลางแอปพลิเคชันอื่นๆ เนื่องจาก GAN สามารถสร้างข้อมูลใหม่ทั้งหมดได้ จึงเป็นหัวหน้าของระบบ AI แอปพลิเคชัน และการวิจัยที่ล้ำสมัยมากมาย แต่ GAN ทำงานอย่างไรกันแน่? มาสำรวจว่า GAN ทำงานอย่างไร และดูการใช้งานหลักบางประการของ GAN

การกำหนด Generative Models และ GAN

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

โมเดลการกำเนิดที่แตกต่างกันมีวิธีการสร้างข้อมูลและการคำนวณการแจกแจงความน่าจะเป็นที่แตกต่างกัน ตัวอย่างเช่น, โมเดลไร้เดียงสา Bayes ดำเนินการโดยการคำนวณการแจกแจงความน่าจะเป็นสำหรับคุณสมบัติอินพุตต่างๆ และคลาสกำเนิด เมื่อโมเดล Naive Bayes แสดงการคาดคะเน มันจะคำนวณคลาสที่น่าจะเป็นไปได้มากที่สุดโดยพิจารณาความน่าจะเป็นของตัวแปรต่างๆ และรวมเข้าด้วยกัน โมเดลกำเนิดการเรียนรู้ที่ไม่ใช่เชิงลึกอื่นๆ ได้แก่ Gaussian Mixture Models และ Latent Dirichlet Allocation (LDA) แบบจำลองกำเนิดเชิงลึก ประกอบด้วย เครื่องจักร Boltzmann จำกัด (RBM), ตัวเข้ารหัสอัตโนมัติแบบแปรผัน (VAE)และแน่นอน GAN

Generative Adversarial Networks คือ เสนอครั้งแรกโดย Ian Goodfellow ในปี 2014และได้รับการปรับปรุงโดย Alec Redford และนักวิจัยคนอื่นๆ ในปี 2015 ซึ่งนำไปสู่สถาปัตยกรรมที่เป็นมาตรฐานสำหรับ GAN GAN เป็นเครือข่ายที่แตกต่างกันสองเครือข่ายที่รวมเข้าด้วยกัน GAN คือ ประกอบด้วยสองส่วน: แบบจำลองรุ่นและแบบจำลองการเลือกปฏิบัติ เรียกอีกอย่างว่าตัวกำเนิดและตัวจำแนก

สถาปัตยกรรม GAN

Generative Adversarial Networks คือ สร้างขึ้นจากแบบจำลองตัวสร้างและแบบจำลองตัวจำแนก งานของโมเดลตัวสร้างคือการสร้างตัวอย่างข้อมูลใหม่ ตามรูปแบบที่โมเดลได้เรียนรู้จากข้อมูลการฝึก งานของตัวแบบจำแนกคือการวิเคราะห์ภาพ (สมมติว่าได้รับการฝึกฝนเกี่ยวกับภาพ) และพิจารณาว่าภาพถูกสร้างขึ้น/ปลอมหรือเป็นของแท้

แบบจำลองทั้งสองจะแข่งขันกัน โดยได้รับการฝึกฝนตามทฤษฎีเกม เป้าหมายของแบบจำลองเครื่องกำเนิดไฟฟ้าคือการสร้างภาพที่หลอกลวงฝ่ายตรงข้าม นั่นคือแบบจำลองผู้เลือกปฏิบัติ ในขณะเดียวกัน หน้าที่ของตัวจำลองการแบ่งแยกคือการเอาชนะศัตรู ตัวจำลองตัวสร้าง และจับภาพปลอมที่ตัวสร้างสร้างขึ้น ข้อเท็จจริงที่ว่าโมเดลต่างๆ แข่งขันกันส่งผลให้เกิดการแข่งขันทางอาวุธที่ทั้งสองโมเดลพัฒนาขึ้น ผู้เลือกปฏิบัติจะได้รับข้อเสนอแนะว่าภาพใดเป็นของแท้และภาพใดที่ผลิตโดยตัวสร้าง ขณะที่ตัวสร้างจะได้รับข้อมูลว่าภาพใดถูกระบุว่าเป็นเท็จโดยผู้เลือกปฏิบัติ แบบจำลองทั้งสองปรับปรุงระหว่างการฝึกอบรม โดยมีเป้าหมายในการฝึกอบรมแบบจำลองรุ่นที่สามารถสร้างข้อมูลปลอมที่แยกไม่ออกจากข้อมูลจริงและแท้จริง

เมื่อสร้างการแจกแจงแบบเกาส์เซียนของข้อมูลระหว่างการฝึกอบรมแล้ว จะสามารถใช้แบบจำลองเชิงกำเนิดได้ เริ่มแรกแบบจำลองเครื่องกำเนิดไฟฟ้าป้อนเวกเตอร์แบบสุ่ม ซึ่งแปลงตามการแจกแจงแบบเกาส์เซียน กล่าวอีกนัยหนึ่งเวกเตอร์เป็นผู้เพาะพันธุ์ เมื่อโมเดลได้รับการฝึกฝน เวคเตอร์สเปซจะเป็นเวอร์ชันบีบอัดหรือเป็นตัวแทนของการแจกแจงแบบเกาส์เซียนของข้อมูล เวอร์ชันบีบอัดของการกระจายข้อมูลเรียกว่าพื้นที่แฝงหรือตัวแปรแฝง ในภายหลัง แบบจำลอง GAN สามารถใช้การแสดงพื้นที่แฝงและดึงคะแนนจากแบบจำลองนั้น ซึ่งสามารถมอบให้กับแบบจำลองการสร้างและใช้เพื่อสร้างข้อมูลใหม่ที่คล้ายคลึงกันมากกับข้อมูลการฝึกอบรม

แบบจำลองการเลือกปฏิบัติได้รับตัวอย่างจากโดเมนการฝึกอบรมทั้งหมด ซึ่งประกอบด้วยตัวอย่างข้อมูลจริงและข้อมูลที่สร้างขึ้น ตัวอย่างจริงอยู่ในชุดข้อมูลการฝึกอบรม ในขณะที่ข้อมูลปลอมสร้างโดยแบบจำลองเชิงกำเนิด กระบวนการฝึกอบรมแบบจำลองการจำแนกประเภทนั้นเหมือนกันทุกประการกับการฝึกอบรมแบบจำลองการจำแนกประเภทแบบไบนารีขั้นพื้นฐาน

ขั้นตอนการฝึกอบรม GAN

ลองดูที่ทั้งหมด การอบรม กระบวนการ สำหรับงานสร้างภาพสมมุติ

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

เครื่องกำเนิดใช้เวกเตอร์ของข้อมูลตัวเลขสุ่มและแปลงข้อมูลเหล่านั้นตามการแจกแจงแบบเกาส์เซียน ส่งคืนรูปภาพ รูปภาพที่สร้างขึ้นนี้ ควบคู่ไปกับรูปภาพของแท้บางส่วนจากชุดข้อมูลการฝึกอบรม จะถูกป้อนเข้าสู่แบบจำลองการเลือกปฏิบัติ เครื่องมือจำแนกจะแสดงการคาดคะเนความน่าจะเป็นเกี่ยวกับลักษณะของภาพที่ได้รับ โดยแสดงค่าระหว่าง 0 ถึง 1 โดยที่ 1 เป็นภาพจริงและ 0 เป็นภาพปลอม

มีวงจรป้อนกลับสองครั้งในการเล่น เนื่องจากผู้เลือกปฏิบัติภาคพื้นดินป้อนความจริงพื้นฐานของภาพ ขณะที่เครื่องกำเนิดได้รับข้อเสนอแนะเกี่ยวกับประสิทธิภาพการทำงานโดยผู้เลือกปฏิบัติ

โมเดลเชิงกำเนิดและการเลือกปฏิบัติกำลังเล่นเกมผลรวมศูนย์ซึ่งกันและกัน เกมผลรวมศูนย์คือเกมที่ฝ่ายหนึ่งได้กำไรจากอีกฝ่ายหนึ่ง (ผลรวมคือการกระทำทั้งสองอย่างเป็นศูนย์) เมื่อแบบจำลองตัวจำแนกสามารถแยกความแตกต่างระหว่างตัวอย่างจริงและตัวอย่างปลอมได้สำเร็จ จะไม่มีการเปลี่ยนแปลงใดๆ กับพารามิเตอร์ของตัวจำแนก อย่างไรก็ตาม มีการปรับปรุงพารามิเตอร์ของโมเดลครั้งใหญ่เมื่อไม่สามารถแยกความแตกต่างระหว่างภาพจริงและภาพปลอมได้ การผกผันเป็นจริงสำหรับโมเดลเชิงกำเนิด มันจะถูกลงโทษ (และพารามิเตอร์ของมันอัปเดต) เมื่อมันล้มเหลวในการหลอกโมเดลเชิงเลือกปฏิบัติ แต่มิฉะนั้น พารามิเตอร์จะไม่เปลี่ยนแปลง (หรือมันได้รับรางวัล)

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

แอพพลิเคชั่น GAN

GAN มีแอปพลิเคชั่นที่แตกต่างกันจำนวนมาก ส่วนใหญ่เกี่ยวกับการสร้างรูปภาพและส่วนประกอบของรูปภาพ โดยทั่วไปจะใช้ GAN ในงานที่ข้อมูลรูปภาพที่จำเป็นขาดหายไปหรือมีข้อจำกัดในบางความจุ เป็นวิธีการสร้างข้อมูลที่จำเป็น มาดูกรณีการใช้งานทั่วไปสำหรับ GAN กันบ้าง

การสร้างตัวอย่างใหม่สำหรับชุดข้อมูล

สามารถใช้ GAN เพื่อสร้างตัวอย่างใหม่สำหรับชุดข้อมูลภาพอย่างง่าย หากคุณมีตัวอย่างการฝึกเพียงไม่กี่ตัวอย่างและต้องการมากกว่านี้ อาจใช้ GAN เพื่อสร้างข้อมูลการฝึกใหม่สำหรับตัวแยกประเภทรูปภาพ สร้างตัวอย่างการฝึกใหม่ในการวางแนวและมุมต่างๆ

สร้างใบหน้ามนุษย์ที่ไม่ซ้ำใคร

ผู้หญิงในภาพนี้ไม่อยู่ ภาพนี้สร้างโดย StyleGAN รูปภาพ: Owlsmcgee ผ่าน Wikimedia Commons, โดเมนสาธารณะ (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

เมื่อได้รับการฝึกฝนอย่างเพียงพอ GAN ก็สามารถนำมาใช้ได้ สร้างภาพใบหน้ามนุษย์ที่สมจริงอย่างยิ่ง ภาพที่สร้างขึ้นเหล่านี้สามารถใช้เพื่อช่วยฝึกระบบการจดจำใบหน้า

การแปลรูปภาพเป็นรูปภาพ

GAN เก่งในการแปลภาพ สามารถใช้ GAN เพื่อปรับสีภาพขาวดำ แปลภาพสเก็ตช์หรือภาพวาดเป็นภาพภาพถ่าย หรือแปลงภาพจากกลางวันเป็นกลางคืน

การแปลข้อความเป็นรูปภาพ

การแปลข้อความเป็นรูปภาพคือ เป็นไปได้ผ่านการใช้ GAN. เมื่อมีข้อความอธิบายรูปภาพและรูปภาพประกอบ GAN สามารถ ได้รับการฝึกฝนเพื่อสร้างภาพลักษณ์ใหม่ เมื่อมีคำอธิบายรูปภาพที่ต้องการ

การแก้ไขและซ่อมแซมรูปภาพ

สามารถใช้ GAN เพื่อแก้ไขรูปถ่ายที่มีอยู่ GAN ลบองค์ประกอบเช่นฝนหรือหิมะ จากรูปภาพ แต่ก็สามารถนำมาใช้ได้เช่นกัน ซ่อมแซมภาพเก่า ภาพที่เสียหาย หรือภาพที่เสียหาย 

ความละเอียดสูง

ความละเอียดสูงสุดคือกระบวนการถ่ายภาพความละเอียดต่ำและใส่พิกเซลเพิ่มเติมลงในภาพ เพื่อปรับปรุงความละเอียดของภาพนั้น GAN สามารถฝึกฝนให้ถ่ายภาพได้ สร้างภาพที่มีความละเอียดสูงขึ้น 

บล็อกเกอร์และโปรแกรมเมอร์ที่มีความเชี่ยวชาญด้าน เครื่องเรียนรู้ และ การเรียนรู้ลึก ๆ หัวข้อ Daniel หวังว่าจะช่วยให้ผู้อื่นใช้พลังของ AI เพื่อประโยชน์ทางสังคม