Ưu điểm của PCA kernel so với PCA tiêu chuẩn là gì?


17

Tôi muốn thực hiện một thuật toán trong một bài báo sử dụng kernel SVD để phân tách ma trận dữ liệu. Vì vậy, tôi đã đọc các tài liệu về các phương thức kernel và PCA kernel, v.v. Nhưng nó vẫn rất mơ hồ đối với tôi đặc biệt là khi nói đến các chi tiết toán học, và tôi có một vài câu hỏi.

  1. Tại sao phương pháp kernel? Hoặc, những lợi ích của phương pháp kernel là gì? Mục đích trực quan là gì?

    Có phải nó giả định rằng một không gian chiều cao hơn nhiều thực tế hơn trong các vấn đề trong thế giới thực và có thể tiết lộ các mối quan hệ phi tuyến tính trong dữ liệu, so với các phương pháp phi nhân? Theo các tài liệu, các phương thức kernel chiếu dữ liệu lên một không gian đặc trưng chiều cao, nhưng chúng không cần phải tính toán không gian tính năng mới một cách rõ ràng. Thay vào đó, chỉ tính toán các sản phẩm bên trong giữa các hình ảnh của tất cả các cặp điểm dữ liệu trong không gian tính năng là đủ. Vậy tại sao chiếu lên một không gian chiều cao hơn?

  2. Ngược lại, SVD giảm không gian tính năng. Tại sao họ làm điều đó theo các hướng khác nhau? Các phương thức kernel tìm kiếm kích thước cao hơn, trong khi SVD tìm kiếm kích thước thấp hơn. Đối với tôi nghe có vẻ kỳ lạ khi kết hợp chúng. Theo bài báo mà tôi đang đọc ( Symeonidis et al. 2010 ), giới thiệu Kernel SVD thay vì SVD có thể giải quyết vấn đề thưa thớt trong dữ liệu, cải thiện kết quả.

nhập mô tả hình ảnh ở đây

Từ so sánh trong hình, chúng ta có thể thấy rằng KPCA có được một hàm riêng với phương sai cao hơn (eigenvalue) so với PCA, tôi cho rằng? Bởi vì sự khác biệt lớn nhất của các hình chiếu của các điểm lên hàm riêng (tọa độ mới), KPCA là một đường tròn và PCA là một đường thẳng, do đó KPCA có phương sai cao hơn PCA. Vậy có nghĩa là KPCA có các thành phần chính cao hơn PCA?


3
Nhiều nhận xét hơn là một câu trả lời: KPCA rất giống với Spectral Clustering - trong một số cài đặt, nó thậm chí giống nhau. (xem ví dụ: cirano.qc.ca/pdf/publication/2003s-19.pdf ).

Xin lỗi vì trả lời muộn. Vâng, câu trả lời của bạn là rất giác ngộ.
Tyler 来 国

Câu trả lời:


23

PCA (như một kỹ thuật giảm kích thước) cố gắng tìm một không gian con tuyến tính chiều thấp mà dữ liệu được giới hạn. Nhưng nó có thể là dữ liệu được giới hạn trong không gian con phi tuyến chiều thấp . Điều gì sẽ xảy ra sau đó?

Hãy xem Hình này, được lấy từ sách giáo khoa "Nhận dạng mẫu và học máy" của Đức cha (Hình 12.16):

hạt nhân PCA từ cuốn sách ML của Giám mục

Các điểm dữ liệu ở đây (bên trái) nằm chủ yếu dọc theo một đường cong ở dạng 2D. PCA không thể giảm kích thước từ hai xuống một, vì các điểm không nằm dọc theo một đường thẳng. Tuy nhiên, dữ liệu "rõ ràng" nằm xung quanh một đường cong phi tuyến tính một chiều. Vì vậy, trong khi PCA thất bại, phải có một cách khác! Và thực tế, PCA kernel có thể tìm thấy đa tạp phi tuyến tính này và phát hiện ra rằng dữ liệu trên thực tế gần như một chiều.

Nó làm như vậy bằng cách ánh xạ dữ liệu vào một không gian có chiều cao hơn. Điều này thực sự có thể trông giống như một mâu thuẫn (câu hỏi số 2 của bạn), nhưng thực tế không phải vậy. Dữ liệu được ánh xạ vào một không gian có chiều cao hơn, nhưng sau đó hóa ra lại nằm trên một không gian con chiều thấp hơn của nó. Vì vậy, bạn tăng kích thước để có thể giảm nó.

Bản chất của "thủ thuật hạt nhân" là người ta không thực sự cần phải xem xét rõ ràng không gian chiều cao hơn, do đó bước nhảy vọt có thể gây nhầm lẫn này được thực hiện hoàn toàn bí mật. Ý tưởng, tuy nhiên, vẫn giữ nguyên.


Câu trả lời tốt đẹp. Chỉ là một câu hỏi tiếp theo mặc dù. Bạn đã nói nếu các điểm dữ liệu là phi tuyến tính như trong hình trên thì PCA sẽ không hoạt động và PCA kernel là bắt buộc. Nhưng làm thế nào để chúng ta biết ngay từ đầu nếu các điểm dữ liệu không tuyến tính đối với tập dữ liệu có nhiều hơn 4 tính năng (trường hợp trong thế giới thực). Để trực quan hóa dữ liệu đó, chúng ta cần giảm kích thước, điều đó có nghĩa là chúng ta sẽ sử dụng PCA để giảm tính chiều vì dữ liệu có thể không tuyến tính và chúng ta sử dụng PCA bình thường để trực quan hóa. Vậy thì làm sao người ta biết liệu dữ liệu là phi tuyến tính để sử dụng PCA kernel chứ không phải PCA
Baktaawar

Cảm ơn, @user. Tôi đoán điều này phụ thuộc vào ứng dụng của PCA / kPCA. Ví dụ, nếu nó được áp dụng như một bước tiền xử lý cho một số thuật toán phân loại, hồi quy hoặc phân cụm, thì người ta có thể đánh giá PCA so với kPCA hoạt động tốt như thế nào từ thuật toán tiếp theo này hoạt động tốt như thế nào.
amip nói phục hồi Monica

1
Cảm ơn @amoeba. Nhưng tôi đoán điều tôi muốn hỏi là như bạn đã đề cập ở trên, chúng ta cần sử dụng kPCA khi dữ liệu không tuyến tính thì làm sao người ta biết liệu dữ liệu có phi tuyến hay không nếu không. của các tính năng là nhiều hơn 3 ?. Chúng ta không thể hình dung rằng không đạt được kích thước và sau đó nó giống như một vấn đề về gà và trứng
Baktaawar

2
@Baktaawar Nếu bạn đang học máy, đừng hình dung, hãy để mô hình của bạn tự học. Về cơ bản bao gồm một bước KPCA trong vòng lặp lấy mẫu bên trong của bạn và kiểm tra các hạt nhân làm tham số, bao gồm cả hạt nhân tuyến tính và bất kỳ thứ gì khác mà bạn muốn / có thể đủ khả năng để kiểm tra.
Firebug
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.