การสร้าง robust classifier

เมื่อเรามีนิยามของ adversarial risk อย่างชัดเจนแล้ว ปัญหาในการเทรนแบบจำลองให้มีความทนทานสูงก็นิยามได้อย่างตรงไปตรงมา นั่นคือ สำหรับ training data เราต้องการหาพารามิเตอร์ ที่เป็นตำตอบของปัญหา optimization ต่อไปนี้

เราจะเรียก formulation นี้ว่าเป็น min-max หรือ robust optimization formulation สำหรับการทำ adversarial learning ซึ่งจะถูกกล่าวถึงบ่อย ๆ ต่อไป

วิธีหนึ่งในการแก้ปัญหานี้ ก็คือการใช้อัลกอริทึมการเทรนเช่นเดียวกับการเทรนแบบดั้งเดิม นั่นคือเราสามารถใช้ stochastic gradient descent สำหรับปรับค่า โดยในแต่ระรอบ เราทำการเลือก minibatch และทำการ update ค่าของ ในทิศทางตรงข้ามกับ gradient ดังนั้น

จะเห็นว่าข้อแตกต่างสำคัญระหว่างการทำ adversarial training กับการ traing แบบดั้งเดิมนั้นก็คือ ในกรณีของ adversarial training การคำนวณ gradient ตามต้องการนี้ไม่ใช่เรื่องง่าย เนื่องจากตัวฟังก์ชันที่สนใจนั้นมีปัญหา maximization อยู่ภายใน อย่างไรก็ดี Danskin’s theorem ได้แสดงไว้ว่าเราสามารถหา gradient ของฟังก์ชัน max ได้จากการคำนวณ gradient ของฟังก์ชันที่อยู่ข้างใน max โดยใช้ค่าของตัวแปรที่ทำให้ฟังก์ชันภายในนี้มีค่ามากที่สุด นั่นคือ

เมื่อ

ดังนั้น จะเห็นว่าเราสามารถคำนวณ gradient ของ adversarial loss สำหรับตัวอย่างข้อมูล ได้โดยเริ่มจากการหาค่า ที่เป็นคำตอบของปัญหา maximization ข้างในเสียก่อน นั่นคือ ถ้าเราให้

เราจะสามารถคำนวณ gradient ของ loss ของข้อมูล ได้จาก

ถึงตรงนี้เราจะได้ว่า ในกระบวนการเทรน robust classifier ด้วย gradient descent การปรับพารามิเตอร์ในแต่ละรอบจะทำได้ในสองขั้นตอนคือ

  1. สำหรับแต่ละตัวอย่างข้อมูล แก้ปัญหา maximization ภายใน นั่นคือ หา

  2. คำนวณ gradient ของ adversarial risk และทำการปรับ ตาม

เราอาจมองว่าในการเทรนแต่ละรอบ เราเริ่มจากการหา adversarial example ก่อน จากนั้นก็ทำการปรับพารามิเตอร์ของแบบจำลองโดยอิงกับ adversarial example เหล่านี้แทนที่จะอิงกับตัว original data

การทำ adversarial training ในลักษณะนี้มีความท้าทายอยู่ที่การจะแก้ปัญหา maximization ข้างในนั้นไม่ใช่เรื่องง่าย เนื่องจากสำหรับแบบจำลอง deep learning นั้น ปัญหา maximization ดังกล่าวไม่ได้อยู่ในกลุ่ม convex optimization ที่จะหาคำตอบได้เร็ว การใช้ gradient descent แบบที่ได้แสดงในการทดลองตอนแรกนั้นนอกจากจะเสียเวลามากสำหรับแต่ละ sample แล้วยังสามารถหาได้เพียงคำตอบที่เป็น local optimum ซึ่งหากเรานำคำตอบเหล่านี้มาใช้ในการคำนวณ gradient ในขั้นตอนที่สอง ก็ไม่สามารถรับประกันได้ว่าเราจะทำการปรับพารามิเตอร์ไปในทิศทางที่ถูกต้อง เนื่องจาก Danskin’s theorem นั้น apply ได้สำหรับคำตอบที่นำมาสู่ค่า maximum จริงเท่านั้น อย่างไรก็ดี ในทางปฏิบัติแล้วเราพบว่าถ้าเราสามารถแก้ปัญหา maxmimization ข้างในได้ดีมากพอ (อาจไม่ต้องดีที่สุด) อัลกอริทึมนี้ก็ให้ผลที่ดีได้ นี่เป็นที่มาของอัลกอริทึมกลุ่มหนึ่งสำหรับประมาณคำตอบของปัญหา maximization ข้างในอย่างรวดเร็วที่เราจะได้เห็นกันต่อไป

References

  1. Z. Kolter, A. Madry. Adversarial Robustness - Theory and Practice

Prev: Adversarial robustness

Next: แบบจำลอง Linear binary classification