การใช้งาน pytorch ของ "Seqgan: ลำดับอวนที่เกิดจากการสร้างความสูงของนโยบาย" (Yu, Lantao, et al.) รหัสนี้ง่ายขึ้นแสดงความคิดเห็นและ (หวังว่า) ตรงไปตรงมาเพื่อทำความเข้าใจ การไล่ระดับสีที่ใช้งานนั้นง่ายกว่าในงานต้นฉบับมาก (https://github.com/lantaoyu/seqgan/) และไม่เกี่ยวข้องกับการเปิดตัว- รางวัลเดียวที่ใช้สำหรับประโยคทั้งหมด (ได้รับแรงบันดาลใจจากตัวอย่างใน http://karpathy.github.io/2016/05/31
สถาปัตยกรรมที่ใช้นั้นแตกต่างจากงาน orignal โดยเฉพาะอย่างยิ่งเครือข่าย GRU แบบสองทิศทางที่เกิดขึ้นอีกครั้งจะใช้เป็นตัวเลือกจำเพาะ
รหัสดำเนินการทดลองเกี่ยวกับข้อมูลสังเคราะห์ตามที่อธิบายไว้ในกระดาษ
คุณได้รับการสนับสนุนให้เพิ่มข้อสงสัยใด ๆ เกี่ยวกับการทำงานของรหัสเป็นปัญหา
เพื่อเรียกใช้รหัส:
python main.pyMain.py ควรเป็นจุดเข้าสู่รหัส
แฮ็กต่อไปนี้ (ยืมมาจาก https://github.com/soumith/ganhacks) ดูเหมือนจะทำงานในกรณีนี้:
การฝึกอบรมการเลือกปฏิบัติมากกว่าเครื่องกำเนิดไฟฟ้า (เครื่องกำเนิดไฟฟ้าได้รับการฝึกฝนสำหรับตัวอย่างเพียงชุดเดียวและการเพิ่มขนาดแบทช์เจ็บเสถียร)
ใช้ Adam สำหรับเครื่องกำเนิดไฟฟ้าและ Adagrad สำหรับ discriminator
อัตราการเรียนรู้แบบปรับแต่งสำหรับเครื่องกำเนิดไฟฟ้าในระยะ GAN
ใช้การออกกลางคันทั้งในขั้นตอนการฝึกอบรมและการทดสอบ
Stablity มีความอ่อนไหวอย่างยิ่งต่อพารามิเตอร์เกือบทุกตัว:/
เฟส GAN อาจไม่นำไปสู่การหยดจำนวนมากใน NLL (บางครั้งน้อยมาก) - ฉันสงสัยว่านี่เป็นเพราะลักษณะที่หยาบคายมากของการไล่ระดับสีของนโยบายที่ดำเนินการ (โดยไม่มีการเปิดตัว)
เส้นโค้งการเรียนรู้ที่ได้รับหลังจากการฝึกอบรม MLE สำหรับ 100 Epochs ตามด้วยการฝึกอบรมฝ่ายตรงข้าม (ผลลัพธ์ของคุณอาจแตกต่างกัน!)