Cách tiếp cận chung để chọn một hạt nhân tối ưu (loại nhân hoặc tham số kernel) trong bất kỳ phương thức dựa trên kernel nào là xác thực chéo. Xem ở đây để thảo luận về lựa chọn kernel cho các máy vectơ hỗ trợ: Làm thế nào để chọn kernel cho SVM?
Ý tưởng đằng sau xác thực chéo là chúng tôi bỏ qua một số dữ liệu "thử nghiệm", chạy thuật toán của chúng tôi để phù hợp với mô hình trên dữ liệu "đào tạo" còn lại, sau đó kiểm tra xem mô hình kết quả mô tả dữ liệu thử nghiệm như thế nào (và lỗi lớn đến mức nào Là). Điều này được lặp lại đối với các dữ liệu bên trái khác nhau, các lỗi được tính trung bình để tạo thành một lỗi xác thực chéo trung bình và sau đó các thuật toán khác nhau có thể được so sánh để chọn một lỗi có năng suất thấp nhất. Trong SVM, người ta có thể sử dụng ví dụ độ chính xác phân loại (hoặc các biện pháp liên quan) làm thước đo hiệu suất mô hình. Sau đó, người ta sẽ chọn một hạt nhân mang lại sự phân loại tốt nhất cho dữ liệu thử nghiệm.
Câu hỏi sau đó trở thành: thước đo hiệu suất mô hình nào mà người ta có thể sử dụng trong kPCA? Nếu bạn muốn đạt được "phân tách dữ liệu tốt" (có thể phân tách lớp tốt), thì bằng cách nào đó bạn có thể đo nó trên dữ liệu đào tạo và sử dụng dữ liệu đó để tìm hạt nhân tốt nhất. Lưu ý, tuy nhiên, PCA / kPCA không được thiết kế để mang lại tách dữ liệu tốt (họ không mất nhãn lớp vào tài khoản tại tất cả ). Vì vậy, nói chung, người ta sẽ muốn một thước đo khác, không liên quan đến lớp, hiệu suất mô hình.
Trong PCA tiêu chuẩn, người ta có thể sử dụng lỗi tái cấu trúc làm thước đo hiệu suất trên bộ kiểm tra. Trong kernel PCA, người ta cũng có thể tính toán lỗi tái cấu trúc, nhưng vấn đề là nó không thể so sánh giữa các hạt nhân khác nhau: lỗi tái cấu trúc là khoảng cách đo trong không gian tính năng đích; và các hạt nhân khác nhau tương ứng với các không gian mục tiêu khác nhau ... Vì vậy, chúng tôi có một vấn đề.
Một cách để giải quyết vấn đề này là bằng cách nào đó tính toán lỗi tái tạo trong không gian ban đầu, không phải trong không gian đích. Rõ ràng là điểm dữ liệu thử nghiệm bên trái sống trong không gian ban đầu. Nhưng cấu trúc lại kPCA của nó sống trong [không gian con chiều thấp] của không gian đích. Tuy nhiên, điều người ta có thể làm là tìm một điểm ("hình ảnh trước") trong không gian ban đầu sẽ được ánh xạ càng gần càng tốt với điểm tái tạo này, sau đó đo khoảng cách giữa điểm kiểm tra và hình ảnh trước này như lỗi tái thiết.
Tôi sẽ không đưa ra tất cả các công thức ở đây, mà thay vào đó giới thiệu cho bạn một số giấy tờ và chỉ chèn vào đây một vài con số.
Ý tưởng về "hình ảnh trước" trong kPCA rõ ràng đã được giới thiệu trong bài viết này:
- Mika, S., Schölkopf, B., Smola, AJ, Müller, KR, Scholz, M., & Rätsch, G. (1998). Kernel PCA và khử nhiễu trong không gian tính năng . Trong NIPS (Tập 11, trang 536-542).
Mika và cộng sự. không thực hiện xác nhận chéo, nhưng họ cần hình ảnh trước cho mục đích khử nhiễu, xem hình này:
Điểm bị từ chối (dày) là hình ảnh trước của các phép chiếu kPCA (không có thử nghiệm và đào tạo ở đây). Việc tìm những hình ảnh trước này không phải là một nhiệm vụ tầm thường: người ta cần sử dụng độ dốc giảm dần và chức năng mất sẽ phụ thuộc vào kernel.
Và đây là một bài báo gần đây đã sử dụng hình ảnh trước cho mục đích xác thực chéo và lựa chọn kernel / siêu tham số:
Đây là thuật toán của họ:
Và đây là một số kết quả (mà tôi nghĩ là khá nhiều tự giải thích):