A diferença de kernels no SVM?

26

Alguém pode me dizer a diferença entre os kernels no SVM:

  1. Linear
  2. Polinomial
  3. Gaussiano (RBF)
  4. Sigmoid

Porque, como sabemos, o kernel é usado para mapear nosso espaço de entrada no espaço de recursos de alta dimensionalidade. E nesse espaço de recursos, encontramos o limite linearmente separável.

Quando eles são usados ​​(em que condições) e por quê?

user3378327
fonte

Respostas:

4

O núcleo linear é o que você esperaria, um modelo linear. Eu acredito que o núcleo polinomial é semelhante, mas o limite é de alguma ordem definida, mas arbitrária

(por exemplo, ordem 3: ).a=b1+b2X+b3X2+b4X3

O RBF usa curvas normais em torno dos pontos de dados e as soma para que o limite de decisão possa ser definido por um tipo de condição de topologia, como curvas em que a soma está acima de um valor de 0,5. (veja esta foto )

Não tenho certeza do que é o kernel sigmoide, a menos que seja semelhante ao modelo de regressão logística em que uma função logística é usada para definir curvas de acordo com o local em que o valor logístico é maior que algum valor (probabilidade de modelagem), como 0,5 como o normal caso.

John Yetter
fonte
Então, podemos obter o hiperplano separável linearmente (limite), se usarmos o kernel linear? e se usarmos polinomial ou kernel RBF, o hyperlane (para polinômio) poderia ser um círculo de classes agrupadas (para RBF) e curva? isso esta certo?? scikit-learn.org/stable/modules/svm.html
user3378327
Cada um dos kernals trabalha para versões de alta dimensão de seus respectivos limites. Isso responde à sua pergunta? Você não está limitado a três dimensões para nenhum kernel que eu conheço.
John Yetter 21/03
Eu só quero deixar claro. Então o limite usando o kernel linear é linear? Para RBF é como um círculo de classe agrupada ?? e para o polinômio, pode ser curva com base no grau do polinômio ??
user3378327
Eu não diria que RBF é um círculo de classe agrupada. Meu entendimento é que ela aplica uma função baseada em uma distribuição normal em cada ponto de dados e soma essas funções. Em seguida, um limite é formado pela curva que representa um determinado valor nessa função. Se alguém que contribuiu para uma biblioteca SVM pudesse entrar em cena, isso pode ajudar. Penso que a sua compreensão dos outros dois núcleos está correta.
precisa
U disse que o Linier Kernel é o que eu esperava (para obter uma classe separável linearmente) usando o Kernel. e usando o classificador SVM, chamamos de LINIER SVM. Mas como podemos obter os dados separáveis ​​linearmente sem nenhum kernel no SVM. Como chamamos isso? Ainda Linier SVM ou Non Linier SVM ??
user3378327
11

Baseando-se no conhecimento básico do leitor sobre kernels.

K(X,Y)=XTY

K(X,Y)=(γXTY+r)d,γ>0

K(X,Y)=exp(XY2/2σ2)exp(γXY2),γ>0

K(X,Y)=tanh(γXTY+r)

rdγ

Ashok Choudhary
fonte
3
Embora as informações em sua resposta estejam corretas, acho que não responde à pergunta aqui levantada, que é mais sobre qual é a diferença prática entre elas, ou seja , quando usar uma ou outra.
Firebug
11
Surpreendentemente, essas definições simples são difíceis de encontrar. Eles devem ser a primeira coisa apresentada quando se fala em diferenças de núcleos, mas existe uma falha generalizada em indicá-los.
Cammil # 9/17
Existe alguma fonte oficial para isso? (Eu os testei e eles parecem corretos, mas eu gostaria de citá-los.)
Christian Eriksson
6

Esta questão pode ser respondida do ponto de vista teórico e prático. Do ponto de vista teórico, de acordo com o teorema do almoço livre, afirma que não há garantias de que um kernel funcione melhor que o outro. Isso é a priori, você nunca sabe, nem pode descobrir qual kernel funcionará melhor.

Do ponto de vista prático, consulte a seguinte página:

Como selecionar o kernel para SVM?

Gnattuha
fonte
1

Enquanto reflete sobre o que um kernel é "bom" ou quando deve ser usado, não há regras rígidas.

Se o seu classificador / regressor tiver um bom desempenho com um determinado kernel, é apropriado, se não, considere mudar para outro.

Pode-se obter informações sobre o desempenho do seu kernel, especificamente se for um modelo de classificação, revisando alguns exemplos de visualização, por exemplo, https://gist.github.com/WittmannF/60680723ed8dd0cb993051a7448f7805

Vai
fonte