ตั้งแต่ฉันได้เรียนรู้เกี่ยวกับเครือข่ายปฏิปักษ์ (GAN) ที่เกิดขึ้นฉันก็รู้สึกทึ่งกับพวกเขา GAN เป็นโครงข่ายประสาทชนิดหนึ่งที่สามารถสร้างข้อมูลใหม่ตั้งแต่เริ่มต้น คุณสามารถป้อนสัญญาณรบกวนแบบสุ่มเล็กน้อยเป็นอินพุตและสามารถสร้างภาพห้องนอนหรือนกที่เหมือนจริงหรืออะไรก็ตามที่ได้รับการฝึกฝนมาเพื่อสร้าง
สิ่งหนึ่งที่นักวิทยาศาสตร์ทุกคนเห็นพ้องต้องกันคือเราต้องการข้อมูลเพิ่มเติม
GAN ซึ่งสามารถใช้เพื่อสร้างข้อมูลใหม่ในสถานการณ์ที่มีข้อมูล จำกัด สามารถพิสูจน์ได้ว่ามีประโยชน์จริงๆ บางครั้งข้อมูลอาจเป็นเรื่องยากและมีราคาแพงและใช้เวลานานในการสร้าง อย่างไรก็ตามเพื่อให้เป็นประโยชน์ข้อมูลใหม่จะต้องมีความเป็นจริงเพียงพอที่ข้อมูลเชิงลึกที่เราได้รับจากข้อมูลที่สร้างขึ้นจะยังคงใช้กับข้อมูลจริง หากคุณกำลังฝึกแมวให้ล่าหนูและใช้หนูปลอมคุณควรตรวจสอบให้แน่ใจว่าหนูปลอมมีลักษณะเหมือนหนูจริงๆ
อีกวิธีหนึ่งในการคิดเกี่ยวกับเรื่องนี้คือ GAN กำลังค้นพบโครงสร้างในข้อมูลที่ช่วยให้สามารถสร้างข้อมูลที่เป็นจริงได้ สิ่งนี้จะมีประโยชน์หากเรามองไม่เห็นโครงสร้างนั้นด้วยตัวเองหรือไม่สามารถดึงโครงสร้างนั้นออกมาได้ด้วยวิธีการอื่น ๆ
ในบทความนี้คุณจะได้เรียนรู้วิธีใช้ GAN เพื่อสร้างข้อมูลใหม่ เพื่อให้บทช่วยสอนนี้เป็นจริงเราจะใช้ไฟล์ ชุดข้อมูลการตรวจสอบการฉ้อโกงบัตรเครดิต จาก Kaggle
ในการทดลองของฉันฉันพยายามใช้ชุดข้อมูลนี้เพื่อดูว่าฉันสามารถรับ GAN เพื่อสร้างข้อมูลที่สมจริงเพียงพอที่จะช่วยเราตรวจจับคดีฉ้อโกงได้หรือไม่ ชุดข้อมูลนี้เน้นถึงปัญหาข้อมูลที่ จำกัด : ธุรกรรมจาก 285,000 รายการมีเพียง 492 รายการเท่านั้นที่เป็นการฉ้อโกง 492 กรณีการฉ้อโกงไม่ใช่ชุดข้อมูลขนาดใหญ่ที่ต้องฝึกอบรมโดยเฉพาะอย่างยิ่งเมื่อพูดถึงงานแมชชีนเลิร์นนิงที่ผู้คนต้องการให้ชุดข้อมูลมีขนาดใหญ่ขึ้นหลายลำดับ แม้ว่าผลการทดสอบของฉันจะไม่ได้น่าทึ่ง แต่ฉันก็ได้เรียนรู้มากมายเกี่ยวกับ GAN ไปพร้อมกันซึ่งฉันยินดีที่จะแบ่งปัน
ก่อนที่เราจะเจาะลึกเข้าไปในอาณาจักรของ GAN หากคุณต้องการทำความเข้าใจเกี่ยวกับการเรียนรู้ของเครื่องหรือทักษะการเรียนรู้เชิงลึกอย่างรวดเร็วคุณสามารถดูบทความในบล็อกที่เกี่ยวข้องทั้งสองนี้:
Generative adversarial networks (GANs) เป็นสถาปัตยกรรมเครือข่ายประสาทที่แสดงให้เห็นถึงการปรับปรุงที่น่าประทับใจมากกว่าวิธีการกำเนิดก่อนหน้านี้เช่น ตัวเข้ารหัสอัตโนมัติที่แตกต่างกัน หรือเครื่อง boltzman ที่ถูก จำกัด GAN สามารถสร้างภาพที่เหมือนจริงได้มากขึ้น (เช่น DCGAN ) เปิดใช้งานการถ่ายโอนสไตล์ระหว่างภาพ (ดู ที่นี่ และ ที่นี่ ) สร้างภาพจากคำอธิบายข้อความ ( StackGAN ) และเรียนรู้จากชุดข้อมูลขนาดเล็กผ่านทาง การเรียนรู้กึ่งดูแล . เนื่องจากความสำเร็จเหล่านี้พวกเขาสร้างขึ้นมากมาย น่าสนใจ ทั้งในภาควิชาการและภาคการค้า
Yann LeCunn ผู้อำนวยการฝ่ายวิจัย AI ของ Facebook ได้เรียกพวกเขาว่า การพัฒนาที่น่าตื่นเต้นที่สุดในการเรียนรู้ของเครื่อง ในช่วงทศวรรษที่ผ่านมา
ลองคิดดูว่าคุณเรียนรู้อย่างไร คุณลองทำอะไรคุณจะได้รับคำติชม คุณปรับกลยุทธ์ของคุณแล้วลองอีกครั้ง
ข้อเสนอแนะอาจมาในรูปแบบของคำวิจารณ์หรือความเจ็บปวดหรือผลกำไร อาจมาจากวิจารณญาณของคุณเองว่าคุณทำได้ดีแค่ไหน บ่อยครั้งข้อเสนอแนะที่มีประโยชน์ที่สุดคือความคิดเห็นที่มาจากบุคคลอื่นเพราะไม่ใช่แค่ตัวเลขหรือความรู้สึก แต่เป็นการประเมินอย่างชาญฉลาดว่าคุณทำงานได้ดีเพียงใด
เมื่อคอมพิวเตอร์ได้รับการฝึกฝนสำหรับงานมนุษย์มักจะให้ข้อมูลย้อนกลับในรูปแบบของพารามิเตอร์หรืออัลกอริทึมที่ปรับแล้ว สิ่งนี้ใช้ได้ดีเมื่อมีการกำหนดงานไว้อย่างดีเช่นการเรียนรู้การคูณสองจำนวน คุณสามารถบอกคอมพิวเตอร์ได้อย่างง่ายดายและตรงประเด็นว่ามันผิดพลาดอย่างไร
ด้วยงานที่ซับซ้อนมากขึ้นเช่นการสร้างภาพลักษณ์ของสุนัขการให้ข้อเสนอแนะจึงทำได้ยากขึ้น ภาพเบลอดูเหมือนแมวมากกว่าหรือดูเหมือนอะไรเลย? สามารถใช้สถิติที่ซับซ้อนได้ แต่จะยากที่จะจับรายละเอียดทั้งหมดที่ทำให้ภาพดูเหมือนจริง
สถาปนิกโซลูชันที่ผ่านการรับรองบริการเว็บของ amazon
มนุษย์สามารถให้การประมาณค่าบางอย่างได้เนื่องจากเรามีประสบการณ์มากมายในการประเมินการป้อนข้อมูลด้วยภาพ แต่เราค่อนข้างช้าและการประเมินของเราอาจมีความเป็นส่วนตัวสูง เราสามารถฝึกโครงข่ายประสาทเทียมเพื่อเรียนรู้ภารกิจในการแยกแยะระหว่างภาพจริงและภาพที่สร้างขึ้น
จากนั้นโดยปล่อยให้ตัวสร้างภาพ (รวมถึงเครือข่ายประสาทเทียม) และผู้แยกแยะผลัดกันเรียนรู้ซึ่งกันและกันจะสามารถปรับปรุงได้ตลอดเวลา ทั้งสองเครือข่ายที่เล่นเกมนี้เป็นเครือข่ายที่เป็นปฏิปักษ์ต่อกัน
คุณสามารถ ได้ยิน เอียนกู๊ดเฟลโลว์ผู้ประดิษฐ์ GAN พูดคุยเกี่ยวกับการโต้เถียงที่บาร์ในหัวข้อนี้นำไปสู่ค่ำคืนแห่งการเขียนโค้ดที่มีไข้ซึ่งส่งผลให้เกิด GAN ครั้งแรก และใช่เขารับทราบแถบในของเขา กระดาษ . คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ GAN ได้จาก บล็อกของ Ian Goodfellow ในหัวข้อนี้
มีความท้าทายหลายประการเมื่อทำงานกับ GAN การฝึกโครงข่ายประสาทเทียมเดียวอาจเป็นเรื่องยากเนื่องจากมีตัวเลือกมากมายที่เกี่ยวข้อง: สถาปัตยกรรมฟังก์ชันการเปิดใช้งานวิธีการเพิ่มประสิทธิภาพอัตราการเรียนรู้และอัตราการออกกลางคัน
GAN เพิ่มตัวเลือกทั้งหมดเป็นสองเท่าและเพิ่มความซับซ้อนใหม่ ๆ ทั้งผู้สร้างและผู้แยกแยะอาจลืมกลเม็ดที่พวกเขาใช้ก่อนหน้านี้ในการฝึกอบรม ซึ่งอาจทำให้เครือข่ายทั้งสองติดอยู่ในวงจรการแก้ปัญหาที่เสถียรซึ่งไม่ได้รับการปรับปรุงเมื่อเวลาผ่านไป เครือข่ายหนึ่งอาจมีอำนาจเหนือเครือข่ายอื่นซึ่งไม่สามารถเรียนรู้ได้อีกต่อไป หรือเครื่องกำเนิดไฟฟ้าอาจไม่ได้สำรวจพื้นที่โซลูชันที่เป็นไปได้มากนัก แต่เพียงพอที่จะค้นหาโซลูชันที่เป็นจริงได้ สถานการณ์สุดท้ายนี้เรียกว่าการล่มสลายของโหมด
การล่มสลายของโหมดเกิดขึ้นเมื่อเครื่องกำเนิดไฟฟ้าเรียนรู้เฉพาะส่วนย่อยของโหมดจริงที่เป็นไปได้ ตัวอย่างเช่นหากงานคือการสร้างภาพสุนัขเครื่องกำเนิดไฟฟ้าสามารถเรียนรู้ที่จะสร้างภาพสุนัขสีน้ำตาลตัวเล็ก ๆ เท่านั้น เครื่องกำเนิดไฟฟ้าคงพลาดโหมดอื่น ๆ ทั้งหมดที่ประกอบด้วยสุนัขขนาดหรือสีอื่น ๆ
มีการนำกลยุทธ์หลายอย่างมาใช้เพื่อแก้ไขปัญหานี้รวมถึงการทำให้เป็นมาตรฐานเป็นกลุ่มการเพิ่มป้ายกำกับในข้อมูลการฝึกอบรมหรือโดยการเปลี่ยนวิธีที่ผู้แยกแยะตัดสินข้อมูลที่สร้างขึ้น
มีคนตั้งข้อสังเกตว่าการเพิ่มป้ายกำกับให้กับข้อมูลนั่นคือการแยกเป็นหมวดหมู่จะช่วยปรับปรุงประสิทธิภาพของ GAN ได้เกือบตลอดเวลา แทนที่จะเรียนรู้ที่จะสร้างภาพสัตว์เลี้ยงโดยทั่วไปควรสร้างภาพแมวสุนัขปลาและพังพอนได้ง่ายขึ้น
บางทีความก้าวหน้าที่สำคัญที่สุดในการพัฒนา GAN อาจมาจากการเปลี่ยนแปลงวิธีที่ผู้แยกแยะประเมินข้อมูลดังนั้นเรามาดูกันดีกว่า
ในสูตรดั้งเดิมของ GAN ในปี 2014 โดย Goodfellow et al. ผู้แยกแยะจะสร้างค่าประมาณของความน่าจะเป็นที่ภาพที่กำหนดเป็นของจริงหรือสร้างขึ้น ผู้แยกแยะจะได้รับชุดของภาพที่ประกอบด้วยทั้งภาพจริงและภาพที่สร้างขึ้นและจะสร้างค่าประมาณสำหรับแต่ละอินพุตเหล่านี้ จากนั้นข้อผิดพลาดระหว่างเอาต์พุตดิสทิเนเตอร์กับฉลากจริงจะถูกวัดโดยการสูญเสียข้ามเอนโทรปี การสูญเสียข้ามเอนโทรปีสามารถเทียบได้กับเมตริกระยะทางเจนเซน - แชนนอนและแสดงในต้นปี 2560 โดย Arjovsky et al. ว่าเมตริกนี้จะล้มเหลวในบางกรณีและไม่ชี้ไปในทิศทางที่ถูกต้องในกรณีอื่น ๆ กลุ่มนี้แสดงให้เห็นว่าเมตริกระยะทาง Wasserstein (หรือที่เรียกว่า Earth mover หรือ EM distance) ทำงานและทำงานได้ดีขึ้นในหลาย ๆ กรณี
การสูญเสียข้ามเอนโทรปีเป็นการวัดว่าผู้แยกแยะระบุภาพจริงและที่สร้างขึ้นได้แม่นยำเพียงใด เมตริก Wasserstein จะดูที่การกระจายของตัวแปรแต่ละตัว (เช่นแต่ละสีของแต่ละพิกเซล) ในรูปภาพจริงและรูปภาพที่สร้างขึ้นและพิจารณาว่าการแจกแจงเป็นข้อมูลจริงและข้อมูลที่สร้างขึ้น เมตริก Wasserstein จะพิจารณาว่าต้องใช้ความพยายามมากเพียงใดในแง่ของระยะทางของมวลคูณจะต้องใช้เพื่อผลักดันการกระจายที่สร้างขึ้นให้อยู่ในรูปของการกระจายจริงด้วยเหตุนี้จึงเรียกอีกชื่อหนึ่งว่า 'ระยะเคลื่อนย้ายดิน' เนื่องจากเมตริก Wasserstein ไม่ได้ประเมินว่ารูปภาพเป็นของจริงหรือไม่อีกต่อไป แต่เป็นการให้คำวิจารณ์ว่ารูปภาพที่สร้างนั้นมาจากรูปภาพจริงมากเพียงใดเครือข่าย 'ผู้แยกแยะ' จึงเรียกว่าเครือข่าย 'นักวิจารณ์' ใน Wasserstein สถาปัตยกรรม.
สำหรับการสำรวจ GAN ที่ครอบคลุมมากขึ้นเล็กน้อยในบทความนี้เราจะสำรวจสถาปัตยกรรมที่แตกต่างกันสี่แบบ:
แต่มาดูชุดข้อมูลของเราก่อน
เราจะทำงานร่วมกับไฟล์ ชุดข้อมูลการตรวจสอบการฉ้อโกงบัตรเครดิต จาก Kaggle
ชุดข้อมูลประกอบด้วยธุรกรรม ~ 285,000 รายการซึ่งมีเพียง 492 รายการเท่านั้นที่ฉ้อโกง ข้อมูลประกอบด้วยคุณลักษณะ 31 รายการ: 'เวลา' 'จำนวนเงิน' 'ชั้นเรียน' และคุณลักษณะเพิ่มเติมอีก 28 รายการที่ไม่ระบุตัวตน คุณลักษณะคลาสคือป้ายกำกับที่ระบุว่าธุรกรรมมีการฉ้อโกงหรือไม่โดย 0 แสดงถึงปกติและ 1 แสดงถึงการฉ้อโกง ข้อมูลทั้งหมดเป็นตัวเลขและต่อเนื่อง (ยกเว้นป้ายกำกับ) ชุดข้อมูลไม่มีค่าที่ขาดหายไป ชุดข้อมูลมีสภาพค่อนข้างดีอยู่แล้วในการเริ่มต้น แต่ฉันจะทำความสะอาดอีกเล็กน้อยส่วนใหญ่เพียงแค่ปรับวิธีการของคุณลักษณะทั้งหมดเป็นศูนย์และค่าเบี่ยงเบนมาตรฐานเป็นค่าเดียว ฉันได้อธิบายขั้นตอนการทำความสะอาดเพิ่มเติมในโน้ตบุ๊กแล้ว ที่นี่ . สำหรับตอนนี้ฉันจะแสดงไฟล์ ผลลัพธ์สุดท้าย :
เราสามารถมองเห็นความแตกต่างระหว่างข้อมูลปกติและข้อมูลการฉ้อโกงในการแจกแจงเหล่านี้ได้อย่างง่ายดาย แต่ก็มีการทับซ้อนกันมากเช่นกัน เราสามารถใช้อัลกอริธึมแมชชีนเลิร์นนิงที่เร็วและมีประสิทธิภาพมากขึ้นเพื่อระบุคุณลักษณะที่มีประโยชน์ที่สุดสำหรับการระบุการฉ้อโกง อัลกอริทึมนี้ xgboost คืออัลกอริธึมแผนผังการตัดสินใจแบบไล่ระดับสี เราจะฝึกอบรมชุดข้อมูล 70% และทดสอบกับชุดข้อมูลที่เหลืออีก 30% เราสามารถตั้งค่าอัลกอริทึมให้ดำเนินการต่อได้จนกว่าจะไม่ปรับปรุงการเรียกคืน (ส่วนของตัวอย่างการฉ้อโกงที่ตรวจพบ) ในชุดข้อมูลทดสอบ ทำให้สามารถเรียกคืนชุดทดสอบได้ถึง 76% ซึ่งทำให้มีช่องว่างสำหรับการปรับปรุงอย่างชัดเจน มีความแม่นยำ 94% ซึ่งหมายความว่ามีเพียง 6% ของกรณีการฉ้อโกงที่คาดการณ์ไว้เท่านั้นที่เป็นธุรกรรมปกติ จากการวิเคราะห์นี้เรายังได้รับรายการคุณสมบัติที่จัดเรียงตามยูทิลิตี้ในการตรวจจับการฉ้อโกง เราสามารถใช้คุณสมบัติที่สำคัญที่สุดเพื่อช่วยให้เห็นภาพผลลัพธ์ของเราในภายหลัง
อีกครั้งหากเรามีข้อมูลการฉ้อโกงมากขึ้นเราอาจตรวจพบได้ดีขึ้น นั่นคือเราสามารถเรียกคืนได้สูงขึ้น ตอนนี้เราจะพยายามสร้างข้อมูลการฉ้อโกงใหม่ที่เป็นจริงโดยใช้ GAN เพื่อช่วยตรวจจับการฉ้อโกงที่เกิดขึ้นจริง
ในการใช้สถาปัตยกรรม GAN ต่างๆกับชุดข้อมูลนี้ฉันจะใช้ประโยชน์จาก GAN- แซนด์บ็อกซ์ ซึ่งมีสถาปัตยกรรม GAN ยอดนิยมจำนวนหนึ่งที่ใช้ใน Python โดยใช้ไลบรารี Keras และส่วนหลังของ TensorFlow ผลลัพธ์ทั้งหมดของฉันมีอยู่ในสมุดบันทึก Jupyter ที่นี่ . ไลบรารีที่จำเป็นทั้งหมดรวมอยู่ในอิมเมจ Kaggle / Python Docker หากคุณต้องการการตั้งค่าที่ง่าย
เครื่องมือสร้างภาพข้อมูลขนาดใหญ่
ตัวอย่างใน GAN-Sandbox ได้รับการตั้งค่าสำหรับการประมวลผลภาพ เครื่องกำเนิดสร้างภาพ 2 มิติโดยมีช่องสี 3 ช่องสำหรับแต่ละพิกเซลและผู้เลือกปฏิบัติ / นักวิจารณ์ได้รับการกำหนดค่าให้ประเมินข้อมูลดังกล่าว การแปลงแบบ Convolutional ใช้ระหว่างเลเยอร์ของเครือข่ายเพื่อใช้ประโยชน์จากโครงสร้างเชิงพื้นที่ของข้อมูลรูปภาพ เซลล์ประสาทแต่ละเซลล์ในเลเยอร์คอนโวลูชันจะทำงานร่วมกับอินพุตและเอาต์พุตกลุ่มเล็ก ๆ เท่านั้น (เช่นพิกเซลที่อยู่ติดกันในภาพ) เพื่อให้สามารถเรียนรู้ความสัมพันธ์เชิงพื้นที่ได้ ชุดข้อมูลบัตรเครดิตของเราไม่มีโครงสร้างเชิงพื้นที่ใด ๆ ท่ามกลางตัวแปรต่างๆดังนั้นฉันจึงแปลงเครือข่าย Convolutional เป็นเครือข่ายที่มีเลเยอร์ที่เชื่อมต่อกันหนาแน่น เซลล์ประสาทในชั้นที่เชื่อมต่อกันอย่างหนาแน่นจะเชื่อมต่อกับทุกอินพุตและเอาต์พุตของเลเยอร์ทำให้เครือข่ายสามารถเรียนรู้ความสัมพันธ์ระหว่างคุณสมบัติต่างๆได้ ฉันจะใช้การตั้งค่านี้สำหรับแต่ละสถาปัตยกรรม
GAN ตัวแรกที่ฉันจะประเมินหลุมเครือข่ายเครื่องกำเนิดไฟฟ้าเทียบกับเครือข่ายดิสทิเนเตอร์โดยใช้การสูญเสียเอนโทรปีจากผู้แยกแยะเพื่อฝึกอบรมเครือข่าย นี่คือสถาปัตยกรรม GAN แบบ“ วานิลลา” ดั้งเดิม GAN ที่สองที่ฉันจะประเมินจะเพิ่มป้ายกำกับคลาสให้กับข้อมูลในลักษณะของ GAN แบบมีเงื่อนไข (CGAN) GAN นี้มีตัวแปรอีกตัวหนึ่งในข้อมูลคือป้ายกำกับคลาส GAN ตัวที่สามจะใช้เมตริกระยะทาง Wasserstein เพื่อฝึกเครือข่าย (WGAN) และตัวสุดท้ายจะใช้ป้ายกำกับคลาสและเมตริกระยะทาง Wasserstein (WCGAN)
เราจะฝึกอบรม GAN ต่างๆโดยใช้ชุดข้อมูลการฝึกอบรมที่ประกอบด้วยธุรกรรมฉ้อโกงทั้งหมด 492 รายการ เราสามารถเพิ่มคลาสให้กับชุดข้อมูลการฉ้อโกงเพื่ออำนวยความสะดวกในสถาปัตยกรรม GAN แบบมีเงื่อนไข ฉันได้สำรวจวิธีการจัดกลุ่มที่แตกต่างกันสองสามวิธีในสมุดบันทึกและใช้การจัดหมวดหมู่ KMeans ที่จัดประเภทข้อมูลการฉ้อโกงออกเป็น 2 ชั้น
ฉันจะฝึก GAN แต่ละคนเป็นเวลา 5,000 รอบและตรวจสอบผลลัพธ์ระหว่างทาง ในรูปที่ 4 เราสามารถดูข้อมูลการฉ้อโกงจริงและข้อมูลการฉ้อโกงที่สร้างขึ้นจากสถาปัตยกรรม GAN ที่แตกต่างกันในขณะที่การฝึกอบรมดำเนินไป เราสามารถเห็นข้อมูลการฉ้อโกงที่แท้จริงแบ่งออกเป็น 2 กลุ่ม KMeans โดยมี 2 มิติที่แยกแยะคลาสทั้งสองนี้ได้ดีที่สุด (คุณสมบัติ V10 และ V17 จากคุณสมบัติที่แปลง PCA) GAN สองตัวที่ไม่ได้ใช้ประโยชน์จากข้อมูลคลาสคือ GAN และ WGAN มีเอาต์พุตที่สร้างขึ้นทั้งหมดเป็นคลาสเดียว สถาปัตยกรรมตามเงื่อนไข CGAN และ WCGAN แสดงข้อมูลที่สร้างขึ้นตามคลาส ในขั้นตอนที่ 0 ทั้งหมดของ แสดงข้อมูลที่สร้างขึ้น การแจกแจงปกติของอินพุตแบบสุ่มที่ป้อนให้กับเครื่องกำเนิดไฟฟ้า
เราจะเห็นได้ว่าสถาปัตยกรรม GAN ดั้งเดิมเริ่มเรียนรู้รูปร่างและช่วงของข้อมูลจริง แต่จากนั้นก็ยุบไปสู่การกระจายเพียงเล็กน้อย นี่คือการล่มสลายของโหมดที่กล่าวถึงก่อนหน้านี้ เครื่องกำเนิดไฟฟ้าได้เรียนรู้ข้อมูลเล็กน้อยที่ผู้แยกแยะพบได้ยากว่าเป็นของปลอม สถาปัตยกรรม CGAN ทำได้ดีขึ้นเล็กน้อยโดยกระจายออกไปและเข้าใกล้การกระจายของข้อมูลการฉ้อโกงแต่ละคลาส แต่จากนั้นการยุบโหมดจะตั้งค่าดังที่เห็นได้ในขั้นตอนที่ 5000
WGAN ไม่พบการล่มสลายของโหมดที่จัดแสดงโดยสถาปัตยกรรม GAN และ CGAN แม้ว่าจะไม่มีข้อมูลชั้นเรียน แต่ก็เริ่มถือว่าการกระจายข้อมูลการฉ้อโกงที่แท้จริงไม่ใช่เรื่องปกติ สถาปัตยกรรม WCGAN ทำงานในลักษณะเดียวกันและสามารถสร้างคลาสข้อมูลแยกกันได้
เราสามารถประเมินความสมจริงของข้อมูลโดยใช้อัลกอริทึม xgboost เดียวกับที่ใช้ก่อนหน้านี้สำหรับการตรวจจับการฉ้อโกง รวดเร็วและทรงพลังและใช้งานได้จริงโดยไม่ต้องปรับแต่งอะไรมากมาย เราจะฝึกตัวแยกประเภท xgboost โดยใช้ข้อมูลการฉ้อโกงจริงครึ่งหนึ่ง (246 ตัวอย่าง) และตัวอย่างที่สร้างโดย GAN จำนวนเท่ากัน จากนั้นเราจะทดสอบตัวแยกประเภท xgboost โดยใช้อีกครึ่งหนึ่งของข้อมูลการฉ้อโกงจริงและชุดตัวอย่าง 246 GAN ที่สร้างขึ้น วิธีการตั้งฉากนี้ (ในแง่การทดลอง) จะทำให้เราบ่งชี้ว่าเครื่องกำเนิดไฟฟ้าประสบความสำเร็จเพียงใดในการสร้างข้อมูลที่เป็นจริง ด้วยข้อมูลที่สร้างขึ้นจริงอย่างสมบูรณ์อัลกอริทึม 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 ในชุดข้อมูลนี้
ตอนนี้เราสามารถทดสอบได้ว่าเราสามารถสร้างข้อมูลการฉ้อโกงใหม่ที่มีเหตุผลเพียงพอที่จะช่วยตรวจจับข้อมูลการฉ้อโกงจริงหรือไม่ เราสามารถใช้เครื่องกำเนิดไฟฟ้าที่ได้รับการฝึกฝนซึ่งได้คะแนนความแม่นยำต่ำสุดและใช้เพื่อสร้างข้อมูล สำหรับชุดการฝึกอบรมขั้นพื้นฐานของเราเราจะใช้ 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 อื่น ๆ มังกร มีหลักฐานทางทฤษฎีและการทดลองที่แสดงให้เห็นว่ามันฝึกได้เร็วและเสถียรกว่า GAN ของ Wasserstein เราสามารถผสมผสานวิธีการที่ใช้ประโยชน์จากการเรียนรู้แบบกึ่งมีผู้ดูแลซึ่งแสดงให้เห็นถึงคำมั่นสัญญาในการเรียนรู้จากชุดการฝึกอบรมที่ จำกัด (ดู“ ปรับปรุงเทคนิคสำหรับ GAN การฝึกอบรม ”). เราสามารถลองใช้สถาปัตยกรรมที่ให้แบบจำลองที่มนุษย์เข้าใจได้ดังนั้นเราอาจจะเข้าใจโครงสร้างของข้อมูลได้ดีขึ้น (ดู InfoGAN ).
เราควรจับตาดูการพัฒนาใหม่ ๆ ในสาขานี้และสุดท้าย แต่ไม่ท้ายสุดเราสามารถสร้างนวัตกรรมของเราเองในพื้นที่ที่กำลังพัฒนาอย่างรวดเร็วนี้
คุณสามารถค้นหาโค้ดที่เกี่ยวข้องทั้งหมดสำหรับบทความนี้ได้ในบทความนี้ ที่เก็บ GitHub .
ที่เกี่ยวข้อง: แอพพลิเคชั่นมากมายของ Gradient Descent ใน TensorFlowGAN เป็นอัลกอริธึมการเรียนรู้ของเครื่องที่เครือข่ายประสาทเทียมหนึ่งสร้างข้อมูลในขณะที่อีกเครือข่ายหนึ่งกำหนดว่าผลลัพธ์นั้นดูเหมือนจริงหรือไม่ ทั้งสองเครือข่ายแข่งขันกันเพื่อปรับปรุงความสมจริงของข้อมูลที่สร้างขึ้น