![](https://crypto4nerd.com/wp-content/uploads/2023/06/1q0qv1kBhUPjS1r2GGikbXg@2x-1024x1024.jpeg)
จริงภาพด้านบนก็ถือว่าสรุปโดยรวมให้ถูกต้องแล้วนะ แต่ทีนี้เรามาจะพูดในสิ่งที่เรียนกัน
1. เตรียม Dataset
จากข้างบนเป็นข้อมูล Dataset ของสายพันธุ์ดอกไม้ Iris ที่มีคำตอบบอกว่า ขนาดกลีบ ขนาดดอก กว้างยาวเท่าไหร่เเล้วจะเป็นผลลัพธ์ของ Iris สายพันธุ์อะไรในข้อมูล
Machine Learning คือ การใช้ ‘ข้อมูล’ สอนให้ระบบคอมพิวเตอร์ทำการเรียนรู้ได้ด้วยตนเองแบ่งออกเป็น
- การเรียนรู้แบบมีผู้สอน (Supervised Machine Learning Algorithms) ข้อมูลที่ใช้ในการฝึกนั้นเรียกว่า ข้อมูลชุดเรียนรู้ (Training Data / Training Set) นำมาแยกประเภทผลลัพธ์ด้วยการติดป้ายกำกับ (Labels/Class) เป็นผลเฉลย จากนั้นนำข้อมูลที่ติดป้ายแล้วไปใช้ในการฝึกของเครื่องที่ทำงานผ่านอัลกอริทึมสำหรับสร้างโมเดลที่ใช้ในการทำนายผลลัพธ์ โดยนำข้อมูลใหม่หรือข้อมูลชุดทดสอบ (Test Set) ไปใช้ทดสอบประสิทธิภาพของโมเดล
ที่มา:จากการสรุปและรวบรวมข้อมูลของ สพร
2.การเรียนรู้แบบไม่มีผู้สอน (Unsupervised Machine Learning Algorithms) เป็นการเรียนรู้ด้วยข้อมูลที่ไม่ถูกจัดประเภท หรือติดป้ายกำกับข้อมูล วิธีนี้เครื่องจะคาดเดาข้อมูลที่ได้รับและทำความเข้าใจถึงโครงสร้างที่ซ่อนอยู่ไม่สามารถหาผลลัพธ์ที่ถูกต้องได้ แต่จะใช้วิธี สำรวจข้อมูลและใช้การประมาณการว่าข้อมูลนั้นคืออะไร
2. แบ่ง Dataset เป็น data 2 ส่วน train และ test เพื่อให้ Machine Learning ของเราเรียนรู้
ข้อมูลชุดเรียนรู้ (Training Set)
ถูกนำไปเรียนรู้ด้วยวิธีการเรียนรู้เครื่องจักรเพื่อสร้างเป็นโมเดล (Model) จะประกอบไปด้วย label / class เพื่อบอกว่าข้อมูลชุดนี้คืออะไร เช่น ชุดข้อมูลตัวเลข 0–9 , ข้อมูลสายพันธ์สุนัข เป็นต้น
ข้อมูลชุดทดสอบ (Test Set)
ใช้ทดสอบโมเดลที่สร้างขึ้น หากโมเดลที่ทดสอบมีประสิทธิภาพดีจึงจะนำไปใช้งานจริง
ก็ถ้าเป็นชุดข้อมูลที่มีปริมาณมาก เราสามารถลดข้อมูลเพื่อให้ ประมวลผล model ได้เร็วขึ้นได้ด้วยนะ เขาเรียกว่า PCA
Naive-Bayes model
ที่ใช้เพื่อคาดคะเนจากความน่าจะเป็น
K-Nearest Neighbors (K-NN)
เป็นวิธีการแบ่งคลาสสำหรับใช้จัดหมวดหมู่ข้อมูล (Classification)ใช้หลักการเปรียบเทียบข้อมูลที่สนใจกับข้อมูลอื่นว่ามีความคล้ายคลึงมากน้อยเพียงใด หากข้อมูลที่กำลังสนใจนั้นอยู่ใกล้ข้อมูลใดมากที่สุด ระบบจะให้คำตอบเป็นเหมือนคำตอบของข้อมูลที่อยู่ใกล้ที่สุดนั้นลักษณะการทำงานแบบไม่ได้ใช้ข้อมูลชุดเรียนรู้ (training data) ในการสร้างแบบจำลองแต่จะใช้ข้อมูลนี้มาเป็นตัวแบบจำลองเลย
ตัวจำแนกแบบไบนารี (Binary Classifier)
เป็นวิธีการแบ่งข้อมูลตาม type ของ data ที่ได้มา
การวิเคราะห์การถดถอยเชิงเส้น (Linear Regression)
เป็นการจัดกล่มข้อมูลหาค่าความสัมพันระหว่าง 2 ค่า เช่น ถ้าค่า x เป็นบวกหรือลบ ค่า y ก็จะมีค่าใกล้เคียงกับค่า x
ส่วนข้อมูล ลักษณะไหน ควรใช้ data และ model algorithm ตัวไหน ลองให้ภาพด้านล่างช่วย เป็นแนวทางในการเลือก model ละกัน
ผมขออนุญาติข้ามนะว่าแต่ละ model เขาใช้ การวัดประสิทธิภาพความแม่นยำจาก function algorithm ตัวไหน
แต่ถ้าค่าที่ได้หลังจากวัดประสิทธิภาพของ model ยิ่งใกล้เคียงเลข 1 หรือ 100% ก็ยิ่งแม่นมากขึ้น ยิ่งค่า loss funtion (คือค่าที่หายไปที่ทำให้ไม่ถึง 100%) น้อยเท่าไหร่แสดงว่า dataset และ model ที่ใช้นับว่าใช้งานได้จริง
ลองดูตัวอย่างภาพ code จากในคอรสเรียนฟรีสักเล็กน้อย ก็จะเห็นว่า เราเขียนตาม step by step ที่เล่ามาเลยตั้งแต่ข้อ 1–4
This section use Python
Data -> train data, test data -> model -> prediction
สิ่งสำคัญคือ Data ที่เอามาสอน และ model ที่เลือกใช้ ตามวัตถุประสงค์ เพื่อให้ได้ค่า ทำนายผลที่ถูกต้อง
ก่อนจะมี AI ก็ต้องมี Data ที่ใช้สำหรับ สอนก่อน อยากให้เก่งเรื่องคาดคะเนคนเป็นโรคเบาหวานก็ต้องมี Dataset ของคนที่เป็นเบาหวาน หรือ รูปนี้เป็นหน้าใครก็ต้องมีรูปหน้าคนนั้นสำหรับสอน AI พอมี data ที่เราสอน แล้วก็เอาไป train ตาม model ก็จะมีเทคนิคหลายอย่าง ไม่ว่าจะเป็น regression , clustering , K-mean , Naive-bay ฯลฯ ก็จะได้ผมลัพธ์การทำนายผล predict แล้วก็ค่อยนำ predict ไปหาค่าความถูกต้องว่า การทำนายผลของ data ที่เราสอนไปเนี่ยมีความแม่นยำเท่าไหร่
จริงๆ ผมมองว่า AI ที่เรามองว่าฉลาดกว่ามนุษย์เพราะแค่เราไม่สามารถจำได้ทุกอย่างบนโลก แค่นั้นเอง เช่น วิธีการแก้ไข รวมไปถึงวิธีการคาดคะเน หรือการหาค่าจะเป็น รวมไปถึงแนวทางการทำงานเพื่อให้ถึงเป้าในเรื่องต่างๆในแต่ละสายอาชีพ. มนุษย์ก็เลยสร้าง AI ขึ้นมาเพื่อสอนมันแทนคนไง เพราะ data ที่สอนไปก็มาจากประสบการณ์ ของมนุษย์ สิ่งที่สอนไปก็คือจดจำและให้คำตอบที่ถูกต้องตามที่สอน แถมไม่ขี้ลืมแบบมนุษย์ด้วย 5555