Machine Learning (ML)
Supervised Learning Concept
Fundamental of Naive Bayes
Text Classification using simple techniques
Evaluation Model
เข้าใจพื้นฐานของ Machine Learning และการนำไปประยุกต์ใช้กับ NLP
เข้าใจขั้นตอนการเตรียมข้อมูลและการประยุกต์ใช้เทคนิค Preprocessing
เรียนรู้โมเดลพื้นฐานสำหรับ NLP เช่น Bag of Words, TF-IDF, และ Embedding
ฝึกปฏิบัติการใช้โมเดล Machine Learning ในงาน NLP เช่น Gender Name Classification, Sentiment Analysis
การเรียนรู้ด้วยเครื่อง เป็นเทคนิค/อัลกอริทึมทาง AI ที่ทำให้คอมพิวเตอร์สามารถเรียนรู้ได้ด้วยตนเอง จากข้อมูลที่ส่งเข้าไปให้คอมพิวเตอร์เรียนรู้และสร้างโมเดลเพื่อใช้ในการตัดสินใจ ทำให้คอมพิวเตอร์เกิดความฉลาดคล้ายกับมนุษย์
Supervised Learning
เป็นการเรียนรู้จากข้อมูลที่มีคำตอบ (labeled data) ส่งให้คอมพิวเตอร์เรียนรู้ เพื่อสร้างโมเดลในการทำนายผล แบ่งเป็น
Regression ใช้ทำนายคำตอบที่เป็นตัวเลข เช่น ทำนายราคาหุ้น ทำนายราคาบ้าน
Classification ทำนายคำตอบที่เป็นประเภท
Unsupervised Learning
เป็นการเรียนรู้จากข้อมูลที่ไม่มีคำตอบ (unlabeled data) ส่งให้คอมพิวเตอร์เรียนรู้ เพื่อสร้างโมเดลสำหรับหารูปแบบความสัมพันธ์ หรือการจัดกลุ่มข้อมูล
Clustering เป็นการจัดกลุ่มข้อมูลตามลักษณะความคล้ายคลึงกันโดยระบุจำนวนกลุ่มที่ต้องการ เช่น Topic modeling การสร้างหัวข้อของข่าว การจัดกลุ่มข่าวตามลักษณะของข่าว การจัดกลุ่มลูกค้าตามพฤติกรรมการซื้อ
Association เป็นการหารูปแบบความสัมพันธ์ระหว่างข้อมูล ที่มีอยู่ในข้อมูลที่ส่งให้คอมพิวเตอร์เรียนรู้ เช่น การหารูปแบบความสัมพันธ์ของการซื้อสินค้าของลูกค้า การสร้าง word embedding เพื่อหาคำที่มีความหมายใกล้เคียงกัน
Dimensionality Reduction เป็นการลดมิติของข้อมูล เช่นการลดมิติของ word embedding เพื่อให้สามารถแสดงผลเป็นภาพได้
Reinforement Learning
เป็นการเรียนรู้ที่ไม่อาศัยข้อมูล แต่ใช้กฏและเงื่อนไขมาในการเรียนรู้จากการลองผิดลองถูก เพื่อให้บรรลุเป้าหมายที่กำหนด
ในรายวิชานี้เราจะเน้นการนำ Supervised Learning ไปใช้ในการจำแนกประเภทข้อความ (Text Classification) ซึ่งเป็นงานทาง NLP ที่มีการประยุกต์ใช้ค่อนข้างมากในปัจจุบัน
ขั้นตอนในการเรียนรู้แบบ Supervised Classification
Prepare data and EDA: จัดเตรียมข้อมูลที่ใช้ในการฝึกฝนโมเดล และทดสอบ โดยมีการระบุผลเฉลยหรือคำตอบ (label/class) ในขั้นตอนนี้ควรทำการวิเคราะห์ข้อมูลเบื้องต้นด้วย (EDA) และจัดแบ่งข้อมูลเป็นสองส่วน
ชุดข้อมูลฝึกฝน (Training set): ใช้สำหรับฝึกฝนโมเดล
ชุดข้อมูลทดสอบ (Testing set): ใช้สำหรับประเมินประสิทธิภาพของโมเดล
การประมวลผลข้อมูลเบื้องต้น (Text Preprocessing) ก่อนนำข้อมูลไปใช้ฝึกฝนโมเดล จะต้องมีการประมวลผลเบื้องต้น ดังที่เรียนมาในหัวข้อก่อนหน้า เช่น
การทำความสะอาดข้อมูล (Cleaning) เช่น ลบตัวอักษรที่ไม่มีผลต่อการจำแนกออก หรือลบ tag html ที่ปะปนมาออก
การแปลงตัวอักษรเป็นตัวเล็ก (Lowercase) เพื่อให้โมเดลไม่สนใจความแตกต่างระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
การตัดคำ (Tokenization) แยกแบ่งออกเป็นคำหรือ token ที่ต้องการ
การตัดคำ stop word ซึ่งเป็นคำที่พบได้ทั่วไปแต่ไม่มีผลต่อการจำแนก เพื่่อลดจำนวนคำที่ประมวลผล
การแปลงคำเป็นรากศัพท์ (Lemmatization) เพื่อทำให้ลดจำนวนคำศัพท์ที่ใช้ประมวลผล จากการที่มองคำศัพท์ที่มาจากรากศัพท์เดียวกันกลายเป็นคำเดียวกัน
การสกัดคุณลักษณะ (Feature Extraction) เช่น โดยสร้างฟังก์ชัน feature extractor สำหรับดึง features ของข้อมูลแต่ละตัวออกมา
features ที่ได้ โดยมากจะใช้คำศัพท์ที่ไม่ซ้ำกันเป็นคุณลักษณะ โดยจัดเก็บอยู่ใน vector เช่น Bag of Word ที่ได้จาก countvectorizer หรือ ค่า TF-IDF หรือใช้ word embedding ของคำศัพท์
เราสามารถเขียนฟังก์ชัน feature extractor เพื่อการหาคุณลักษณะเองได้ เช่น การจำแนก spam email ใช้คุณลักษณะของการมี URL, การปรากฏของสัญลักษณ์ที่เป็นหน่วยเงินสกุลต่างๆ
การเลือก ML algorithm ที่ต้องการใช้ แล้วนำชุดข้อมูลฝึกฝน ส่งไปทำการฝึกฝนเพื่อสร้าง classifier model
ประเมินประสิทธิิภาพของ classifier model โดยนำชุดข้อมูลทดสอบไปใช้
วิเคราะห์ข้อมูลส่วนที่ทำนายผิด เพื่อปรับปรุง features
Naive Bayes เป็น ML ที่ใช้หลักการทางสถิติ เพื่อคำนวณหาค่าความน่าจะเป็นคำตอบ (label/class) ตัวอย่างเช่น
ถ้าต้องการจำแนกเพศโดยใช้ข้อมูลชื่อและฟีเจอร์ตัวอักษรตัวสุดท้ายสามารถอธิบายได้ดังนี้:
ขั้นตอนการคำนวณ
กำหนดคลาสและฟีเจอร์: คลาสคือเพศ (ชาย/หญิง) และฟีเจอร์คือตัวอักษรตัวสุดท้ายของชื่อ
คำนวณความน่าจะเป็นของคลาส (P(Ci)): เช่น P(ชาย) และ P(หญิง) จากจำนวนชื่อทั้งหมด
คำนวณความน่าจะเป็นแบบมีเงื่อนไข (P(x|Ci)): เช่น P(ตัวอักษรตัวสุดท้ายเป็น 'า' | ชาย) และ P(ตัวอักษรตัวสุดท้ายเป็น 'า' | หญิง)
ใช้ทฤษฎีบทของเบย์: คำนวณความน่าจะเป็นของคลาสที่มีเงื่อนไขจากฟีเจอร์ โดยใช้สูตร:
P(Ci∣x) = [ P(x∣Ci) × P(Ci) ] / P(x)
จากสูตร P(x) สามารถตัดออกได้เนื่องจากมีค่าเท่ากันสำหรับทุกคลาส
ทำนายคลาส: เลือกคลาสที่มีความน่าจะเป็นแบบมีเงื่อนไขสูงสุด
สมมติว่ามีชื่อชาย 100 ชื่อและหญิง 100 ชื่อ โดยมี 20 ชื่อชายลงท้ายด้วย 'า' และ 30 ชื่อหญิงลงท้ายด้วย 'า'
P(ชาย) = 100 / 200 = 0.5
P(หญิง) = 100 / 200 = 0.5
P(ตัวอักษรตัวสุดท้ายเป็น 'า' | ชาย) = 20 / 100 = 0.2
P(ตัวอักษรตัวสุดท้ายเป็น 'า' | หญิง) = 30 / 100 = 0.3
เมื่อใช้ทฤษฎีบทของเบย์:
P(ชาย | ตัวอักษรตัวสุดท้ายเป็น 'า') = (0.2 * 0.5) / P('า')
P(หญิง | ตัวอักษรตัวสุดท้ายเป็น 'า') = (0.3 * 0.5) / P('า')
เนื่องจาก P(′า′) เหมือนกันสำหรับทั้งสองคลาส เราจึงสามารถเปรียบเทียบได้โดยไม่ต้องคำนวณ
หาก P(หญิง | ตัวอักษรตัวสุดท้ายเป็น 'า') มีค่าสูงกว่า P(ชาย | ตัวอักษรตัวสุดท้ายเป็น 'า') ชื่อที่ลงท้ายด้วย 'า' จะถูกจำแนกเป็นเพศหญิง
การประเมินประสิทธิภาพโมเดล ทำได้โดยประเมินจากค่า 4 ค่า ดังรูป
Accuracy ความถูกต้องของการทำนาย
Precision ความแม่นยำในการทำนาย
Recall ความครบถ้วนในการทำนาย
F1 Score พิจารณาจากค่า Precision ร่วมกับ Recall
และควรแสดงค่าอยู่ในรูปแบบ confusion matrix เพื่อนำไปใช้ในการวิเคราะห์ความผิดพลาดในการทำนายแต่ละประเภทได้