ตรวจสอบการจัดหาข้อมูลเข้าสำหรับระบบปัญญาประดิษฐ์

โมเดลหนึ่งในการพิจารณาการเลือกปฏิบัติของอัลกอริทึม แบ่งการพิจารณาออกเป็นส่วนๆ ดังนี้
Input -> Process -> Output(2) นี่มันอาจจะเป็นเหมือนกล่องดำ คือไม่สามารถบอกได้ชัดๆ ว่าเครื่องมันตัดสินใจอย่างไร การจะไปประเมินไปตรวจสอบก็ทำลำบาก

ที่ง่ายกว่าก็คือมาดูที่ (1) กับ (3) ถ้ามีข้อมูลอะไรที่ไม่ควรใช้ก็ไม่ให้มันวิ่งเข้าไปในระบบเลยตั้งแต่แรก กับไปดูว่าผลลัพธ์สุดท้ายมันโอเคหรือไม่ โดยทั้งหมดนี้ ให้พิจารณา (4) ซึ่งเป็นบริบทแวดล้อมด้วย

แต่โมเดลนี้ก็ไม่ชัดเจนว่า ใครเป็นผู้จัดหาข้อมูลเข้าดังกล่าว คือตัวโมเดลมันเหมือนกับว่า การตัดสินใจของเครื่องมันอยู่เฉพาะที่ (2)

เป็นไปได้ไหมว่า ปัญญาประดิษฐ์มันสามารถตัดสินใจเกี่ยวกับข้อมูลเข้าได้ด้วย ว่าจะเลือกข้อมูลชนิดไหนเข้ามา ด้วยปริมาณเท่าไหร่

เช่นโจทย์ตั้งต้นอาจจะบอกว่าให้เพิ่มอัตราการคลิกปุ่ม ‘ซื้อ’ จากสื่อสังคม ตอนแรกๆ ก็อาจจะใช้ข้อมูลประชากรอะไรก็ว่าไปเท่าที่คนจัดหามาให้ แต่ต่อมาผู้พัฒนาอาจจะเพิ่มความสามารถให้ระบบมันไปหาข้อมูลเพิ่มเติมได้เองจากเน็ต เช่นระบบสร้างการทดลองขึ้นมาได้เอง ส่งข้อมูลเดียวกันไปคนต่างกลุ่มประชากร หรือข้อมูลต่างกันไปคนกลุ่มประชากรเดียวกัน เพื่อหาข้อมูลพฤติกรรมที่ตัวระบบอยากได้

พูดง่ายๆ ก็คือว่า คอมพิวเตอร์สามารถตัดสินใจสร้างการทดลองและ incentive ได้เอง เพื่อให้มนุษย์กลุ่มต่างๆ มาป้อนข้อมูลเพิ่มให้มัน (แน่นอนว่า incentive พวกนี้ มาจากทรัพยากรที่เจ้าของระบบจัดหาให้ แต่เจ้าของระบบไม่ได้เป็นผู้ตัดสินใจจัดหาข้อมูลเองโดยตรง)

ถ้าเป็นแบบนี้ การประเมิน “ข้อมูลเข้า” (1) อย่างเดียวก็จะไม่พอไหม ต้องประเมิน “การจัดหาข้อมูลเข้า” (0) ด้วยอีกที?

ก่อนหน้านี้มันเป็น คอมเล่มเกมกับคอมกันเอง เพื่อฝึกฝน
ต่อไปมันจะเป็น คอมสร้างเกมขึ้นมาให้คนเล่นตามเกมนั้น เพื่อฝึกฝน

Collect -> Input -> Process -> Output

ตัวชี้วัดเป็นคนละอย่างกับสิ่งที่มันวัด

ในหนังสือ Algorithms to Live By: The Computer Science of Human Decisions มีอยู่ตอนหนึ่งที่ยกตัวอย่างน่าสนใจดี (ได้จำเอาไปคุยกับนักศึกษาวิชา Computer Ethics and Law ที่ลาดกระบังด้วย)

มันอยู่ในตอนที่ว่าด้วยปัญหา overfitting/underfitting หรือการที่คอมพิวเตอร์มันเรียนรู้จากตัวอย่างเพื่อหา “สิ่งบ่งชี้” คุณสมบัติพึงประสงค์ แต่การยึดมั่นยึดติดกับสิ่งบ่งชี้ดังกล่าวมากเกินไปก็อาจเป็นปัญหา คือมันอาจจะเอาแต่มองหาสิ่งบ่งชี้ โดยที่ไม่จำเป็นว่าผลลัพธ์สุดท้ายจะนำไปสู่คุณสมบัติพึงประสงค์หรือไม่

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

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

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

ต่อให้เราเจออาหารมันๆ แต่มันอาจจะไม่ได้มันจากไขมันที่ร่างกายเอาไปใช้ประโยชน์ได้

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

กลายเป็นว่าถ้าร่างกายเรายังยึดอยู่กับตัวชี้วัดที่เคยใช้ได้ในครั้งโบราณ ยึดติดกับตัวอย่างอาหารแบบเก่าๆ (ที่เคยใช้ได้ผลกับกลุ่มตัวอย่างก่อนหน้านี้) พอมาเจออาหารใหม่ๆ นี่พังเลย แยกแยะไม่ได้ ไปไม่เป็น ยิ่งกินตามที่ถูกฝึกมาด้วยข้อมูลเก่า ชีวิตยิ่งพัง

การประกันคุณภาพหรือการป้องกันการทุจริตด้วยการตั้ง KPI ตั้งตัวชี้วัดต่างๆ นานาขึ้นมา ก็น่าจะคิดถึงเรื่องนี้ด้วย

ว่าเรากำลังจะมองหาคุณสมบัติเฉพาะบางอย่างที่มันมีประโยชน์กับงานจริงๆ โดยมองผ่านทางตัวชี้วัด

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

จุดอ่อนของ AI ในงานความมั่นคงปลอดภัยทางสารสนเทศ #infosec17

ในงาน Infosecurity Europe 2017 นอกจากคำว่า GDPR และ IoT ที่เดินไปไหนก็เจอแล้ว ยังมีอีก 2 คำที่มาคู่กันให้เห็นไปทั่ว คือคำว่า artificial intelligence (ปัญญาประดิษฐ์) และ machine learning (การเรียนรู้ของเครื่อง)

หัวข้อหนึ่งที่ได้ไปฟังแล้วน่าสนใจคือ Adversarial Machine Learning: The Pitfalls of Artificial Intelligence-based Security โดยมี Giovanni Vigna ซึ่งเป็นอาจารย์ที่ UC Santa Barbara และหนึ่งในผู้ก่อตั้งบริษัท Lastline มาเป็นวิทยากร

Machine learning and security
Machine learning and security

หลักๆ คือ Giovanni พูดถึงว่า การมีข้อมูลให้เครื่องมันเรียนรู้ถึงรูปแบบมัลแวร์และการโจมตีต่างๆ ก็อาจจะทำให้คอมพิวเตอร์มันเก่งขึ้นได้ในการตรวจจับความผิดปกติ (anomaly detection) โดยอัตโนมัติ ซึ่งอันนี้ก็ใช้เทคนิค classification และ clustering ทำนองเดียวกับแอปพลิเคชันอย่างการรู้จำภาพ โดยเขายกตัวอย่างการหาความผิดปกติในจาวาสคริปต์ ที่ก็อาจจะใช้การวิเคราะห์ข้อมูลจาก abstract syntax tree (AST) เพื่อเปรียบเทียบกับจุดที่เคยมีข้อมูลมาก่อนว่าเป็นอันตราย

Identifying adversaries: Malicious evasive JavaScript
Identifying adversaries: Malicious evasive JavaScript

อย่างไรก็ตาม เช่นเดียวกับระบบปัญญาประดิษฐ์ทั่วไป ที่เครื่องมันก็อาจจะตอบผิดบ้าง (ทั้ง false negative – มีอันตรายจริงๆ แต่หลงหูหลงตาไป ไม่ได้แจ้งเตือน และ false positive – แจ้งเตือนว่าเป็นอันตรายทั้งที่จริงไม่ใช่) แต่นอกจากนั้นแล้ว การใช้ปัญญาประดิษฐ์ และโดยเฉพาะเจาะจงคือการเรียนรู้ของเครื่อง กับงานความมั่นคงปลอดภัยยังมีจุดอ่อนอยู่อย่างน้อยอีก 2 อย่าง หากผู้โจมตีสามารถศึกษาและเข้าใจโมเดลที่ระบบใช้ได้ (ซึ่งการได้มาซึ่งโมเดลนี่ก็อาจจะใช้วิธี reverse engineering เอาก็ได้ เช่นขโมยผ่าน machine learning APIดูเปเปอร์)

  • อย่างแรกคือ ศึกษาหาจุดบอดของโมเดล เพื่อสามารถรู้ได้อย่างเจาะจงมากขึ้นว่า ในกรณีไหน (ด้วย feature set แบบไหน ในเงื่อนไขไหน) ที่ระบบจะถูกหลอกได้ (ทั้ง false positive และ false negative) และนำจุดอ่อนนี้ไปหาประโยชน์ และ
  • อย่างที่สองคือ ศึกษาว่าการเรียนรู้ปรับปรุงโมเดลนั้นทำอย่างไร ใช้ข้อมูลทำนองไหน และหาทางป้อนข้อมูลที่สร้างขึ้นมาหลอกๆ เพื่อทำให้โมเดลเปลี่ยนไปในทางที่ต้องการ พูดอีกอย่างคือเป็นการทำให้โมเดลถูกปนเปื้อน (contaminated / polluted)

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

Adversarial machine learning is here
Adversarial machine learning is here

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

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

การใช้ AI ในงานความมั่นคงปลอดภัย จึงจำเป็นต้องระมัดระวังมากขึ้น คือมันมีคนพร้อมจะเล่นงานเมื่อคุณพลาด หรือถ้าคุณยังไม่พลาด เขาก็จะล่อลวงให้คุณพลาดให้ได้

แต่ในด้านกลับ ความรู้ที่เรียกว่า “adversarial machine learning” นี้ก็อาจจะถูกใช้เพื่อสร้างกับดักหรือกระทั่งตามล่าการโจมตีแบบใหม่ๆ ก็ได้ คือเอาไปหลอกคนที่จะมาโจมตีก็ได้

From trapping to hunting
From trapping to hunting

ตอบจบก่อนช่วงสรุป วิทยากรบอกให้เราตั้งคำถามให้ดี เวลามีใครมาเสนอขายระบบที่ใช้ AI หรือ Deep Learning (ซึ่งตอนนี้เป็นคำฮิตอีกคำ) เพื่อปกป้องความมั่นคงปลอดภัยทางสารสนเทศ (โน๊ต: วิทยากรก็มานำเสนอในฐานะตัวแทนบริษัทขายระบบพวกนี้เหมือนกัน)  คำถามเหล่านั้นก็คือ

  • ระบบดังกล่าวใช้เทคนิคอะไรมาประกอบกันบ้าง
  • ระบบใช้ข้อมูลชุดใดบ้างในการสอนโมเดล
  • ความสามารถในการป้องกันการถูกโจมตี (ตามที่โฆษณา) นั้นถูกประเมินอย่างไร
  • ประเมินภายใต้โมเดลภัยคุกคาม (threat model) แบบไหน?
  • วิธีที่ระบบใช้มี ความเที่ยง (precision) และ  การเรียกกลับ (recall) เท่าใด (ความเที่ยง หมายถึง จากจำนวนที่ระบบบอกว่าเป็นความผิดปกติ มีที่ผิดปกติจริงๆ เท่าใด, การเรียกกลับ หมายถึง จากจำนวนความผิดปกติที่มีอยู่จริงๆ ระบบสามารถพบได้เท่าใด)

ถ้าคนขายตอบสิ่งเหล่านี้ชัดๆ ไม่ได้ เราก็มีข้อมูลไม่พอจะตัดสินใจว่าระบบที่เขาอยากขายนั้นจะใช้ได้ดีกับงานของเราหรือไม่

What to ask about AI/ML/Deep Learning-based technology
What to ask about AI/ML/Deep Learning-based technology

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

บริบทคือว่า ปัจจุบันสิ่งหนึ่งที่ชุมชนความมั่นคงปลอดภัยทางสารสนเทศทำกัน เพื่อเพิ่มความปลอดภัยในภาพรวมของทุกคน ก็คือการแบ่งปันข้อมูลการโจมตีหรือจุดอ่อนต่างๆ กัน แต่ทีนี้ ข้อมูลบางชุดก็อาจจะมีข้อมูลส่วนบุคคลหรือความลับทางการค้าติดอยู่ด้วย ทำให้บริษัทไม่สะดวกที่จะแชร์ให้กับ CERT หรือกับหน่วยงานอื่น ทีนี้ ถ้าเกิดว่าแต่ละหน่วยงานต่อไปมีการเก็บข้อมูลมาสร้างโมเดลตรวจจับของตัวเอง มันเป็นไปได้ไหม ที่จะแชร์(บางส่วนของ)โมเดลออกไปให้หน่วยงานภายนอก เพื่อให้เอาไปปรับปรุงโมเดลของเขา ทำนองว่าเป็น machine learning แบบช่วยๆ กันทำ โดยไม่ต้องแชร์ข้อมูลที่ใช้เรียน แชร์เฉพาะโมเดลที่สำเร็จแล้ว (ซึ่งน่าจะไม่เหลือข้อมูลที่อ่อนไหวไม่อยากแชร์)

Giovanni ตอบสั้นๆ ว่า มีคนคิดเรื่องนี้อยู่ แต่ ณ ขณะนี้ เทคโนโลยียังไปไม่ถึงตรงนั้น

ผมถ่ายมาไม่ครบทุกสไลด์ (เกรงใจ) คิดว่าอีกสักพักเขาน่าจะอัปโหลดไปที่ไหนสักที่ครับ ทางงานประชุมมีสรุปไว้ด้วย: #INFOSEC17 Machine Learning is Positive, but not a Security Solution

งาน Infosecurity Europe นี้ไม่ได้รู้จักมาก่อน (ผมไม่ใช่คนในวิชาชีพนี้โดยตรง เพียงแต่ต้องติดตามบ้างจากงานที่ทำงาน) เพิ่งจะรู้จากทวิตเตอร์ตอนที่ไปอยู่ลอนดอนได้สัปดาห์นึงแล้วนี่แหละ คือพวกผมไปกันอีกงานหนึ่งชื่องาน Mobile Media and Communication Practices in Southeast Asia เป็นงานสัมมนาวิชาการที่คณะสังคมวิทยาและมานุษยวิทยา ที่ธรรมศาสตร์ จัดร่วมกับ Goldsmiths Media Ethnography Group มหาวิทยาลัยลอนดอน ไม่ค่อยเกี่ยวกับด้านความมั่นคงปลอดภัยทางสารสนเทศเท่าไหร่ (แต่ก็มีหัวข้อนึงที่อาจารย์จาก Goldsmiths วิเคราะห์นโยบาย Thailand 4.0 และ Smart Thailand อาจจะเฉียดๆ)

อย่างไรก็ตาม ก็รู้สึกคุ้มค่าที่ได้ไป (ถ้ารู้เร็วกว่านี้อีกนิดก็จะดี จะได้ลงทะเบียนเข้าฟรี พอรู้ช้าต้องไปลงทะเบียนหน้างาน ต้องจ่าย 35 ปอนด์สำหรับงาน 3 วัน) ไปแล้วก็รู้สึกว่าอยากเขียนมาเล่า ยังไงอ่านอีกสองโพสต์ก่อนหน้าได้ครับ หลักการ/กลไกการคุ้มครองข้อมูลใหม่ใน GDPR ของสหภาพยุโรป และ ความมั่นคงปลอดภัยของ Internet of Things – ข้อคิดจาก Bruce Schneier

ร่างพ.ร.บ.ว่าด้วยการรักษาความมั่นคงปลอดภัยไซเบอร์ ใกล้จะคลอดเต็มทน ใครมีความคิดเห็นอะไรก็ส่งไปได้นะครับ แฟกซ์ 0-2281-2904 อีเมล legal@alro.go.th

Machine learning: The last line of defense
Machine learning: The last line of defense
Learn what your network does
Learn what your network does
Conclusions
Conclusions

mloss – free as in speech, not in will (yet)

mloss – Machine Learning Open Source Software Community ชุมชนซอฟต์แวร์โอเพนซอร์สด้านการเรียนรู้ด้วยเครื่อง

วารสารวิชาการ Journal of Machine Learning Research – Open Source Software Track

[ ผ่าน kindml ]

technorati tags:
,
,

YALE – Yet Another Learning Environment?

YALE – Yet Another Learning Environment?

ถ้าใครรู้จัก Weka .. นั่นแหละ มันคือประมาณ Weka แหละ (ซอฟต์แวร์สำหรับเอาไว้ทดลอง การเรียนรู้ของเครื่อง / การทำเหมืองข้อมูล) แต่ดูสดกว่า คงเพราะมาทีหลัง มีเครื่องมืออำนวยความสะดวกเพิ่มเติมจากที่ Weka มี อย่างตัวเลือก feature หรือเรื่อง XML อ้อ ใช้ตัว classifier/clusterer ของ Weka ใน YALE ได้ด้วยนะ อ่านฟอร์แมต ARFF ของ Weka ก็ได้ ดูจากภาพหน้าจอ YALE ทำ visualization ได้สวยกว่าด้วย

YALE is an environment for machine learning experiments and data mining. Experiments can be made up of a large number of arbitrarily nestable operators and their setup is described by XML files which can easily be created with a graphical user interface. Applications of YALE cover both research and real-world data mining tasks.

Weka นี่มาจากนิวซีแลนด์ ส่วน YALE มาจากเยอรมนี

แถม: Developer.com Gamelan: The Use of Java in Machine Learning by Sione Palu

tags: ,