วิธีการใช้ GAN สำหรับการแยกฟีเจอร์ที่ไม่ได้รับอนุญาตจากรูปภาพ?


11

ฉันเข้าใจว่า GAN ทำงานอย่างไรในขณะที่เครือข่ายสองเครือข่าย (กำเนิดและเลือกปฏิบัติ) แข่งขันกันเอง ฉันได้สร้าง DCGAN (GAN พร้อมกับ discriminator discriminator และ de-convolutional generator) ซึ่งตอนนี้สร้างตัวเลขที่เขียนด้วยลายมือได้สำเร็จคล้ายกับที่อยู่ในชุดข้อมูล MNIST

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


สำหรับการดึงคุณสมบัติฉันได้รับขนาดคุณลักษณะ 128 * 120 (เช่น 64 + 32 + 16 + 8) = 15360 ฉันแน่ใจว่าฉันขาดอะไรบางอย่าง ฉันมีคำถามอื่นเกี่ยวกับการเลือกคุณสมบัติของเวกเตอร์ ฉันควรพิจารณาน้ำหนัก (การเปิดใช้งาน Conv2d + batchnorm + การเปิดใช้งาน) หรือเฉพาะน้ำหนัก conv2d ในระหว่างการแยกคุณลักษณะเท่านั้น
เขื่อน

คำตอบ:


5

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

สำหรับ GAN คุณสามารถใช้คุณสมบัติจากตัวเลือก คุณสมบัติเหล่านี้ควรจะให้ความน่าจะเป็นถ้าอินพุตมาจากชุดข้อมูลการฝึกอบรม "ภาพจริง" ในกระดาษ DCGAN ของ Radford พวกเขาใช้เลเยอร์ convolutional ทั้งหมดของ discriminator และเรียกใช้คุณสมบัติการแยกชั้น pooling สูงสุดสำหรับ CIFAR-10

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


1

คำตอบของ Kenny นั้นถูกต้องหากคุณใช้ Convolutional Dเอาต์พุตของเลเยอร์ก่อนที่หนาแน่นอาจทำหน้าที่เป็นคุณสมบัติ สัญชาตญาณของฉันคือมันจะทำงานได้ดีขึ้นสำหรับ AC-GANs (หรือสถาปัตยกรรมที่คล้ายกันซึ่งทำให้ D แยกประเภทอินพุตนอกเหนือจากการพิจารณาว่าเป็นของปลอมหรือของจริง)

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


0

เนื่องจาก GAN ประกอบด้วยสองส่วน - ตัวสร้างและตัวแยกส่วนมีสองวิธีในการใช้ GAN เป็นตัวแยกคุณลักษณะ:

  1. วิธีการสร้างตามที่นำเสนอโดย Mikhail Yurasov
  2. วิธีการเลือกปฏิบัติตาม Kenny

วิธีที่สองคือความขัดแย้งมากขึ้น การศึกษาบางอย่าง [1] คิดว่าสัญชาตญาณเป็นเป้าหมายของการเลือกปฏิบัติคือการแยกตัวอย่างที่สร้างขึ้นจากตัวอย่างจริงมันจะมุ่งเน้นไปที่ความแตกต่างระหว่างตัวอย่างสองชนิดนี้ แต่สิ่งที่สมเหตุสมผลคือความแตกต่างระหว่างตัวอย่างจริงซึ่งเป็นตัวอย่างที่ใช้โดยงานดาวน์สตรีม

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

[1] Jost Tobias Springenberg การเรียนรู้ที่ไม่ได้รับการดูแลและแบบกึ่งภายใต้การดูแลของเครือข่ายผู้ให้กำเนิดที่เป็นหมวดหมู่ arXiv: 1511.06390 [cs, stat], เมษายน 2016. คำนำหน้า arXiv arXiv: 1511.06390 [stat.ML] Ithaca, NY: ห้องสมุดมหาวิทยาลัย Cornell

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.