2014-01-30 3 views
1

dlib를 사용하기 시작 했으므로 커널 구현 방법을 이해하는 데 어려움이 있습니다. 이 클러스터링 방법을 알고있는 k-kmeans 알고리즘으로 시작했습니다. 그러나 커널이 계산되는 위치를 파악할 수는 없습니다. 입력 데이터는 행렬 (커널이 아님)이며 알고리즘은 데이터를 커널로 변환하지 않습니다. 커널 클래스가 정사각형 행렬을 반환 할 것으로 기대합니다. 그러나 나는 이런 것을 보지 못했다! 커널을 사용하는 클러스터링 알고리즘을 구현하기 위해 dlib를 사용하고 dlib는 좋은 해결책이라고 생각합니다. 누구나 그것이 구현되는 방법에 관한 문서를 가지고 있습니까? 또는 어떻게 작동하는지 설명 할 수 있습니까?Dlib 커널 구현 이해

도움 주셔서 감사합니다.

답변

0

N 개의 데이터 포인트 세트의 경우, 커널은 보통 (i, j) 번째 항목이 데이터 포인트 i와 데이터 포인트 j 사이의 커널 값을 제공하는 NxN 매트릭스로 지정됩니다. 이것은 행렬이 대칭이고 양의 확정적 인 한 커널 메소드에서 작동합니다. 이는 진정한 커널에서 true로 보장됩니다.

+0

당신이 말한 것을 이해한다면 제공된 예제에서 k-kmeans는 커널로 사용되지 않지만 커널이 제공되면 똑같이 작동할까요? 그렇다면 어떻게 입력 된 데이터로부터 커널을 얻을 수 있습니까? – user1595929

1

커널은 기본적으로 두 개의 입력 샘플을 받아 하나의 숫자 만 출력하는 함수입니다. 그래서 예, 때때로 N 개의 샘플에 대해 가능한 모든 커널 함수 출력의 N x N 행렬을 계산하는 코드를 보게됩니다. 그러나 이것은 O (N^2) RAM이 필요하기 때문에 다소 간단한 구현 전략입니다. 따라서 대부분의 실제 커널 방법 소프트웨어는 이러한 문제를 피하기 위해 일종의 지연된 평가 또는 캐싱 전략을 사용합니다.

dlib의 커널 K- 수단 구현에서 이것은 kcentroid 객체로 수행됩니다. kcentroid 내부에서는 여러 곳에서 커널 기능을 호출하고 모든 "커널 항목"을 수행하는 것을 볼 수 있습니다. 당신은 kcentroid가 무엇을하는지 이해하기 위해 문서를 읽을 수 있습니다. 커널 메소드로 시작한다면, 실제로 주제에 관한 책을 얻을 필요가 있습니다. 베른 하르트 Schlkopf 알렉산더 J. Smola 존 쇼 - 테일러 패턴 분석을위한

  • 커널 방법에 의해 서포트 벡터 머신, 규칙을 정한다, 최적화, 이후 :

    • 커널과 학습 : 내가보기 엔 이들 중 하나를 따기 추천 Nello Cristianini