/ Machine Learning

เครื่องมือพื้นฐานสำหรับงาน Machine Learning

ในช่วงหลายปีที่ผ่านมา มีการพัฒนาเครื่องมือ (Library) ขึ้นสำหรับงานด้านวิทยาศาสตร์ข้อมูล (Data Science) และ Machine Learning จำนวนมาก โดยเครื่องมือสำคัญหลายตัวถูกออกแบบมาให้ใช้งานกับ Python โดยเฉพาะ นั่นเป็นสาเหตุว่าทำไมคนส่วนใหญ่ที่พัฒนาโมเดล Machine Learning ถึงใช้ Python

ในบรรดาเครื่องมือเหล่านี้ มีเครื่องมือพื้นฐานจำนวนหนึ่งที่จะได้ใช้แน่นอนเมื่อทำงานเกี่ยวข้องกับ Machine Learning ดังนั้นเราจึงจำเป็นต้องศึกษา และฝึกใช้เครื่องมือเหล่านี้ให้คุ้นชิน

Numpy

เครื่องมือที่ช่วยในการทำงานเกี่ยวกับ N-dimensional array (Numpy array) ซึ่งเป็นโครงสร้างข้อมูลที่มีความสำคัญและถูกใช้งานบ่อยมาก เพราะข้อมูลหลายอย่างใน Machine Learning เก็บอยู่ในรูป array หลายมิติ เช่น feature ของข้อมูลหนึ่งตัวจะเก็บเป็น vector (1-dimensional array) หรือ feature ของข้อมูลหนึ่งชุดจะเก็บเป็น matrix (2-dimensional array)

Pandas

เครื่องมือสำหรับจัดการและวิเคราะห์ข้อมูล โครงสร้างข้อมูลที่ใช้เป็นหลักใน Pandas คือ DataFrame ซึ่งเป็นเหมือนตารางสำหรับข้อมูลสองมิติ โดยมีฟังก์ชันมากมายในการจัดการข้อมูลตารางนี้ให้อยู่ในรูปแบบที่เราต้องการได้

Matplotlib

เครื่องมือสำหรับพล็อตกราฟในรูปแบบต่างๆ ซึ่งช่วยให้เราวิเคราะห์ข้อมูลได้ง่ายขึ้น เช่น กราฟเส้น (Line plots), กราฟแท่ง (Bar charts), ฮิสโตแกรม (Histograms), แผนภูมิวงกลม (Pie charts), แผนภูมิกระจาย (Scatter plots)

Scikit-learn

เครื่องมือที่ใช้สร้างโมเดล Machine Learning ทั้งแบบ supervised และ unsupervised ได้หลากหลาย เช่น Logistic Regression, Support Vector Machines, Random Forests, Nearest Neighbors

นอกจากนี้ Scikit-learn ยังมีฟังก์ชันในการ preprocess ข้อมูล จัดแบ่งข้อมูล และวัดผลโมเดลด้วย

Jupyter Notebook

เป็นพื้นที่เขียน python แบบ interactive ในรูป web-based application ช่วยให้เราสามารถทดลองรันคำสั่งต่างๆ ได้ง่าย เช่น เราอาจต้องการโหลดข้อมูลครั้งเดียวเก็บใน memory ไว้ก่อน จากนั้นทดลองรันคำสั่งอื่นอีกหลายๆคำสั่ง ด้วยวิธีแก้โค้ดไป รันไป โดยไม่ต้องเสียเวลาโหลดข้อมูลเดิมซ้ำ

Anaconda

เครื่องมือที่ช่วยในการจัดการ library สำหรับงานวิทยาศาสตร์ข้อมูลและ Machine Learning โดยเฉพาะ มาพร้อมกับ library พื้นฐานจำนวนมากรวมถึง library ทุกตัวที่กล่าวมาข้างต้น

Machine Learning Framework

ในกรณีที่เราพัฒนาโมเดลง่ายๆ เราสามารถใช้ Scikit-learn ได้ แต่เมื่อเราต้องการสร้างโมเดลที่ซับซ้อนขึ้นโดยเฉพาะพวก Deep Learning เราจำเป็นต้องใช้ framework สำหรับ Machine Learning โดยเฉพาะ ซึ่งมีอยู่ 2 ตัวที่ใช้กันอย่างแพร่หลาย

  1. TensorFlow พัฒนาโดย Google
  2. PyTorch พัฒนาโดย Facebook

framework สองตัวนี้ออกแบบมาเพื่อให้เราทำงาน Machine Learning ได้ง่ายขึ้น อย่างไรก็ตาม ทั้งสองตัวมีรายละเอียดในการนิยามและการสอนโมเดลแตกต่างกัน แนะนำให้ศึกษาและใช้อย่างใดอย่างหนึ่งจนชินเสียก่อน ส่วนตัวผมใช้ TensorFlow เป็นหลัก เพราะมากับ Keras ซึ่งเป็น library ที่ช่วยให้การเขียนโค้ดเพื่อนิยามและสอนโมเดลทำได้ง่าย และสั้นกระชับ

ส่งท้าย

TensorFlow และ PyTorch มีอัตราการเติบโตที่รวดเร็วทั้งคู่ โดยปัจจุบัน TensorFlow เป็นที่นิยมมากกว่า PyTorch เมื่อวัดตามจำนวนผู้ติดตามบน GitHub

มีผู้ใช้พูดถึงข้อดีข้อเสียและเปรียบเทียบสอง framework นี้ให้เห็นโดยทั่วไป สำหรับผู้อ่านที่ใช้งานเป็นประจำอยู่แล้ว มาร่วมแชร์ความเห็นกันได้นะครับ

เครื่องมือพื้นฐานสำหรับงาน Machine Learning
Share this

Subscribe to Code on the Hill