AI#4 - เครื่องจักรแห่งการทำนาย

ปัญหาที่เราคุยกันในสองบทก่อนหน้านี้คือการพยายามแยกข้อมูลต่าง ๆ ออกจากกัน ซึ่งเรียกเป็นภาษา Machine Learning ว่าปัญหา Classification
แต่ปัญหาอีกชนิดหนึ่งที่เจอได้บ่อยไม่แพ้กันคือการทำนายค่าตัวเลขอย่างเช่นอายุ ส่วนสูง เงินเดือน หรืออะไรก็ได้ที่เป็นตัวเลข เราเรียกปัญหานี้ว่า ปัญหา Regression ที่แปลเป็นภาษาไทยว่าปัญหาการถดถอย ซึ่งเป็นการตั้งชื่อที่ไม่สื่อสารพอ ๆ กันทั้งภาษาไทยและอังกฤษเลย
มนุษย์สนใจปัญหา Regression กันมาตั้งแต่ก่อนที่โลกนี้จะมีคอมพิวเตอร์ด้วยซ้ำ เพราะหากเราสามารถรู้สมการที่หาค่าของตัวแปรตามในรูปของตัวแปรต้นได้นั้น นอกจากจะช่วยให้เราสามารถทำนายค่าตัวแปรหนึ่งจากอีกตัวแปรหนึ่งได้แล้วนั้น มันยังทำให้เราเข้าใจถึงความสัมพันธ์ระหว่างตัวแปรต่าง ๆ ได้
ความเร็วของลูกบอลที่เวลาต่าง ๆ จะเป็นเท่าไรเมื่อตกลงมาจากที่สูงผลผลิตข้าวจะเปลี่ยนแปลงอย่างไรเมื่อใส่ปุ๋ยในปริมาณต่างกันอุณหภูมิรอบ ๆ นั้นส่งผลอย่างไรต่อความเร็วการละลายของน้ำแข็ง
สิ่งเหล่านี้เป็นอะไรที่นักวิทยาศาสตร์สนใจมาตลอด
สมมติว่าผมอยากทำนายอายุของคนสักคน ตอนนี้เรามีตัวแปรต้นสองตัว นั่นคือส่วนสูง กับน้ำหนัก และมีตัวแปรตามที่ต้องการทำนายคืออายุ เราเริ่มต้นจากสมการที่ง่ายที่สุดนั่นคือสมการเส้นตรง นั่นคือ
อายุ = A × น้ำหนัก + B × ส่วนสูง + C
เมื่อ A B และ C คือค่าพารามิเตอร์ที่เรายังไม่ทราบค่า ซึ่งถ้าเราหาค่าพารามิเตอร์พวกนั้นชุดที่ดีที่สุดได้ ผมก็จะได้เส้นตรงที่ดีที่สุดในการทำนายอายุด้วยส่วนสูงและน้ำหนักขึ้นมานั่นเอง
ความจริงแล้ว Linear Regression สามารถเพิ่มฟีเจอร์เข้าไปเพื่อช่วยทำนายเข้าไปอีกเท่าไรก็ได้ แค่เราต้องเขียนความสัมพันธ์ระหว่างตัวแปรต้นกับตัวแปรตามนั้นเป็นความสัมพันธ์กำลังหนึ่ง หรือในรูปสมการคือ
y = c0 + c1x1 + c2x2 + … + cnxn
เมื่อ x1, x2, …, xn คือฟีเจอร์ ส่วน y เป็นค่าที่ต้องการทำนาย และ c1, c2, …, cn คือค่าพารามิเตอร์
มีคำถามสองข้อที่คุณควรจะสงสัยเมื่ออ่านมาถึงตรงนี้ ข้อแรกคือ เราจะหาพารามิเตอร์พวกนั้นยังไง กับข้อที่สองคือ แล้วถ้าตัวแปรตามไม่ได้มีความสัมพันธ์แบบเชิงเส้นกับตัวแปรต้นล่ะ
Linear Regression ถูกมองว่าเป็น Machine Learning ชนิดหนึ่ง แม้ว่ามันจะถูกคิดค้นและพัฒนาขึ้นมาโดยนักสถิติในตอนแรก และเรียนกันอย่างจริงจังในวิชาสถิติก็ตาม แต่ความเป็นจริงแล้ว Linear Regression ในฐานะเครื่องมือทางสถิติกับในฐานะ Machine Learning นั้นมีความแตกต่างกันอยู่นิดหน่อย ซึ่งจุดแตกต่างที่ว่านั้นคือคำตอบของสองคำถามที่ผมถามไว้ตะกี้นั่นแหละฮะ