ในการศึกษา Machine Learning เราจะพบคำว่า One Hot Encoding อยู่เสมอ ๆ ใน ep นี้เราจะมาเรียนรู้กันว่า One Hot Encoding คืออะไร One Hot Encoding มีประโยชน์อย่างไร ช่วยแก้ปัญหาอะไร ทำไม Machine Learning ต้องใช้ One Hot Encoding

MNIST Data Number 8 in Grayscale Pixel Value
MNIST Data Number 8 in Grayscale Pixel Value

โมเดล Machine Learning เป็นซอฟต์แวร์ที่อยู่ในคอมพิวเตอร์ ไม่ว่าอย่างไรคอมพิวเตอร์ก็ต้องรับข้อมูลที่เป็นตัวเลขเท่านั้น ข้อมูลทุกอย่างไม่ว่าจะเป็น รูปภาพ, เสียง, วิดีโอ, ตัวหนังสือ, ตัวเลข, ข้อมูล Category, etc. จะต้องถูกแปลงเป็นตัวเลขในรูปแบบที่ต้องการ เรียกว่า Encoding

ASCII chart from an earlier-than 1972 printer manual (b1 is the least significant bit.) Credit: https://en.wikipedia.org/wiki/ASCII
ASCII chart from an earlier-than 1972 printer manual (b1 is the least significant bit.) Credit: https://en.wikipedia.org/wiki/ASCII

การ Encoding มีหลายวิธี มีข้อดี ข้อเสีย แตกต่างกันไป เราจะอธิบายต่อไป ใน ep นี้เราจะมาพูดถึง Encoding ที่เป็นที่นิยมมากที่สุดใน Machine Learning คือ One Hot Encoding

ความหมายของ One Hot Encoding

One Hot Encoding คือ การ Encode ข้อมูล Categorical Data ที่ปกติเก็บเป็น Nomimal Number, Ordinal Number ให้แตกเป็น Column ย่อย ๆ แบบ Binary 0/1 ตาม Value ของข้อมูล ดูตัวอย่างจะเห็นภาพชัดกว่า

ตัวอย่าง เช่น ตารางด้านล่าง ใน Column สีเสื้อ แดง 1 เขียว 2 น้ำเงิน 3

ชื่อจำนวนบุตรสีเสื้อ
คุณ A42
คุณ B31
คุณ C13
คุณ D21

เมื่อเราแปลงข้อมูล Column สีเสื้อ เป็น One Hot Encoding จะได้ดังนี้

ชื่อ จำนวนบุตร สีเสื้อ แดง สีเสื้อ เขียว สีเสื้อ น้ำเงิน
คุณ A4010
คุณ B3100
คุณ C1001
คุณ D2100

ในวิชาสถิติ จะเรียก Column เหล่านี้ ว่า Dummy Variables

ข้อดีของ One Hot Encoding

  1. ข้อมูลที่ Encode แบบ One Hot จะช่วยให้โมเดล Machine Learning ทำงานง่ายขึ้น เปรียบได้กับ แทนที่โมเดลจะเรียนรู้ Pattern จากสัญญาณเดียว 3 ระดับ เปลี่ยนมาเรียนรู้จากสวิทช์ปิดเปิด 3 ตัวแทน
  2. ความหมายของข้อมูลแบบ Nominal จะตรงขึ้น เนื่องจาก สีแดง 1 ไม่ได้ใกล้เคียง สีเขียว 2 มากกว่าสีน้ำเงิน 3
  3. สามารถใช้ไป Dot Product กับ Matrix ที่ต้องการ เช่น Embedding ได้ความหมาย จะอธิบายต่อไป

ข้อเสียของ One Hot Encoding

  1. เปลืองเนื้อที่ เปลือง Memory ที่เก็บค่า 0 เป็นส่วนใหญ่ เรียกว่า Sparse Matrix
  2. ความหมายของลำดับข้อมูลแบบ Ordinal จะหายไป เนื่องจากทุก Category แตกต่างกันเท่ากันหมด
  3. ข้อมูลจะอยู่ได้แต่ 1 Category เท่านั้น ถ้ามากกว่า 1 จะเรียกว่า Multi-Hot Encoding จะอธิบายต่อไป
  4. ถ้าข้อมูลมี Value หลากหลายมาก เช่น มีสีเสื้อ 10,000 สี จะทำให้มีปัญหา
  5. ถ้าข้อมูลมีการเพิ่ม Categoryใหม่ ๆ เล็ก ๆ ยิบย่อยอยู่ตลอด จะทำให้มีปัญหา เช่น เพิ่มสีเสื้อใหม่

One Hot Encoding คือ การ Encode แบบหนึ่ง ยังวิธีการ Encoding ข้อมูลอีกอย่างหนึ่ง ที่นิยมใน Machine Learning คือ Embedding จะอธิบายต่อไป

แชร์ให้เพื่อน:

Surapong Kanoktipsatharporn on FacebookSurapong Kanoktipsatharporn on LinkedinSurapong Kanoktipsatharporn on Rss
Surapong Kanoktipsatharporn
Solutions Architect at Bua Labs
The ultimate test of your knowledge is your capacity to convey it to another.

Published by Surapong Kanoktipsatharporn

The ultimate test of your knowledge is your capacity to convey it to another.