ฝึก Machine Learning: ใช้ Scikit เรียนรู้เทรนด์ดัชนีหุ้นไต้หวัน (ตอนที่ 1) – Machine Learning 101
Machine Learning คือวิธีวิเคราะห์ทางสถิติแบบหนึ่ง พูดง่ายๆ คือปัญหาที่ Machine Learning จัดการได้แบ่งคร่าวๆ เป็น 4 กลุ่ม ได้แก่ การจำแนกประเภท (classification) การถดถอย (regression) การจัดกลุ่ม (clustering) และการสกัดกฎ (Rule Extraction)

ไม่ต้องห่วง! บทความนี้มีแต่เนื้อ ไม่โม้แน่นอน และจะไม่มีมุก Ctrl + C อีกแล้ว

Machine Learning คือวิธีวิเคราะห์ทางสถิติแบบหนึ่ง แนวคิดหลักคือ เราป้อนข้อมูลจำนวนมากให้มัน แล้วให้มันส่งผลลัพธ์กลับมา
ผลลัพธ์นั้นอาจเป็นคำตอบที่เราต้องการโดยตรง (เช่น เลี้ยวซ้ายหรือเลี้ยวขวา) หรืออาจเป็นแนวคิดเชิงนามธรรมบางอย่าง ที่เราจะนำไปใช้จัดประเภทต่อ
พูดง่ายๆ คือปัญหาที่ Machine Learning จัดการได้แบ่งคร่าวๆ เป็น 4 กลุ่ม ได้แก่ การจำแนกประเภท (classification) การถดถอย (regression) การจัดกลุ่ม (clustering) และการสกัดกฎ (Rule Extraction)
1. การจำแนกประเภท (classification): เราให้โมเดล Machine Learning เรียนรู้จากชุดข้อมูลที่รู้คำตอบอยู่แล้ว เช่น X = [0,2,3,3,4,5,6,7,8] Y = Taipei X = [0,7,3,3,4,5,6,7,8] Y = Kaohsiung X = [0,4,3,3,4,5,6,7,8] Y = Taichung X = ... ป้อนเบอร์โทรศัพท์จำนวนมาก โดยคำตอบคือรหัสพื้นที่ เราคาดหวังให้โมเดลเรียนรู้จนเห็นเบอร์โทรศัพท์แล้วบอกได้ว่าเป็นของเมืองไหน นี่คือปัญหาการจำแนกประเภท สมมติว่าฝึกโมเดลเสร็จแล้ว เราป้อน X = [0,2,1,2,3,4,5,6,7,8] ถ้าโมเดลตอบว่า Taipei แปลว่าเรียนรู้สำเร็จ! 2. การถดถอย (regression): เราให้โมเดล Machine Learning เรียนรู้จากชุดข้อมูลที่รู้คำตอบอยู่แล้ว เช่น X = [0,1,2,3] Y = 12 X = [0,3,4,2] Y = 22 X = [0,1,1,1] Y = 23 X = ... ป้อนชุดตัวเลขสุ่มจำนวนมาก โดยคำตอบคือผลรวมของตัวเลขชุดนั้น เราคาดหวังให้โมเดลเรียนรู้จนเห็นชุดตัวเลขสุ่มแล้วส่งตัวเลขหนึ่งตัวกลับมาได้ อธิบายเพิ่มเติม ความต่างที่ใหญ่ที่สุดจากการจำแนกประเภทคือผลการทำนาย ถ้าผลการทำนายเป็นค่าต่อเนื่อง จะเป็นปัญหาการถดถอย ถ้าเป็นค่าไม่ต่อเนื่อง จะเป็นปัญหาการจำแนกประเภทหรือแบบอื่น ตัวอย่างจริงของปัญหาการถดถอย ดูได้ที่ลิงก์นี้ ซึ่งใช้ระดับน้ำในแม่น้ำและปริมาณฝนใน 6 ชั่วโมงที่ผ่านมา ทำนายระดับน้ำในอีก 2 ชั่วโมงข้างหน้า 3. การจัดกลุ่ม (clustering): ป้อนข้อมูลจำนวนมากที่ไม่รู้คำตอบให้โมเดล พร้อมตรรกะการจัดกลุ่มบางอย่าง (เช่น ระยะห่างระหว่างจุด) แล้วให้มันแบ่งกลุ่มข้อมูลเอง ตัวอย่าง: ระบบจดจำใบหน้าของ Facebook 4. การสกัดกฎ (Rule Extraction) ข้อนี้ค่อนข้างนามธรรม คล้ายกับการใช้วิธีวิเคราะห์เพื่อค้นหากฎ เช่น คุณป้อนรูปภาพ 10,000 รูป หลังจัดกลุ่มแล้วพบว่าคุณกับพี่สาวถูกจัดอยู่กลุ่มเดียวกันตลอด คุณก็สงสัยได้อย่างมีเหตุผลว่า คุณกับพี่สาวอาจมีพ่อและแม่คนเดียวกัน การจดจำภาพ -> ความสัมพันธ์ทางสายเลือด ผมว่านี่แหละน่าจะเรียกว่าการสกัดกฎ! ถ้ารู้สึกว่าโม้เกินไปก็ไม่เป็นไร สมมติคุณทำนายยอดขายด้วยการถดถอยกับสินค้า 10,000 รายการ แล้วพบว่าเบียร์กับผ้าอ้อมมีรอบการซื้อเหมือนกัน คุณก็สงสัยได้อย่างมีเหตุผลว่า ดื่มเหล้าแล้วมีลูกง่ายขึ้น การทำนายยอดขาย -> ดื่มเหล้าแล้วมีลูก
มาถึงตรงนี้ เราก็พอเข้าใจแล้วว่า Machine Learning แก้ปัญหาอะไรได้บ้าง
แต่ประเด็นสำคัญคือ มันแก้ปัญหาอย่างไร?
โดยทั่วไปเราจะเลือกอัลกอริทึมหนึ่งตัว หรือใช้หลายตัวร่วมกันเพื่อจัดการปัญหา ขอแค่ผลลัพธ์ลู่เข้า (converge) ได้ ก็เป็นอัลกอริทึมที่ลองได้ทั้งนั้น
แล้วมีอัลกอริทึมอะไรบ้าง?
1. Regression Algorithms นี่คือวิธีการถดถอย การทำนายระดับน้ำที่กล่าวไปก็แก้ด้วยวิธีนี้ แน่นอนว่าการถดถอยมีวิธีเฉพาะอีกมาก แต่ขอไม่ลงรายละเอียดตรงนี้ 2. Instance-based Algorithms ใช้ข้อเท็จจริงที่เกิดขึ้นแล้ว มาคาดการณ์ว่าเมื่อสัญญาณบางอย่างปรากฏในอนาคตจะเกิดอะไรขึ้น 3. Clustering Algorithms การแบ่งกลุ่ม: โปรยจุดจำนวนมากลงในพื้นที่กี่มิติก็ได้ กำหนดระยะทางแบบยุคลิด (Euclidean distance) เอง จุดที่รวมตัวกันก็คือพวกเดียวกัน อัลกอริทึมตัวแทนได้แก่ k-Means และ k-Median 4. Kernel Algorithms ก่อนยุค Big Data นี่คืออัลกอริทึมที่แรงที่สุดใน Machine Learning ตัวที่ดังที่สุดคือซัพพอร์ตเวกเตอร์แมชชีน (Supported Vector Machine, SVM) แนวคิดคือ แปลงข้อมูลต้นฉบับไปยังมิติที่สูงขึ้นก่อนแล้วจึงจำแนกประเภท ยังไงซะ polynomial function ก็ต้องมีสักดีกรีที่แบ่งข้อมูลเหล่านี้ได้อย่างสมบูรณ์ 5. Ensemble Algorithms ตัวนี้ผมค่อนข้างชอบ มันเรียนรู้จากผลลัพธ์ของโมเดลต่างๆ ที่ฝึกไว้แล้ว แล้วคำนวณผลลัพธ์อีกรอบ ลองนึกถึง AlphaGo ที่ต้องรู้สถานการณ์บนกระดานตอนนี้ สถานการณ์หลังตาที่คุณเพิ่งเดิน และผลที่จะตามมาหลังตาถัดไปของมัน แล้วใช้ทั้งหมดนี้ตัดสินใจว่าจะเดินตาไหน 6. Neural Network Algorithms เลียนแบบเซลล์ประสาทของเรา ป้อนข้อมูลจำนวนมากเข้าไปในนิวรอน แล้วนิวรอนจะตอบสนองแบบไม่เป็นเชิงเส้น 7. Deep Learning ถือเป็นร่างกลายพันธุ์ของโครงข่ายประสาทเทียม และเป็นวิธีหลักที่เราจะพูดถึงต่อไป ลองนึกภาพนิวรอนจำนวนมากที่ส่งสัญญาณเข้าออกระหว่างกัน จนสุดท้ายระบบประสาททั้งหมดให้ผลลัพธ์ออกมาเป็นสัญญาณหรือหมวดหมู่หนึ่ง
แน่นอนว่ายังมีอัลกอริทึมอีกหลายประเภท โดยพื้นฐานคือจะใช้เมื่อไหร่ค่อยไปหางานวิจัยอ่านก็พอ
ขอแนบเอกสารอ้างอิงไว้ให้ผู้ที่สนใจไปศึกษาต่อ
[1] Practical Machine Learning Problem
[2] แนะนำ Machine Learning แบบภาพ (ฉบับภาษาจีน)
[3] Coursera — Machine Leanring








![[แชร์เทคนิค] Python 101](/assets/605852e084fb2346c3ea1559/60d97a7ac780931f83b3a365_60a5dbb5df894306f2930b52_manja-vitolic-gKXKBY-C-Dk-unsplash%20(1)-p-1080.jpeg)











