สรุป 10 ทักษะสำคัญของ Machine Learning Professionals

เมื่อวานแอดนั่งฟังคอร์ส Top 10 Skills for Machine Learning Professionals บน LinkedIn Learning เลยลองเขียนสรุปมาให้ทุกคนอ่านกัน อ่านจบเหมือนเรียนเอง อีกแล้ว! 🤣

คอร์สนี้สอนโดย Ben Sullins, Data Geek + Tech Consultant เรียนจบได้ภายในหนึ่งชั่วโมง เพื่อนๆที่สนใจ สามารถทดลองเรียนฟรี (free trial) บน LinkedIn Learning ได้ 30 วัน

Recap สั้นๆ Machine Learning (ML) คืออะไร?

Machine learning is the field of study that gives computers the ability to learn without being explicitly programmed

Arthur Samuel

สามปัจจัยที่ทำให้ ML นี้กำลังเป็นที่ต้องการในตลาดแรงงานคือ

  • Limitless amount of data
  • Cheaper storage
  • More powerful processing

อ้างอิงจากผลสำรวจ Global 500 companies ของ KPGM พบว่าบริษัทส่วนใหญ่เตรียมเพิ่มการลงทุนพัฒนาทักษะของพนักงานด้าน AI/ ML อยู่ระหว่าง 50-100% ในอีกสามปีข้างหน้า

ผลสำรวจของ KPMG AI related talent investment growth
ที่มา – LinkedIn Learning

✅ เรียน ML skills เอาไว้ ได้ใช้แน่นอนในอนาคต

Top 10 Skills สำหรับ ML Professionals

Math Skills

เบื้องหลังของ machine learning algorithms คือ math ล้วนๆ

แล้วถ้าอยากทำสายนี้ต้องรู้คณิตศาสตร์หัวข้ออะไรบ้าง? อ. Ben เอาผลสำรวจมาแชร์ ตัวเลขคร่าวๆของแต่ละ topics ประมาณนี้

  • Linear algebra 35%
  • Probability and statistics 25%
  • Multivariate calculus 15%
  • Algorithms and optimization 15%
  • Other concepts 10%

Basic Algorithms and Data Structures

Grokking algorithms book by manning publisher
หนังสือ grokking algorithms ของค่าย Manning

ถ้าใครทำงานสาย computer/ software programming ยังไงก็หนีเรื่อง algorithms & data structures ไม่พ้น time & space เขียนโปรแกรมยังไงให้รันได้เร็ว (fast) ใช้ทรัพยากรน้อยที่สุด (spaces + resources)

📝 แอดว่าเรื่องนี้ยากสุดเลยในสิบทักษะที่ อ. Ben แนะนำในคอร์สนี้ 🤣 555+

Basic ML

ML Engineers ต้องมีความรู้พื้นฐาน ML algorithms จะได้เลือกใช้ให้เหมาะสมกับปัญหา

  • Regression
  • Classification
  • Clustering (Unsupervised Learning)

และรู้จัก performance metrics สำคัญที่เราใช้วัดผลโมเดล เช่น

  • R-Squared, MSE, MAE, RMSE
  • Accuracy
  • Precision
  • Recall
  • F1 score

Concepts ที่เราต้องเข้าใจถ้าอยากสร้างโมเดลคุณภาพสูง (good fit + generalization) เช่น

  • Bias-variance tradeoff
  • Overfitting vs. Underfitting
  • No free lunch
  • Occam’s razor

📝 ในวีดีโอ อ. Ben ไม่ได้พูดเรื่อง resampling, k-fold vs. bootstrap, hyperparameter tuning, model comparison รวมถึงการทำพาร์ท deployment ที่ต้องใช้ความรู้ programming/ software skills หนักเลย

Basic Data Mining

Data mining แปลไทยว่า “เหมืองข้อมูล” เดี๋ยว 555+

คือกระบวนการ extract meaningful insights หาความรู้ใน dataset (ขนาดใหญ่)

แอดว่าสิ่งที่แตกต่างระหว่าง data mining vs. machine learning คือ data mining จะเน้นที่ structured data เป็นหลัก เช่น ข้อมูลที่อยู่ใน Excel, SQL Database แต่ ML จะทำงานได้ดีกับข้อมูลแบบ unstructured data ด้วย

House of Cards series on Netflix
Netflix – House of Cards

ตัวอย่างโปรเจ็ค data mining ที่เราได้ยินบ่อยๆ เช่น

  • Amazon ใช้ข้อมูลลูกค้าเพื่อหาไอเดียทำ TV Shows และได้ซีรี่ย์ชื่อ Alpha House (Seasion 1 – Rating 7.5)
  • Netflix วิเคราะห์ข้อมูลและลงทุนในซีรี่ย์ House of Cards ที่ได้รับเสียงตอบรับดีมากๆ

Big Data Knowledge

เวลาเราต้องทำงานกับข้อมูลขนาดใหญ่ วิธีการที่เคยใช้ได้กับ small datasets จะใช้ไม่ได้แล้วถ้าเราไม่ปรับ code อะไรเลย (หรือถ้าฝืนใช้ ก็จะเสียเวลารันโมเดลนานมาก time & space ไม่ผ่าน)

Frameworks ที่เราใช้จัดการ Big Data ตัวที่ได้รับความนิยม เช่น

  • Hadoop
  • Spark

📝 เรื่อง Big Data แอดว่างานจริงจะขึ้นอยู่บริษัทที่เราไปทำงานด้วย ช่วงหลัง cloud computing เข้ามามีบทความสำคัญอย่างมากในการจัดการข้อมูลขนาดใหญ่ และการสร้างโมเดล ML กับข้อมูลหลายร้อยล้าน records ตัวอย่างเช่น BigQuery ML และ Amazon Sagemaker

แล้ว ML จำเป็นต้องใช้ข้อมูลขนาดใหญ่เท่านั้นหรือเปล่า?

Andrew Ng ขึ้นพูดในงาน Data & AI Summit 2022 และแสดงให้ดูว่า small dataset (n<=50) ก็สามารถใช้เทรนโมเดลที่ได้ความแม่นยำสูงๆได้ ตัวอย่างเช่น งานด้าน computer vision ดักจับ defects ในโรงงานที่ทีม Andrew พัฒนาขึ้นมาที่บริษัท Landing AI

Andrew เรียกคลื่นลูกใหม่นี้ว่า “Data Centric AI

Programming Experience

Top 5 programming languages for ML and data science
ที่มา – LinkedIn Learning

อ. Ben แนะนำว่าคนที่สนใจงานด้าน ML ควรเขียน Programming Languages เป็นอย่างน้อยหนึ่งภาษา ส่วนจะเขียนเก่งขนาดไหน ขึ้นอยู่กับว่าเราอยากเป็นคนนำโมเดลไปใช้งาน (Users) หรืออยากเป็นคนพัฒนา (ML Researchers/ Engineers)

The level of programming knowledge required to learn machine learning depends on how you want to use ML

Ben Sullins

แล้วจะเรียนภาษาไหนดี? จริงๆจะเริ่มจากภาษาไหนก็ได้ R, Python, JavaScript ส่วนตัวแอดคิดว่าโปรเจ็คเล็กๆทั่วไปใช้ R ได้สบายๆ แต่ถ้าอยากจะใช้ deep learning frameworks ต่างๆ ใน Python จะ support ได้ดีกว่า เช่น tensorflow, keras, pytorch เป็นต้น

📝 ทุกวันนี้เราอาจจะได้ยินพวก low code/ no code platforms กันเยอะขึ้น รวมถึงการใช้ autoML แต่ถ้าเราเข้าใจการเขียนโปรแกรมด้วย ก็จะสามารถ modify code หรือปรับ algorithms ให้ทำงานได้ดียิ่งขึ้น

OOP

OOP ย่อมาจาก Object Oriented Programming เป็น paradigm การเขียนโปรแกรมและพัฒนา software ที่ได้รับความนิยมอย่างมาก ตัวอย่างภาษา OOP เช่น Java, JavaScript, C++, C#, Python เป็นต้น

  • Class
  • Object
  • Abstraction
  • Inheritance
  • Polymorphism
  • Encapsulation

ส่วนตัวแอดมอง ML models เป็นโปรเจ็คด้าน software development ตั้งแต่การเก็บ business requirements, build software (model training & testing) ไปจนถึงการ deployement เช่น การเขียน web services และ API

Object Oriented Programming in Python by No Starch Press (2022)
Object-Oriented Python – No Starch Press

ตัวอย่าง code OOP ในภาษา Python

# create new class in Python
class Dog:
  def __init__(self, name, age):
    self.name = name
    self.age = age

d1 = Dog("Hong Hong", 5)

print(d1.name)
print(d1.age)

R จริงๆก็เขียนแบบ OOP ได้แต่ตอนเราทำ data analysis ฝั่ง R จะนิยมเขียนแบบ functional programming มากกว่า ใช้ function ในการจัดการ input/ output

# using functions in R
data <- load("data.csv")
output1 <- step1(data)
output2 <- step2(output1)
output3 <- step3(output2)

# pipe operator to create a simple data pipeline
data %>%
  step1() %>%
  step2() %>%
  step3() -> output3

Good Coding Practices

ทักษะสำคัญที่ต่อยอดจากเรื่องการเขียนโปรแกรม (programming experience + OOP) คือ good coding practices & habits เขียนโค้ดยังไงให้อ่านง่ายและ maintain ได้สะดวก

The art of clean code by No Starch Press (2022)
The Art of Clean Code – No Starch Press

The ratio of time spent reading code vs. writing code is well over 10:1

Robert C. Martin (Clean Code)

อ. Ben แนะนำ best practices จากหนังสือ Clean Code (2008) ของ อ. Robert C. Martin ไว้ประมาณนี้ pay it forward เขียนโค้ดให้ดีตั้งแต่วันนี้ จะได้ลดเวลาในการอ่านโค้ดในอนาคต ทั้งตัวเราเองและทีมเราด้วย

  • Keep your code tidy + readable code
  • Good naming techniques
  • Add clear and concise comments
  • Document your code

ถ้าทำได้ตามนี้ code เราจะมีคุณภาพสูงขึ้นทันทีตามชื่อหนังสือ Clean Code!

Communication Skills

Effective communication เป็นอีกทักษะที่สำคัญ ไม่ใช่แค่ในสาย tech แต่กับทุกๆงานในโลกนี้ อ. Ben แนะนำว่าเราต้องเลือกวิธีการสื่อสารให้เหมาะสมกับสถานการณ์ + context

  • Face to Face
  • Video call
  • Telephone call
  • Text e.g. Slack, Discord, LINE
  • Email

วิธีสื่อสารที่ดีที่สุดคือ Face to Face Communication ถ้างานไหนสำคัญ อ. Ben แนะนำว่าเดินไปคุยแบบเห็นหน้ากันเลยดีกว่า ถ้างานไม่ได้สำคัญมาก อาจจะส่ง messages ไปก็ได้

หลายๆบริษัทจะเน้นการเขียนเพื่อแชร์ไอเดียและอัพเดทการทำงาน ตัวอย่างเช่น meeting/ agenda notes ใน Amazon, Netflix ไม่ต้องเสียเวลาทำ PowerPoint slide แต่เขียนโน้ตมาเลยว่าอยากได้อะไร และส่งให้เพื่อนๆอ่านก่อนเข้าประชุม

📝 ใครอยากฝึกการจดโน้ตเพื่อเพิ่ม productivity ลองอ่านบทความสรุปคอร์ส Productive Note Taking สอนโดยพี่อิง ดาริน CEO Hato Hub ในเว็บไซต์เราได้นะครับ

Eng Darin Suthapong YouTube Channel
YouTube Channel ของพี่อิง ดาริน สอนจดโน้ตแบบ Zettelkasten

Passion for Learning

ทักษะสุดท้ายของ ML practitioners คือการพัฒนาตัวเองตลอดเวลา รักที่จะเรียนรู้ skills ใหม่ๆ

ไม่ใช่เพราะว่าขยัน แต่เพราะเทคโนโลยีเปลี่ยนเร็วมาก ยั๊ง (แซวววว) 🤣 555+

The day you stop learning is the day you begin decaying

Isaac Asimov

การเรียน skills ใหม่ไม่ได้จำกัดแค่สาย ML/ software development เท่านั้น งานวิจัยของ World Economic Forum คาดการณ์ว่าคนทำงานมากกว่าครึ่งหนึ่งต้องมีการ reskill/ upskill ตัวเองภายในปี 2025 และ data skills เป็นหนึ่งในทักษะที่สำคัญมากๆติดอันดับ top 5

ยิ่งเราเก่งขึ้นเท่าไหร่ โอกาสในชีวิตก็จะมีมากขึ้นเท่านั้น Opportunity = Skills + Luck

ใบเซอร์ machine learning ที่ได้จาก linkedin learning
เรียนจบได้ linkedin certificate ด้วยนะครับ เย้

⭐ ขอบคุณอาจารย์ Ben Sullins และเนื้อหาดีๆในคอร์ส Top 10 Skills for Machine Learning Professionals อีกครั้งครับ

Leave a Reply