Escolher um kernel é equivalente a escolher uma classe de funções a partir da qual você escolherá seu modelo. Se escolher um kernel é algo que codifica muitas suposições, é porque é! As pessoas novas no campo geralmente não pensam muito na escolha do kernel e apenas seguem o kernel gaussiano, mesmo que não seja apropriado.
Como decidimos se um kernel parece ou não apropriado? Precisamos pensar em como são as funções no espaço de função correspondente. O kernel gaussiano corresponde a funções muito suaves, e quando esse kernel é escolhido, assume-se que as funções suaves fornecerão um modelo decente. Nem sempre é esse o caso, e existem muitos outros kernels que codificam diferentes suposições sobre como você deseja que sua classe de função seja. Existem kernels para modelar funções periódicas, kernels não estacionários e várias outras coisas. Por exemplo, a suposição de suavidade codificada pelo kernel gaussiano não é apropriada para a classificação de texto, como mostrado por Charles Martin em seu blog aqui .
Vejamos exemplos de funções de espaços correspondentes a dois kernels diferentes. O primeiro será o kernel gaussiano e o outro será o kernel browniano de movimento . Um único sorteio aleatório de cada espaço se parece com o seguinte:k1(x,x′)=exp(−γ|x−x′|2)k2(x,x′)=min{x,x′}
Claramente, eles representam suposições muito diferentes sobre o que é um bom modelo.
Além disso, observe que não estamos necessariamente forçando a correlação. Considere sua função média como e sua função de covariância como . Agora nosso modelo é
ou seja, acabamos de recuperar a regressão linear.μ(x)=xTβk(xi,xj)=σ21(i=j)
Y|X∼N(Xβ,σ2I)
Mas, em geral, essa correlação entre pontos próximos é um modelo extremamente útil e poderoso. Imagine que você possui uma empresa de perfuração de petróleo e deseja encontrar novas reservas de petróleo. É extremamente caro perfurar, então você deseja perfurar o menor número de vezes possível. Digamos que tenhamos perfuradon=5buracos e queremos saber onde nosso próximo buraco deve estar. Podemos imaginar que a quantidade de óleo na crosta terrestre varia suavemente, portanto modelaremos a quantidade de óleo em toda a área que estamos considerando perfurar com um processo gaussiano usando o núcleo gaussiano, e é assim que estamos dizendo que lugares muito próximos terão quantidades muito semelhantes de petróleo e lugares muito distantes são efetivamente independentes. O núcleo gaussiano também é estacionário, o que é razoável neste caso: a estacionariedade diz que a correlação entre dois pontos depende apenas da distância entre eles. Em seguida, podemos usar nosso modelo para prever onde devemos perfurar em seguida. Acabamos de dar um único passo na otimização bayesiana, e acho que é uma maneira muito boa de apreciar intuitivamente por que gostamos do aspecto de correlação dos GPs.
Outro bom recurso é Jones et al. (1998) . Eles não chamam seu modelo de processo gaussiano, mas é. Este artigo mostra muito bem por que queremos usar a correlação entre pontos próximos, mesmo em um cenário determinístico.
Um ponto final: acho que ninguém jamais assume que podemos obter bons resultados de previsão. Isso é algo que gostaríamos de verificar, como por validação cruzada.
Atualizar
Quero esclarecer a natureza da correlação que estamos modelando. Primeiro, vamos considerar a regressão linear para que . Sob esse modelo, temos para . Mas também sabemos que se então
Y|X∼N(Xβ,σ2I)Yi⊥Yj|Xi≠j||x1−x2||2<ε
(E(Y1|X)−E(Y2|X))2=(xT1β−xT2β)2=⟨x1−x2,β⟩2≤||x1−x2||2||β||2<ε||β||2.
Portanto, isso nos diz que se as entradas e estão muito próximas, as médias de e estão muito próximas. Isso é diferente de estar correlacionado porque eles ainda são independentes, como evidenciado por como
x1x2Y1Y2
P(Y1>E(Y1|X) | Y2>E(Y2|X))=P(Y1>E(Y1|X)).
Se eles estivessem correlacionados, saber que está acima de sua média nos diria algo sobre .Y2Y1
Então agora vamos manter mas adicionaremos correlação por . Ainda temos o mesmo resultado que é pequeno, mas agora ganhamos o fato de que se for maior que sua média, digamos, provavelmente também será. Essa é a correlação que adicionamos.μ(x)=xTβCov(Yi,Yj)=k(xi,xj)||x1−x2||2<ε⟹(E(Y1|X)−E(Y2|X))2Y1Y2