การเทรนแบบจำลองด้วย robust features
จากกระบวนการเทรนแบบจำลองแบบปกติ (standard training) นั้น การที่ feature $f$ ใด ๆ จะถูกใช้เป็นองค์ประกอบในการตัดสินใจของแบบจำลองจะขึ้นอยู่กับว่า $f$ เป็น useful feature หรือไม่ ดังนั้นจากแนวคิดเรื่อง robust feature แสดงว่าถ้าเราสามารถรับประกันได้ว่า useful feature ทั้งหมดในการกระจายตัวของข้อมูลของเราเป็น robust feature ทั้งสิ้น การเทรนแบบจำลองแบบ standard training ก็ควรที่จะให้ผลลัพธ์เป็น classifier ที่มีความทนทานต่อการโจมตี
อย่างไรก็ดี เราไม่สามารถเข้าไปจัดการแก้ไข feature ต่าง ๆ ในชุดข้อมูลของเราโดยตรงให้ได้ผลตามต้องการได้ เนื่องจากชุดข้อมูลมีความซับซ้อนและ dimension ที่สูงมาก เทคนิคที่เราทำได้คือ เราจะทำการปรับปรุงชุดข้อมูลให้เหลือเฉพาะ robust feature เท่านั้นที่ใช้ประโยชน์ได้ โดยใช้แบบจำลองที่มีความทนทานอยู่แล้วเข้ามาช่วย
Robust training set
กำหนดให้ $C$ เป็นแบบจำลองที่ทนทานต่อการโจมตี (เช่นแบบจำลองที่ถูกเทรนด้วย adversarial training) และให้ $D$ เป็นการกระจายตัวของข้อมูลที่เราต้องการเรียนรู้ เราต้องการที่จะสร้างการกระจายตัวของข้อมูล $\widehat{D}_R$ ที่มีคุณสมบัติดังนี้
โดยที่ $F_C$ แทนเซตของ feature ที่ใช้ประกอบในการตัดสินใจของ classifier $C$ นั่นคือ เราต้องการให้ในการกระจายตัวของข้อมูล นั้น feature ใดที่ใช้ประกอบการตัดสินใจของ $C$ จะยังคงเป็น useful feature อยู่ในขณะที่ feature อื่น ๆ ใช้งานไม่ได้ เนื่องจากเราเชื่อว่า $C$ ที่มีความทนทานต่อการโจมตีนั้นจะตัดสินใจจาก robust feature เป็นหลัก เราจึงคาดว่าการกระจายตัว ที่จะได้มานั้นจะมีเฉพาะ robust feature ที่เป็น useful feature เราจะเรียก training set ที่การกระจายตัวมีคุณสมบัติเช่นนี้ว่าเป็น robust training set
ในการสร้าง training set ของ $\widehat{D}_R$ เราจะพิจารณาตัวอย่างข้อมูล $x$ แต่ละตัวใน training set เดิมบนการกระจายตัว $D$ และทำการสร้างตัวอย่างข้อมูล $x_r$ ขึ้นมาใหม่โดยอิงจาก $x$ และ $C$ ดังนี้ เราเริ่มจากการสุ่ม noise $x_0$ และใช้ gradient descent ในการหา $x_r$ ที่
เมื่อ $h$ เป็นฟังก์ชันที่ map จาก input $x$ ไปยัง representation layer สังเกตว่าเราเริ่มจากการสุ่ม $x_0$ เพื่อให้ feature ใด ๆ ไม่สามารถเป็น useful feature ได้ จากนั้นเราพยายามปรับปรุง input จาก $x_0$ ให้ใกล้เคียงกับ $x$ มากขึ้นเรื่อย ๆ ผ่านสายตาของ $C$ ถ้าหาก $C$ ใช้เพียง robust feature ในการตัดสินใจ เราจะได้ว่าการปรับปรุง input นี้จะทำการปรับปรุงเฉพาะ robust feature ให้เข้าไปใกล้เคียงกับ robust feature ในตัวอย่างข้อมูล $x$ เดิมให้ได้มากที่สุด กระบวนการสร้าง robust training set สามารถเขียนเป็นรหัสลำลองได้ดังนี้
ภาพด้านล่างแสดงตัวอย่างของข้อมูลที่สร้างได้จากกระบวนการดังกล่าว
การเทรนแบบจำลองด้วย robust training set
เมื่อเราสร้าง training set ใหม่บนการกระจายตัว ได้แล้ว เราทดลองนำ training set นี้มาเทรนแบบจำลองใหม่โดยใช้การเทรนแบบ standard training จากนั้นนำแบบจำลองที่เทรนได้ไปทดสอบกับ test set ตั้งต้น (บนการกระจายตัว $D$) ผลที่ได้เป็นดังภาพด้านล่าง ซึ่งแสดงให้เห็นว่าแบบจำลองที่ได้นั้นมีความแม่นยำสูงและยังมีความทนทานที่ดีขึ้นกว่าการทำ standard training บนชุดข้อมูลดั้งเดิมอีกด้วย
คราวนี้หากเราทำการทดลองแบบเดิม โดยที่เปลี่ยนแบบจำลอง $C$ ที่ใช้ประกอบการสร้างชุดข้อมูลใหม่ให้เป็นแบบจำลองที่สร้างจาก standard training (ซึ่งไม่มีความทนทานต่อการโจมตี) ให้ แทนชุดข้อมูลที่ได้จากการสร้างด้วย $C$ อย่างแรกที่เราเห็นคือ ตัวอย่างข้อมูลใน นั้นมีความเป็น noise อย่างมากและไม่มีลักษณะใกล้เคียงกับภาพตั้งต้นที่ใช้ ซึ่งผิดกับตัวอย่างข้อมูลใน ที่ดึงลักษณะเด่นของภาพตั้งต้นออกมาได้มาก
ถัดมา เมื่อเรานำชุดข้อมูล มาเทรนแบบจำลองใหม่ด้วยการทำ standard training และทำการทดสอบแบบจำลองที่ได้บน test set ดั้งเดิม (บนการกระจายตัว $D$) เราพบว่าแบบจำลองที่ได้นั้นมีความแม่นยำสูง ถึงแม้ว่าข้อมูลที่ใช้เทรนมีลักษณะเป็น noise อย่างมาก อย่างไรก็ดีเมื่อทดสอบความแม่นยำกับ adversarial example เราพบว่าแบบจำลองที่ได้นี้ไม่มีความทนทานต่อการโจมตี ภาพด้านล่างสรุปภาพรวมของการทดลองที่กล่าวมาทั้งหมด
ผลจากการทดลองนี้สนับสนุนแนวคิดที่ว่า weak feature ในข้อมูลนั้นมีอยู่จริง และในการตัดสินใจของแบบจำลองที่เทรนแบบ standard training นั้นมีการใช้ประโยชน์จาก weak feature ประกอบเป็นอย่างมาก (ดูจากตัวอย่างภาพที่สร้างได้จาก classifier $C$ ที่เป็น standard model ซึ่งเราไม่เห็นคุณลักษณะเด่นของคลาสเลย นั่นแสดงว่าตัวอย่างข้อมูลนี้ดึงคุณลักษณะของ weak feature ขึ้นมามากนั่นเอง) นอกจากนี้การที่ชุดข้อมูลที่สร้างจาก robust model สามารถเทรนแบบจำลองใหม่ให้มีความทนทานได้โดยใช้ standard training ก็ยังสนับสนุนแนวคิดที่ว่าตัว robust model ที่เทรนด้วย adversarial training นั้นทำการตัดสินใจโดยใช้ robust feature เป็นหลัก