P
peune
researcher
nectec
Please login first.
Page Visits: 2772
Comments: 7

PCA

PCA

Hello, ไม่ได้เข้ามาเขียนซะนาน

วันนี้จะมาดูเรื่อง PCA หรือ Principal Component Analysis กัน คือว่ามีนักเรียน 2 คนแล้วที่เขียน paper ส่งมาให้ผมดูแล้วบอกมาว่า PCA มีปัญหาเพราะตั้งอยู่บนสมมติฐาน Gaussian พอถามกลับไปว่าอะไรคือปัญหาก็บอกไม่ได้ บอกว่าไป quote ตามเขามา ลองมาทบทวนกันซิว่า PCA มันคืออะไร

สมมติว่าเรามีเซตของ vector X={x1,...,xn} อยู่ PCA นั้นใช้สำหรับหาทิศทางที่ข้อมูลมีการกระจายมากที่สุด

  • ทิศทางนั้นคืออะไร? มันก็คือเวคเตอร์อีกอัน สมมติว่าให้เป็น w
  • การกระจายของข้อมูลตาม w คำนวนยังไง? ก็คำนวณจาก projection ของ เวคเตอร์ x1,...,xn บน w  ถ้า w เป็น unit vector (||w||=1=w'w) แล้ว projection ก็คำนวณได้จาก dot product นั้นเอง
  • นั่นคือ x1'w, ..., xn'w เป็น projection เหล่านี้ (ให้ x' เป็น transpose ของ x)
  • เรารู้ทิศทางและข้อมูลตามทิศทางนี้แล้ว การกระจายจะคำนวณยังไง? ก็คำนวณจากค่า variance ถ้าสมมติว่า x1,...,xn นั้น center ที่ 0 แล้วค่า variance ตามทิศทาง w ก็คำนวนได้จาก

Var(w,X) = (1/n) Sum_{i=1,...,n} (xi'w)^2

            = (1/n) Sum_{i=1,...,n} (w'xi) (xi'w)

            = w' [(1/n) Sum_{i=1,...,n} xi xi'] w

          = w' C w                    

เมื่อ C คือ covariance matrix

  • จากทั้งหมดนี้เราสรุปได้ว่าปัญหาของ PCA นั้นเขียนได้ว่า

max_w w' C w เมื่อ w'w = 1

  • Lagrangian ของปัญหาข้างบนคือ L = w'Cw - l(w'w - 1) โดยที่ l เป็น Lagrange coeff ของปัญหานี้
  • เพื่อหา optimum, เราก็ set partial derivative เมื่อเทียบกับ w = 0 แล้วแก้สมการหาค่า w ซึ่งจะได้ว่า

C w = l w

ซึ่งหมายความว่า w เป็น eigenvector ของ C และ l เป็น eigenvalue ที่คู่กับมัน

  • ค่า variance คือ w'Cw = w' lw = l w'w = l นั่นคือ eigenvalue l ก็คือค่า variance ตามทิศทาง w นั่นเอง
  • ดังนั้น principal component หาได้จาก eigenvector ที่มีค่า eigenvalue สูงสุด

คำถาม Gaussian มันมาเกี่ยวอะไรด้วย?

คำตอบ 1 บางคนอาจจะบอกว่าเรามอง PCA เป็นแบบ probabilistic model ก็ได้นี่แล้วก็ทำ maximum likelihood เพื่อหา w โดยตั้งสมมติฐานว่า noise เป็น Gaussian ไง

ผมก็เถียงได้ว่าแล้ววิธีที่ผมมองตามข้างต้นหละ มันไม่เห็นมี Gaussian มาเกี่ยวเลยนี้ เพราะฉะนั้นความไม่เหมาะน่าจะมาจากวิธีมองปัญหาของคุณมากกว่านี่

คำตอบ 2 การที่การกระจายแบบ Gaussian หลายมิติสามารถเขียนให้อยู่ในรูปของ eigenvector นี่ไม่ได้แปลว่า PCA นั้นอิงการกระจายแบบ Gaussian เหรอ?

คำตอบก็คือไม่ ถึงข้อมูลจะกระจายแบบอื่นเช่นมีหลาย cluster ยังไงแกน principal component ก็ยังหาได้จาก eigenvector ตราบใดที่เรายังวัดการกระจายของข้อมูลด้วยค่า variance

ผมคิดว่าที่คนบอกว่าสมมติฐาน Gaussian ที่ implicite ใน PCA นั้นทำให้มันไม่เหมาะกับบางงาน นั้นดูจะไม่ถูก เพราะผมถือว่าถ้าคุณเลือก PCA มาใช้ก็แปลว่าคุณคิดว่าแกนที่มีการกระจายของข้อมูลสูงเป็นทิศทางที่น่าสนใจ ถ้า PCA มีปัญหาก็แปลว่าจริงๆแล้วทิศทางที่มีการกระจายข้อมูลมากนั้นไม่ใช่ทิศทางที่น่าสนใจ ผมยังไม่เคยเห็นปัญหาที่เราต้องการหาทิศทางที่มีการกระจายข้อมูลมากและไม่เหมาะกับ PCA

จริงๆแล้วทิศทางที่น่าสนใจนั้นขึ้นกับงาน

  • ถ้าเราสนการกระจายข้อมูล ก็ใช้ PCA
  • ถ้าเราสนใจการแบ่ง class ก็ใช้ LDA
  • ถ้าเราสนใจ structure แปลกๆ ก็ใช้ ICA

ดังนั้นความเหมาะหรือไม่เหมาะนั้นขึ้นกับการเลือก technique มาใช้งานมากกว่า คุณคิดว่าไง?

 

Created: Fri, May 02, 2008 @ 04:31 PM Modified: Fri, May 02, 2008 @ 04:31 PM

Comments

1.
30
KonG [IP: 131.112.182.67]
on Mon, Jun 02, 2008 @ 01:07 PM
#1074 [ Delete ]

ยอดเลย อ.ปืน มีสาระมากๆ

ชอบๆ

ปล. LDA ในฟิลด์ของ NLP จะนึกว่าเป็น Latent Dirichlet Allocation นะครับ

2.
30
ปืน [IP: 203.185.129.242]
on Mon, Jun 02, 2008 @ 03:48 PM
#1075 [ Delete ]

ถูกต้องครัย LDA เป็นตัวย่อที่ใช้กันบ่อยสำหรับ 2 techniques คือ Linear Discriminant Analysis และ Latent Dirichlet Allocation วันหลังจะมา review เท่าที่เข้าใจ

3.
30
suleeporn [IP: 58.147.85.2]
on Wed, Dec 24, 2008 @ 04:49 PM
#1723 [ Delete ]

ได้อ่านสาระที่อาจารย์เขียนแล้วสนใจมากๆค่ะ

ตอนนี้กำลังศึกษาเรื่องเกี่ยวกับ Pattern Recognition

image retrieval ฟังก์ชั่นการตัดสินใจ

แต่ยังไม่ค่อยได้เรื่องเท่าไหร่เพราะติดขัดเรื่องภาษา

เอกสารมีเยอะแต่เป็นอังกฤษ อยากได้ภาษาไทยจังเลยค่ะ

4.
30
sakurajung [IP: 119.42.101.180]
on Tue, Jan 26, 2010 @ 11:10 PM
#3626 [ Delete ]

อยากทราบรายละเอียดเกี่ยวกับPCA ค่ะ คือตอนนี้สามารถคำนวณหาค่าแกน PC ได้แล้ว แต่็ยังไม่เข้าใจหลักการจริงๆของPCA สักที คืออยากทราบว่าPCA สามารถจัดกลุ่มของข้อมูลได้อย่างไงค่ะ

ถ้ามีตัวอยากประกอบด้วยก็ดีนะค่ะ

ช่วยหน่อยนะค่ะ

5.

PCA จัดกลุ่มไม่ได้ด้วยตัวมันเองนะครับที่สำคัญมันเป็น unsupervised ด้วย

แต่เป็นเหมือนประตูมิติของโดเรมอนที่เปิดจากโลกหนึ่งไปหาโลกของ Feature ที่แยกกันอยู่มากกว่าเดิม (maximize variance)

เพื่อทำหน้าที่อำนวยความสะดวกให้ Classifier สามารถแยกแยะได้ง่ายขึ้น

6.
30
ปืน [IP: 203.185.129.242]
on Wed, Jan 27, 2010 @ 06:07 PM
#3631 [ Delete ]

ตามต้น (ดร. ปริญญา) ว่าเลยครับ

7.
30
clinictech
on Thu, Jan 28, 2010 @ 05:27 PM
#3636 [ Delete ]

ได้รับความรู้มากเลยครับ กำลังเรียนด้าน data mining อยู่พอดี

Name:
Email:
IP Address: 38.107.191.102
Message:  
Load Editor
 
Security Code: ( enter the code above )
  Cancel or Preview or

Other Posts By This Blogger