แมชชีนเลิร์นนิงคือวิธีใช้ข้อมูลเพื่อพยากรณ์หรือค้นหารูปแบบ โดยไม่ต้องเขียนกฎทุกข้อด้วยมือ ใน การเรียนรู้แบบมีผู้สอน ข้อมูลฝึกจะมีคำตอบที่ถูกต้องรวมอยู่ด้วย ส่วนใน การเรียนรู้แบบไม่มีผู้สอน จะไม่มีคำตอบนั้น เป้าหมายจึงเป็นการหาโครงสร้าง เช่น การจัดกลุ่มหรือทิศทางหลักของความแปรผัน
นี่คือแนวคิดหลักของพื้นฐานแมชชีนเลิร์นนิงส่วนใหญ่ คุณเริ่มจากข้อมูล เลือกโมเดล ฝึกโมเดลด้วยตัวอย่าง แล้วตรวจสอบว่ามันทำงานได้กับข้อมูลใหม่ ไม่ใช่แค่กับข้อมูลที่เคยเห็นแล้วเท่านั้น
แมชชีนเลิร์นนิงทำอะไรได้บ้าง
โมเดลแมชชีนเลิร์นนิงทำหน้าที่จับคู่ข้อมูลนำเข้าไปยังผลลัพธ์หรือรูปแบบ ข้อมูลนำเข้าอาจเป็นขนาดบ้าน คะแนนสอบ พฤติกรรมลูกค้า หรือค่าพิกเซลในภาพก็ได้ ส่วนผลลัพธ์ขึ้นอยู่กับงานที่ต้องการทำ เช่น
- พยากรณ์ตัวเลข เช่น ราคา
- ทำนายป้ายกำกับ เช่น สแปมหรือไม่ใช่สแปม
- จัดกลุ่มสิ่งที่คล้ายกันโดยไม่มีป้ายกำกับ
- จัดอันดับหรือแนะนำตัวเลือกที่น่าจะเหมาะสม
สิ่งที่ทำให้สิ่งนี้เรียกว่า "การเรียนรู้" คือพารามิเตอร์ของโมเดลถูกปรับจากข้อมูล แทนที่จะถูกกำหนดตายตัวทั้งหมดโดยโปรแกรมเมอร์
การเรียนรู้แบบมีผู้สอน vs การเรียนรู้แบบไม่มีผู้สอน
การเรียนรู้แบบมีผู้สอน: พยากรณ์เป้าหมายที่รู้ล่วงหน้า
การเรียนรู้แบบมีผู้สอนใช้ตัวอย่างในรูป โดยที่ คือข้อมูลนำเข้า และ คือเป้าหมายที่ทราบอยู่แล้ว
ถ้า เป็นค่าตัวเลข งานนี้มักเรียกว่า regression ถ้า เป็นหมวดหมู่ งานนี้มักเรียกว่า classification
อัลกอริทึมแบบมีผู้สอนที่พบบ่อย ได้แก่ linear regression, logistic regression, decision trees, random forests, support vector machines และ neural networks ไม่มีวิธีใดดีที่สุดในทุกสถานการณ์ การเลือกที่เหมาะสมขึ้นอยู่กับขนาดข้อมูล ระดับสัญญาณรบกวน ประเภทของฟีเจอร์ และระดับความสามารถในการอธิบายผลที่คุณต้องการ
การเรียนรู้แบบไม่มีผู้สอน: หาโครงสร้างโดยไม่มีป้ายกำกับ
การเรียนรู้แบบไม่มีผู้สอนใช้ข้อมูลนำเข้า โดยไม่มีป้ายกำกับเป้าหมาย
ในกรณีนี้ เป้าหมายมักเป็นการค้นหาโครงสร้างที่มีอยู่แล้วในข้อมูล วิธีจัดกลุ่มอย่าง k-means พยายามรวมข้อมูลที่คล้ายกันให้อยู่ในกลุ่มเดียวกัน ส่วนวิธีลดมิติอย่าง principal component analysis พยายามสรุปความแปรผันด้วยจำนวนทิศทางที่น้อยลง
การเรียนรู้แบบไม่มีผู้สอนมีประโยชน์สำหรับการสำรวจข้อมูล การบีบอัด การตรวจจับความผิดปกติ หรือการเตรียมข้อมูลล่วงหน้า ผลลัพธ์ของมันขึ้นอยู่มากกับวิธีแทนข้อมูลและนิยามของความคล้ายที่ฝังอยู่ในวิธีนั้น
แบบจำลองความคิดอย่างง่าย
ลองมองแมชชีนเลิร์นนิงว่าเป็นการฟิตเส้นโค้งหรือฟิตรูปแบบภายใต้ความไม่แน่นอน
คุณเลือกตระกูลของโมเดล เช่น เส้นตรง decision trees หรือ neural networks แบบหลายชั้น จากนั้นขั้นตอนการฝึกจะปรับโมเดลให้คำพยากรณ์สอดคล้องกับข้อมูลฝึกให้มากที่สุดตาม loss function ถ้าโมเดลมีความสามารถในการ generalize ที่ดี มันก็ควรทำงานได้ดีกับข้อมูลใหม่ที่ไม่เคยเห็นมาก่อนด้วย
เงื่อนไขสุดท้ายนั้นสำคัญมาก โมเดลที่แค่จำชุดข้อมูลฝึกได้ มักไม่ค่อยมีประโยชน์ในทางปฏิบัติ
ตัวอย่างคำนวณ: พยากรณ์ค่าเช่าด้วย Linear Regression
สมมติว่าคุณต้องการพยากรณ์ค่าเช่าอพาร์ตเมนต์จากพื้นที่ใช้สอย โมเดลแบบมีผู้สอนอย่างง่ายคือ
โดยที่ คือพื้นที่, คือค่าเช่าที่พยากรณ์, คือจุดตัดแกน และ คือความชัน
สมมติว่าโมเดลที่ฟิตแล้วได้ว่า
โดยวัดค่าเช่าเป็นดอลลาร์ และวัดพื้นที่เป็นตารางฟุต
ถ้าอพาร์ตเมนต์มี ค่าพยากรณ์คือ
ดังนั้นโมเดลพยากรณ์ว่าค่าเช่าจะเป็น
มีรายละเอียดสำคัญอยู่สามข้อ โมเดลนี้เรียนรู้จากตัวอย่างที่มีป้ายกำกับของพื้นที่และค่าเช่า ค่าพยากรณ์เป็นเพียงค่าประมาณ ไม่ใช่การรับประกัน และสูตรนี้จะสมเหตุสมผลก็ต่อเมื่อความสัมพันธ์เชิงเส้นโดยประมาณเป็นสมมติฐานที่ใช้ได้ในช่วงค่าที่คุณสนใจ
ตัวอย่างนี้ตั้งใจให้เรียบง่าย แต่ก็สะท้อนวงจรหลักของการเรียนรู้แบบมีผู้สอน นั่นคือใช้ข้อมูลที่มีป้ายกำกับ ฟิตพารามิเตอร์ และพยากรณ์เป้าหมายสำหรับข้อมูลนำเข้าใหม่
อัลกอริทึมแมชชีนเลิร์นนิงสำคัญและควรใช้เมื่อไร
Linear Regression
ใช้เมื่อเป้าหมายคือการพยากรณ์ค่าตัวเลข และการประมาณด้วยเส้นตรงเป็นโมเดลเริ่มต้นที่สมเหตุสมผล
Logistic Regression
ใช้สำหรับงาน classification เมื่อคุณต้องการโมเดลตั้งต้นที่ค่อนข้างเรียบง่ายและอธิบายได้ สำหรับการทำนายหมวดหมู่ เช่น ใช่หรือไม่ใช่
Decision Trees และ Random Forests
ใช้เมื่อความสัมพันธ์ไม่เป็นเชิงเส้นหรือมีปฏิสัมพันธ์ระหว่างตัวแปร โดยเฉพาะกับข้อมูลแบบตาราง Random forests มักแลกความสามารถในการอธิบายบางส่วนกับความเสถียรในการพยากรณ์ที่ดีกว่า
K-Means Clustering
ใช้ในงานการเรียนรู้แบบไม่มีผู้สอนเพื่อจัดข้อมูลออกเป็น กลุ่ม วิธีนี้ทำงานได้ดีที่สุดเมื่อแนวคิดเรื่องจุดศูนย์กลางของกลุ่มมีความหมายสำหรับฟีเจอร์ที่คุณใช้
Neural Networks
ใช้เมื่อความสัมพันธ์ระหว่างข้อมูลนำเข้าและผลลัพธ์ซับซ้อนมาก โดยเฉพาะในงานด้านภาพ เสียงพูด และภาษา โมเดลเหล่านี้มักต้องใช้ข้อมูลและการปรับแต่งมากกว่าโมเดลที่ง่ายกว่า
ข้อผิดพลาดที่พบบ่อยในพื้นฐานแมชชีนเลิร์นนิง
สับสนระหว่างการพยากรณ์กับการอธิบาย
โมเดลอาจพยากรณ์ได้ดี แต่ก็ยังอธิบายสาเหตุที่แท้จริงของรูปแบบนั้นไม่ได้
มองข้ามความต่างระหว่างการฝึกกับการทดสอบ
ความแม่นยำสูงบนข้อมูลฝึกไม่ได้แปลว่าโมเดลจะทำงานได้ดีกับข้อมูลใหม่ ต้องตรวจสอบความสามารถในการ generalize ด้วยข้อมูลที่แยกออกมาต่างหาก
ใช้ตัวชี้วัดผิด
Accuracy อาจทำให้เข้าใจผิดในปัญหา classification ที่ข้อมูลไม่สมดุล สำหรับบางงาน precision, recall, mean absolute error หรือตัวชี้วัดอื่นอาจสำคัญกว่า
คิดว่าชื่ออัลกอริทึมเป็นหลักประกันคุณภาพ
คำว่า "neural network" หรือ "random forest" ไม่ได้เป็นการรับประกันคุณภาพ คุณภาพของข้อมูล การออกแบบฟีเจอร์ การประเมินผล และการตั้งกรอบปัญหา สำคัญพอ ๆ กับชื่ออัลกอริทึม หรืออาจสำคัญกว่า
เมื่อไรแมชชีนเลิร์นนิงจึงมีประโยชน์
แมชชีนเลิร์นนิงมีประโยชน์เมื่อรูปแบบซับซ้อนเกินกว่าจะเขียนเป็นกฎตายตัวเพียงไม่กี่ข้อได้ แต่ก็ยังมีข้อมูลมากพอให้เรียนรู้จากตัวอย่าง การใช้งานที่พบบ่อย ได้แก่ ระบบแนะนำ การตรวจจับการทุจริต เครื่องมือช่วยวิเคราะห์ภาพทางการแพทย์ การจัดอันดับ การพยากรณ์ และการจำแนกเอกสาร
อย่างไรก็ตาม มันไม่ใช่เครื่องมือที่เหมาะเสมอไป ถ้ากฎนั้นเรียบง่าย คงที่ และทราบครบถ้วนอยู่แล้ว สูตรธรรมดาหรือโปรแกรมเชิงกำหนดอาจเป็นทางเลือกที่ดีกว่า
ลองทำโจทย์ที่คล้ายกัน
หยิบชุดข้อมูลเล็ก ๆ มาหนึ่งชุด แล้วถามสองคำถามว่า "ข้อมูลนำเข้าคืออะไร?" และ "เป้าหมายคืออะไร?" ถ้าคุณตอบได้ทั้งสองข้อ ให้ลองใช้โมเดลแบบมีผู้สอน เช่น linear regression หรือ classification แต่ถ้าตอบไม่ได้ ให้ลองสำรวจว่าข้อมูลนั้นรวมตัวเป็นกลุ่มตามธรรมชาติหรือไม่ด้วยวิธีแบบไม่มีผู้สอน
ถ้าคุณอยากก้าวต่อไปอีกขั้น ให้ลองแก้ปัญหาคล้ายกันด้วยโมเดลง่าย ๆ ก่อน แล้วค่อยเปรียบเทียบกับโมเดลที่ยืดหยุ่นกว่า วิธีนี้มักช่วยให้เรียนรู้ได้ดีกว่าการกระโดดไปใช้อัลกอริทึมที่ซับซ้อนที่สุดทันที
ต้องการความช่วยเหลือในการแก้โจทย์?
อัปโหลดคำถามของคุณแล้วรับคำตอบแบบทีละขั้นตอนที่ผ่านการตรวจสอบในไม่กี่วินาที
เปิด GPAI Solver →