Những hạn chế của phương thức Kernel và khi nào nên sử dụng phương thức kernel?


10

Các phương thức kernel rất hiệu quả trong nhiều nhiệm vụ phân loại được giám sát. Vậy đâu là những hạn chế của phương thức kernel và khi nào nên sử dụng phương thức kernel? Đặc biệt trong kỷ nguyên dữ liệu quy mô lớn, những tiến bộ của phương thức kernel là gì? Sự khác biệt giữa các phương thức kernel và học tập nhiều trường hợp là gì? Nếu dữ liệu là 500x10000, 500số lượng mẫu và 10000là thứ nguyên của từng tính năng, thì trong trường hợp này, chúng ta có thể sử dụng các phương thức kernel không?

Câu trả lời:


16

Phương pháp hạt nhân có thể được sử dụng cho các vấn đề được giám sát và không giám sát. Các ví dụ nổi tiếng là máy vectơ hỗ trợphân cụm phổ hạt nhân , tương ứng.

Các phương thức kernel cung cấp một cách có cấu trúc để sử dụng thuật toán tuyến tính trong không gian tính năng được chuyển đổi, trong đó phép biến đổi thường là phi tuyến (và đến không gian chiều cao hơn). Ưu điểm chính của cái gọi là thủ thuật kernel này mang lại là các mẫu phi tuyến có thể được tìm thấy với chi phí tính toán hợp lý .

Lưu ý rằng tôi đã nói chi phí tính toán là hợp lý, nhưng không đáng kể. Các phương thức kernel thường xây dựng một ma trận kernel với số lượng phiên bản đào tạo. Do đó, độ phức tạp của các phương thức kernel là một hàm của số lượng các trường hợp đào tạo, thay vì số lượng kích thước đầu vào. Các máy vectơ hỗ trợ, ví dụ, có độ phức tạp đào tạo giữa và . Đối với các vấn đề với rất lớn , sự phức tạp này hiện đang bị cấm. N O ( N 2 ) O ( N 3 ) NKRN×NNO(N2)O(N3)N

Điều này làm cho các phương thức kernel rất thú vị từ góc độ tính toán khi số lượng kích thước lớn và số lượng mẫu tương đối thấp (giả sử, dưới 1 triệu).

Liên quan: Nhân tuyến tính và nhân phi tuyến tính cho máy vectơ hỗ trợ?

SVM cho các vấn đề quy mô lớn

Đối với các vấn đề về chiều rất cao, chẳng hạn như 10000kích thước bạn đề cập trong câu hỏi, thường không cần ánh xạ tới không gian tính năng chiều cao hơn. Không gian đầu vào đã đủ tốt. Đối với các vấn đề như vậy, các phương thức tuyến tính là các đơn đặt hàng có cường độ nhanh hơn với hiệu suất dự đoán gần như tương tự. Ví dụ về các phương pháp này có thể được tìm thấy trong LIBLINEAR hoặc Vowpal Wợi .

Phương pháp tuyến tính đặc biệt thú vị khi bạn có nhiều mẫu trong không gian đầu vào chiều cao. Khi bạn chỉ có mẫu, sử dụng phương pháp nhân phi tuyến cũng sẽ rẻ (vì nhỏ). Nếu bạn có, ví dụ, mẫu trong kích thước, phương thức kernel sẽ không thể thực hiện được.N 5.000.000 10.000500N5.000.00010.000

Đối với các vấn đề chiều thấp với nhiều trường hợp đào tạo (được gọi là các vấn đề nhỏ lớn ), phương pháp tuyến tính có thể mang lại độ chính xác dự đoán kém. Đối với các vấn đề như vậy, các phương thức tập hợp như MakeembleSVM cung cấp các ranh giới quyết định phi tuyến với chi phí tính toán giảm đáng kể so với SVM tiêu chuẩn.pNp


Rất cám ơn cho câu trả lời rất chi tiết, thưa ông. Tôi đã tìm thấy trong các trường hợp kích thước cao, nếu tôi sử dụng RBFkernel libsvm, nó luôn bị quá mức, bộ phân loại đạt được độ chính xác cao nhưng độ chính xác thấp trong bộ thử nghiệm. Và nếu tôi thực hiện giảm kích thước trước bộ phân loại và kích thước giảm gần với số lượng mẫu đào tạo, bộ phân loại có thể đạt được lợi nhuận tốt giữa bộ đào tạo và thử nghiệm. Liệu kết quả phù hợp với hầu hết các kết quả thực nghiệm? Cảm ơn.
khai thác

Các phương thức kernel khá mạnh mẽ so với kích thước đầu vào cao. Thông thường, bạn không cần thực hiện giảm kích thước trước khi sử dụng chúng. Điều rất quan trọng là điều chỉnh tất cả các tham số, đặc biệt gammađối với nhân RBF. Giá trị tối ưu cho gammaliên quan đến số lượng kích thước đầu vào. Phương pháp điều chỉnh phổ biến nhất là xác nhận chéo. Nếu bạn đã sử dụng cùng một giá trị cho gammacó và không giảm kích thước thì có lẽ bạn đang mắc lỗi.
Marc Claesen

Vâng thưa ngài. Tôi thường sử dụng gói grid.pytrong libsvmđể xác thực chéo. Và trong hầu hết các trường hợp, đối với dữ liệu kích thước cao, gammaluôn luôn rất nhỏ, chẳng hạn như 0.00001, mức này.
khai thác

Xin chào, thưa ông, tôi đã kiểm tra dự án nguồn mở của bạn EnsembleSVM, nó có cần thực hiện quy trình xác thực chéo đa luồng không? Và tôi nghĩ trong giai đoạn dự đoán, sẽ tốt khi dự đoán dữ liệu khổng lồ theo lô và đa luồng hay nhiều máy?
khai thác

Sử dụng đa luồng là tùy chọn trong OblembleSVM, nhưng được bật theo mặc định trong esvm-trainesvm-predict. Để vô hiệu hóa đa luồng, sử dụng cờ sau trong các công cụ đó : -threads 1.
Marc Claesen
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.