หรือ Intelligence System จะไม่ปลอดภัยอีกต่อไป? เมื่อ Machine learning ถูกหลอกด้วย Adversarial Example


Share this article

ในทศวรรษที่ผ่านมา เราได้เห็นการเติบโตของ Intelligence System ที่สามารถช่วยมนุษย์ในการแก้ไขปัญหาบางอย่างที่ไม่สามารถทำได้ด้วยซอฟต์แวร์หรือวิธีการดั้งเดิม เทคโนโลยีเช่น Machine Learning และ Deep Learning เข้ามามีบทบาทมากขึ้นและช่วยพัฒนาวงการอุตสาหกรรมอย่างก้าวกระโดด

ในปี 2013 เราได้เห็น Deep learning ที่มีชื่อว่า ConvNets สามารถทำการจดจำและระบุชนิดของวัตถุในรูปภาพได้ในระดับที่ใกล้เคียงกับมนุษย์ และยังสามารถจดจำและแยกแยะใบหน้าได้ดีกว่ามนุษย์อีกด้วย ConvNets จึงได้กลายเป็นเทคโนโลยีที่พลิกโฉมวงการ Computer Vision ไปโดยสิ้นเชิง

ในช่วงเวลานั้น ConvNets ทำงานได้ดีจนไม่มีใครสนใจข้อผิดพลาดเล็ก ๆ น้อย ๆ ของมัน นักวิจัยและนักพัฒนาทุกคนต่างคิดว่าข้อผิดพลาดที่เกิดขึ้นนั้นเกิดมาจากการที่ Training Set ไม่ดีพอสำหรับให้ Model ทำการเรียนรู้นั่นเอง

“Nobody ever surprises if the computer makes the mistake. – Ian Goodfellow”

ไม่นานนักหลังจากนั้น ทีมนักวิจัยจาก Google และมหาวิทยาลัยนิวยอร์คได้ทำการศึกษาถึงข้อผิดพลาดที่เกิดขึ้นจาก ConvNets และได้พบว่า การดัดแปลงรูปภาพเพียงเล็กน้อยในระดับที่มนุษย์ไม่สามารถรับรู้ได้ กลับทำให้ ConvNets ตัดสินใจผิดพลาดได้อย่างไม่น่าเชื่อ

ตัวอย่างเช่น หากเรามีรูปแพนด้าด้านซ้าย ซึ่ง ConvNet ทำการทำนายว่ารูปดังกล่าวเป็นรูปแพนด้าโดยมีความเชื่อมั่น 57.7% หากเราสามารถหารูปแบบของการดัดแปลงรูปภาพที่จะทำให้ ConvNets ทำนายผลผิดพลาดได้ ซึ่งเรียกว่า Structured Attack ตามภาพกลาง และทำการรวมภาพแพนด้าเข้ากับ Structured Attack ซึ่งถูกคูณด้วยค่าสัมประสิทธิ์น้อย ๆ เพื่อให้ไม่กระทบกับภาพแพนด้าต้นฉบับมากเกินไป เราจะได้ภาพแพนด้าด้านขวาซึ่งตามนุษย์ไม่สามารถบอกความแตกต่างระหว่างภาพต้นฉบับกับภาพที่ถูกดัดแปลงได้ แต่ ConvNets กลับทำนายผิดไปจากเดิมอย่างสิ้นเชิง โดยทำนายว่าภาพด้านขวาคือตัวกิบบอน และยังมีค่าความเชื่อมั่นสูงถึง 99.3% ภาพด้านขวานั้นมีชื่อเรียกว่า Adversarial Example

โดยทั่วไปแล้ว Adversarial Example คือชุดข้อมูลที่ถูกออกแบบมาเพื่อให้ Machine learning ทำงานผิดพลาดอย่างจำเพาะ เช่น ทำนาย Class ผิดใน Classification Model หรือให้ค่าผิดปกติใน Regression Model  โดยที่ไม่สามารถบอกความผิดปกติด้วยตา หรือส่งผลต่อการตัดสินใจของมนุษย์แต่อย่างใด

แม้แต่ Algorithm ที่ง่ายที่สุด ก็สามารถถูกหลอกด้วย Adversarial Example ได้ ในตอนแรกนั้น ทีมนักวิจัยคิดว่าสิ่งนี้เกิดจากการ Overfitting ของโมเดล Deep Neural Network ที่มีจำนวน Parameters มาก จึง Fit กับ Training Set เกินกว่าที่ควรจะเป็น  เมื่อทำการทดลองกับ Test Set จึงเกิด Error ขึ้นอย่างเลี่ยงไม่ได้

ถ้าสมมติฐานดังกล่าวเป็นจริง การ Fit โมเดลอีกครั้งด้วยการตั้งค่าเดิมหรือปรับเปลี่ยนเล็กน้อย ผลลัพธ์ที่ได้จาก Model ควรมี Error แบบสุ่มสำหรับข้อมูลใดๆ ที่อยู่นอกเหนือ Training Set

แต่ผลการทดลองไม่เป็นเช่นนั้น ผลการทดลองพบว่า โมเดลที่แตกต่างกันนั้นทำนายผลของ Adversarial Example ผิดเหมือนกันทั้งหมด และทุกโมเดลยังทำนายเป็น Class เดียวกันอีกด้วย แสดงให้เห็นว่า Adversarial Example นั้น มีคุณสมบัติพิเศษอยู่ภายใน

จากภาพ Adversarial Example ของแพนด้าด้านบน หากเราทำย้อนกลับโดยการนำ Adversarial Example ลบด้วยภาพดั้งเดิมของมัน จะได้ Structured Attack ออกมา ซึ่งหากเรานำ Structured Attack นี้ไปรวมกับภาพใดๆ ก็ตาม ผลลัพธ์ที่ได้จะออกมาเป็น Adversarial Example ทุกครั้ง

We all live in Adversarial World

มีงานวิจัยพบว่า Adversarial Example ทำงานได้แม้ในสถานการณ์จริง เช่น เมื่อพิมพ์ Adversarial Example ลงบนกระดาษ แล้วทดลองใช้ซอฟต์แวร์ Image Recognition บนโทรศัพท์มือถือ ผลปรากฏว่า Adversarial Example สามารถหลอกซอฟต์แวร์ Image Recognition ได้ โดยภาพเครื่องซักผ้า ซอฟต์แวร์มองเห็นว่าเป็นตู้เซฟหรือลำโพง

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

จากภาพจะเห็นได้ว่า Adversarial Example ที่ถูกสร้างด้วย Linear Regression จะสามารถส่งผลให้เกิดความผิดพลาดกับ Linear Regression โมเดลอื่นได้ถึง 91.64% และยังส่งผลถึงโมเดลชนิดอื่นอีกด้วย เช่น ส่งผลต่อ Support Vector Machine 91.43% และส่งผลต่อ Decision Tree 87.42%

READ  Siamese Neural Network: การตรวจจับการปลอมแปลงลายเซ็นด้วยปัญญาประดิษฐ์

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

สำหรับการป้องกันการถูกโจมตีด้วย Adversarial Example นั้นต่างจากการเพิ่ม Robustness ของตัว Machine Learning เทคนิคเช่นการใช้ Weighting หรือ Dropout นั้นไม่สามารถใช้ป้องกัน Adversarial Example ได้ อย่างไรก็ตาม ในปัจจุบันมีวิธีการลดความเสี่ยงที่จะถูกโจมตีด้วย Adversarial Example ดังนี้

Adversarial Training

เป็นวิธีการที่ง่ายที่สุดในการป้องกัน Adversarial Example Attack โดยการทำการ Train โมเดลด้วย Adversarial Example เพื่อให้โมเดลมีความทนต่อ Adversarial Structure รูปแบบใดรูปแบบหนึ่งโดยเฉพาะ ข้อเสียคือโมเดลที่ได้จะมีความจำเพาะสูงและไม่สามารถปรับตัวเข้ากับ Adversarial Structure ใหม่ๆ ได้ หากตรวจพบ Structure ใหม่ จะต้อง Train โมเดลใหม่เท่านั้น

Defensive Distillation

เป็นเทคนิคที่ช่วยเพิ่มความยืดหยุ่นให้กับตัวโมเดลและทำให้การ Exploit ทำได้ยากขึ้นโดยการใช้ 2 โมเดลช่วยในการทำนาย โดยเมื่อรับ input เข้ามา โมเดลแรกจะทำการสร้าง output ออกมา 2 อย่าง คือ Class กับ Probability Distribution ของแต่ละ Class และจะถูกนำไปใช้ต่อโดยโมเดลที่ 2 ซึ่งจะทำนาย Class จริงๆ ของ input ออกมา ข้อดีคือสามารถปรับตัวเข้ากับ Adversarial Structure ใหม่ๆ ได้ ส่วนข้อเสียคือถึงแม้จะมี 2 โมเดลช่วยในการทำนายก็ตาม แต่โมเดลที่สองก็ยังคงถูกจำกัดด้วยความสามารถของโมเดลที่ 1 อยู่ดี ทำให้หากเราสร้างโมเดลที่ 1 ไว้ไม่ดีพอ ผู้โจมตีก็ยังสามารถใช้ Adversarial Example โจมตีเข้ามาได้อยู่ดี

Conclusion

Adversarial Example แสดงให้เห็นว่า Machine learning ในปัจจุบันนั้นยังเกิดความผิดพลาดแบบแปลกๆ ขึ้นได้อย่างง่ายดาย ทำให้การใช้งานในสถานการณ์จริงที่ต้องการความแม่นยำและความปลอดภัยสูงเช่น รถยนต์ไร้คนขับหรือระบบรักษาความปลอดภัยนั้นยังต้องพัฒนากันอีกสักระยะ มิเช่นนั้นอาจเกิดอันตรายต่อชีวิตและทรัพย์สินไม่น้อยเลยทีเดียว

Reference


ลงทะเบียนรับข่าวสาร

ไม่พลาดทุกการอัพเดทจาก Big Data Experience Center

Big Data Experience Center (BX)

ชั้น 14 อาคาร Knowledge Exchange Center (KX)
110/1 ถนนกรุงธนบุรี, แขวงบางลำภูล่าง เขตคลองสาน กรุงเทพฯ 10600
อีเมล์: [email protected]
Tel: 097-941-9889

ABOUT

SERVICES