นักวิทยาศาสตร์ข้อมูล (Data Scientist)

การลดจำนวน feature สำหรับการเรียนรู้แบบมีผู้สอน

ในการเรียนรู้แบบมีผู้สอน (supervised learning) การใช้ feature (ลักษณะเด่น) หรือตัวแปรทั้งหมดที่มีอยู่สำหรับฝึกสอนระบบถือเป็นเรื่องปกติ แต่มีบางกรณีที่จำนวน feature ที่มีอยู่มีมากเกินไปจนทำให้ยากต่อการฝึกสอนระบบให้ได้ดี ในกรณีนี้ควรทำอย่างไร? บทความนี้จะพูดถึงภาพรวมกว้างๆของการลดจำนวน feature เพื่อสอนระบบให้ได้อย่างมีประสิทธิภาพ

ตัวอย่างของปัญหาที่มีตัวแปรมากคือ งานด้านการจำแนกเอกสาร (text classification) การสร้าง feature ที่นิยมใช้กันมากในงานด้านนี้คือ bag of words กล่าวคือให้หนึ่งคำเป็นหนึ่ง feature แล้วค่าของ feature นั้นๆคือจำนวนครั้งของคำนั้นที่เกิดขึ้นในเอกสาร การใช้ bag of words แบบนี้จะทำให้จำนวน feature เท่ากับจำนวนคำทั้งหมดในคลังข้อความ ซึ่งโดยทั่วไปจะมีมากกว่า 20000 คำ นั่นแปลว่าระบบต้องเรียนรู้ในปริภูมิที่ใหญ่มากกว่า 20000 มิติ

การฝึกสอนระบบโดยใช้จำนวน feature มากๆ อาจเกิดปัญหาดังต่อไปนี้ได้

  • noise ใน feature อาจกระทบกับการเรียนรู้ ถ้ามี feature จำนวนมาก noise ก็เยอะตาม
  • สิ้นเปลืองเนื้อที่ในการเก็บข้อมูล
  • การฝึกสอนกินเวลามาก
  • โมเดลที่ได้มาไม่สามารถตีความได้ง่ายเนื่องจากขึ้นอยู่กับตัวแปรจำนวนมาก

ด้วยเหตุนี้จึงมีงานวิจัยด้าน dimensionality reduction เกิดขึ้นมาเพื่อแก้ปัญหาดังกล่าว งานวิจัยด้านนี้สามารถแบ่งได้เป็น 2 หมวดกว้างๆคือ feature extraction และ feature selection

Feature Extraction

feature extraction คือการแปลง (transform) feature ให้อยู่ในปริภูมิที่มีมิติที่ต่ำกว่าเพื่อให้การเรียนรู้ทำได้ง่ายขึ้น การ”แปลง” ในที่นี้ก็คือการสร้าง feature ใหม่ขึ้นมานั่นเอง โดยที่ feature ใหม่ที่ว่านี้เกิดจากการทำอะไรบางอย่างกับ feature เก่าที่มี เขียนเป็นสมการได้แบบนี้ กำหนดให้ $\mathbf{X} = (X_1, \ldots, X_D)$ แทน feature ชุดเดิมจำนวน $D$ อัน ให้ $\mathbf{X’} = (X’_1, \ldots, X’_{d})$ แทน feature ชุดใหม่ซึ่งมี $d$ อัน โดยที่ $d<D$ และให้ $\mathbf{Y}$ แทน output ที่ต้องการเรียน เช่นหากพูดถึงงานจำแนกเอกสาร $\mathbf{Y}$ คือประเภทหรือหมวดหมู่ของเอกสาร

การทำ feature extraction ก็คือการใช้ฟังก์ชัน $g$ เพื่อให้ได้ feature ชุดใหม่

$$\begin{align}
X’_1 &= g_1(\mathbf{X}, \mathbf{Y}) \\
X’_2 &= g_2(\mathbf{X}, \mathbf{Y}) \\
\vdots &= \vdots \\
X’_{d} &= g_{d}(\mathbf{X}, \mathbf{Y})
\end{align}$$

โดยที่ฟังก์ชัน $g$ จะทำอะไรก็ขึ้นอยู่กับขั้นตอนวิธี (algorithm) ของ feature extraction ที่ใช้ ยกตัวอย่างเช่นใน Linear Discriminant Analysis (LDA)  $g$ จะเป็นฟังก์ชันเพื่อฉาย (project) ลงบนปริภูมิย่อยในลักษณะที่ ข้อมูลที่มาจาก class  ต่างกัน (เช่นเอกสารมาจากต่างหมวดกัน) จะแยกจากการ และข้อมูลใน class เดียวกันจะเกาะกลุ่มกันเพื่อให้สามารถจำแนกประเภทได้ง่าย

จะเห็นว่าการทำ feature extraction แบบนี้สามารถลดเวลาการฝึกสอนได้ เพราะ $d < D$ และเพิ่มความถูกต้องในการเรียนรู้ด้วยหาก feature ใหม่ที่ได้เหมาะกับปัญหานั้นๆ แต่ feature extraction ไม่ได้ช่วยแก้ปัญหาเรื่องการตีความ feature ชุดเดิม หากต้องการหาว่า feature ตัวไหนมีส่วนช่วยในการเรียนรู้ได้มาก เราต้องทำ feature selection

Feature Selection

feature selection ก็คือการเลือก feature ที่สามารถอธิบาย $\mathbf{Y}$ ได้ พูดอีกอย่างก็คือการตัด feature ที่ไม่จำเป็นออก จุดต่างของ feature extraction และ feature selection คือการสร้าง feature ใหม่หรือไม่ feature extraction มีการ “แปลง” แปลว่าเราได้ feature ชุดใหม่ แต่ feature selection ไม่มีการแปลง แค่ตัดออกหรือเลือกเก็บไว้ จึงได้ feature ชุดเดิมแต่จำนวนน้อยลง ทำให้ความหมายของ feature ยังคงเดิม ยกตัวอย่างเดิมคือเรื่องการจำแนกเอกสาร ถ้าเราใช้ bag of words เป็น feature แล้วเราทำ feature selection เพื่อเลือก feature 100 ตัวที่ดีที่สุด เราก็จะรู้ได้ว่าคำ 100 คำที่ดีที่สุดที่สามารถจำแนกประเภทเอกสารได้คือคำอะไรบ้าง เป็นต้น

feature selection มีชื่อเรียกหลายอย่าง ในงานด้านสถิติมักเรียกว่า variable selection เพราะมองว่า feature แต่ละอันคือตัวแปรแบบสุ่ม (random variable) บางทีเรียกว่า subset selection เพราะการเลือกของจำนวนหนึ่งออกจากของทั้งหมดก็คือการเลือก subset นั่นเอง และอย่างที่ทราบกันว่าถ้าเรามี feature $d$ ตัวแล้ว จำนวน subset ทั้งหมดที่เป็นไปได้คือ $2^d$ ซึ่งใหญ่มาก (แค่มี feature 20 ตัวก็สามารถเลือกได้มากกว่า 1 ล้านแบบแล้ว) เราไม่สามารถไล่เช็คที่ละ subset แล้วหาว่าอันไหนดีที่สุดได้ (brute-force search) จริงๆแล้ว feature selection เป็นปัญหา NP-hard

อ่านเพิ่มเติม

Wittawat Jitkrittum

I am interested in machine learning and its practical applications. I am studying for a PhD at Gatsby Unit, University College London.
Loading Facebook Comments ...

Leave a Reply