เดี๋ยวนี้เวลาวิเคราะห์ข้อมูล มีเทคนิคการวิเคราะห์แบบใหม่ ๆ เกิดขึ้นมากจนตามกันแทบไม่ทัน
เมื่อวาน ผมไปนั่งฟังนักศึกษา ป.โท-เอก ทำสัมมนา ยกวิธีการแปลก ๆ ที่เป็น computer-based method มาใช้ในการทำนายพฤติกรรมโครงสร้างทางเคมียา
มีวิธีหนึ่ง ที่ทำให้สะดุดใจ เป็นงานวิจัยจากจีน ใช้วิธีที่แตกหน่อกลายพันธุ์มาจาก genetic programming
genetic programming เป็นวิธีที่ให้โปรแกรมเขียนโปรแกรมอีกที โดยใช้วิธีให้โปรแกรมคุม ไปหยิบชิ้นส่วนโปรแกรมท่อนเล็ก ๆ คล้ายอิฐบล๊อค มาลองประกอบดูเป็นโปรแกรม
เรื่องการใช้โปรแกรมเขียนโปรแกรม ก็ไม่แปลก เช่น precompiler ก็อาศัยแนวคิดนี้ แต่โปรแกรมที่ถูกสังเคราะห์ขึ้น จะเป็นแบบพิมพ์เดียว ไม่มีความหลากหลาย
ส่วนที่แตกต่างกับ precompiler ในกรณีของ genetic programming นี้ก็คือ ความหลากหลาย คือสังเคราะห์โปรแกรมที่แต่ละรอบ ไม่เคยปั๊มออกมาเหมือนกันเลย และไม่รู้ด้วยซ้ำ ว่ามันจะทำงานให้หรือเปล่า
จุดแข็งอยู่ตรงนี้แหละครับ คือ เหมือนเมล็ดพืชที่เราไม่รู้ว่า งอกแล้วเป็นไง ก็ต้องลองไปปลูก คือลองไปทดสอบดูกับข้อมูลจริง ดูว่ามันทำงานอย่างที่คาดไว้ไหม ถ้าเจอซูเปอร์เมล็ดพันธุ์เข้า ก็ เฮง เฮง เฮง (ถ้าไม่เจอ ก็ทำต่อ โดยคนที่รอ อาจต้องบ่น ซวย ซวย ซวย ไปด้วย)
ดังนั้น วิธีนี้ จึงเหมือนการทดลอง ลองผิด-ลองถูก จนกว่าจะได้โปรแกรมที่เข้าท่า นำไปใช้ได้
แต่วิธีที่ผมพูดถึง กลายพันธุ์ไปจาก genetic programming อีกที เรียก gene expression programming (GEP) คือ แทนที่จะสุ่มสร้างโปรแกรม ก็สุ่มสร้าง model ทางคณิตศาสตร์แทน
ในกรณีนี้ แทนที่จะ regression กับโมเดลที่ทราบอยู่ก่อน ก็ใช้วิธีให้ซอฟท์แวร์ สังเคราะห์ regression model ขึ้นมาเองแบบลองผิดลองถูก โดยประกอบชิ้นส่วนย่อย เช่น เครื่องหมายบวก ลบ คูณ หาร ยกกำลัง ถอดราก ฟังก์ชันแบบต่าง ๆ ฯลฯ ขึ้นมาเป็นก้อน แล้วลองนำไปทำ regression ดู
ปรากฎว่า model ที่เครื่องสร้างขึ้นอัตโนมัตินี้ เป็นฟังก์ชันหน้าตาพิลึกกึกกือแบบไม่น่าเชื่อ คือ ใหญ่ยักษ์ เทอะทะ อุ้ยอ้าย
ดูแวบแรก ผมยังนึกว่าเป็นงานคณิตศาสตร์ประเภท 'พิศดารหลุดโลก' ของรามานุจัน เพราะเห็นเป็นฟังก์ชันซ้อนฟังก์ชันกันหลายชั้น
แต่มันก็ทำงานได้ และทำได้ดีพอสมควรด้วย โดยเมื่อเขาเอาโมเดลพิลึกกึกกือนี้ไปเทียบกับ multiple linear regression (MLR) ที่เป็นแบบ polynomial order 1 แบบไม่มี interaction term ผลการเทียบ เขาบอกว่า GEP ดีกว่า MLR นิดนึง เมื่อตัดสินจากค่าR-square
ผมอ่านงานวิจัยนี้แล้วรู้สึกผะอืดผะอม
มันเหมือนกับการชกมวยข้ามรุ่นครับ
เอานักมวยรุ่นยักษ์มาชกกับนักมวยรุ่นจิ๋ว แล้วรุ่นยักษ์ชนะคะแนนแบบฉิวเฉียด กรรมการก็รีบชูมือตัดสินให้ชนะทันที !
ที่บอกว่าเป็นรุ่นยักษ์-รุ่นจิ๋ว เพราะผมใช้แนวคิดที่เรียกว่า Kolmogorov complexity มาเป็นตัว'เปรียบมวย'
ขอขยายความตอนหน้า ครับ
เข้ามาอ่านรวดเดียวจบเลยครับ
เขียนได้สนุก และเข้าใจง่ายมาก ๆ
ขอบคุณมาก ๆ สำหรับความรู้ใหม่ ๆ