Generative Adversarial Networks หรือ GAN เป็นวิธีการสร้างแบบจำลองโดยกำเนิดโดยใช้ การเรียนรู้เชิงลึก เพื่อฝึกโมเดลอย่างชาญฉลาดในการสร้างข้อมูลโดยใช้แนวทางโมเดลย่อย ในบทความนี้เราจะพยายามทำความเข้าใจ“ GAN คืออะไร” โดยละเอียด หัวข้อต่อไปนี้ครอบคลุมในบทความนี้:
- Generative Models คืออะไร?
- Generative Adversarial Network คืออะไร?
- ความท้าทายของ Generative Adversarial Network?
- แอปพลิเคชัน Generative Adversarial Networks
Generative Models คืออะไร?
Generative models ไม่ใช่อะไรนอกจากโมเดลที่ใช้ไฟล์ แนวทาง ในรูปแบบกำเนิดมีตัวอย่างในข้อมูลเช่นตัวแปรอินพุต X แต่ไม่มีตัวแปรเอาต์พุต Y เราใช้เฉพาะตัวแปรอินพุตเพื่อฝึกโมเดลกำเนิดและจดจำรูปแบบจากตัวแปรอินพุตเพื่อสร้างเอาต์พุตที่ไม่รู้จัก และขึ้นอยู่กับข้อมูลการฝึกอบรมเท่านั้น
ใน เรามีความสอดคล้องกับการสร้างแบบจำลองการคาดการณ์จากตัวแปรอินพุตมากขึ้นการสร้างแบบจำลองประเภทนี้เรียกว่าการสร้างแบบจำลองแบบแยกแยะ ในปัญหาการจัดหมวดหมู่โมเดลต้องแยกแยะให้ออกว่าเป็นของคลาสใด ในทางกลับกันแบบจำลองที่ไม่ได้รับการดูแลจะถูกใช้เพื่อสร้างหรือสร้างตัวอย่างใหม่ในการกระจายอินพุต
ในการกำหนดรูปแบบกำเนิดในแง่ของคนธรรมดาเราสามารถพูดได้ว่า Generative model สามารถสร้างตัวอย่างใหม่จากตัวอย่างที่ไม่เพียง แต่คล้ายกับตัวอย่างอื่น ๆ เท่านั้น แต่ยังแยกไม่ออกด้วย
ตัวอย่างที่พบบ่อยที่สุดของแบบจำลองกำเนิดคือ ซึ่งมักใช้เป็นแบบจำลองการเลือกปฏิบัติ ตัวอย่างอื่น ๆ ของแบบจำลองการกำเนิด ได้แก่ Gaussian Mixture Model และตัวอย่างที่ค่อนข้างทันสมัยนั่นคือ General Adversarial Networks ให้เราพยายามทำความเข้าใจ GAN คืออะไร?
Generative Adversarial Network คืออะไร?
Generative Adversarial Networks หรือ GAN เป็นแบบจำลองการเรียนรู้เชิงลึกที่ใช้สำหรับการเรียนรู้ที่ไม่มีผู้ดูแล มันเป็นระบบที่ทั้งสองแข่งขันกัน โครงข่ายประสาท แข่งขันกันเพื่อสร้างหรือสร้างรูปแบบต่างๆในข้อมูล
ได้รับการอธิบายครั้งแรกในบทความในปี 2014 โดย Ian Goodfellow และได้เสนอทฤษฎีแบบจำลองที่เป็นมาตรฐานและมีเสถียรภาพมากโดย Alec Radford ในปี 2559 ซึ่งเรียกว่า DCGAN (Deep Convolutional General Adversarial Networks) GAN ส่วนใหญ่ในปัจจุบันใช้สถาปัตยกรรม DCGAN
สถาปัตยกรรม GAN ประกอบด้วยสองโมเดลย่อยที่เรียกว่า แบบจำลองเครื่องกำเนิดไฟฟ้า และ Discriminator Model. ให้เราพยายามทำความเข้าใจว่า GAN ทำงานอย่างไร
มันทำงานอย่างไร?
หากต้องการทำความเข้าใจว่า GAN ทำงานอย่างไรมาดูรายละเอียดกัน
- กำเนิด - หมายความว่าโมเดลเป็นไปตาม แนวทางและเป็นรูปแบบการกำเนิด
- ฝ่ายตรงข้าม - แบบจำลองได้รับการฝึกฝนในสภาพแวดล้อมที่เป็นปฏิปักษ์
- เครือข่าย - สำหรับการฝึกโมเดลใช้โครงข่ายประสาทเทียมเป็นอัลกอริธึมปัญญาประดิษฐ์
ใน GAN มีเครือข่าย Generator ที่ใช้ตัวอย่างและสร้างตัวอย่างข้อมูลและหลังจากนี้เครือข่าย Discriminator จะตัดสินใจว่าข้อมูลถูกสร้างขึ้นหรือนำมาจากตัวอย่างจริงโดยใช้ไบนารี ปัญหาเกี่ยวกับความช่วยเหลือของฟังก์ชัน sigmoid ที่ให้เอาต์พุตในช่วง 0 ถึง 1
แบบจำลองทางกำเนิดจะวิเคราะห์การกระจายของข้อมูลในลักษณะที่ว่าหลังจากขั้นตอนการฝึกอบรมความน่าจะเป็นของผู้แยกแยะที่ทำผิดจะเพิ่มขึ้นสูงสุด และในทางกลับกัน Discriminator นั้นขึ้นอยู่กับแบบจำลองที่จะประเมินความน่าจะเป็นที่ตัวอย่างนั้นมาจากข้อมูลจริงไม่ใช่เครื่องกำเนิดไฟฟ้า
กระบวนการทั้งหมดสามารถทำให้เป็นทางการได้ในสูตรทางคณิตศาสตร์ที่ระบุด้านล่าง
ในสูตรข้างต้น:
วิธีรับความยาวของอาร์เรย์ในจาวาสคริปต์
G = เครื่องกำเนิดไฟฟ้า
D = Discriminator
Pdata (x) = การกระจายของข้อมูลจริง
Pdata (z) = ผู้จัดจำหน่ายเครื่องกำเนิดไฟฟ้า
ผสานซอร์สโค้ดเรียง c ++
x = ตัวอย่างจากข้อมูลจริง
z = ตัวอย่างจากเครื่องกำเนิดไฟฟ้า
D (x) = เครือข่าย Discriminator
G (z) = เครือข่ายเครื่องกำเนิดไฟฟ้า
ตอนนี้มาถึงส่วนการฝึกอบรมสำหรับ GAN ซึ่งสามารถแบ่งออกเป็น 2 ส่วนซึ่งทำตามลำดับ
วิธีการฝึก GAN
ส่วนที่ 1:
ฝึกผู้แยกแยะและตรึงเครื่องกำเนิดไฟฟ้าซึ่งหมายความว่าชุดการฝึกสำหรับเครื่องกำเนิดไฟฟ้าถูกเปลี่ยนเป็น False และเครือข่ายจะทำการส่งต่อเท่านั้นและจะไม่มีการใช้การขยายกลับ
โดยพื้นฐานแล้วผู้แยกแยะได้รับการฝึกฝนกับข้อมูลจริงและตรวจสอบว่าสามารถคาดเดาได้อย่างถูกต้องหรือไม่และเช่นเดียวกันกับข้อมูลปลอมเพื่อระบุว่าเป็นของปลอม
ส่วนที่ 2:
ฝึกเครื่องกำเนิดไฟฟ้าและตรึงตัวเลือก ในระยะนี้เราได้รับผลลัพธ์จากระยะแรกและสามารถใช้เพื่อทำให้ดีขึ้นจากสถานะก่อนหน้านี้เพื่อพยายามหลอกผู้แยกแยะให้ดีขึ้น
ขั้นตอนในการฝึกอบรม
- กำหนดปัญหา - กำหนดปัญหาและรวบรวมข้อมูล
- เลือกสถาปัตยกรรมของ GAN - ขึ้นอยู่กับปัญหาของคุณเลือกว่า GAN ของคุณควรมีลักษณะอย่างไร
- ฝึก Discriminator บนข้อมูลจริง - ฝึกผู้แยกแยะด้วยข้อมูลจริงเพื่อทำนายตามความเป็นจริงเป็นจำนวนครั้ง
- สร้างอินพุตปลอมสำหรับเครื่องกำเนิดไฟฟ้า - สร้างตัวอย่างปลอมจากเครื่องกำเนิดไฟฟ้า
- ฝึกแยกแยะข้อมูลปลอม - ฝึกผู้แยกแยะให้คาดเดาข้อมูลที่สร้างขึ้นว่าเป็นของปลอม
- เครื่องกำเนิดรถไฟด้วยผลลัพธ์ของการเลือกปฏิบัติ - หลังจากได้รับการคาดคะเนผู้แยกแยะแล้วให้ฝึกเครื่องกำเนิดไฟฟ้าเพื่อหลอกผู้เลือกปฏิบัติ
ความท้าทายของเครือข่ายฝ่ายตรงข้ามโดยกำเนิด
แนวคิดของ GAN นั้นค่อนข้างน่าสนใจ แต่ก็มีความพ่ายแพ้มากมายที่อาจทำให้เกิดอุปสรรคมากมายในเส้นทางของมัน ความท้าทายที่สำคัญบางประการที่ GAN ต้องเผชิญ ได้แก่ :
- เสถียรภาพ เป็นสิ่งจำเป็นระหว่างผู้แยกแยะและเครื่องกำเนิดไฟฟ้ามิฉะนั้นเครือข่ายทั้งหมดก็จะล่มสลาย ในกรณีหาก Discriminator มีพลังมากเกินไปเครื่องกำเนิดไฟฟ้าจะไม่สามารถฝึกได้ทั้งหมด และหากเครือข่ายผ่อนปรนมากเกินไปภาพใด ๆ ก็จะถูกสร้างขึ้นทำให้เครือข่ายไร้ประโยชน์
- GAN ล้มเหลวในการพิจารณาไฟล์ การวางตำแหน่งของวัตถุ ในแง่ของจำนวนครั้งที่วัตถุควรเกิดขึ้นที่ตำแหน่งนั้น
- มุมมอง 3 มิติมีปัญหา GAN เนื่องจากไม่สามารถเข้าใจได้ มุมมอง มันมักจะให้ภาพแบนสำหรับวัตถุ 3 มิติ
- GAN มีปัญหาในการทำความเข้าใจไฟล์ วัตถุทั่วโลก . ไม่สามารถแยกความแตกต่างหรือเข้าใจโครงสร้างแบบองค์รวมได้
- GAN ประเภทใหม่มีขั้นสูงกว่าและคาดว่าจะเอาชนะข้อบกพร่องเหล่านี้ได้ทั้งหมด
แอปพลิเคชันเครือข่ายที่ไม่พึงประสงค์โดยกำเนิด
ต่อไปนี้เป็นแอปพลิเคชันบางส่วนของ GAN
การทำนายเฟรมถัดไปในวิดีโอ
การคาดคะเนเหตุการณ์ในอนาคตในเฟรมวิดีโอทำได้โดยใช้ GAN DVD-GAN หรือ Dual Video Discriminator GAN สามารถสร้างวิดีโอ 256 × 256 ที่มีความเที่ยงตรงสูงถึง 48 เฟรม สิ่งนี้สามารถใช้เพื่อวัตถุประสงค์ต่างๆรวมถึงการเฝ้าระวังซึ่งเราสามารถกำหนดกิจกรรมในเฟรมที่บิดเบี้ยวเนื่องจากปัจจัยอื่น ๆ เช่นฝนฝุ่นควัน ฯลฯ
การสร้างข้อความเป็นรูปภาพ
GAN (obj-GAN) ที่ขับเคลื่อนด้วยวัตถุจะทำการสังเคราะห์ข้อความเป็นรูปภาพในสองขั้นตอน การสร้างเค้าโครงความหมายเป็นขั้นตอนเริ่มต้นจากนั้นการสร้างภาพโดยการสังเคราะห์ภาพโดยใช้ตัวสร้างภาพ de-Convolutional เป็นขั้นตอนสุดท้าย
โปรแกรมเพื่อย้อนกลับตัวเลขใน java
สิ่งนี้สามารถนำมาใช้อย่างเข้มข้นเพื่อสร้างภาพโดยการทำความเข้าใจคำอธิบายภาพการจัดวางและปรับแต่งรายละเอียดโดยการสังเคราะห์คำ มีการศึกษาอื่นเกี่ยวกับ storyGAN ที่สามารถสังเคราะห์สตอรี่บอร์ดทั้งหมดจากย่อหน้าเท่านั้น
การเพิ่มความละเอียดของภาพ
Super-resolution generative adversarial network หรือ SRGAN คือ GAN ที่สามารถสร้างภาพความละเอียดสูงจากภาพความละเอียดต่ำที่มีรายละเอียดปลีกย่อยและคุณภาพที่ดีกว่า
แอพพลิเคชั่นสามารถใหญ่โตได้ลองจินตนาการถึงภาพที่มีคุณภาพสูงขึ้นพร้อมรายละเอียดปลีกย่อยที่สร้างขึ้นจากภาพที่มีความละเอียดต่ำ จำนวนความช่วยเหลือที่ใช้ในการระบุรายละเอียดในภาพความละเอียดต่ำสามารถนำไปใช้เพื่อวัตถุประสงค์ที่กว้างขึ้นรวมถึงการเฝ้าระวังเอกสารการรักษาความปลอดภัยรูปแบบการตรวจจับ ฯลฯ
การแปลรูปภาพเป็นรูปภาพ
Pix2Pix GAN เป็นรุ่นที่ออกแบบมาสำหรับการแปลรูปภาพ - ภาพโดยทั่วไป
การสร้างภาพแบบโต้ตอบ
สามารถใช้ GAN เพื่อสร้างภาพเชิงโต้ตอบได้เช่นกันวิทยาศาสตร์คอมพิวเตอร์และห้องปฏิบัติการปัญญาประดิษฐ์ (CSAIL) ได้พัฒนา GAN ที่สามารถสร้างแบบจำลอง 3 มิติด้วยแสงและการสะท้อนที่เหมือนจริงซึ่งเปิดใช้งานโดยการแก้ไขรูปร่างและพื้นผิว
เมื่อไม่นานมานี้นักวิจัยได้สร้างแบบจำลองที่สามารถสังเคราะห์ใบหน้าที่ตอบสนองโดยการเคลื่อนไหวของบุคคลในขณะที่รักษาลักษณะของใบหน้าในเวลาเดียวกัน
เรามาถึงตอนท้ายของบทความนี้ซึ่งเราได้เรียนรู้ว่า 'GAN คืออะไร' ฉันหวังว่าคุณจะเข้าใจทุกสิ่งที่แบ่งปันกับคุณในบทแนะนำนี้
หากคุณพบบทความเกี่ยวกับ“ GAN คืออะไร” ที่เกี่ยวข้องโปรดดูที่ไฟล์ บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้พร้อมเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก
เราอยู่ที่นี่เพื่อช่วยคุณในทุกขั้นตอนในการเดินทางของคุณและจัดทำหลักสูตรที่ออกแบบมาสำหรับนักเรียนและผู้เชี่ยวชาญที่ต้องการเป็น . หลักสูตรนี้ออกแบบมาเพื่อให้คุณเริ่มต้นในการเขียนโปรแกรม Python และฝึกอบรมแนวคิด Python ทั้งหลักและขั้นสูงพร้อมกับ ชอบ
หากคุณพบคำถามใด ๆ อย่าลังเลที่จะถามคำถามทั้งหมดของคุณในส่วนความคิดเห็นของ 'GAN คืออะไร' และทีมของเรายินดีที่จะตอบ