Introduction to Machine Learning (ML)
ผมเรียนครอสนี้จาก Coursera.org หลักสูตรโดย Duke University ซึ่งเปิดให้เรียนฟรีแถมยังให้ประกาศนียบัตรอีกด้วยถ้าเรียนจบเนื่องในโอกาสครบรอบ 9 ปีของการก่อตั้ง Coursera ขึ้นมา พื้นฐานของหลักสูตรนี้คือการปูพื้นฐานให้เข้าใจแนวคิดหลักๆของ Machine Learning (ML) / Deep Learning (DL) และโมเดลพื้นฐานทางคณิตศาสตร์ ซึ่งก็ยากเอาการทีเดียวสำหรับผม ที่ยากไปกว่านั้นคือต้องมีการสอบ coding จริงด้วยภาษา Python อีกด้วย

สรุปเนื้อหาหลักของ ML คือการป้อนข้อมูลดิบและผลลัพธ์ที่คาดหวังให้กับคอมพิวเตอร์ เมื่อมีจำนวนข้อมูลดิบตัวอย่างจำนวนมาก จะทำให้คอมพิวเตอร์สามารถคาดเดาคำตอบที่แม่นยำกลับมา สิ่งที่เรียนรู้ไปแล้วจะถูกเก็บไว้ในฐานข้อมูลไม่ต้องเริ่มเรียนใหม่เหมือนกับมนุษย์ที่เรียนต่อยอดไปเรื่อยๆ จากชั้นอนุบาลจนจบมหาวิทยาลัยโดยไม่ต้องเรียนหลักสูตรของอนุบาลซ้ำทุกๆครั้งเมื่อเริ่มเรียนเรื่องใหม่ๆ
ตัวอย่างเช่นการพยากรณ์อากาศ ถ้าเราป้อนชุดของข้อมูลดิบเช่น ความชื้น, แรงกดอากาศ, อุณหภูมิ และปัจจัยแวดล้อมอื่นๆเข้าไป สำหรับวันที่ฝนตกและวันที่ฝนไม่ตก คอมพิวเตอร์จะพยายามจับคู่ความสัมพันธ์ที่เคยเกิดขึ้นและคาดเดาเหตุการณ์ในอนาคตของข้อมูลที่เราป้อนให้ล่าสุดโดยที่เรายังไม่รู้คำตอบได้ เช่นให้ข้อมูลแวดล้อมของเช้าวันนี้ แล้วให้คอมพิวเตอร์คาดเดาผลลัพธ์ออกมาว่าวันนี้ฝนจะตกไหม หรือพรุ่งนี้ฝนจะตกไหมถ้าข้อมูลแวดล้อมของวันนี้เป็นแบบนี้
แน่นอนการที่จะให้คอมพิวเตอร์ประมวลผลตามตัวอย่างข้างต้นเราต้องสอนมันผ่านการตั้งกฎกติกาเรียกว่า Algorithm ซึ่งพื้นฐานของ Machine Learning ในหลักสูตรนี้จะใช้ Logistic Regression Model เหมือนตัวอย่างพยากรณ์อากาศ ด้วยการใช้ขั้นตอนในการแปลงข้อมูลดิบดังนี้
- ขั้นตอนแรกใช้ Sigmoid function ทำการแปลงข้อมูลดิบทั้งหมดให้เป็นรูปแบบของเส้นจำนวนบนกราฟที่มีค่าระหว่าง 0-1
- จากนั้นใช้ function Tanh ให้มีประสิทธิภาพมากขึ้นด้วยการเปลี่ยนค่าให้เป็นความน่าจะเป็นที่มีค่าอยู่ระหว่าง -1 ถึง 1 เพราะในความเป็นจริงข้อมูลดิบอาจมีค่าติดลบได้ ถ้าค่าเฉลี่ยรวมของผลลัพธ์ (activation) เข้าใกล้ 1 ก็จะคาดเดาว่าฝนตก แต่ถ้าผลลัพธ์ต่ำกว่า 0 หรือ ติดลบก็แปลว่าไม่ตกเป็นต้น
- อย่างไรก็ตาม การที่มีผลลัพธ์ติดลบจะมีผลต่อการเรียนรู้ของคอมพิวเตอร์ ซึ่งอาจจะไม่มีค่าบวกเลยก็ได้จากข้อมูลการเรียนรู้ทั้งหมด ถ้าผลลัพธ์ติดลบมากๆ ซึ่งเป็นอุปสรรค์ในการเรียนรู้ที่จะเพิ่มความแม่นยำของคอมพิวเตอร์ ดังนั้นจึงมีการพัฒนา function ที่ดีขึ้นมาใช้ในการหาค่า activation เรียกว่า ReLu (Rectified Linear Unit) ซึ่งจะทำการแปลงค่าติดลบให้เข้าใกล้ 0
ตัวอย่าง Machine Learning ข้างต้นคือการแปลงข้อมูลดิบให้มาอยู่ในรูปของสมการเส้นตรง เรียกว่า Perceptron แต่ไม่สามารถแก้ปัญหาที่ซับซ้อนของมนุษย์ได้ เพราะข้อมูลอาจไม่ได้อยู่ในรูปของสมการเส้นตรงเสมอไป เนื่องจากมีปัจจัยหลายอย่าง ยกตัวอย่างเช่น ถ้าเราต้องการให้คอมพิวเตอร์ช่วยวิเคราะห์ว่าเพลงไหนจะดัง เราก็เริ่มจากการป้อนข้อมูลให้ AI ไปวิเคราะห์ว่า เพลงที่ดังและเป็นที่ชื่นชอบต้องมีโน้ตตัวอะไรเยอะๆ แต่ความเป็นจริงโน้ตเพลงมีปัจจัยแฝงอื่นๆอีกเยอะที่ต้องนำมาวิเคราะห์ด้วยกระบวนการในการหาปัจจัยแฝงเหล่านั้น (latent processes) เช่น เพลงที่ดังมีการใช้คอร์ดอะไรบ้าง เพื่อบ่งบอกถึงสเกลของเพลง ต้องมีจังหวะแบบใดบ้าง ซึ่งต้องศึกษาเพลงแต่ละประเภทเพิ่มไปอีกทีละ layer มาประกอบกัน ซึ่งเรียก Model ที่ซับซ้อนประเภทนี้ว่า Multilayer Perceptron
เมื่อเราได้ทำการวิเคราะห์เพลงดังๆหลายๆเพลง เราก็จะค้นพบว่าเพลงดังแต่ละประเภท มีคนฟังที่ชื่นชอบแตกต่างกันไป เช่น บางคนชอบเพลงร็อค บางคนชอบเพลงแจ๊ส เราก็ต้องสอนคอมพิวเตอร์ให้ศึกษากลุ่มคนที่มีความชอบเพลงที่แตกต่างกันไปด้วย (individual output) บนพื้นฐานของตัวโน้ตและปัจจัยแฝงที่เราสอน AI มาก่อนหน้านี้ ซึ่งเรียกกระบวนการนี้ว่า Learning Transfer เพราะคำตอบที่ถูกต้องไม่ได้มีเพียงแค่ฝนจะตกหรือไม่ตกเท่านั้น แต่มาจากพื้นฐานเดียวกันเสมอ การวิเคราะห์ปัจจัยแฝงอาจจะต้องทำหลายๆรูปแบบมากๆ กว่าจะได้ผลลัพธ์ที่เที่ยงตรง เราเรียกกระบวนการทั้งหมดนี้ว่า Deep Learning (DL) ซึ่งในอดีตวงการ ML เกือบล่มสลายไปแล้วเพราะไม่สามารถนำผลลัพธ์จาก Perceptron มาใช้งานได้จริง จนกระทั่งมีการค้นพบ DL นี่แหละทำให้วงการ AI กลับมาเป็นที่สนใจอีกครั้ง
การนำ Multilayer Perceptron ใน DL มาใช้เป็นแค่พื้นฐาน แต่โมเดลที่โด่งดังและประสบความสำเร็จมากๆของ DL มีอยู่ 2 สายงานหลักๆ
- การวิเคราะห์ภาพ ด้วยการนำภาพจำนวนมากเก็บไว้ใน ImageNet และสอนคอมพิวเตอร์ให้แยกแยะรูปประเภทต่างๆด้วยวิธีสแกนรายละเอียดของภาพลงไปในระดับย่อยที่สุด (atomic layer) ที่เหมือนกับโครงข่ายประสาทตาของสัตว์และมนุษย์ จากนั้นนำผลที่ได้มาจับกลุ่มและหา pattern เพื่อวิเคราะห์ปัจจัยแฝงในระดับถัดไป จนได้ตัวแปรปัจจัยแฝงที่ต้องการทั้งหมด ขั้นตอนสุดท้ายคือให้คอมพิวเตอร์ตัดสินว่าภาพที่เห็นเทียบกับ data Label ที่มนุษย์ตั้งไว้เป็นภาพอะไร (supervised learning) ด้วยวิธีนี้ทำให้คอมพิวเตอร์สามารถวิเคราะห์และจดจำภาพชนิดต่างๆได้อย่างถูกต้อง โดยมีระดับความผิดพลาดน้อยกว่ามนุษย์แล้ว ด้วยการประมวลผลที่เร็วกว่ามนุษย์และแม่นยำกว่ามนุษย์ Model นี้เรียกว่า Convolution Neural Network (CNN) เรียกง่ายๆคือ การสอนให้คอมพิวเตอร์สามารถมองเห็นเหมือนมนุษย์ CNN ถูกนำมาใช้แทนมนุษย์ในชีวิตประจำวันแล้วในหลายๆวงการ เช่น วงการแพทย์ ได้นำ DL มาวิเคราะห์หาเซลล์มะเร็งหรือสภาวะเสี่ยงจากเบาหวานจากภาพแทนมนุษย์, การสร้างรถไร้คนขับก็มีพื้นฐานมาจาก CNN และอีกหลากหลายวงการ ซึ่งจะขยายไปเรื่อยๆจากพื้นฐานของ ImageNet ที่คอมพิวเตอร์ได้มีการเรียนรู้มาก่อนหน้านี้ เพราะ ML/DL สามารถสร้างกระบวนการ Learning Transfer ได้นั่นเอง ไม่ต้องเริ่มจาก 0 แต่ต่อยอดเฉพาะสิ่งที่คอมพิวเตอร์ยังไม่รู้ไปเรื่อยๆ
- การวิเคราะห์ภาษา โมเดลนี้มีความซับซ้อนมากกว่าการทำให้คอมพิวเตอร์มองเห็น มันคือการสอนให้คอมพิวเตอร์เข้าใจภาษามนุษย์ด้วยตัวเอง โดยไม่ต้องมีการทำ data label ด้วยมนุษย์ เหมือน CNN model ข้างต้น (unsupervised learning) ทำได้โดยการป้อนคำศัพท์และรูปแบบประโยคต่างๆเข้าไปในฐานข้อมูล คอมพิวเตอร์จะเรียนรู้จากคำข้างเคียงต่างๆที่มีการใช้ในรูปแบบประโยคตัวอย่าง จนสามารถเข้าใจถึงไวยกรณ์ของภาษาต่างๆ เรียกโมเดลประเภทนี้ว่า Natural Language Processing (NLP) และเป็นที่มาของการแปลภาษา, การที่ทำให้คอมพิวเตอร์อ่านออกเสียงเป็นภาษามนุษย์ และต่อยอดไปในวงการต่างๆ เช่น Chatbot, Voice to Text, Text to Voice, Real time translation อื่นๆอีกมากมาย
แค่ 2 สายงานนี้ก็สามารถสร้างหุ่นยนต์ที่สามารถมองเห็น ได้ยิน และเข้าใจภาษามนุษย์ สามารถโต้ตอบกับมนุษย์ได้แล้ว ด้วยการผสานทั้ง CNN model และ NLP เข้าด้วยกัน ด้วยโมเดลที่ซับซ้อนกว่าที่เรียกว่า Long Short-term Memory เป็นการทำให้คอมพิวเตอร์สามารถจำผลลัพธ์ที่พึ่งสังเคราห์เสร็จได้ และนำมาเป็นส่วนหนึ่งของการทำนายผลลัพธ์ในขั้นถัดไป เหมือนกับการทดเลขในสมองของมนุษย์ ทำให้เราสามารถสังเคราะห์ภาพเป็นข้อความได้ (Image-to-caption) หมายความว่าคอมพิวเตอร์สามารถประมวลผลภาพที่มองเห็นและอธิบายเป็นข้อความได้ด้วยตัวเอง ทั้งยังใช้ในการตัดสินใจได้ด้วยตัวเองโดยไม่ต้องรอคำสอนของมนุษย์ ซึ่งเราก็ได้เห็นการนำความสามารถของ ML/DL มาใช้ในวงการธุรกิจมากมาย ไม่ว่าจะเป็นรถไร้คนขับ หุ่นยนต์ดูดฝุ่นที่สามารถมองเห็นสิ่งของและสร้างแผนที่พร้อมทั้งหลบสิ่งกีดขวางขณะดูดฝุ่น
อุปกรณ์ที่ขับเคลื่อนด้วย AI เหล่านี้กำลังกลายเป็นส่วนหนึ่งของชีวิตประจำวันของเราทุกคนจนบางทีเราอาจจะไม่ฉุกคิดว่า ML/DL มันอยู่ใกล้ตัวเราแค่ไหน ตอนนี้ระบบ AI ได้พัฒนามาถึง Wave ที่ 4 คือการทำงานอย่างอัตโนมัติแต่ยังเก่งเฉพาะเรื่องใดเรื่องหนึ่งเท่านั้น ยังมีสายการพัฒนา AI อีกสายที่ใช้ในการกระตุ้นให้ AI คิดเองตัดสินใจเองและพัฒนากระบวนการคิดไปเรื่อยๆ ด้วยการให้รางวัลเมื่อบรรลุเป้าหมายและลงโทษถ้า AI ตัดสินใจไม่ดี เรียกว่า Reinforcement learning ซึ่งไม่ได้สอนในหลักสูตรนี้ ตัวอย่างที่โด่งดังของ AI ประเภทนี้ คือ การแข่งขันในวงการหมากล้อม คอมพิวเตอร์ AlphaGo สามารถเอาชนะแชมป์โลกได้แล้ว ถ้านำแนวทางทั้งสามมารวมกันได้อย่างไร้รอยต่อ อีกสักพักจากนี้ AI จะสามารถผสมผสานการทำงานกับจักรกลได้สมบูรณ์แบบมากกว่านี้และไม่ได้เก่งเฉพาะด้านอีกต่อไป เราน่าจะเห็นหุ่นยนต์รับใช้เสมือนคนออกมาให้บริการกัน
สรุปว่าคลาสนี้ดีไหม? อย่างที่กล่าวมาข้างต้น ครอสนี้ให้ความรู้เบื้องต้นเกี่ยวกับ AI ได้ดีมากและสามารถสร้างแรงบรรดาลใจให้ผมอยากรู้เพิ่มเติมเกี่ยวกับ AI มากขึ้นไปอีก โดยในคลาสนี้ไม่ได้เน้นสอนเกี่ยวกับ python programming ซึ่งคาดหวังว่านักเรียนต้องมีความรู้อยู่แล้วในระดับหนึ่ง แต่ในความเป็นจริงขั้นตอนการเขียนโปรแกรมมีการเรียกใช้ Library เฉพาะรวมถึงการเรียกใช้ Method สำหรับการคำนวณตามขั้นตอนของ ML/DL ซึ่งมีความซับซ้อนมาก ผมเองก็ต้องใช้วิธีลักจำค้นหาวิธีการ coding มาจาก Google และ Youtube เป็นหลักเพื่อทำข้อสอบและส่งงาน ทำให้ขาดความเข้าใจโมเดลต่างๆและไม่สามารถต่อยอดในการเขียนโปรแกรม AI ได้หลังจบหลักสูตรนี้
นับว่าเป็นโชคดีของคนไทยที่มีการรวมตัวกันของอาจารย์ระดับด๊อกเตอร์ทางด้าน AI เปิดเวปไซด์สอนหลักสูตร AI เบื้องต้นให้กับบุคคลทั่วไปที่สนใจ พร้อมประกาศนียบัตรเมื่อเรียนจบแต่ละหลักสูตร ซึ่งปัจจุบันมีมากถึง 13 หลักสูตรเกี่ยวกับ AI ในแง่มุมต่างๆ หลักสูตรเหล่านี้ช่วยในการเติมเต็มความรู้ที่ขาดหายไปของผมได้ดี อีกทั้งอาจารย์แต่ละท่านยังช่วยทบทวนทฤษฏีต่างๆซ้ำไปซ้ำมาให้ผมเป็นภาษาไทยในแต่ละหลักสูตรอีกด้วย ผมขอแนะนำทุกคนที่สนใจ AI สามารถเรียนรู้เบื้องต้นจากเวป learn-ai.in.th กันก่อนจะทำให้มีความเข้าใจหลักสูตรต่างประเทศได้ง่ายขึ้น


