Coding Gun

AI และ Machine Learning คืออะไรและต่างๆกันอย่างไร?

AI (Artificial Intelligence) หรือ ปัญญาประดิษฐ์ คือศาสตร์และเทคโนโลยีที่มีเป้าหมายให้คอมพิวเตอร์สามารถ “คิด” หรือ “ทำงาน” ได้เหมือนกับมนุษย์ เช่น การเรียนรู้(Machine Learning),การแก้ปัญหา(Problem Solving), การเข้าใจภาษา(Natural Language Processing: NLP) หรือ Computer Vision

ตัวอย่างของ AI:

ในปัจจุบันมี AI อยู่ในชิวิตประจำวันอยู่เยอะมากๆ ซึ่งตัวอย่างที่เราน่าจะได้ยินชื่อกันอยู่เป็นประจำมีดังนี้


Machine Learning (ML) คืออะไร?

Machine Learning เป็นส่วนหนึ่งของ AI ที่มีจุดประสงค์ให้คอมพิวเตอร์ “เรียนรู้” จากข้อมูล โดยไม่ต้องระบุขั้นตอนการทำงานไว้ในโปรแกรม

แทนที่จะเขียน Rules ทั้งหมดเอง(Rule-Based) Developer จะใช้ข้อมูลจำนวนมาก Train ให้โปรแกรมสามารถแยกแยะหรือค้นหา Patterns ของความสัมพันธ์ของข้อมูลที่เราได้ Train เข้าไปนั่นเอง ยกตัวอย่างเช่น

การทำงานของ Machone Learning
การทำงานของ Machine Learning

ขั้นตอนของ Machine Learning มีดังนี้

  1. ทำการแยก Data ออกเป็น 2 ประเภทคือ
    • Training data ใช้สำหรับสอน Machine ว่าก่อนหน้านี้มีความเป็นมาอย่างไร
    • Testing data ใช้สำหรับการทดสอบ หลังจากที่ได้ Model ออกมาแล้วเราก็จะนำ Model นี้ไปทดสอบด้วย Testing Data ดูว่า Model นั้นมีประสิทธิภาพดีหรือแย่อย่างไร
  2. กำหนด Features ที่ต้องการ ดูความหายของ Features ด้านล่าง
  3. สร้าง Model จาก Training data โดยเลือก Algorithm ต่างๆ ซึ่งมีอยู่เยอะมากๆ
  4. นำ Model ที่ได้ไปใช้งาน โดยทดสอบผลการทำงานด้วย Testing data(เวลาเรานำ Machine Learning ไปใช้งานจริงเราจะใช้แค่ Model ที่ได้ออกมาจากขั้นตอนที่ 2 เท่านั้น)

Feature คือคุณลักษณะหรือข้อมูลเชิงปริมาณและคุณภาพ ที่ใช้เป็น Input ให้กับ Algorithm ในการเรียนรู้และทำการทำนายผลพูดง่ายๆก็คือ “ตัวแปร” หรือ “ข้อมูล” ที่ใช้ในการตัดสินใจของโมเดล

ตัวอย่างของ Features

ยกตัวอย่างถ้าเราต้องการทำนายราคาบ้าน จะมี Features ที่เป็นไปได้ ดังต่อไปนี้

ซึ่งแต่ละข้อจะเป็น Input ที่ส่งเข้าไปให้ AI สร้างเป็น Model

ประเภทของ Features

เราสามารถแบ่งแยก Feature ออกเป็นประเภทต่างๆ ดังนี้

ประเภท ตัวอย่าง
Numerical อายุ, ราคา, ความเร็ว
Categorical เพศ (ชาย/หญิง), ประเทศ, ประเภทสินค้า
Boolean ใช่/ไม่ใช่, จริง/เท็จ
Text คำอธิบายสินค้า, รีวิว

ความสำคัญของ Features

Feature จะมีความสำคัญมากๆในการทำ Machine Learning เยื่องจากถ้าเราสามารถกำหนด Feature ที่สามารถบ่งชี้ถึงความแตกต่างหรือผลลัพธ์ได้อบ่างชัดเจน Model ที่ได้ออกมาก็จะมีความแม่นยำสูง

ประเภทของ Machine Learning

เราสามารถแยกวิธีการเรียนรู้ของ Machine Learning ออกได้เป็น 3 ประเภทใหญ่ๆ ดังนี้

1. Supervised Learning

Supervised Learning เป็นรูปแบบการเรียนรู้ที่พบเห็นได้บ่อยที่สุดเนื่องเป็นการเรียนรู้เหมือนกับมนุษย์ ซึ่งเราต้องบอกว่าผลลัพธ์ที่ถูกต้องว่าจริงๆแล้วคำตอบคืออะไร เช่นเมื่อเรา Train ว่านี่คือรูปแมว เราต้องแปะ Label ไปด้วยว่านี่คือแมว หรือไม่ใช่แมว ดังนั้นเมื่อ Machine เรียนรู้เรียบร้อยก็จะสามารถแยกรูปแมวออกจากรูปอื่นๆได้

Supervised Learning จะเป็นการเรียนรู้ของมนุษย์ ที่เราต้องมีคนคอยสอนว่าสิ่งนี้คืออะไร

ตัวอย่าง Algorithms

Algorithms ใช้ทำอะไร
Linear Regression ค้นหาแน้วโน้ม ที่มีการเปลี่ยนแปลงเป็นเส้นตรง
Logistic Regression จำแนกประเภท เช่น E-mail นี้เป็น Spam หรือไม่
Decision Tree ตัดสินใจโดยสร้างทางเลือกที่สามารถเป็นไปได้ เป็นแผนภูมิต้นไม้
Random Forest ใช้หลาย decision tree ร่วมกันเพื่อเพิ่มความแม่นยำ
K-Nearest Neighbors (KNN) ค้นหาข้อมูลที่มีรูปแบบที่ใกล้เคียงมากที่สุด
Naive Bayes แยกประเภทโดยการใช้ Probability

2. UnSupervised Learning

Unsupervised Learning เป็นรูปแบบการเรียนรู้ที่ไม่ได้มีการเตรียม Label หรือคำตอบที่ถูกต้องไว้ให้ ซึ่ง Machine จะต้องจัดกลุ่มของข้อมูลเอาเอง(Clustering) ตัวอย่างของการเรียนรู้ประเภทนี้คือการทำ Anomaly Detection เพื่อตรวจสอบความผิดปกติ เช่นมี Transaction ออกไปต่างประเทศ ทั้งๆ ที่เจ้าของบัญชีนี้ไม่เคยทำมาก่อน หรือการมี Activity Log ที่เกิดขึ้นนอกเวลางานซึ่งไม่น่าจะมีใครเข้ามาใช้งานระบบ

Unsupervised Learning จะเป็นการหา Patterns และจัดกลุ่มของข้อมูล

ตัวอย่าง Algorithms

Algorithms ใช้ทำอะไร
K-Means Clustering แบ่งกลุ่มข้อมูลโดยไม่รู้คำตอบล่วงหน้า
Hierarchical Clustering แบ่งกลุ่มแบบมีลำดับขั้น
Principal Component Analysis (PCA) ลดมิติเพื่อให้เข้าใจข้อมูลง่ายขึ้น
DBSCAN แบ่งกลุ่มข้อมูลที่มีความซับซ้อน (รูปทรงไม่เป็นวงกลม)

3. Reinforcement Learning

Reinforcement Learning เป็นรูปแบบการเรียนรู้ที่เราไม่ต้องใส่ข้อมูลเริ่มต้นเข้าไป เราเพียงแค่บอกกติกาหรือเป้าหมายที่ Machine นั้นต้องทำให้สำเร็จ หลังจากนั้นให้ AI ทำการจับผิดกันเองไปเรื่อยๆจนกระทั่งได้ผลลัพธ์ที่ AI คิดว่าน่าจะถูกต้องออกมา

ตัวอย่างที่ประสบความสำเร็จมากๆของ Reinforcement Learning คือ AlphaGo Zero ซึ่งจะไม่ได้ใส่เกมของมนุษย์เข้าไป(ไม่มี Training data) เพียงแค่กำหนดกติกาและวิธีนับคะแนน หลังจากนั้นจะให้ AI แข่งกันเองไปเรื่อยๆจนกระทั่ง AI เก่งขึ้นเรื่อยๆ สุดท้าย Alpha Go Zero สามารถเอาชนะ Alpha Go ซึ่งมี Training data(ใส่เกมของทั้ง Pro และมือสมัครเล่นเข้าไป)ได้

แต่ข้อเสียของ Reinforcement Learning คือจะใช้ GPU หรือ TPU ในการคำนวนค่อนข้างเยอะมากๆ และใช้เวลาในการ Train ค่อนข้างนาน เพราะต้องเริ่มต้นใหม่ตั้งแต่ศูนย์

ตัวอย่าง Algorithms

Algorithms ใช้ทำอะไร
Q-Learning ระบบเรียนรู้การตัดสินใจโดยคำนวณผลตอบแทน
Deep Q-Network (DQN) ใช้ Neural Network มาช่วย Q-Learning
Policy Gradient / Actor-Critic ใช้ในงานที่ซับซ้อน เช่น เล่นเกม, ควบคุมหุ่นยนต์
Phanupong Permpimol
Follow me