Como o SVM pode 'encontrar' um espaço infinito de recursos onde a separação linear é sempre possível?


36

Qual é a intuição por trás do fato de que um SVM com um Kernel Gaussiano possui um espaço infinito de recursos dimensionais?


11
Eu realmente não entendo a pergunta. Você quer uma explicação de por que seu espaço de característica correspondente é infinito dimensional ou uma interpretação sobre o que o hiperplano resultante significa?
Marc Claesen

11
Eu não me importaria de ouvir os dois!
user36162

5
Eu acho que essa é uma pergunta interessante (+1)

Respostas:


39

Esta resposta explica o seguinte:

  1. Por que a separação perfeita sempre é possível com pontos distintos e um núcleo gaussiano (de largura de banda suficientemente pequena)
  2. Como essa separação pode ser interpretada como linear, mas apenas em um espaço de recurso abstrato distinto do espaço em que os dados residem
  3. Como o mapeamento do espaço de dados para o espaço de destaque é "encontrado". Spoiler: não é encontrado pelo SVM, é definido implicitamente pelo kernel que você escolhe.
  4. Por que o espaço de recurso é de dimensão infinita.

1. Alcançar a separação perfeita

A separação perfeita é sempre possível com um kernel gaussiano (desde que dois pontos de classes diferentes nunca sejam exatamente os mesmos) devido às propriedades de localidade do kernel, que levam a um limite de decisão arbitrariamente flexível. Para uma largura de banda suficientemente pequena do kernel, o limite de decisão parecerá que você desenhou pequenos círculos em torno dos pontos sempre que necessário para separar os exemplos positivos e negativos:

Algo assim

(Crédito: curso de aprendizado de máquina on-line de Andrew Ng ).

Então, por que isso ocorre de uma perspectiva matemática?

Considere a configuração padrão: você possui um kernel gaussiano e dados de treinamento ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , , ( x ( n ) ,K(x,z)=exp(||xz||2/σ2) onde os valores de y ( i ) são ± 1 . Queremos aprender uma função classificadora(x(1),y(1)),(x(2),y(2)),,(x(n),y(n))y(i)±1

y^(x)=iwiy(i)K(x(i),x)

Agora, como vamos atribuir os pesos ? Precisamos de espaços dimensionais infinitos e um algoritmo de programação quadrática? Não, porque eu só quero mostrar que posso separar os pontos perfeitamente. Então eu faço σ um bilhão de vezes menor que a menor separação | | x ( i ) - x ( j ) | | entre dois exemplos de treinamento, e acabei de definir w i = 1 . Isto significa que todos os pontos de treinamento são um bilhão de sigmas além, tanto quanto o kernel está em causa, e cada ponto controla completamente o sinal de ywiσ||x(i)x(j)||wi=1y^no seu bairro. Formalmente, temos

y^(x(k))=i=1ny(k)K(x(i),x(k))=y(k)K(x(k),x(k))+iky(i)K(x(i),x(k))=y(k)+ϵ

onde é algum valor arbitrariamente pequeno. Sabemos ε é pequena porque x ( k ) é um bilhão de sigmas longe de qualquer outro ponto, assim, para todos i k temosϵϵx(k)ik

K(x(i),x(k))=exp(||x(i)x(k)||2/σ2)0.

Desde é tão pequena, y ( x ( k ) ) definitivamente tem o mesmo sinal y ( k ) , e o classificador obtém uma precisão perfeita sobre os dados de treinamento.ϵy^(x(k))y(k)

2. Aprendizagem SVM do kernel como separação linear

O fato de que isso pode ser interpretado como "separação linear perfeita em um espaço de característica dimensional infinito" vem do truque do kernel, que permite interpretar o kernel como um produto interno em um espaço de característica (potencialmente infinito):

K(x(i),x(j))=Φ(x(i)),Φ(x(j))

onde é o mapeamento do espaço de dados para o espaço de feição. Segue-se imediatamente que a y ( x ), a função como uma função linear no espaço de características:Φ(x)y^(x)

y^(x)=iwiy(i)Φ(x(i)),Φ(x)=L(Φ(x))

onde a função linear é definida nos vetores de espaço de característica v comoL(v)v

L(v)=iwiy(i)Φ(x(i)),v

Esta função é linear em v porque é apenas uma combinação linear de produtos internos com vetores fixos. No espaço de características, a fronteira de decisão y ( x ) = 0 é apenas L ( v ) = 0 , o conjunto de nível de uma função linear. Essa é a própria definição de um hiperplano no espaço de recursos.y^(x)=0L(v)=0

3. Compreendendo o Mapeamento e o Espaço de Recursos

Nota: Nesta seção, a notação refere-se a um conjunto arbitrário de n pontos e não aos dados de treinamento. Isso é pura matemática; os dados de treinamento não constam nesta seção!x(i)n

Os métodos do kernel nunca "localizam" ou "calculam" o espaço de recursos ou o mapeamento explicitamente. Métodos de aprendizado de kernel como o SVM não precisam deles para funcionar; eles só precisam a função do kernel K .ΦK

Dito isto, é possível escrever uma fórmula para . O espaço recurso que Φ mapeia para é uma espécie de resumo (e potencialmente infinito-dimensional), mas, essencialmente, o mapeamento está apenas usando o kernel para fazer alguma engenharia recurso simples. Em termos de resultado final, o modelo que você acaba aprendendo, usando kernels, não é diferente da engenharia tradicional de recursos popularmente aplicada em regressão linear e modelagem GLM, como tomar o log de uma variável preditora positiva antes de alimentá-lo em uma fórmula de regressão. A matemática está basicamente lá para ajudar a garantir que o kernel funcione bem com o algoritmo SVM, que tem suas vantagens de escarsidade e dimensionamento bem para grandes conjuntos de dados.ΦΦ

Se você ainda estiver interessado, veja como funciona. Essencialmente tomamos a identidade queremos espera, , e construir um espaço e produto interno tal que detém por definição. Para fazer isso, nós definimos um espaço vetorial abstrato V onde cada vector é uma função do espaço as vidas de dados em, X , para os números reais R . Um vetor f em V é uma função formada a partir de uma combinação linear finita de fatias de kernel: f ( xΦ(x),Φ(y)=K(x,y)VXRfV É conveniente escrever f de forma mais compacta como x ( y ) = K ( x , y ) é uma função que fornece uma "fatia" do kernel em x .

f(x)=i=1nαiK(x(i),x)
f onde K
f=i=1nαiKx(i)
Kx(y)=K(x,y)x

O produto interno no espaço não é o produto de ponto comum, mas um produto interno abstrato baseado no kernel:

i=1nαiKx(i),j=1nβjKx(j)=i,jαiβjK(x(i),x(j))

Com o espaço de recurso definido dessa maneira, é um mapeamento XV , levando cada ponto x para a "fatia do kernel" naquele ponto:ΦXVx

Φ(x)=Kx,whereKx(y)=K(x,y).

Você pode provar que é um espaço interno do produto quando K é um kernel definido positivo. Veja este documento para detalhes. (Parabéns para f coppens por apontar isso!)VK

4. Por que o espaço de feição é infinito-dimensional?

Essa resposta fornece uma boa explicação de álgebra linear, mas aqui está uma perspectiva geométrica, com intuição e prova.

Intuição

Para qualquer ponto fixo , temos uma função de fatia do kernel K z ( x ) = K ( z , x ) . O gráfico de K z é apenas uma saliência gaussiana centrada em zzKz(x)=K(z,x)Kzz. Agora, se o espaço de feição fosse apenas de dimensão finita, isso significaria que poderíamos pegar um conjunto finito de solavancos em um conjunto fixo de pontos e formar qualquer solavanco Gaussiano em qualquer outro lugar. Mas claramente não há como fazer isso; você não pode criar um novo solavanco a partir dos solavancos antigos, porque o novo solavanco pode estar muito longe dos antigos. Portanto, não importa quantos vetores de recursos (bumps) tenhamos, sempre podemos adicionar novos bumps, e no espaço de recursos esses são novos vetores independentes. Portanto, o espaço do recurso não pode ser dimensional finito; tem que ser infinito.

Prova

Usamos indução. Suponha que você tenha um conjunto arbitrário de pontos modo que os vetores Φ ( x ( i ) ) sejam linearmente independentes no espaço de feição. Agora encontre um ponto x ( n + 1 ) distinto desses n pontos, de fato a um bilhão de sigmas de todos eles. Afirmamos que Φ ( x ( n + 1 ) )x(1),x(2),,x(n)Φ(x(i))x(n+1)nΦ(x(n+1))é linearmente independente dos primeiros vetores de características Φ ( x ( i ) ) .nΦ(x(i))

Prova por contradição. Suponha o contrário que

Φ(x(n+1))=i=1nαiΦ(x(i))

Agora pegue o produto interno dos dois lados com um arbitrário . Pela identidade Φ ( z ) , Φ ( x ) =x , obtemosΦ(z),Φ(x)=K(z,x)

K(x(n+1),x)=i=1nαiK(x(i),x)

Aqui é uma variável livre, portanto, esta equação é uma identidade declarando que duas funções são iguais. Em particular, diz que um gaussiano centrado em x ( n + 1 ) pode ser representado como uma combinação linear de gaussianos em outros pontos x ( i ) . É geometricamente óbvio que não se pode criar uma protuberância gaussiana centrada em um ponto a partir de uma combinação finita de protuberâncias gaussianas centradas em outros pontos, especialmente quando todas as outras protuberâncias gaussianas estão a um bilhão de sigmas de distância. Portanto, nossa suposição de dependência linear levou a uma contradição, como pretendemos mostrar.xx(n+1)x(i)


6
A separação perfeita é impossível. Contra-exemplo: (0,0, Classes A), (0,0, ClassB). Boa sorte para separar esse conjunto de dados!
Anony-Mousse

4
Isso é ... tecnicamente correto, o melhor tipo de correto! Tenha um voto positivo. Vou adicionar uma nota no post.
Paul

3
(Eu acho que seu ponto faz sentido se você precisar de uma distância mínima entre as amostras de diferentes classes Pode valer a pena apontar que, neste cenário, o SVM torna-se um classificador de vizinho mais próximo.)
anony-Mousse

11
Estou abordando apenas o caso de conjunto de treinamento finito, portanto sempre há uma distância mínima entre os pontos quando recebemos um conjunto de pontos distintos para trabalhar. n
Paul

@Paul Em relação à sua seção 2, eu tenho uma pergunta. Vamos ser o representer em nossas RKHS para ponto de treinamento x ( i ) e k x para arbitrária novo ponto x de modo que y ( x ) = Σ i w i y ( i )k i , k x= Σ i w i y ( i ) k i ( x ) para que a função kix(i)kxxy^(x)=iwiy(i)ki,kx=iwiy(i)ki(x) para alguns z iR . Para mim, isso é como a versão espaço função de y ser no espaço de coluna de X para a regressão linear e é onde a linearidade realmente vem. Essa descrição parece precisa? Ainda estou aprendendo muito esse material do RKHS. y^=izikiziRy^X
jld

12

A matriz do kernel do kernel Gaussian tem sempre cheio classificação para distinta . Isso significa que cada vez que você adiciona um novo exemplo, a classificação aumenta em 1 . A maneira mais fácil de ver isso se você definir σ muito pequeno. Então a matriz do kernel é quase diagonal.x1,...,xm1σ

O fato de a classificação sempre aumentar em um significa que todas as projeções no espaço de feição são linearmente independentes (não ortogonais, mas independentes). Portanto, cada exemplo adiciona uma nova dimensão à extensão do projecções Φ ( x 1 ) , . . . , Φ ( x m ) . Como você pode adicionar inúmeros exemplos infinitos, o espaço de recurso deve ter uma dimensão infinita. Curiosamente, todas as projeções do espaço de entrada no espaço de recurso estão em uma esfera, pois | | Φ ( x ) | Φ(x)Φ(x1),...,Φ(xm). No entanto, a geometria da esfera é plana. Você pode ler mais sobre isso em||Φ(x)||H²=k(x,x)=1

Burges, CJC (1999). Geometria e invariância em métodos baseados em kernel. Em B. Schölkopf, CJC Burges e AJ Smola (Eds.), Os avanços nos métodos do núcleo apóiam a aprendizagem de vetores (pp. 89-116). MIT Pressione.


Eu ainda não entendo isso, mas você ganhou uma qualquer maneira upvote :)
stmax

Quer dizer, você não entende por que a geometria é plana ou porque é de dimensão infinita? Obrigado pelo voto positivo.
fabee

Se eu tiver 100 exemplos, meu espaço de recurso é 100-dimensional ou já é infinitamente dimensional? Por que posso adicionar "incontáveis" infinitos exemplos? Isso não é um infinito contável? Por que contável / incontável importa aqui? Ainda nem tentei pensar na "esfera plana": D Obrigado por suas explicações!
Stmax

5
Espero que você acredite em mim, que cada novo exemplo é linearmente independente de todos os anteriores (exceto pelo mesmo x ). Em você não pode fazer isso: Cada ponto além do n devem ser linearmente dependente dos outros. Para o RKHS gaussiano, se você tiver 100 exemplos diferentes, eles abrangem um subespaço 100 dimensional do espaço dimensional infinito. Portanto, o espaço é dimensional finito, mas os recursos em que vivem são infinitamente dimensionais. O infinito é incontável, porque cada novo ponto em R n é uma nova dimensão e há inúmeros pontos em R n . RnnRnRn
fabee

@fabee: Eu tentei de uma maneira diferente, você parece saber muito sobre isso, pode dar uma olhada na minha resposta se eu entendi mais ou menos 'certo'?

5

Para o plano de fundo e as anotações, refiro-me à resposta Como calcular o limite de decisão a partir de vetores de suporte? .

Portanto, os recursos no espaço 'original' são os vetores , o resultado binário y i{ - 1 , + 1 } e os multiplicadores de Lagrange são α ixiyi{1,+1}αi .

Sabe-se que o núcleo pode ser escrito como ( ' ' representa o produto interno.) Onde ΦK(x,y)=Φ(x)Φ(y)Φ é uma transformação (implícito e desconhecido) para uma nova característica espaço.

Vou tentar dar alguma explicação 'intuitiva' do que este parece, assim que esta resposta é nenhuma prova formal, que só quer dar alguma sensação de como eu acho que isso funciona.ΦNão hesite em me corrigir se eu estiver errado. A base para minha explicação é a seção 2.2.1 deste pdf

Eu tenho que 'transformar' meu espaço de recurso (então meu ) em algum 'novo' espaço de recurso no qual a separação linear será resolvida.xi

Para cada observação , eu definir funções & Phi i ( x ) = K ( x i , x ) , de modo que têm uma função φ i para cada elemento da minha amostra formação. Estas funções & Phi i abrangem um espaço vetorial. O espaço vetorial medido pelo ϕ i , observe V = s p a n ( ϕ i , i = 1 , 2 , N ) . ( Nxiϕi(x)=K(xi,x)ϕiϕiϕiV=span(ϕi,i=1,2,N)N é o tamanho da amostra de treinamento).

Tentarei argumentar que esse espaço vetorial é o espaço vetorial no qual a separação linear será possível. V Por definição do vão, cada vector no espaço vectorial pode ser escrito como como uma combinação linear do φ i , ou seja: Σ N i = 1 γ i φ i , onde γ i são números reais. Então, de fato, V = { v = N i = 1 γ i ϕ i | ( γ 1 ,Vϕii=1NγiϕiγiV={v=i=1Nγiϕi|(γ1,γ2,γN)RN}

Note-se que são as coordenadas do vector v no espaço vectorial V .(γ1,γ2,γN)vV

é o tamanho da amostra de treino e, por conseguinte, a dimensão do espaço vectorial V pode ir até N , dependendo se o φ i são independentes linear. Como ϕ i ( x ) = K ( x i , x ) (ver supra, definimos ϕ dessa maneira), isso significa quea dimensão de VNVNϕiϕi(x)=K(xi,x)ϕV depende do kernel usado e pode ir até o tamanho da amostra de treinamento.

Se o núcleo é 'bastante complexo', então o serão todos independente e, em seguida, a dimensão de V será Nϕi(x)=K(xi,x)VN , o tamanho da amostra de treino.

A transformação, que mapeia meu espaço de recurso original para é definida comoV

Φ:xiϕi(x)=K(xi,x) .

Este mapa mapeia meu espaço de recurso original em um espaço vetorial que pode ter uma dimensão que vai até o tamanho da minha amostra de treinamento. ΦEntão mapeia cada observação na minha amostra de treinamento em um espaço vetorial onde os vetores são funções. O vector x i da minha amostra formação é 'mapeado' a um vector em V , ou seja, o vector φ i com coordenadas todos iguais a zero, excepto o i -simo de coordenadas é 1.ΦxiVϕii

xiVi=1Nγiϕiγi

f(x)f(x)=iyiαiϕi(x)+bf(x)=0

f(x)ϕEu e f(x)=0 0 é um hiperplano de separação linear no V-space : é uma escolha particular doγEu nomeadamente γEu=αEuyEu !

o yEu são conhecidos de nossas observações, o αEusão os multiplicadores de Lagrange que o SVM encontrou. Em outras palavras, o SVM encontra, através do uso de um kernel e resolvendo um problema de programação quadrática, uma separação linear noV-spave.

Este é meu entendimento intuitivo de como o 'truque do kernel' permite transformar 'implicitamente' o espaço de recurso original em um novo espaço de recurso V, com uma dimensão diferente. Essa dimensão depende do kernel que você usa e, para o kernel RBF, essa dimensão pode subir até o tamanho da amostra de treinamento. Como as amostras de treinamento podem ter qualquer tamanho, isso pode chegar a 'infinito' . Obviamente, em espaços dimensionais muito altos, o risco de sobreajuste aumentará.

Portanto, os kernels são uma técnica que permite ao SVM transformar seu espaço de recursos. Consulte também O que torna o kernel gaussiano tão mágico para o PCA e também em geral?


+1 isso é sólido. Traduzi este material para o meu próprio estilo expositivo e o adicionei à minha resposta.
Paulo

5

Infelizmente, a explicação do fcop é bastante incorreta. Antes de tudo, ele diz "Sabe-se que o Kernel pode ser escrito como ... onde ... é uma transformação (implícita e desconhecida) em um novo espaço de recursos". NÃO é desconhecido. Na verdade, esse é o espaço para o qual os recursos são mapeados e esse é o espaço que pode ter dimensões infinitas, como no caso do RBF. Tudo o que o kernel faz é pegar o produto interno desse vetor de recurso transformado com um vetor de recurso transformado de um exemplo de treinamento e aplicar alguma função ao resultado. Assim, representa implicitamente esse vetor de característica dimensional mais alto. Pense em escrever (x + y) ^ 2 em vez de x ^ 2 + 2xy + y ^ 2, por exemplo. Agora pense que série infinita é representada implicitamente pela função exponencial ... aí você tem seu espaço infinito de feições.

A maneira correta de pensar sobre SVMs é mapear seus recursos para um espaço de recurso dimensional infinitamente possivelmente representável implicitamente em outro espaço de recurso "Kernel" de dimensão finita cuja dimensão possa ser tão grande quanto o tamanho do conjunto de treinamento.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.