พื้นที่เก็บข้อมูลนี้มีวิธีการฝึกอบรมฝ่ายตรงข้ามใหม่สำหรับ Generative Conversational Agent (GCA) ของเรา
รายละเอียดเพิ่มเติมเกี่ยวกับวิธีการฝึกอบรมใหม่นี้มีอยู่ในรายงาน Oswaldo Ludwig, "End-to-end Adversarial Learning for Generative Conversational Agents" arXiv:1711.10122 cs.CL, พ.ย. 2017 ในกรณีที่ตีพิมพ์โดยใช้แนวคิดหรือเนื้อหา รหัสจากที่เก็บนี้ กรุณาอ้างอิงบทความนี้
วิธีการของเราถือว่า GCA เป็นตัวสร้างที่มีจุดมุ่งหมายเพื่อหลอกผู้เลือกปฏิบัติที่ตีตราบทสนทนาว่าสร้างขึ้นโดยมนุษย์หรือสร้างโดยเครื่องจักร ในแนวทางของเรา ผู้แยกแยะดำเนินการจำแนกระดับโทเค็น กล่าวคือ เป็นการบ่งชี้ว่าโทเค็นปัจจุบันถูกสร้างขึ้นโดยมนุษย์หรือเครื่องจักร ในการทำเช่นนั้น ผู้เลือกปฏิบัติยังจะได้รับคำพูดตามบริบท (ประวัติการสนทนา) และคำตอบที่ไม่สมบูรณ์จนถึงโทเค็นปัจจุบันเป็นอินพุต แนวทางใหม่นี้ทำให้มีการฝึกอบรมแบบ end-to-end โดย backpropagation กระบวนการสนทนาด้วยตนเองช่วยให้สามารถสร้างชุดข้อมูลที่สร้างขึ้นซึ่งมีความหลากหลายมากขึ้นสำหรับการฝึกอบรมฝ่ายตรงข้าม แนวทางนี้ช่วยปรับปรุงประสิทธิภาพของคำถามที่ไม่เกี่ยวข้องกับข้อมูลการฝึกอบรม
โมเดลที่ได้รับการฝึกอบรมที่นี่ใช้ชุดข้อมูลที่รวบรวมจากบทสนทนาของหลักสูตรภาษาอังกฤษออนไลน์ซึ่งมีให้ที่นี่
โมเดล GCA ของเราสามารถอธิบายได้ด้วยผังงานต่อไปนี้:
ในขณะที่รหัสเทียมต่อไปนี้อธิบายอัลกอริทึม GCA ของเรา:
การฝึกอบรมปฏิปักษ์แบบ end-to-end ใหม่ของเราสามารถอธิบายได้ด้วยโมเดล Keras ต่อไปนี้ (นำไปใช้ในไฟล์ train_bot_GAN.py) ซึ่งประกอบด้วยตัวสร้างและตัวแบ่งแยก บล็อกสีเหลืองเป็นของ GCA (เครื่องกำเนิด) ในขณะที่บล็อกสีเขียวเป็นของตัวแยกแยะ บล็อกสีขาวถูกใช้ร่วมกันระหว่างตัวสร้างและผู้แยกแยะ:
ในขณะที่รหัสเทียมต่อไปนี้อธิบายอัลกอริทึมใหม่ (ดูบทความเกี่ยวกับคำจำกัดความของตัวแปร):
วิธีสนทนากับโมเดลที่ได้รับการฝึกล่วงหน้า:
ในการประเมินบทสนทนาโดยใช้เครื่องแยกแยะที่ได้รับการฝึกอบรมมาแล้ว:
หากต้องการฝึกอบรมตั้งแต่ต้นทางถึงปลายทางโดยใช้วิธีปฏิปักษ์ใหม่:
หากคุณต้องการเริ่มต้นการฝึกอบรมฝ่ายตรงข้ามตั้งแต่ต้น ให้สร้างไฟล์น้ำหนัก my_model_weights.h5 (ฝึกอบรมวิธีฝ่ายตรงข้ามใหม่แล้ว) เท่ากับ my_model_weights20.h5 (ฝึกอบรมล่วงหน้าโดยครูบังคับ) และเรียกใช้ train_script.py