EP3: How do machines learn?

 A non-technical introduction to Artificial Intelligence (AI) and Machine Learning (ML) for technical people. This series of contents aims to equip technical staff with the necessary skills to leverage AI for enhanced business performance and innovation.

Image from fotor.com

From Data to Knowledge

จาก 2 EP เราได้เรียนรู้กันแล้วว่า AI มีลักษณะสำคัญคือการรับรู้สภาพแวดล้อมและเรียนรู้ ความสามารถในการเรียนรู้นั้นล้วนมาจาก Machine Learning ซึ่งนำมาสู่คำถามว่า Machine หรือคอมพิวเตอร์เรียนรู้ได้อย่างไร อะไรคือวิธีการที่ทำให้คอมพิวเตอร์เรียนรู้ได้ และเกิดอะไรขึ้นในกระบวนการเรียนรู้ของคอมพิวเตอร์กันแน่ ใน EP นี้เราจะมาทำความเข้าใจกับการเรียนรู้ของคอมพิวเตอร์กัน

เพื่อให้เข้าใจกระบวนการเรียนรู้ของคอมพิวเตอร์ ก่อนอื่นเรามาทำความเข้าใจกระบวนการเรียนรู้ในมนุษย์กัน

เกิดอะไรขึ้นในสมองของเราเมื่อเราเรียนรู้?

ในมนุษย์นั้น เมื่อเราเรียนรู้ ไม่ว่าจะเป็นความรู้ หรือทักษะใหม่ๆ ส่วนของ input เช่น ภาพ เสียง หรือสัมผัส จะเป็นตัวกระตุ้นให้สมองของเราสร้างความเชื่อมโยง (pathway) หรือเส้นทางจำนวนมากระหว่าง เซลล์สมอง (neurons) ในกระบวนการที่เรียกว่า neuroplasticity ในการกระตุ้นและสร้างเส้นทางเชื่อมโยงนี้ จะเกิดในส่วนต่างๆของสมองต่างกันไป ขึ้นกับ input และเรื่องที่เรียนรู้นั้นๆ เช่น การเรียนรู้ภาษาใหม่ จะกระตุ้นส่วนของสมองแตกต่างจากการหัดเล่นเปียนโน

ข้อมูลจะทำให้เกิดการกระตุ้น ซึ่งส่งผ่านระหว่างเซลล์สมองผ่านกระบวนการเชื่อมต่อระหว่างเซลล์สมอง Synaptic Plasticity เมื่อการเรียนรู้ทำไปเรื่อยๆ ฝึกฝนซ้ำๆกัน จนชำนาญ เส้นทางหรือ pathway ระหว่างเซลล์สมองเหล่านี้จะหนาแน่นขึ้น ทำให้การส่งข้อมูลระหว่างเซลล์ทำได้ดีขึ้น เส้นทางที่เชื่อมโยงเซลล์สมองเหล่านี้เองเป็นการที่สมอง "จัดเก็บ" การเรียนรู้ หรือทักษะของเรา


คอมพิวเตอร์เรียนรู้ได้อย่างไร?

เอาละ ที่นี้เรากลับมาสู่เรื่องที่ว่าคอมพิวเตอร์เรียนรู้ได้อย่างไรกัน ในมนุษย์ข้อมูลเป็นตัวกระตุ้นเซลล์สมองให้สร้างเส้นทางเชื่อมระหว่างกัน ในคอมพิวเตอร์เองก็เช่นกัน input data จะผ่านกระบวนการทางคณิตศาสตร์ แปลงมาเป็น พารามิเตอร์ หรือ ค่าสัมประสิทธิ (coefficient) หรือ น้ำหนัก (weight) เอ่อ... เรามาดูตัวอย่างง่ายๆ กันดีกว่า 

เพื่อให้เราเข้าใจได้ว่า ข้อมูลกลายมาเป็นชุดตัวเลขอย่างพารามิเตอร์ได้อย่างไร ตอนนี้เรารู้แล้วว่าโมเดลคือฟังค์ชั่นทางคณิตศาสตร์ชุดหนึ่ง เรามาดูตัวอย่างจาก Simple Linear Regression หรือ การวิเคราะห์การถดถอยเชิงเส้นกัน ซึ่ง Linear Regression เป็นการหาความสัมพันธ์ระหว่างตัวแปล ตั้งแต่ 2 ตัวขึ้นไป ได้แก่ ข้อมูล input (x) และ ผลลัพธ์ (y) โดยที่ x และ y มีความสัมพันธ์เป็นเส้นตรง ทั้งนี้ในขั้นตอนการสร้าง function ระหว่าง x และ y จะต้องมีการเก็บข้อมูล x และ y จำนวนหนึ่ง เพื่อนำมาหาสมการที่เป็นตัวแทนของความสัมพันธ์ระหว่างค่า x และ y จากตัวอย่าง 

ในกราฟ ข้อมูลคือ x และ y ซึ่งมีความสัมพันธ์เป็นเส้นตรง สมมุติว่า ค่า y คือราคาบ้าน ส่วน x คือ พื้นที่ใช้สอยเป็นตารางเมตร ยิ่งบ้านมีพื้นที่ใช้สอยมากเท่าไหร่ ราคาบ้านก็สูงขึ้นเท่านั้น


Simple Linear Regression Model

เมื่อเรานำข้อมูล ราคาบ้าน และพื้นที่ใช้สอย ที่เราเก็บสะสมมา เพื่อสร้างสมการเส้นตรงหรือโมเดล ตามความสัมพันธ์ y = a+bx สิ่งที่เราต้องการคือ ค่าของ a (จุดตัดแกน) และ  b (ความชัน) เพื่อให้เราสามารถคำนวณหา ราคาบ้าน เมื่อเรามีข้อมูลคือพื้นที่ใช้สอยนั้นเอง โดยกระบวนการทางคณิตศาสตร์ เพื่อหาเส้นตรงที่ลากผ่านแล้วใกล้เคียงกับทุกจุดในกราฟมากที่สุด เราใช้วิธีการทางคณิตศาสตร์อย่าง Mean Square Error (MSE) เพื่อคำนวณ ค่าเฉลี่ยของผลต่างยกกำลังสอง ระหว่างค่าจริง (จุด) และผลที่ได้จากโมเดล (ผลลัพธ์) และ Gradient Descent ถูกใช้เพื่อแก้โจทย์ทางคณิตศาสคร์เหล่านี้ เมื่อเราได้ ค่า a และ b มาแล้ว เราก็จะรู้ว่า ราคาบ้านและพื้นที่ใช้สอย มีความสัมพันธ์กันอย่างไร ทำให้เราสามารถคำนวณหรือพยากรณ์ราคาบ้านได้ เมื่อเรารู้พิ้นที่ใช้สอย หรือพูดได้ว่า เราได้ความรู้ เรื่องความสัมพันธ์ของราคาบ้านและพื้นที่ใช้สอยนั่นเอง จะเห็นว่า ลำพัง แค่ตัวแปร x เดียว สำหรับโมเดลที่เป็นเส้นตรงง่ายๆ จะต้องใช้ขั้นตอนที่ดูยากๆ เหล่านี้ ลองคิดถึงโมเดลที่มีหลายๆ ตัวแปร และมีฟังค์ชั่นที่ซับซ้อนไม่ได้เป็นเส้นตรง (non linear) ซิว่า จะซับซ้อนได้มากขนาดไหน 

จากตรงนี้ เราเห็นแล้วว่า จากข้อมูลจำนวนมาก กลายมาเป็นความสัมพันธ์ทางคณิตศาสตร์เพื่ออธิบายความสัมพันธ์ระหว่างชุดข้อมูลเหล่านั้นได้อย่างไร หรือก็คือ ข้อมูลกลายมาเป็นความรู้ได้อย่างไร 

ทีนี้เรามาดูกันว่า คอมพิวเตอร์เรียนรู้ได้อย่างไร จาก EP 1 เรารู้ว่า คอมพิวเตอร์เรียนรู้ได้หลายรูปแบบ ทั้ง supervised learning, unsupervised learning หรือ reinforcement learning ซึ่งในกระบวนการเรียนรู้ของคอมพิวเตอร์ เราพอจะแบ่งเป็นขั้นตอนได้ดังนี้

1. การจัดเตรียมชุดข้อมูล (Data Representation)

ในระหว่างขั้นตอนของสร้างฟังค์ชั่นทางคณิตศาสตร์หรือที่เรียกว่า model fitting ต้องใช้ข้อมูลจำนวนมาก โดยข้อมูลแต่ละค่า (data point) เราเรียกว่า feature หรือตัวแปร จะต้องถูกจัดเตรียมให้อยู่ในรูปแบบที่เหมาะสมเพื่อให้คอมพิวเตอร์เรียนรู้ หรือเข้าสู้ขั้นตอนทางคณิตศาสตร์นั่นเอง

โดยข้อมูล เป็นได้ทั้ง ข้อมูลเชิงตารางที่เราคุ้นเคยกัน ภาพนิ่ง ภาพเคลื่อนไหว หรือเสียง ข้อมูลเหล่านี้จะถูกแปลง ให้อยู่ในรูปแบบที่เหมาะกับโมเดลเพื่อเรียนรู้ ขึ้นกับการเลือกใช้โมเดลแต่ละแบบ

รูปภาพ จะแปลงเป็นข้อมูล pixel โดยแต่ละ pixel จะระบุด้วยสเกลความเข้มของสี เช่น ภาพขาวดำ HD ขนาด 1280x720 pixels จะถูกแทนด้วย ชุดข้อมูลขนาด 921,600 โดยที่แต่ละค่า แสดงความเข้มระหว่างสีขาว ถึงสีดำสนิท ในกรณีภาพสี ก็จะเป็นชุดค่าของ สี แดง เขียว และฟ้า (RGB)

ในส่วนของเสียงนั้น จะถูกแปลงเป็น รูปคลื่น (wave form) ที่แสดงการเปลี่ยนแปลงของ แอมพลิจูด กับเวลา หรือ spectrogram ที่แสดงการเปลี่ยนแปลงความถี่ กับเวลา 

Speech feature extraction: spectrogram of the spoken words "nineteenth century". Source Wikipedia

โดยแต่ละค่าของข้อมูล (data point) เหล่านี้เราเรียกว่า features ซึ่งเป็น input เพื่อให้คอมพิวเตอร์เรียนรู้

2. การสร้างโมเดล Model Building หรือการ Training

ในขั้นตอนการเรียนรู้ หรือการสร้างโมเดลทางคณิตศาสตร์ มีหลากหลายเทคนิค ขึ้นกับอัลกอริธึมและรูปแบบการเรียนรู้ที่เราเลือกใช้ เหมือนกับตัวอย่างของ Simple Linear Regression ข้างต้น ขั้นตอนนี้เป็นกระบวนการทางคณิตศาสตร์ที่ต้องใช้กำลังของเครื่องมาก เช่นกรณี Supervised Learning จะเป็นการสร้างสมการความสัมพันธ์ระหว่าง ตัวแปรและผลลัพธ์ ส่วนในกรณี Unsupervised Learning ซึ่งเป็นการหาความสัมพันธ์ระหว่างชุดข้อมูล โดยอาจเริ่มต้นจาก parameters ชุดเริ่มต้น และผ่านกระบวนคำนวณเพื่อ minimize ค่าความผิดพลาด (minimizing a loss function) เพื่อให้ได้ parameters ที่ทำให้โมเดลมีความแม่นยำต้องมากที่สุด ซึ่งในขั้นตอนนี้จะรวมถึงการวัดผลความแม่นยำของโมเดลด้วย ซึ่งขึ้นกับการเลือกใช้โมเดลและวิธีวัดตามวัตถุประสงค์การใช้งานที่แตกต่างกัน

เราลองมาดูตัวอย่างการเรียนรู้ของโมเดลยอดนิยมอย่าง Neural Networks เมื่อเริ่มต้น เราอาจมีจำนวน nodes และการเชื่อมต่อระหว่าง input nodes, hidden nodes และ output nodes ชุดหนึ่ง สิ่งที่เราต้องการได้คือ ค่าน้ำหนัก (weight) ของการเชื่อมต่อระหว่าง nodes

เมื่อโมเดลได้ผ่านเรียนรู้ ด้วยกระบวนการทางคณิตศาสตร์ เราจะได้ค่าน้ำหนัก (w) ของแต่ละเส้นความสัมพันธ์ที่เชื่อมโยงแต่ละ node ในโมเดล รวมถึงว่าในแต่ละ nodes จะถูกเปิดหรือปิด

3. การนำโมเดลผลลัพธ์ไปใช้งาน

ผลลัพธ์ของโมเดลที่ผ่านการเรียนรู้ หรือ fitting มาแล้ว เราจะได้ชุดของ พารามิเตอร์ (parameters) หรือน้ำหนัก (weights) ของฟังค์ชั่นทางคณิตศาสตร์ที่แสดงความสัมพันธ์ระหว่าง input และ output หรือความสัมพันธ์ระหว่างชุดข้อมูลด้วยกัน 

พารามิเตอร์เหล่านี้เป็นตัวกำหนดคุณภาพหรือความถูกต้องของโมเดล ซึ่งค่าต่างๆ เหล่านี้ได้จากผลของการ แก้ปัญหาทางคณิตศาสตร์หรือ optimized ซึ่งจะถูกใช้เพื่อทำ prediction หรือ classification กับชุดข้อมูลใหม่ๆ ต่อไป

จากที่เรามักพูดถึงขนาดของ LLM ที่มีในปัจจุบันกันด้วยจำนวนพารามิเตอร์ ที่มีตั้งแต่ หลักแสน หลักล้าน พันล้าน ไปจนถึงล้านล้านนั้น (GPT-4o มีขนาด 1.2 หมื่นล้านพารามิเตอร์ ในขณะที่ GPT-4 มีขนาด 1.75 แสนล้านพารามิเตอร์) พารามิเตอร์ที่ว่านั้นคือ น้ำหนัก (weights) ของเส้นที่เชื่อมต่อระหว่าง นิวรอน (neuron) ในโครงสร้างของ neural network นี่เอง เห็นแบบนี้ว่าเยอะจนนับไม่ไหวกันแล้ว ในสมองของเรามีเซลล์สมองประมาณ 8.6 หมื่นล้านเซลล์ มีการเชื่อมต่อระหว่างกันกว่า 100 ล้านล้านเส้นเลยทีเดียว หรืออาจจะได้เรียกว่าสมองเรามีขนาด 100 ล้านล้านพารามิเตอร์ก็ได้ [1] 

โดยสรุปแล้ว การเรียนรู้ของคอมพิวเตอร์ มีความคล้ายกับรูปแบบในการเรียนรู้ของสิ่งมีชีวิตนั่นเอง แต่แทนที่คอมพิวเตอร์จะสร้างเส้นทางการเชื่อมโยงระหว่างเซลล์สมอง มันสร้างพารามิเตอร์หรือชุดตัวเลขจำนวนมากขึ้นมาแทน พารามิเตอร์เหล่านี้เป็นตัวกำหนดคุณภาพของโมเดล และเราสามารถ copy ผลการเรียนรู้ของคอมพิวเตอร์ไปใช้งานซ้ำๆได้อย่างรวดเร็ว ส่วนมนุษย์อย่างพวกเรานั้น แต่ละคนจำต้องเริ่มต้นการเรียนรู้ใหม่ๆด้วนตนเอง

References:

[1] A New Field of Neuroscience Aims to Map Connections in the Brain 

EP3: How do machines learn? EP3: How do machines learn? Reviewed by aphidet on 3:05 PM Rating: 5

No comments:

Powered by Blogger.