Kernel PCA có kernel tuyến tính tương đương với PCA tiêu chuẩn không?


17

Nếu trong kernel PCA tôi chọn kernel tuyến tính , thì kết quả sẽ khác với PCA tuyến tính thông thường ? Là các giải pháp về cơ bản khác nhau hoặc một số quan hệ được xác định rõ tồn tại?K(x,y)= =xy

Câu trả lời:


27

Tóm tắt: PCA kernel với kernel tuyến tính hoàn toàn tương đương với PCA tiêu chuẩn.

Đặt là ma trận dữ liệu trung tâm có kích thước với các biến trong cột và điểm dữ liệu trong các hàng. Sau đó, ma trận hiệp phương sai được đưa ra bởi , các hàm riêng của nó là các trục chính và giá trị riêng là phương sai của PC. Đồng thời, người ta có thể xem xét cái gọi là ma trận Gram của kích thướcDễ dàng thấy rằng nó có cùng giá trị riêng (tức là phương sai PC) cho đến yếu tố và các hàm riêng của nó là các thành phần chính được chia tỷ lệ theo đơn vị định mức. N × D D N D × D XX / ( n - 1 ) X X N × N n - 1XN×DDND×DXX/(n-1)XXN×Nn-1

Đây là PCA tiêu chuẩn. Bây giờ, trong kernel PCA, chúng tôi xem xét một số hàm φ(x) ánh xạ mỗi điểm dữ liệu sang một không gian vectơ khác thường có kích thước lớn hơn Dnew , thậm chí có thể là vô hạn. Ý tưởng của PCA kernel là thực hiện PCA tiêu chuẩn trong không gian mới này.

Vì kích thước của không gian mới này rất lớn (hoặc vô hạn), nên khó có thể hoặc không thể tính được ma trận hiệp phương sai. Tuy nhiên, chúng ta có thể áp dụng cách tiếp cận thứ hai cho PCA đã nêu ở trên. Thật vậy, ma trận Gram vẫn sẽ có cùng kích thước N \ lần N có thể quản lý được N×N. Các phần tử của ma trận này được đưa ra bởi φ(xTôi)φ(xj) , mà chúng ta sẽ gọi hàm kernel K(xTôi,xj)= =φ(xTôi)φ(xj) . Đây là những gì được gọi là thủ thuật kernel : người ta thực sự không cần phải tính φ() , mà chỉ cần K() . Eigenvector của ma trận Gram này sẽ là thành phần chính trong không gian đích, là thành phần chúng ta quan tâm.

Câu trả lời cho câu hỏi của bạn bây giờ trở nên rõ ràng. Nếu , thì ma trận Gram hạt nhân giảm xuống còn bằng với ma trận Gram chuẩn và do đó các thành phần chính sẽ không thay đổi.X XK(x,y)= =xyXX

Một tài liệu tham khảo rất dễ đọc là Scholkopf B, Smola A và Müller KR, phân tích thành phần chính của Kernel, 1999 , và lưu ý rằng, ví dụ trong Hình 1, chúng đề cập rõ ràng đến PCA tiêu chuẩn như là một sản phẩm sử dụng dấu chấm làm hàm nhân:

hạt nhân PCA


những hình ảnh trong câu trả lời của bạn là gì? Từ cuốn sách nào?
Pinocchio

@Pinocchio, con số được lấy từ Scholkopf et al. giấy, được tham khảo và liên kết đến trong câu trả lời của tôi.
amip nói phục hồi Monica

"Thật dễ dàng để thấy rằng nó có cùng giá trị riêng (tức là phương sai PC) lên đến n-1 nhân tố " - điều này có nghĩa là chúng không hoàn toàn tương đương? Giả sử tôi có một ma trận với n = 10 mẫu, d = 200 kích thước. Trong PCA tiêu chuẩn, tôi có thể chiếu dữ liệu lên 199 kích thước nếu tôi muốn, nhưng trong PCA kernel với kernel tuyến tính, tôi chỉ có thể tối đa 10 chiều.
Cesar

1
@Cesar, không, nếu bạn có n = 10 mẫu thì ma trận hiệp phương sai sẽ có thứ hạng 10-1 = 9 và PCA tiêu chuẩn sẽ chỉ tìm thấy 9 thứ nguyên (cũng như PCA hạt nhân). Xem tại đây: stats.stackexchange.com/questions/123318 .
amip nói rằng Phục hồi Monica

Tôi không nhận được tệp cho liên kết tham chiếu của Scholkopf B, Smola A và Müller KR.
pbible

5

Ngoài câu trả lời hay của amip, còn có một cách đơn giản hơn để thấy sự tương đương. Một lần nữa, hãy đặt là ma trận dữ liệu có kích thước với các biến trong các cột và điểm dữ liệu trong các hàng. Tiêu chuẩn PCA tương ứng với tham gia một phân hủy giá trị duy nhất của ma trận với các thành phần chính của . Phân rã giá trị số ít của hạt nhân tuyến tính có cùng các vectơ số ít bên trái và do đó, các thành phần chính giống nhau.N × D D N X = U Σ V U X X X = U Σ 2 U XN×DDNX= =BạnΣVBạnXXX= =BạnΣ2Bạn


Đối với PCA tiêu chuẩn, tôi nghĩ rằng chúng tôi quan tâm, về SVD của ma trận hiệp phương sai, vì vậy không thực sự hiểu SVD của X có liên quan như thế nào, bạn có thể mở rộng không?
m0s

@ m0s Đối với PCA, chúng tôi quan tâm đến việc xuất tinh của ma trận hiệp phương sai mà chúng tôi thường thực hiện bởi SVD của ma trận dữ liệu (ở giữa).
MrDrFenner

1

Dường như với tôi rằng một KPCA với kernel tuyến tính phải giống với PCA đơn giản.

Ma trận hiệp phương sai mà bạn sẽ nhận được các giá trị riêng là như nhau:

tôiTôinemộtrKPCMộtmmộttrTôix= =1tôiΣj= =1tôiK(xj,xj)= =1tôiΣj= =1tôixjxjT= =PCMộtmmộttrTôix

Bạn có thể kiểm tra với nhiều chi tiết hơn ở đây .


3
K(xTôi,xj)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.