SVM rbf kernel - método heurístico para estimar gama


8

Li nessa troca um método heurístico de estimativa de gama para o kernel rbf nos SVMs. Fiquei imaginando se alguém poderia me explicar um pouco mais detalhadamente. Acredito que você selecione 1000 (ou um grande número) de pares de pontos de dados no conjunto de dados e calcule a norma para a diferença de cada par. Aparentemente, o inverso dos quantis .1, .9 e mediana são bons candidatos para uma gama adequada para o kernel rbf.

obrigado


Veja também esta resposta a uma pergunta duplicado
denis

Respostas:


8

Primeiro de tudo, não há razão, exceto o custo computacional, para não usar todo o conjunto de dados. Desde que você não use as informações da etiqueta, não há motivos para não usar todas as informações que você pode obter dos seus dados.

Por que os quantis da distância são uma boa heurística? A solução de um problema SVM é uma combinação linear dos kernels RBF que ficam nos vetores de suporte . Durante a fase de aprendizado, a otimização adapta o para maximizar a margem, mantendo a classificação correta.iyiαiexp(γ||xxi||2)αi

Agora, existem dois casos extremos para a escolha de :γ

  1. Imagine que é muito pequeno, o que significa que o kernel RBF é muito amplo. Vamos supor que seja tão amplo que o kernel RBF ainda seja suficientemente positivo para todos os pontos de dados do conjunto de dados. Isso provavelmente dará ao otimizador um trabalho árduo, pois alterar o valor de um único alterará a função de decisão em todos os pontos de dados, porque o kernel é muito amplo.γαi
  2. A outra situação extrema é quando o é grande, o que significa que o kernel RBF é muito estreito. Ao alterar o para esse ponto de dados, a função de decisão do SVM basicamente mudará apenas para esse ponto de dados. Isso significa que provavelmente todos os vetores de treinamento acabarão como vetores de suporte. Isso claramente não é desejável.γαi

Para ver que a heurística é uma boa escolha, é preciso perceber que um certo valor de determina um limite para o kernel RBF no qual o kernel será maior que um determinado valor (como o one- quantile para o Normal distribuição). Ao escolher o acordo com os quantis nas distâncias aos pares, você garante que uma certa porcentagem dos pontos de dados esteja dentro desse limite. Portanto, se você alterar o para um ponto de dados, na verdade, apenas afetará a função de decisão para uma certa porcentagem de pontos de dados, que é o que você deseja. Como essa porcentagem deve ser escolhida depende do problema de aprendizado, mas você evita alterar a função de decisão para todos ouγσγαiapenas um ponto de dados .


Obrigado fabee que faz muito sentido. Estou curioso por causa dos custos de computação da validação cruzada + pesquisa de grade com meu conjunto de dados. Também estou lidando com séries temporais, fazendo uma validação cruzada do tipo janela de rolamento em vez de dobras em k. Se você tem algumas sugestões de aceleração, definitivamente abertas a elas. Ou sugestões sobre como lidar com dados de séries temporais dependentes (autocorrelacionados). Obrigado.
tomas

Desculpe, não tenho nenhuma boa sugestão em cima da minha cabeça. O problema é que os dados não são mais iid. Uma maneira simples de se livrar das correlações automáticas é treinar um modelo autorregressivo e subtrair a previsão dos pontos de dados. Isso é essencialmente clareador.
fabee

1

sim! Você está descrevendo o chamado "truque mediano".

Eu realmente gosto da intuição por trás da resposta acima. Também acho que é mais fácil entender o problema de escolher , pensando nele como o inverso da variação do RBF, à la para que o RBF se torne γ

γ=12σ2
ϕ(x)=exxi22σ2

Agora está claro que o problema de procurar uma boa é essencialmente o mesmo que procurar uma boa variação para uma função gaussiana (menos um fator de escala).γ

Para fazer isso, recorremos aos estimadores de variação, mas, em vez de calcular a variação através da distância quadrada média de alguns como , calculamos quantis nessa distância quadrada.xiE[(xxi)2]

Como o pôster acima disse, o uso de quantis nos dá controle sobre quantos pontos de dados estão dentro de um (ou dois, ou três ..) desvios padrão de nossa função gaussiana.

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.