Refactor โค้ด Neural Network สร้าง DataBunch และ Learner ปรับปรุง Training Loop – Neural Network ep.9

ใน ep ที่แล้วเราได้ Neural Network และ Training Loop ที่ทำงานได้ดีพอสมควร มีการวัดผล Metrics กับข้อมูลใน Validation Set เพื่อให้แน่ใจว่าโมเดลทำงานได้ถูกต้องกับข้อมูลที่ไม่เคยเห็นมาก่อน

แต่โค้ด Training Loop ของเรายังมีความซับซ้อนเกินไป ใช้ Parameter จากภายนอกถึง 6 ตัว ซึ่งมากเกินไป ทำให้ยากต่อการต่อยอดเทรนในอัลกอริทึมที่ซับซ้อนยิ่งขึ้น แล้วเราจะแก้ไขอย่างไร

Continue reading “Refactor โค้ด Neural Network สร้าง DataBunch และ Learner ปรับปรุง Training Loop – Neural Network ep.9”

สำรวจข้อมูล Exploratory Data Analysis (EDA) ด้วย Pandas Profiling วิเคราะห์ Pandas DataFrame – Pandas ep.6

เมื่อเราได้ Dataset ใหม่มา สิ่งแรกที่เราควรทำ คือ Exploratory Data Analysis (EDA) ทำความเข้าใจข้อมูล ในแต่ละ Feaure เช่น ข้อมูลเป็นชนิดอะไร, ข้อมูลเป็นแบบต่อเนื่องหรือไม่ต่อเนื่อง, ช่วงของข้อมูลกว้างแค่ไหน, การกระจายของข้อมูลเป็นอย่างไร, มีข้อมูลขาดหายไปเยอะแค่ไหน, แต่ละ Feature เชื่อมโยงกันอย่างไร

การวิเคราะห์ทั้งหมดนี้ค่อนข้างซับซ้อน และซ้ำซ้อนเหมือนกันในทุก ๆ Dataset จะมีวิธีไหนที่จะทำให้งานซ้ำ ๆ เหล่านี้ง่ายขึ้น

Continue reading “สำรวจข้อมูล Exploratory Data Analysis (EDA) ด้วย Pandas Profiling วิเคราะห์ Pandas DataFrame – Pandas ep.6”

args, kwargs คืออะไร สอนเขียน Function ที่ใช้ args, kwargs ตัวอย่างการใช้งาน args, kwargs ในภาษา Python – Python ep.9

ในการประกาศฟังก์ชัน รายการ Parameter คือ การระบุว่า ฟังก์ชันนั้นจะรับ Argument อะไรบ้าง

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

Continue reading “args, kwargs คืออะไร สอนเขียน Function ที่ใช้ args, kwargs ตัวอย่างการใช้งาน args, kwargs ในภาษา Python – Python ep.9”

Partial Function คืออะไร สอนเขียน Partial Function ตัวอย่างการใช้งาน functools.partial ในภาษา Python – Python ep.8

Partial Function คือ การสร้างฟังก์ชันใหม่ ขึ้นมาจากฟังก์ชันที่มีอยู่ โดย Fix Parameter ส่วนหนึ่งไว้ ทำให้เราได้ฟังก์ชันใหม่ที่ต้องการ Parameter น้อยลง ทำให้ Signature ของฟังก์ชันดูเรียบง่ายขึ้นกว่าเดิม

Continue reading “Partial Function คืออะไร สอนเขียน Partial Function ตัวอย่างการใช้งาน functools.partial ในภาษา Python – Python ep.8”

Lambda Expression คืออะไร สอนเขียน Anonymous Function ตัวอย่างการใช้งาน Lambda Function ในภาษา Python – Python ep.7

Lambda Expression คือ การประกาศฟังก์ชันเล็ก ๆ ที่สร้างขึ้นมาเฉพาะกิจ ในภาษา Python เป็น Anonymous Function คือ ฟังก์ชันนิรนาม ที่ประกาศโดยไม่ได้ตั้งชื่อ การไม่ได้ประกาศฟังก์ชันอย่างเต็มรูปแบบ ความกระชับของโค้ด และการไม่ได้ตั้งชื่อ ทำให้มีข้อดี เหมาะกับใช้ซ้อนในฟังก์ชั่นอื่น

Continue reading “Lambda Expression คืออะไร สอนเขียน Anonymous Function ตัวอย่างการใช้งาน Lambda Function ในภาษา Python – Python ep.7”

Callback Function คืออะไร สอนเขียน Callback ฟังก์ชั่น ตัวอย่างการใช้งาน Callback ในภาษา Python – Python ep.6

ในภาษา Python เราสามารถส่งโค้ดเป็น Parameter ไปให้ฟังก์ชันอื่นเรียก เมื่อเกิดเหตุการณ์บางอย่าง เรียกว่า Callback

การที่เราส่งโค้ดฟังก์ชันอะไรก็ได้ ไปให้คนอื่นเรียกเวลาที่เกิดเหตุการณ์อะไรสักอย่าง ทำให้เราสามารถกำหนดพฤติกรรมตอบสนองต่อเหตุการณ์นั้น ได้อย่าง Dynamic

Continue reading “Callback Function คืออะไร สอนเขียน Callback ฟังก์ชั่น ตัวอย่างการใช้งาน Callback ในภาษา Python – Python ep.6”

MNIST คืออะไร

MNIST Database คือ ชุดข้อมูลรูปภาพของตัวเลขอารบิก 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ที่เขียนด้วยลายมือ 70,000 รูป MNIST คือ ชุดข้อมูลสำหรับไว้เทรน Artificial Intelligence (AI) เกี่ยวกับ Computer Vision / Image Processing

Continue reading “MNIST คืออะไร”

TensorFlow 2.0.0 ออกแล้ว

หลังจากที่ Google ปล่อย TensorFlow Release 2.0.0-rc2 มาเมื่อสัปดาห์ก่อน วันนี้ก็ได้ฤกษ์ปล่อยตัวจริง ก่อนงาน TensorFlow World ที่จะจัดขึ้นปลายเดือนตุลานี้

TensorFlow 2.0.0 Release ออกแล้ว TF2.0 ออกแบบโดยลดความซับซ้อนลง เน้นให้ใช้งานง่าย และ Integrate กับ Keras อย่างแนบแน่น TF2.0 มีฟีเจอร์ใหม่ ๆ อย่างเช่น

Continue reading “TensorFlow 2.0.0 ออกแล้ว”

Categorize การเตรียมข้อมูลหมวดหมู่ Categorical Data ด้วย One-Hot Encoding, Map ก่อนเทรน Machine Learning – Preprocessing ep.3

นอกเหนือจากข้อมูลตัวเลข Cardinal ค่าต่อเนื่อง (Continuous) เราจะพบ Feature ที่เป็นข้อมูลค่าไม่ต่อเนื่อง (Discrete) ในรูปแบบตัวเลขแบบ Ordinal, Nominal หรือข้อความ คือ มีค่าที่เป็นไปได้จำกัด ระบุว่าอยู่หมวดหมู่ไหน เช่น วันในสัปดาห์ 1 จันทร์, 2 อังคาร, 3 พุธ, … คือ 1 ใน 7 ค่าเท่านั้น

เราจะไม่สามารถทำ Rescale, Normalize แบบใน ep 2 ได้ แล้วเราจะเตรียมข้อมูลชนิดนี้อย่างไรดี ถึงจะป้อนให้ Machine Learning ใช้เทรนได้

Continue reading “Categorize การเตรียมข้อมูลหมวดหมู่ Categorical Data ด้วย One-Hot Encoding, Map ก่อนเทรน Machine Learning – Preprocessing ep.3”

Normalization คืออะไร ปรับช่วงข้อมูล Feature Scaling ด้วยวิธี Normalization, Standardization ก่อนเทรน Machine Learning – Preprocessing ep.2

การทำ Feature Scaling คือ วิธีการปรับช่วงขอบเขตของข้อมูลชนิดตัวเลข Cardinal แต่ละ Feature (Field) ให้อยู่ในช่วงเดียวกัน ที่เหมาะกับการนำไปประมวลผลต่อ เข้าสูตรคำนวณได้ง่าย เช่น ช่วง [0, 1] หรือ [-1, 1] ได้ผลลัพธ์อยู่ในช่วงที่กำหนด เรียกว่า Data Normalization นิยมทำในขั้นตอน Preprocessing จัดเตรียมข้อมูล ก่อนป้อนให้โมเดลใช้เทรน

Continue reading “Normalization คืออะไร ปรับช่วงข้อมูล Feature Scaling ด้วยวิธี Normalization, Standardization ก่อนเทรน Machine Learning – Preprocessing ep.2”