Quadratic programming

ในหัวข้อนี้เราจะมาดูตัวอย่างการแปลงปัญหาของเราให้อยู่ในรูปแบบหนึ่งที่สามารถทำ relaxation ได้ไม่ยาก โดยรูปแบบของปัญหาที่เราจะจัดรูปนั้นเรียกว่า quadratic programming ซึ่งคือปัญหา optimization ที่ objective function และ constrain ต่างอยู่ในรูป quadratic function บนตัวแปรที่ปรับค่าได้ (ฟังก์ชันที่ดีกรีของตัวแปรไม่เกิน 2)

เมื่อเราสามารถจัดรูปปัญหาให้เป็น quadratic programming ได้แล้ว เราจะสามารถทำ relaxation ให้กลายเป็นปัญหาที่เรียกว่า semidefinite programming ซึ่งจะได้ศึกษากันต่อไป

เราเริ่มต้นจากปัญหาตั้งต้นของเราดังนี้

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

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

สำหรับเงื่อนไข นั้น เราสามารถเขียนในรูป quadratic constrain โดยใช้สามเงื่อนไขได้ดังนี้

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

ถึงตรงนี้เราสามารถเขียนปัญหาของเราอยู่ในรูป quadratic programming ได้แล้ว อย่างไรก็ดี เพื่อความสะดวกต่อไปเราจะตัดตัวแปร ออกโดยการนำเงื่อนไข เข้าไปรวมใน objective function แทน ซึ่งจะได้ว่าฟังก์ชันที่เราต้องการให้มีค่าสูงที่สุดคือ

แต่เนื่องจาก ไม่มีตัวแปรที่เราสามารถปรับค่าได้ ดังนั้น objective function ดังกล่าวจะมีค่าสูงที่สุดก็ต่อเมื่อค่าของ ต้องสูงที่สุดเท่านั้น เมื่อเรานำเงื่อนไขทั้งหมดมารวม จะได้ว่าปัญหาของเราสามารถเขียนใหม่เป็น quadratic programming ได้ดังนี้

References

  1. A. Raghunathan, J. Steinhardt, P. Liang. Semidefinite relaxations for certifying robustness to adversarial examples, In 32nd International Conference on Neural Information Processing Systems (NeurIPS), 2018

Prev: Linear programming relaxation

Next: Semidefinite programming relaxation