You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/th/1-Introduction/4-techniques-of-ML/README.md

125 lines
25 KiB

# เทคนิคของการเรียนรู้ของเครื่อง
กระบวนการสร้าง ใช้งาน และดูแลรักษาโมเดลการเรียนรู้ของเครื่องและข้อมูลที่ใช้เป็นกระบวนการที่แตกต่างจากเวิร์กโฟลว์การพัฒนารูปแบบอื่นมาก ในบทเรียนนี้ เราจะอธิบายกระบวนการและวางกรอบเทคนิคหลักที่คุณจำเป็นต้องรู้ คุณจะได้:
- เข้าใจกระบวนการพื้นฐานของการเรียนรู้ของเครื่องในระดับสูง
- สำรวจแนวคิดพื้นฐาน เช่น 'โมเดล' 'การทำนาย' และ 'ข้อมูลการฝึกอบรม'
## [แบบทดสอบก่อนการบรรยาย](https://ff-quizzes.netlify.app/en/ml/)
[![ML for beginners - Techniques of Machine Learning](https://img.youtube.com/vi/4NGM0U2ZSHU/0.jpg)](https://youtu.be/4NGM0U2ZSHU "ML for beginners - Techniques of Machine Learning")
> 🎥 คลิกที่ภาพด้านบนเพื่อดูวิดีโอสั้นที่ชี้แจงบทเรียนนี้
## บทนำ
ในภาพรวม การสร้างกระบวนการเรียนรู้ของเครื่อง (ML) ประกอบด้วยขั้นตอนหลายขั้นตอน:
1. **กำหนดคำถาม** กระบวนการ ML ส่วนใหญ่เริ่มต้นด้วยการตั้งคำถามที่ไม่สามารถตอบได้ด้วยโปรแกรมเงื่อนไขง่ายๆ หรือเครื่องยนต์ที่ใช้กฎเบื้องต้น คำถามเหล่านี้มักเกี่ยวข้องกับการทำนายโดยอิงจากชุดข้อมูล
2. **รวบรวมและเตรียมข้อมูล** เพื่อที่จะตอบคำถามของคุณ คุณต้องมีข้อมูล คุณภาพและบางครั้งปริมาณของข้อมูลจะเป็นตัวกำหนดว่าคุณจะตอบคำถามแรกของคุณได้ดีแค่ไหน การแสดงข้อมูลเป็นภาพเป็นส่วนสำคัญของขั้นตอนนี้ ขั้นตอนนี้ยังรวมถึงการแบ่งข้อมูลเป็นกลุ่มสำหรับฝึกอบรมและทดสอบเพื่อสร้างโมเดล
3. **เลือกวิธีการฝึกอบรม** ขึ้นอยู่กับคำถามและลักษณะของข้อมูล คุณต้องเลือกวิธีการฝึกโมเดลที่สะท้อนข้อมูลอย่างดีที่สุดและทำการทำนายที่แม่นยำ ส่วนนี้ของกระบวนการ ML ของคุณต้องใช้ความเชี่ยวชาญเฉพาะและมักต้องมีการทดลองจำนวนมาก
4. **ฝึกโมเดล** โดยใช้ข้อมูลฝึกอบรมของคุณ คุณจะใช้หลายอัลกอริทึมเพื่อฝึกโมเดลให้รู้จำรูปแบบในข้อมูล โมเดลอาจใช้ค่าน้ำหนักภายในที่สามารถปรับเปลี่ยนเพื่อเน้นข้อมูลบางส่วนเหนือส่วนอื่นเพื่อสร้างโมเดลที่ดียิ่งขึ้น
5. **ประเมินโมเดล** คุณใช้ข้อมูลที่ไม่เคยเห็นมาก่อน (ข้อมูลทดสอบ) จากชุดข้อมูลที่รวบรวมมาตรวจสอบประสิทธิภาพของโมเดล
6. **ปรับค่าพารามิเตอร์** จากประสิทธิภาพของโมเดล คุณสามารถทำกระบวนการซ้ำโดยใช้พารามิเตอร์ต่างๆ หรือ ตัวแปรที่ควบคุมพฤติกรรมของอัลกอริทึมที่ใช้ฝึกโมเดล
7. **ทำนาย** ใช้ข้อมูลป้อนเข้าที่ใหม่เพื่อทดสอบความแม่นยำของโมเดล
## คำถามที่ควรถาม
คอมพิวเตอร์มีความเชี่ยวชาญพิเศษในการค้นหารูปแบบที่ซ่อนอยู่ในข้อมูล ประโยชน์นี้ช่วยนักวิจัยที่มีคำถามเกี่ยวกับโดเมนที่ไม่สามารถตอบได้ง่าย ๆ ด้วยการสร้างเครื่องยนต์กฎที่มีเงื่อนไข ตัวอย่างเช่น ในงานเกี่ยวกับการคำนวณความเสี่ยง นักวิทยาศาสตร์ข้อมูลอาจสร้างกฎเฉพาะเกี่ยวกับอัตราการตายของผู้สูบบุหรี่เทียบกับไม่สูบบุหรี่ได้
แต่เมื่อมีตัวแปรอื่นๆ เข้ามาเกี่ยวข้อง โมเดล ML อาจมีประสิทธิภาพมากกว่าในการทำนายอัตราการตายในอนาคตโดยอิงจากประวัติสุขภาพที่ผ่านมา ตัวอย่างที่มีความสุขกว่าอาจเป็นการทำนายสภาพอากาศของเดือนเมษายนในสถานที่หนึ่งๆ โดยใช้ข้อมูลที่รวมถึงละติจูด ลองจิจูด การเปลี่ยนแปลงสภาพภูมิอากาศ ความใกล้ชิดกับทะเล รูปแบบของกระแสเจ็ต และอื่นๆ
✅ [สไลด์การบรรยาย](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) เกี่ยวกับโมเดลสภาพอากาศ นำเสนอแง่มุมประวัติศาสตร์ในการใช้ ML วิเคราะห์สภาพอากาศ
## งานเตรียมก่อนการสร้างโมเดล
ก่อนเริ่มสร้างโมเดล คุณต้องทำภารกิจหลายอย่างเพื่อทดสอบคำถามและตั้งสมมติฐานโดยอิงจากการทำนายของโมเดล คุณต้องระบุและกำหนดองค์ประกอบหลายอย่าง
### ข้อมูล
เพื่อที่จะตอบคำถามของคุณด้วยความแน่นอน คุณต้องมีข้อมูลจำนวนมากที่เหมาะสม มีสองสิ่งที่คุณต้องทำตอนนี้:
- **รวบรวมข้อมูล** จดจำบทเรียนก่อนหน้าเกี่ยวกับความยุติธรรมในการวิเคราะห์ข้อมูล รวบรวมข้อมูลอย่างระมัดระวัง รู้แหล่งที่มาของข้อมูล ความลำเอียงที่อาจมี และบันทึกต้นกำเนิดของข้อมูลไว้
- **เตรียมข้อมูล** ขั้นตอนหลายขั้นตอนของการเตรียมข้อมูล อาจจำเป็นต้องรวบรวมข้อมูลและปรับข้อมูลให้อยู่ในรูปแบบปกติหากมาจากหลายแหล่ง คุณสามารถปรับปรุงคุณภาพและปริมาณข้อมูลได้ด้วยวิธีต่าง ๆ เช่น การแปลงสตริงเป็นตัวเลข (ตามที่ทำใน [Clustering](../../5-Clustering/1-Visualize/README.md)) คุณอาจสร้างข้อมูลใหม่จากข้อมูลเดิม (เช่นใน [Classification](../../4-Classification/1-Introduction/README.md)) คุณสามารถทำความสะอาดและแก้ไขข้อมูล (เหมือนในบทเรียน [Web App](../../3-Web-App/README.md)) สุดท้าย คุณอาจต้องสุ่มและสลับข้อมูล ขึ้นอยู่กับเทคนิคการฝึกอบรมของคุณ
✅ หลังจากรวบรวมและประมวลผลข้อมูลแล้ว ให้ลองพิจารณาว่ารูปร่างของข้อมูลจะช่วยให้คุณตอบคำถามของคุณได้หรือไม่ อาจเป็นไปได้ว่าข้อมูลอาจทำงานได้ไม่ดีในงานที่คุณกำหนดไว้ เช่นที่เราได้พบในบทเรียน [Clustering](../../5-Clustering/1-Visualize/README.md)
### คุณลักษณะและเป้าหมาย
[คุณลักษณะ](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) คือคุณสมบัติที่สามารถวัดได้ของข้อมูลมักแสดงเป็นชื่อคอลัมน์เช่น 'date' 'size' หรือ 'color' ตัวแปรคุณลักษณะของคุณ ซึ่งมักแสดงในโค้ดเป็น `X` คืออินพุตที่ใช้ฝึกโมเดล
เป้าหมายคือสิ่งที่คุณพยายามทำนาย เป้าหมาย ซึ่งมักแสดงเป็น `y` ในโค้ด คือคำตอบของคำถามที่คุณถามข้อมูล เช่น ในเดือนธันวาคม ลูกฟักทองสีใดจะถูกที่สุด? ในซานฟรานซิสโก ย่านใดจะมีราคาอสังหาริมทรัพย์ที่ดีที่สุด? บางครั้งเป้าหมายก็เรียกว่าคุณสมบัติป้ายชื่อ (label attribute)
### การเลือกตัวแปรคุณลักษณะ
🎓 **การเลือกคุณลักษณะและการสกัดคุณลักษณะ** คุณจะรู้ได้อย่างไรว่าควรเลือกตัวแปรใดเมื่อสร้างโมเดล? โดยปกติคุณจะผ่านกระบวนการเลือกคุณลักษณะหรือสกัดคุณลักษณะเพื่อเลือกตัวแปรที่เหมาะสมสำหรับโมเดลที่มีประสิทธิภาพสูงสุด อย่างไรก็ตามพวกมันไม่เหมือนกัน: "การสกัดคุณลักษณะจะสร้างคุณลักษณะใหม่จากฟังก์ชันของคุณลักษณะเดิม ในขณะที่การเลือกคุณลักษณะจะคืนชุดย่อยของคุณลักษณะ" ([ที่มา](https://wikipedia.org/wiki/Feature_selection))
### แสดงข้อมูลของคุณเป็นภาพ
เครื่องมือสำคัญของนักวิทยาศาสตร์ข้อมูลคือความสามารถในการแสดงข้อมูลด้วยไลบรารียอดเยี่ยมหลายอย่าง เช่น Seaborn หรือ MatPlotLib การแสดงข้อมูลเป็นภาพอาจช่วยให้คุณค้นพบความสัมพันธ์ที่ซ่อนอยู่ที่สามารถนำไปใช้ประโยชน์ได้ นอกจากนี้ภาพของคุณอาจช่วยให้คุณค้นพบอคติหรือความไม่สมดุลของข้อมูล (ตามที่เราพบใน [Classification](../../4-Classification/2-Classifiers-1/README.md))
### แบ่งชุดข้อมูลของคุณ
ก่อนการฝึกอบรม คุณต้องแบ่งชุดข้อมูลเป็นสองส่วนหรือมากกว่าที่มีขนาดไม่เท่ากันแต่ยังแทนข้อมูลได้ดี
- **ฝึกอบรม** ส่วนของชุดข้อมูลนี้จะนำไปสร้างโมเดล ฝึกโมเดล ชุดนี้คือส่วนใหญ่ของชุดข้อมูลต้นฉบับ
- **ทดสอบ** ชุดข้อมูลทดสอบเป็นกลุ่มข้อมูลอิสระซึ่งมักมาจากข้อมูลต้นฉบับ ใช้เพื่อยืนยันประสิทธิภาพของโมเดลที่สร้างขึ้น
- **ตรวจสอบค่าความถูกต้อง** ชุดตรวจสอบค่าความถูกต้องเป็นกลุ่มตัวอย่างอิสระขนาดเล็กที่ใช้ปรับแต่งไฮเปอร์พารามิเตอร์หรือสถาปัตยกรรมของโมเดลเพื่อปรับปรุงประสิทธิภาพ ขึ้นอยู่กับขนาดข้อมูลและคำถามที่คุณถาม บางครั้งคุณอาจไม่จำเป็นต้องสร้างชุดที่สามนี้ (ตามที่ระบุใน [Time Series Forecasting](../../7-TimeSeries/1-Introduction/README.md))
## สร้างโมเดล
ใช้ข้อมูลฝึกอบรมของคุณ เป้าหมายคือการสร้างโมเดล หรือการแทนข้อมูลแบบทางสถิติ โดยใช้หลายอัลกอริทึมเพื่อ **ฝึก** โมเดล การฝึกโมเดลคือการเปิดเผยโมเดลกับข้อมูลและอนุญาตให้โมเดลทำสมมติฐานเกี่ยวกับรูปแบบที่ค้นพบ ตรวจสอบ และยอมรับหรือปฏิเสธ
### เลือกวิธีการฝึกอบรม
ขึ้นอยู่กับคำถามและลักษณะของข้อมูล คุณจะเลือกวิธีฝึกอบรม โดยดูจาก [เอกสารของ Scikit-learn](https://scikit-learn.org/stable/user_guide.html) ซึ่งเราใช้ในหลักสูตรนี้ คุณสามารถสำรวจหลายวิธีฝึกอบรมโมเดล ขึ้นอยู่กับประสบการณ์ คุณอาจต้องลองหลายวิธีเพื่อสร้างโมเดลที่ดีที่สุด คุณน่าจะผ่านกระบวนการที่นักวิทยาศาสตร์ข้อมูลประเมินประสิทธิภาพโมเดลโดยป้อนข้อมูลใหม่ที่ไม่เคยเห็นมาก่อน ตรวจสอบความแม่นยำ อคติ และปัญหาเรื่องคุณภาพอื่น ๆ จากนั้นเลือกวิธีฝึกอบรมที่เหมาะสมที่สุดสำหรับงาน
### ฝึกโมเดล
พร้อมข้อมูลฝึกอบรมของคุณ คุณพร้อมที่จะ 'ฟิต' ข้อมูลเพื่อสร้างโมเดล คุณจะพบว่าในไลบรารี ML หลายแห่งมีโค้ด 'model.fit' ซึ่งเป็นช่วงเวลาที่คุณส่งตัวแปรคุณลักษณะในรูปแบบอาร์เรย์ (มักเป็น 'X') และตัวแปรเป้าหมาย (มักเป็น 'y')
### ประเมินโมเดล
เมื่อกระบวนการฝึกเสร็จสิ้น (อาจต้องใช้หลายรอบหรือ 'epochs' เพื่อฝึกโมเดลขนาดใหญ่) คุณจะสามารถประเมินคุณภาพโมเดลโดยใช้ข้อมูลทดสอบเพื่อวัดประสิทธิภาพ ข้อมูลนี้เป็นส่วนย่อยของข้อมูลต้นฉบับที่โมเดลไม่เคยวิเคราะห์มาก่อน คุณสามารถพิมพ์ตารางเมตริกเกี่ยวกับคุณภาพโมเดลของคุณได้
🎓 **การฟิตโมเดล**
ในบริบทของการเรียนรู้ของเครื่อง การฟิตโมเดลหมายถึงความแม่นยำของฟังก์ชันพื้นฐานของโมเดลขณะที่พยายามวิเคราะห์ข้อมูลที่ไม่เคยรู้จักมาก่อน
🎓 **การฟิตต่ำเกินไป** และ **การฟิตสูงเกินไป** เป็นปัญหาที่พบบ่อยที่ทำให้ประสิทธิภาพโมเดลลดลง เนื่องจากโมเดลฟิตไม่ดีพอหรือฟิตดีเกินไป ทำให้โมเดลทำนายได้ใกล้เกินไปหรือลวกเกินไปกับข้อมูลฝึกอบรม โมเดลที่ฟิตสูงเกินไปจะทำนายข้อมูลฝึกอบรมได้ดีมากเพราะเรียนรู้รายละเอียดและเสียงรบกวนในข้อมูลดีเกินไป โมเดลที่ฟิตต่ำเกินไปไม่แม่นยำเนื่องจากไม่สามารถวิเคราะห์ข้อมูลฝึกหรือข้อมูลที่ไม่เคยเห็นได้อย่างถูกต้อง
![overfitting model](../../../../translated_images/th/overfitting.1c132d92bfd93cb6.webp)
> กราฟิกโดย [Jen Looper](https://twitter.com/jenlooper)
## การปรับค่าพารามิเตอร์
เมื่อการฝึกเบื้องต้นเสร็จสิ้น ให้สังเกตคุณภาพของโมเดลและพิจารณาปรับปรุงโดยการปรับแต่ง 'ไฮเปอร์พารามิเตอร์' อ่านรายละเอียดเพิ่มเติมเกี่ยวกับกระบวนการได้ใน [เอกสาร](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott)
## การทำนาย
นี่คือช่วงเวลาที่คุณสามารถใช้ข้อมูลใหม่ทั้งหมดเพื่อทดสอบความแม่นยำของโมเดล ในสภาพแวดล้อมการใช้ ML จริง ที่คุณสร้างเว็บแอปเพื่อใช้โมเดลในงานจริง กระบวนการนี้อาจรวมถึงการรวบรวมข้อมูลผู้ใช้ (เช่น การกดปุ่ม) เพื่อกำหนดตัวแปรและส่งให้โมเดลทำการสรุปหรือประเมิน
ในบทเรียนเหล่านี้ คุณจะค้นพบวิธีใช้ขั้นตอนเหล่านี้เพื่อเตรียมข้อมูล สร้าง ทดสอบ ประเมิน และทำนาย—ซึ่งเป็นท่าทางของนักวิทยาศาสตร์ข้อมูลและอื่น ๆ ขณะที่คุณเดินทางสู่การเป็นวิศวกร ML 'เต็มสแตก'
---
## 🚀ความท้าทาย
วาดแผนภูมิแสดงขั้นตอนของผู้ปฏิบัติการ ML คุณเห็นตัวเองอยู่จุดไหนในกระบวนการนี้? คุณคาดว่าจะพบความยากลำบากที่ไหน? อะไรที่ดูง่ายสำหรับคุณ?
## [แบบทดสอบหลังการบรรยาย](https://ff-quizzes.netlify.app/en/ml/)
## ทบทวน & การศึกษาด้วยตนเอง
ค้นหาออนไลน์สำหรับสัมภาษณ์นักวิทยาศาสตร์ข้อมูลที่พูดถึงงานประจำวันของพวกเขา นี่คือ [ตัวอย่างหนึ่ง](https://www.youtube.com/watch?v=Z3IjgbbCEfs)
## งานมอบหมาย
[สัมภาษณ์นักวิทยาศาสตร์ข้อมูล](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**ข้อจำกัดความรับผิดชอบ**:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษาด้วย AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้ความถูกต้องสูงสุด โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาต้นทางควรถูกพิจารณาเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ควรใช้การแปลโดยมนุษย์มืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดขึ้นจากการใช้การแปลนี้
<!-- CO-OP TRANSLATOR DISCLAIMER END -->