มวยข้ามรุ่นของระบบปัญญาประดิษฐ์ (2)


Andrey Kolmogorov   เป็นนักคณิตศาสตร์ชาวรัสเซียที่เป็นผู้เชี่ยวชาญแบบ 'พหุสาขา' คือ เป็นพวก สทร. ไปทิ้งผลงานสอดไส้เป็นยาดำไว้ในศาสตร์แขนงต่าง ๆ มากมาย 

คนนี้ก็คือคนเดียวกับที่ร่วมกันสร้าง Kolmogorov-Smirnov test นั่นแหละครับ 

หนึ่งในผลงานสำคัญของเขาด้าน information theory คือแนวคิดที่เรียกว่า Kolmogorov complexity

แนวคิดนี้ บอกอะไร ?

แนวคิดนี้ อย่างคร่าว ๆ ก็คือ เราสามารถอธิบายระบบซับซ้อนใด ๆ อย่างไรให้สั้นที่สุด

ระดับ Kolmogorov complexity ก็คือ ความยาวโปรแกรมที่สั้นที่สุดที่สร้างคืนรูประบบนั้นได้

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

ถ้าผมมีตัวเลขอตรรกยะ เช่น ค่า pi หากมี algorithm ที่สั้นสุด ๆ ในการคำนวณหาค่า pi ได้แบบไม่รู้จบ ความยาวของโปรแกรมดังกล่าวที่สั้นที่สุด จะบอกถึง Kolmogorov complexity

เช่น ข้อความ

hj[pqe ;jkwekl';lthr 'klADJBfv'rhlkldr kjgsdfkljh jkrtjhlirtjyoiq4ยา-บยเไำgbj kbk  วงๆไวาๆำส่วกฟษ"ฎญฯฑธฮณญฯ๒๓ฮญซ ฺญฐษ๓" ๔ฐญํษฐธฑ็ษซศ ฏโษฬฎฑ็โธ็? ซศฆฑธ็ ฑ ษซศ

เป็นข้อความขยะ แต่บีบอัดยังไง หรือใช้ลูกเล่นยังไง ก็คงสั้นกว่าเดิมได้ไม่กี่ตัวอักษร จึงถือว่า มี Kolmogorov complexity สูง

แต่ค่าอย่างเช่น 2.718281828... (e) สามารถคำนวณจาก Taylor's series ของนิยาม e ยกกำลัง 1 ซึ่งเมื่อเขียนเป็นโปรแกรมแล้ว อาจสั้นไม่กี่สิบตัวอักษร แต่ค่าที่เกิดขึ้นมีความยาวเป็นอนันต์ ในกรณีนี้ Kolmogorov complexity ก็จะต่ำ

ในตอนก่อน ผมเล่าถึงแนวคิดการทำ regression เพื่ออธิบายข้อมูลดิบ โดยสองวิธี วิธีแรก ใช้แบบจำลอง MLR (multiple linear regression แบบ polynomial order 1 ล้วน ๆ)

หน้าตาทำนองนี้

Y = k1 + k2*x1 + k3*x2 + ... 

เทียบกับอีกวิธี ที่ใช้ระบบปัญญาประดิษฐ์ที่เรียกว่า GEP (gene expression programming) มาปะติดปะต่อชิ้นส่วนทางคณิตศาสตร์ สร้าง empirical nonlinear regression model ที่ดูพิศดารพันลึก มีความซับซ้อนของฟังก์ชันถึงขีดสุด

หน้าตาของเสี้ยวเล็ก ๆ ของ model ขนาดยักษ์ที่ถูกสร้างขึ้น อาจเห็นทำนองนี้

Y = ...ฯล... + sin(sin(cos(1+x2)-....))...+ ฯลฯ

ถ้านำแนวคิดของ Kolmogorov complexity มาจับ ระบบ MLR มี Kolmogorov complexity ต่ำกว่าแบบ GEP มหาศาล แต่ปรากฎว่า MLR ด้อยกว่า 'นิดหน่อย'ในเรื่องความสามารถในการทำนาย แล้วรีบมาสรุปว่า GEP ดีกว่าขาดลอย

ฟังแล้วทึ่ง อึ้ง เสียว ครบสูตร ว่า โห โม้น่าฟัง

แต่มองข้ามเรื่องการ"โกงรุ่น" ..

ในกรณีของการทำ regression การเพิ่มค่าคงที่ (parameters) เข้าไปสักตัว มีมาตรฐานรองรับว่า "ทำแล้วคุ้มไหม" ด้วยการดูตัวชี้วัดความคุ้มค่าทางสถิติ คือดูว่า ถ้าเพิ่มจำนวนพารามิเตอร์แล้ว ดีเพิ่มไม่น่าประทับใจ ก็อย่าทำซะดีกว่า

ดังนั้น การทำ regression จึงเป็นเหมือนผู้ใหญ่ที่มีวุฒิภาวะ เพราะรู้จักหยุดในระดับที่พอเหมาะพอสม

นั่นเป็นเพราะ regression มีแนวคิดทางทฤษฎีรองรับมาตั้งแต่สองร้อยปีก่อนแล้ว ย้อนไปตั้งแต่ยุคของ เลอจ็องค์ และเกาส์ การใช้โมเดลที่ซับซ้อนขึ้น วัดได้จากจำนวนพารามิเตอร์โดยตรง การ"เทียบรุ่น" จึงทำได้ไม่ยาก คือนับจากจำนวนพารามิเตอร์เอาก็พอ โดยไม่ต้องสนใจหน้าตาของ model ทางคณิตศาสตร์ เพราะสมัยก่อน คนไม่ได้ยุ่งกับ model ที่หลุดโลกกัน

ผลคือ เมื่อมีการเอาเปรียบด้วย model ที่ซับซ้อนมหาศาล ก็ย่อมเล็ดลอดเกณฑ์ทางสถิติไปได้ เพราะเกณฑ์สถิติไม่ได้สนใจ model

แต่ในยุคที่การคำนวณเคลื่อนไปสู่กรอบคิด model-less คือเปลื้องตัวเองพ้นจากกรอบของการตั้ง model เช่น Neural Network (มีแต่ graph matrix และค่าคงที่) หรือ GEP ซึ่งใช้ evolutionary model ที่ model ซับซ้อนถึงขีดสุด (โดยอาจไม่ได้เพิ่มจำนวน regression parameter เลย) แนวคิดเรื่องการเปรียบรุ่นมวย มันโตไม่ทัน เกิดเป็นช่องว่างให้คนฉกฉวยไปใช้ประโยชน์

ลองดูตัวอย่างที่เกิดขึ้นกับ Neural Network ในงานวิจัยก็ได้

ใน Neural network ปรกติซ่อนด้วยค่าคงที่มากมาย ไม่รู้เท่าไหร่ต่อเท่าไหร่ เวลาใช้ทำนายข้อมูลได้ดีกว่า การ regression กับ empirical model ทั่วไปที่ดูกระจอก แต่หลัง ๆ มักเห็นนักวิจัยที่ทำการ 'เปรียบมวย' แบบนี้ รีบกระดี๊กระด๊าร่าเริงมาตีปิ๊บ ว่า วิธี NN ที่ตัวเองใช้ 'ดีสุดยอด' เหนือกว่าอีกวิธี 'อย่างไม่เห็นฝุ่น'

..แต่ไม่แอะปากว่า ตัวเองกำลังใช้วิธี นำสิ่งที่ซับซ้อนมหาศาล ไปอธิบายสิ่งที่ไม่ซับซ้อน !

เช่น ทำ QSAR ที่มีข้อมูลดิบสัก 40 จุด ไปทำนายด้วย NN ที่มีค่าคงที่ซ่อนอยู่นับร้อยจุด

เท่ากับการใช้ตัวเลขนับร้อยตัว มารุมทำนายตัวเลข 40 ตัว

ในขณะที่เวลาเปรียบเทียบกับการทำ regression ไปจำกัดว่า ในโมเดล ต้องมีไม่เกิน 7-10 เทอม (ซึ่งเท่ากับการใช้ตัวเลข 7-10 ตัวไปทำนายข้อมูล 40 จุด) 

เท่ากับว่า GEP มี Kolmogorov complexity สูงมาก แต่ MLR มี Kolmogorov complexity ต่ำมาก 

...ทั้งที่การทำ prediction ทุกอย่าง ควรยึดหลักว่า พึงใช้สิ่งที่เรียบง่ายถึงขีดสุด อธิบายสิ่งที่ซับซ้อนถึงขีดสุด 

สุดยอดฝีมือ ต้องมี Kolmogorov complexity ต่ำ 

เห็นแล้วลำบากใจครับ เพราะสะท้อนนิสัยการชอบ 'แอบเอาเปรียบคู่ต่อสู้' อย่างหน้าไม่อาย เพราะเหมือนให้นักมวยรุ่นยักษ์ปลอมตัวลงไปชกมวยรุ่นจิ๋ว ยังไงยังงั้นเลย

ต่อให้นักมวยรุ่นยักษ์นั่นทำหน้าใสซื่อปัญญาอ่อน ขนาดไหน  ก็ไม่ได้ทำให้คนดูเลิกโห่ไล่หรอกครับ

 

หมายเลขบันทึก: 114599เขียนเมื่อ 25 กรกฎาคม 2007 23:05 น. ()แก้ไขเมื่อ 17 มิถุนายน 2012 13:00 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (1)

เขียนได้ดีมากครับ วิธีการเขียนเข้าใจง่ายมาก และที่สำคัญเนื้อหาดีมากครับ ผมกำลังจะนำ Genetic Programming มาใช้ในงานด้าน Optimization ซึ่งก็ค้นมาเจอหน้านี้

ตอนแรกผมค่อนข้างไม่เห็นด้วยกับวิธีประเภทสุ่ม(ในมุมคุณคือ GEP) แต่พอปัญหามันยากขึ้นสิ่งที่ผมทำได้คือการลดขนาดของปัญหาให้เล็กลงจนวิธีการแก้แบบไม่สุ่ม(ในมุมคุณคือ MLR)เข้ามาแก้ปัญหาได้ ซึ่งท้ายที่สุดกระบวนการเสียโอกาสในการค้นหาค่าที่ดีกว่าเนื่องจากการทำงานอย่างเป็นระบบ

ที่ผ่านมาการที่ผมจะสู่กับมวยรุ่นใหญ่ วิธีการคือไปตัดกำลังเล่นนอกเกมทำให้คู่แข่งมีความสามารถน้อยลงจนสู้ได้สูสี แต่พอมี Genetic Programming มันทำให้ผมสู้กับมวยรุ่นใหญ่ได้แบบไม่ต้องตัดกำลัง

ปัญหา ท้ายที่สุดคำตอบก็ออกมาไม่ได้ดีกว่ามากอย่างที่คุณพูดแล้วคนดูก็สรรเสริญกับวิธีการสู้แบบตัดกำลังมากกว่า

พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท