Hàm nào có thể là kernel?


21

Trong bối cảnh học máy và nhận dạng mẫu, có một khái niệm gọi là Kernel Trick . Đối mặt với các vấn đề mà tôi được yêu cầu để xác định xem một hàm có thể là hàm kernel hay không, chính xác thì nên làm gì? Trước tiên tôi có nên kiểm tra xem chúng có phải là dạng của ba hoặc bốn hàm nhân như đa thức, RBF và Gaussian không? Vậy thì tôi phải làm gì đây? Tôi có nên cho thấy nó là xác định tích cực? Ai đó có thể giải quyết một ví dụ để hiển thị một giải pháp từng bước cho các vấn đề như vậy? Giống như ví dụ, là một hàm kernelf(x)=extx (giả sử chúng ta không biết nó là một hạt nhân Gaussian)?

Câu trả lời:


27

Nói chung, hàm là hàm kernel hợp lệ (theo nghĩa của thủ thuật kernel) nếu nó thỏa mãn hai thuộc tính chính:k(x,y)

  • đối xứng: k(x,y)=k(y,x)

  • tích cực bán dứt khoát.

Tham khảo: Trang 4 của http: //www.cs.ber siêu.edu / ~ jordan / cifts / 213B-spring04 / lectures / lec3.pdf

Kiểm tra đối xứng thường đơn giản bằng cách kiểm tra. Xác minh phân tích bán xác định tích cực đôi khi có thể khá nhiều lông. Tôi có thể nghĩ ra hai chiến lược để kiểm tra thực tế này:

  • (1) Kiểm tra đại diện "sản phẩm bên trong"

Xét . Chúng ta có thể tìm thấy một số φ ( một )k ( x , y ) = φ ( x ) T φ ( y ) ? Một chương trình toán nhỏ mà e x + y = e x e y , vì vậy hãy φ ( một ) = e một và chúng tôi đang thực hiện.k(x,y)=ex+yϕ(a)k(x,y)=ϕ(x)Tϕ(y)ex+y=exeyϕ(a)=ea

Nếu bạn gặp may mắn, bạn sẽ tuân theo phân tích này. Nếu không, bạn có thể sử dụng tùy chọn (2):k()

  • (2) Kiểm tra tính xác định dương bằng mô phỏng ngẫu nhiên.

Xét hàm trên các vectơ -dim k ( x , y ) = D d = 1 min ( x d , y d ) , trong đó mỗi vectơ x , y phải không âm và tổng thành một. Đây có phải là một hạt nhân hợp lệ?Dk(x,y)=d=1Dmin(xd,yd)x,y

Chúng ta có thể kiểm tra điều này bằng cách mô phỏng. Vẽ một tập hợp các vectơ ngẫu nhiên { x i } N i = 1 và xây dựng ma trận Gram K trong đó K i j = k ( x i , x j ) . Sau đó kiểm tra xem K có dương (bán) xác định không.N{xi}i=1NKKij=k(xi,xj)K

Cách tốt nhất để thực hiện số này là tìm giá trị riêng của ma trận (sử dụng các thư viện số tốt hiện có như scipy hoặc matlab) và xác minh rằng giá trị riêng nhỏ nhất lớn hơn hoặc bằng 0 . Nếu có, ma trận là psd Nếu không, bạn không có kernel hợp lệ.K

Mã MATLAB / Octave mẫu:

D=5;
N=100;

X = zeros(N,D);
for n = 1:N
   xcur = rand(1,D);
   X(n,:) = xcur/sum(xcur);
end

K = zeros(N,N);
for n = 1:N;  for m = 1:N
    K(n,m) = sum( min( X(n,:), X(m,:) ) );
end;  end;

disp( min( eig(K) ) );

Đây là một thử nghiệm rất đơn giản, nhưng hãy cẩn thận . Nếu thử nghiệm thất bại, bạn có thể chắc chắn rằng kernel không hợp lệ, nhưng nếu nó vượt qua kernel vẫn có thể không hợp lệ.

ND

k(x,y)=d=1Dmax(xd,yd)

Tôi thực sự thích tùy chọn thứ hai này vì nó khá nhanh và dễ gỡ lỗi hơn nhiều so với các bằng chứng chính thức được tổng hợp. Theo slide 19 của Jitendra Malik , hạt nhân giao lộ được giới thiệu vào năm 1991 nhưng không được chứng minh là đúng cho đến năm 2005. Bằng chứng chính thức có thể rất khó khăn!


Theo tôi hiểu, điều kiện thứ hai chỉ là tính bán chính xác dương . Và từ những gì tôi đã nói, nó chỉ cần thiết nếu bạn muốn chứng minh sự hội tụ của thuật toán SVM. Trong thực tế, có nhiều hạt nhân không phải là PSD, nhưng hoạt động tốt trong thực tế.
Peter

@Peter: vâng, bạn đúng. Nó có thể là * semi- * xác định, không chỉ xác định. Chỉnh sửa cho phù hợp.
Mike Hughes

Trong miền SVM, sử dụng hạt nhân PSD đảm bảo vấn đề là lồi, do đó tối ưu hóa đạt được một giải pháp tối ưu toàn cầu duy nhất. Không có tài sản PSD, không có gì đảm bảo rằng giải pháp được tìm thấy ở bất kỳ đâu gần nhất có thể. Nhưng, vâng, có một số hạt nhân (như Sigmoid) không phải là PSD nhưng vẫn thành công trong thực tế. Một tài liệu tham khảo phù hợp cho vấn đề này là: Perso.lcpc.fr/tarel.jean-philippe/publis/jpt-icme05.pdf .
Mike Hughes
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.