สร้างข้อมูลจากสัญญาณรบกวนแบบสุ่มด้วย Generative Adversarial Networks

เผยแพร่แล้ว: 2022-03-11

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

สิ่งหนึ่งที่นักวิทยาศาสตร์ทุกคนเห็นพ้องต้องกันคือเราต้องการข้อมูลมากกว่านี้

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

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

เครือข่ายปฏิปักษ์ทั่วไป

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

ในการทดลองของฉัน ฉันพยายามใช้ชุดข้อมูลนี้เพื่อดูว่าฉันสามารถรับ GAN เพื่อสร้างข้อมูลที่สมจริงมากพอที่จะช่วยให้เราตรวจพบกรณีการฉ้อโกงได้หรือไม่ ชุดข้อมูลนี้เน้นย้ำถึงปัญหาข้อมูลที่จำกัด: จากธุรกรรม 285,000 รายการ มีเพียง 492 รายการเท่านั้นที่เป็นการฉ้อโกง 492 กรณีของการฉ้อโกงไม่ใช่ชุดข้อมูลขนาดใหญ่ที่ต้องฝึกฝน โดยเฉพาะอย่างยิ่งเมื่อพูดถึงงานการเรียนรู้ของเครื่องที่ผู้คนต้องการมีชุดข้อมูลที่มีขนาดใหญ่กว่าหลายระดับ แม้ว่าผลการทดลองของฉันจะไม่น่าทึ่ง แต่ฉันได้เรียนรู้มากมายเกี่ยวกับ GAN ตลอดทางที่ฉันยินดีที่จะแบ่งปัน

ก่อนคุณเริ่ม

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

  • บทนำสู่ทฤษฎีแมชชีนเลิร์นนิงและการประยุกต์: การสอนด้วยภาพพร้อมตัวอย่าง
  • บทช่วยสอนการเรียนรู้เชิงลึก: จาก Perceptrons ไปจนถึง Deep Networks

ทำไมต้อง GAN?

Generative Adversarial Network (GAN) เป็นสถาปัตยกรรมเครือข่ายประสาทเทียมที่แสดงการปรับปรุงที่น่าประทับใจเหนือวิธีการสร้างแบบเดิม เช่น ตัวเข้ารหัสอัตโนมัติแบบแปรผันหรือเครื่อง Boltzman ที่ถูกจำกัด GAN สามารถสร้างภาพที่เหมือนจริงมากขึ้น (เช่น DCGAN) เปิดใช้งานการถ่ายโอนรูปแบบระหว่างรูปภาพ (ดูที่นี่และที่นี่) สร้างรูปภาพจากคำอธิบายข้อความ (StackGAN) และเรียนรู้จากชุดข้อมูลขนาดเล็กผ่านการเรียนรู้แบบกึ่งควบคุมดูแล เนื่องจากความสำเร็จเหล่านี้ พวกเขากำลังสร้างความสนใจอย่างมากทั้งในภาคการศึกษาและการค้า

Yann LeCunn ผู้อำนวยการฝ่ายวิจัย AI ของ Facebook เรียกพวกเขาว่าการพัฒนาที่น่าตื่นเต้นที่สุดในการเรียนรู้ของเครื่องในช่วงทศวรรษที่ผ่านมา

พื้นฐาน

ลองคิดดูว่าคุณจะเรียนอย่างไร คุณลองทำอะไร คุณได้รับคำติชม คุณปรับกลยุทธ์แล้วลองอีกครั้ง

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

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

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

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

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

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

แผนภาพของ GAN

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

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

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

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

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

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

ในสูตรดั้งเดิมของ GANs ในปี 2014 โดย Goodfellow et al. ผู้เลือกปฏิบัติจะสร้างค่าประมาณของความน่าจะเป็นที่ภาพที่กำหนดนั้นเป็นของจริงหรือสร้างขึ้น ผู้เลือกปฏิบัติจะได้รับชุดของภาพที่ประกอบด้วยทั้งภาพจริงและภาพที่สร้างขึ้น และจะสร้างค่าประมาณสำหรับอินพุตเหล่านี้แต่ละรายการ ข้อผิดพลาดระหว่างเอาต์พุตของตัวแบ่งแยกกับฉลากจริงจะถูกวัดโดยการสูญเสียเอนโทรปีแบบไขว้ การสูญเสียข้ามเอนโทรปีสามารถเทียบได้กับเมตริกระยะทางของเจนเซ่น-แชนนอน และแสดงให้เห็นเมื่อต้นปี 2560 โดย Arjovsky et al ว่าตัวชี้วัดนี้จะล้มเหลวในบางกรณีและไม่ได้ชี้ไปในทิศทางที่ถูกต้องในกรณีอื่น กลุ่มนี้แสดงให้เห็นว่าตัววัดระยะทาง Wasserstein (หรือที่รู้จักในชื่อ Earth Mover หรือ EM Distance) ทำงานและทำงานได้ดีขึ้นในหลายกรณี

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

สำหรับการสำรวจ GAN ที่ครอบคลุมมากขึ้นเล็กน้อย ในบทความนี้ เราจะสำรวจสถาปัตยกรรมที่แตกต่างกันสี่แบบ:

  • GAN: ต้นฉบับ (“วานิลลา”) GAN
  • CGAN: เวอร์ชันตามเงื่อนไขของ GAN ดั้งเดิมที่ใช้ class labels
  • WGAN: The Wasserstein GAN (พร้อมจุดโทษไล่ระดับ)
  • WCGAN: Wasserstein GAN . รุ่นมีเงื่อนไข

แต่ให้ดูที่ชุดข้อมูลของเราก่อน

ดูข้อมูลการฉ้อโกงบัตรเครดิต

เราจะทำงานร่วมกับชุดข้อมูลการตรวจจับการฉ้อโกงบัตรเครดิตจาก Kaggle

ชุดข้อมูลประกอบด้วยธุรกรรมประมาณ 285,000 รายการ ซึ่งมีเพียง 492 รายการเท่านั้นที่เป็นการฉ้อโกง ข้อมูลประกอบด้วยคุณสมบัติ 31 อย่าง: “เวลา” “ปริมาณ” “คลาส” และคุณสมบัติเพิ่มเติมอีก 28 รายการที่ไม่ระบุชื่อ คุณสมบัติของคลาสคือป้ายกำกับที่ระบุว่าธุรกรรมนั้นเป็นการฉ้อโกงหรือไม่ โดย 0 หมายถึงปกติ และ 1 หมายถึงการฉ้อโกง ข้อมูลทั้งหมดเป็นตัวเลขและต่อเนื่อง (ยกเว้นป้ายกำกับ) ชุดข้อมูลไม่มีค่าที่ขาดหายไป ชุดข้อมูลอยู่ในสภาพที่ดีอยู่แล้วในการเริ่มต้น แต่ฉันจะทำการทำความสะอาดเพิ่มเติมอีกเล็กน้อย ส่วนใหญ่ก็แค่ปรับวิธีการของคุณสมบัติทั้งหมดให้เป็นศูนย์และค่าเบี่ยงเบนมาตรฐานเป็นหนึ่ง ฉันได้อธิบายขั้นตอนการทำความสะอาดเพิ่มเติมในโน้ตบุ๊กที่นี่ สำหรับตอนนี้ฉันจะแสดงผลลัพธ์สุดท้าย:

คุณลักษณะเทียบกับกราฟระดับ

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

อีกครั้ง หากเรามีข้อมูลการฉ้อโกงมากขึ้น เราอาจตรวจพบได้ดีขึ้น นั่นคือเราสามารถได้รับการเรียกคืนที่สูงขึ้น ตอนนี้เราจะพยายามสร้างข้อมูลการฉ้อโกงใหม่ที่สมจริงโดยใช้ GAN เพื่อช่วยเราตรวจจับการฉ้อโกงที่เกิดขึ้นจริง

การสร้างข้อมูลบัตรเครดิตใหม่ด้วย GANs

ในการใช้สถาปัตยกรรม GAN ต่างๆ กับชุดข้อมูลนี้ ฉันจะใช้ GAN-Sandbox ซึ่งมีสถาปัตยกรรม GAN ยอดนิยมจำนวนหนึ่งที่นำไปใช้ใน Python โดยใช้ไลบรารี Keras และส่วนหลังของ TensorFlow ผลลัพธ์ทั้งหมดของฉันมีอยู่ในสมุดบันทึก Jupyter ที่นี่ ไลบรารีที่จำเป็นทั้งหมดจะรวมอยู่ในอิมเมจ Kaggle/Python Docker หากคุณต้องการติดตั้งง่าย

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

GAN แรกที่ฉันจะประเมินหลุมเครือข่ายเครื่องกำเนิดไฟฟ้ากับเครือข่ายผู้เลือกปฏิบัติ โดยใช้การสูญเสียเอนโทรปีข้ามจากตัวแบ่งแยกเพื่อฝึกอบรมเครือข่าย นี่คือสถาปัตยกรรม GAN แบบ “วานิลลา” ดั้งเดิม GAN ที่สองที่ฉันจะประเมินจะเพิ่มป้ายกำกับคลาสให้กับข้อมูลในลักษณะของ GAN แบบมีเงื่อนไข (CGAN) GAN นี้มีตัวแปรอีกหนึ่งตัวใน data คือ class label GAN ที่สามจะใช้ตัววัดระยะทาง Wasserstein เพื่อฝึกเครือข่าย (WGAN) และตัวสุดท้ายจะใช้ป้ายชื่อคลาสและตัววัดระยะทาง Wasserstein (WCGAN)

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

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

ฉันจะฝึก GAN แต่ละรอบ 5,000 รอบและตรวจสอบผลลัพธ์ไปพร้อมกัน ในรูปที่ 4 เราสามารถเห็นข้อมูลการฉ้อโกงจริงและข้อมูลการฉ้อโกงที่สร้างขึ้นจากสถาปัตยกรรม GAN ต่างๆ ในระหว่างการฝึกอบรม เราสามารถเห็นข้อมูลการฉ้อโกงที่เกิดขึ้นจริงแบ่งออกเป็น 2 คลาส KMeans ซึ่งวาดด้วย 2 มิติที่แยกแยะทั้งสองคลาสได้ดีที่สุด (ฟีเจอร์ V10 และ V17 จากฟีเจอร์ที่แปลง PCA) GAN สองตัวที่ไม่ใช้ข้อมูลคลาส GAN และ WGAN มีเอาต์พุตที่สร้างขึ้นทั้งหมดเป็นคลาสเดียว สถาปัตยกรรมแบบมีเงื่อนไข CGAN และ WCGAN แสดงข้อมูลที่สร้างขึ้นตามคลาส ในขั้นตอนที่ 0 ข้อมูลที่สร้างขึ้นทั้งหมดจะแสดงการแจกแจงแบบปกติของอินพุตแบบสุ่มที่ป้อนไปยังเครื่องกำเนิด

การเปรียบเทียบเอาต์พุต GAN

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

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

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

ความแม่นยำ

เราสามารถเห็นความถูกต้องของ xgboost บนข้อมูลที่สร้างโดย GAN ลดลงในตอนแรก แล้วเพิ่มขึ้นหลังจากการฝึกขั้นตอนที่ 1000 เมื่อมีการยุบโหมดเข้ามา สถาปัตยกรรม CGAN จะได้รับข้อมูลที่ค่อนข้างสมจริงมากขึ้นหลังจากผ่านไป 2,000 ขั้นตอน แต่จากนั้นการยุบโหมดจะตั้งค่าสำหรับเครือข่ายนี้เป็น ดี. สถาปัตยกรรม WGAN และ WCGAN บรรลุข้อมูลที่สมจริงยิ่งขึ้นเร็วขึ้น และเรียนรู้ต่อไปเมื่อการฝึกอบรมดำเนินไป ดูเหมือนว่า WCGAN จะไม่มีความได้เปรียบเหนือ WGAN มากนัก โดยแนะนำว่าคลาสที่สร้างขึ้นเหล่านี้อาจไม่เป็นประโยชน์สำหรับสถาปัตยกรรม Wasserstein GAN

คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับสถาปัตยกรรม WGAN ได้จากที่นี่และที่นี่

เครือข่ายนักวิจารณ์ในสถาปัตยกรรม WGAN และ WCGAN กำลังเรียนรู้ที่จะคำนวณระยะห่าง Wasserstein (Earth-mover, EM) ระหว่างชุดข้อมูลที่กำหนดและข้อมูลการฉ้อโกงที่เกิดขึ้นจริง ตามหลักการแล้ว มันจะวัดระยะห่างใกล้กับศูนย์สำหรับตัวอย่างข้อมูลการฉ้อโกงที่เกิดขึ้นจริง อย่างไรก็ตาม นักวิจารณ์กำลังเรียนรู้วิธีการคำนวณนี้ เครือข่ายสามารถปรับปรุงได้ตราบใดที่มีการวัดระยะทางสำหรับข้อมูลที่สร้างขึ้นมากกว่าข้อมูลจริง เราสามารถดูความแตกต่างระหว่างระยะทาง Wasserstein สำหรับข้อมูลที่สร้างขึ้นและข้อมูลจริงเปลี่ยนแปลงไปอย่างไรในระหว่างการฝึกอบรม ถ้ามันราบเรียบ การฝึกต่อไปอาจไม่ช่วยอะไร เราเห็นในรูปที่ 6 ว่าดูเหมือนว่าจะมีการปรับปรุงเพิ่มเติมสำหรับทั้ง WGAN และ WCGAN ในชุดข้อมูลนี้

การประมาณระยะทาง EM

เราเรียนรู้อะไร?

ตอนนี้ เราสามารถทดสอบว่าเราสามารถสร้างข้อมูลการฉ้อโกงใหม่ได้จริงหรือไม่เพียงพอที่จะช่วยให้เราตรวจจับข้อมูลการฉ้อโกงจริงได้ เราสามารถนำเครื่องกำเนิดไฟฟ้าที่ได้รับการฝึกอบรมมาซึ่งได้คะแนนความแม่นยำต่ำสุด และใช้สิ่งนั้นเพื่อสร้างข้อมูล สำหรับชุดการฝึกขั้นพื้นฐาน เราจะใช้ 70% ของข้อมูลที่ไม่เป็นการฉ้อโกง (199,020 คดี) และ 100 คดีของข้อมูลการฉ้อโกง (~20% ของข้อมูลการฉ้อโกง) จากนั้น เราจะลองเพิ่มข้อมูลจริงหรือข้อมูลการฉ้อโกงที่สร้างขึ้นจำนวนต่างๆ ในชุดการฝึกอบรมนี้ สูงสุด 344 กรณี (70% ของข้อมูลการฉ้อโกง) สำหรับชุดทดสอบ เราจะใช้อีก 30% ของคดีไม่ฉ้อโกง (85,295 คดี) และคดีฉ้อโกง (148 คดี) เราสามารถลองเพิ่มข้อมูลที่สร้างขึ้นจาก GAN ที่ไม่ได้รับการฝึกฝนและจาก GAN ที่ได้รับการฝึกฝนมาดีที่สุดเพื่อทดสอบว่าข้อมูลที่สร้างขึ้นนั้นดีกว่าเสียงสุ่มหรือไม่ จากการทดสอบของเรา ปรากฏว่าสถาปัตยกรรมที่ดีที่สุดของเราคือ WCGAN ที่ขั้นตอนการฝึกที่ 4800 ซึ่งได้รับความแม่นยำ xgboost ถึง 70% (จำไว้ว่า ตามหลักการแล้ว ความแม่นยำควรอยู่ที่ 50%) ดังนั้น เราจะใช้สถาปัตยกรรมนี้เพื่อสร้างข้อมูลการฉ้อโกงใหม่

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

ผลกระทบของข้อมูลเพิ่มเติม

สู่ความเวิ้งว้างอันไกลโพ้น

แม้ว่าเราไม่สามารถสร้างข้อมูลการฉ้อโกงบัตรเครดิตได้จริงมากพอที่จะช่วยให้เราตรวจจับการฉ้อโกงจริงได้ แต่เราแทบไม่ได้ขีดข่วนพื้นผิวด้วยวิธีการเหล่านี้ เราสามารถฝึกได้นานขึ้นด้วยเครือข่ายที่ใหญ่ขึ้น และปรับแต่งพารามิเตอร์สำหรับสถาปัตยกรรมที่เราลองใช้ในบทความนี้ แนวโน้มในความแม่นยำ xgboost และการสูญเสียผู้เลือกปฏิบัติ แนะนำว่าการฝึกอบรมเพิ่มเติมจะช่วยสถาปัตยกรรม WGAN และ WCGAN อีกทางเลือกหนึ่งคือการทบทวนการล้างข้อมูลที่เราดำเนินการ บางทีอาจสร้างตัวแปรใหม่บางตัว หรือเปลี่ยนแปลงว่าเราจัดการกับความเบ้ในคุณสมบัติอย่างไรและอย่างไร บางทีรูปแบบการจัดหมวดหมู่ข้อมูลการฉ้อโกงที่แตกต่างกันอาจช่วยได้

เราสามารถลองใช้สถาปัตยกรรม GAN อื่นๆ ได้ DRAGAN มีหลักฐานทางทฤษฎีและการทดลองที่แสดงว่าฝึกได้เร็วและเสถียรกว่า Wasserstein GAN เราสามารถผสานรวมวิธีการที่ใช้ประโยชน์จากการเรียนรู้กึ่งควบคุม ซึ่งแสดงให้เห็นสัญญาในการเรียนรู้จากชุดการฝึกอบรมที่จำกัด (ดู “เทคนิคที่ได้รับการปรับปรุงสำหรับ GAN การฝึกอบรม”) เราสามารถลองใช้สถาปัตยกรรมที่ทำให้มนุษย์เข้าใจโมเดลได้ ดังนั้นเราจึงสามารถเข้าใจโครงสร้างของข้อมูลได้ดีขึ้น (ดู InfoGAN)

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

คุณสามารถค้นหารหัสที่เกี่ยวข้องทั้งหมดสำหรับบทความนี้ในที่เก็บ GitHub นี้

ที่เกี่ยวข้อง: แอปพลิเคชั่น Gradient Descent มากมายใน TensorFlow