Eu uso a função RBF do kernel para implementar um algoritmo de aprendizado de máquina baseado em kernel (KLPP), a matriz do kernel resultante mostra-se extremamente mal-condicionado.O número da condição da norma L2 vem
Existe alguma maneira de torná-lo bem condicionado? Eu acho que o parâmetro precisa ser ajustado, mas não sei exatamente.
Obrigado!
Respostas:
Reduzir a largura do kernel geralmente reduz o número da condição.σm
No entanto, as matrizes do kernel podem se tornar singulares, ou quase singulares, para qualquer função básica ou distribuição de pontos, desde que as funções básicas se sobreponham. A razão para isso é realmente bastante simples:
Agora imagine escolher dois pontos e e -los lentamente para que eles mudem de lugar. Enquanto isso, o determinante de trocará de sinal, tornando-se zero em algum ponto intermediário. Nesse ponto, é, por definição, singular.xi xj K K
fonte
Algumas sugestões:
Escolha a distância média | aleatório - mais próximo . (Uma aproximação barata para pontos distribuídos uniformemente no cubo da unidade em é 0,5 / .) Queremos ser grande para próximo a , pequeno para ruído de fundo; traçar isso por alguns aleatórios .σ∼ x xi N Rd,d 2..5 N1/d
ϕ(|x−xi|) xi x x
Desloque longe de 0, , ou mais; isto é, regularize.K K→K+λI λ∼10−6
Observe os pesos da solução . Se alguns ainda são enormes (independentemente do número da condição), isso tenderia a confirmar Boyd (abaixo) que a RBF gaussiana é fundamentalmente fraca.(K+λI)w=f
(Uma alternativa ao RBF é a ponderação por distância inversa, IDW. Ela tem a vantagem do dimensionamento automático, o mesmo para as distâncias mais próximas 1 2 3 e para 100 200 300 Também acho a escolha explícita do usuário por , o número de vizinhos próximos a considerar, mais clara que a pesquisa em grade em .)… … Nnear σ,λ
John P. Boyd, A inutilidade da Fast Gauss Transform para somar séries de funções de base radial gaussiana , diz
Espero que isto ajude; por favor, compartilhe sua experiência.
fonte