Linear programming relaxation

ในหัวข้อนี้เราจะมาดูตัวอย่างการ relax ปัญหาการโจมตีแบบกำหนดเป้าหมายให้อยู่ในรูปของ linear program ซึ่งเป็นปัญหา optimization ที่มี objective function เป็น linear function บนตัวแปรที่ปรับค่าได้ และเงื่อนไขทั้งหมดก็อยู่ในรูป linear inequality บนตัวแปรที่ปรับค่าได้เช่นกัน ในปัจจุบันเรามีอัลกอริทึมสำหรับแก้ปัญหาที่เป็น linear program ได้อย่างมีประสิทธิภาพ ตัวอย่างอัลกอริทึมดังกล่าวเช่น ellipsoid algorithm หรือ interior-point algorithms

เพื่อความสะดวก เราจะแสดง constrained formulation ของปัญหาที่เราสนใจใหม่ดังนี้

linear integer programming

เราจะเริ่มจากการแปลงปัญหาให้อยู่ในรูปของ linear constrain ทั้งหมดก่อน โดยที่ตัวแปรบางตัวอาจมีค่าที่เป็นไปได้ถูกจำกัดให้เป็นจำนวนเต็ม เราเรียกปัญหาลักษณะนี้ว่า linear integer programming

จาก formulation ของปัญหา จะเห็นว่าเงื่อนไขที่ยังไม่เป็น linear constrain ได้แก่สองเงื่อนไขแรก โดยที่เงื่อนไข นั้นสามารถแปลงให้อยู่ในรูปของ linear constrain ได้ไม่ยาก โดยการแบ่งเป็นสองเงื่อนไขใหม่ดังนี้

สำหรับเงื่อนไข เราจะแปลงให้เป็นชุดของเงื่อนไขที่เป็น linear constrain และ binary integer constrain โดยสมมติว่าเราทราบว่าค่าของ นั้นจะมีค่าไม่น้อยกว่า และไม่มากกว่า เราสามารถแทนเงื่อนไข ด้วยชุดของเงื่อนไขต่อไปนี้ได้ โดยที่ เป็นตัวแปรที่มีค่าเป็น 0 หรือ 1 ได้เท่านั้น

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

กรณีแรก พิจารณาเมื่อ สังเกตว่าถ้าเรากำหนดให้ เงื่อนไขที่สามแสดงว่า แต่จากเงื่อนไขแรก ซึ่งขัดแย้งกัน แสดงว่า ต้องมีค่าเป็น 1 เท่านั้น ซึ่งเมื่อเรากำหนด แล้ว เงื่อนไขทั้งหมดจะเหลือเป็น

เงื่อนไขแรกและเงื่อนไขสุดท้ายจะทำให้เราได้ว่า ซึ่งจะต้องสอดคล้องกับเงื่อนไขที่สองเนื่องจาก และเงื่อนไขที่สามก็ต้องเป็นจริงด้วยเนื่องจาก เป็นขอบเขตบนของ ดังนั้น

คราวนี้ลองพิจารณาเมื่อ สังเกตว่าหากเรากำหนดให้ เงื่อนไขที่สี่จะทำให้ ซึ่งขัดแย้งกับเงื่อนไขที่สองที่กำหนดให้ ดังนั้นจึงได้ว่า ต้องเป็น 0 และเงื่อนไขของเราจัดรูปใหม่ได้ดังนี้

เงื่อนไขที่สองและสามจะบังคับให้ ซึ่งจะทำให้เงื่อนไขแรกเป็นจริงเนื่องจาก และเงื่อนไขที่สี่ก็เป็นจริงด้วยเพราะ เป็นขอบเขตล่างของ นั่นคือ แน่นอน

ถึงตรงนี้ เราสามารถแปลงปัญหาของเราเป็น linear integer programming ได้ดังนี้

เมื่อเราเขียนปัญหาในรูป linear integer programming เช่นนี้ได้ เราสามารถ relax ปัญหานี้ให้เป็น linear programming ได้ง่ายโดยการเปลี่ยนเงื่อนไขขอบเขตของ จากที่ต้องมีค่าเป็น 0 หรือ 1 เท่านั้น ให้สามารถมีค่าเป็นเท่าใดก็ได้ตั้งแต่ 0 ถึง 1 นั่นคือ เราเปลี่ยนเงื่อนไข ให้กลายเป็น แทน ภาพด้านล่างแสดงลักษณะการ relax ฟังก์ชัน ReLU ด้วยวิธีนี้ ซึ่งจะเพิ่มพื้นที่ของตัวแปรขึ้นตามพื้นที่แรเงาในภาพด้านขวา คราวนี้เราก็จะได้ปัญหา linear programming ที่สามารถหาคำตอบได้เร็ว โดยที่คำตอบของปัญหาตั้งต้นของเราก็เป็นคำตอบที่เป็นไปได้เช่นกัน ดังนั้นเมื่อแก้ linear program นี้ออกมาเราจะได้ผลลัพธ์ที่เป็นขอบเขตบนของคำตอบที่เราต้องการ

การหาขอบเขตบนและขอบเขตล่าง

ในการทำ linear programming relaxation ที่กล่าวมานี้เราทำได้โดยสมมติว่าทราบขอบเขตบนและขอบเขตล่างของ ทั้งหมดก่อนแล้ว ซึ่งในความเป็นจริงขอบเขตทั้งหมดนี้สามารถประมาณได้หลายวิธี วิธีหนึ่งที่ทำได้ง่ายคือ หากเราทราบขอบเขตของ ว่า เราสามารถหาขอบเขตที่เป็นไปได้ของ ได้โดยพิจารณาดังนี้

เนื่องจากสมาชิกตัวที่ ใน จะมีค่าเท่ากับ

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

เราสามารถใช้แนวคิดนี้ในการคำนวณหาขอบเขตบนและขอบเขตล่างทั้งหมดที่ต้องการได้ โดยเมื่อเรานำ ใด ๆ ที่รู้ขอบเขตแล้ว ผ่านเข้าไปยังฟังก์ชัน เราก็สามารถ clip ขอบเขตของ เพื่อนำไปใช้หาขอบเขตใน layer ถัดไปได้ไม่ยาก

References

  1. E. Wong, J.Z. Kolter. Provable defenses against adversarial examples via the convex outer adversarial polytope, In Proceedings of the International Conference on Machine Learning (ICML), 2018

Prev: การสร้าง robustness certificate

Next: Quadratic programming