Ajuste de hiperparâmetro na regressão de processo gaussiana


13

log(y|X,θ)=12yTKy1y12log(det(K))n2log(2π)
K
Kij=k(xi,xj)=b1exp(12(xixj)TM(xixj))+a1δij
M=lIa,bl

a derivada parcial dos parâmetros wrt de probabilidade marginal de log é fornecida pelos seguintes

log(y|X,θ)dθ=12trace(K1dKdθ)+12(ydKdθK1dKdθy)

Como as entradas de dependem dos parâmetros, assim como derivados e inversa de . Isso significa que, quando um otimizador baseado em gradiente é empregado, a avaliação do gradiente em um determinado ponto (valor do parâmetro) requer recomputação da matriz de covariância. Na minha aplicação, isso não é viável, porque calcular a matriz de covariância do zero e calcular sua inversa em cada iteração de subida de gradiente são muito caros. Minha pergunta é quais são minhas opções para encontrar uma combinação bastante boa desses três parâmetros? e também não sei qual parâmetro otimizar primeiro e também gostaria de receber dicas sobre esse assunto.KK


Tive sucesso ao usar o HMC para obter amostras de hiperparâmetros GP para conjuntos de dados de tamanho modesto.
Sycorax diz Restabelecer Monica

Olá @Sycorax, você poderia nos dizer como usou essa técnica para resolver esse problema? Tenho o mesmo problema que o OP pediu e tenho pensado em usar o MCMC para resolvê-lo, mas ainda não sei como fazer isso.
Willian Fuks

Acabei de codificar o GP em Stan. Os hiperparâmetros GP foram declarados como parâmetros do modelo e inferidos de acordo. Isso gerou um conjunto de previsões para cada iteração do HMC. Gelman ilustra como tudo isso funciona no BDA3.
Sycorax diz Restabelecer Monica

Respostas:


6

Você está certo que precisa de um novo cálculo da matriz de covariância em cada iteração de subida de gradiente. Portanto, se o cálculo da matriz não for viável para sua configuração, acho que você não poderá usar a otimização da probabilidade marginal baseada em gradiente.

Minha sugestão é usar métodos sem gradiente para o ajuste de hiperparâmetros, como pesquisa em grade, pesquisa aleatória ou pesquisa baseada em otimização bayesiana . Esses métodos são amplamente utilizados para hiperparâmetros de otimização de outros algoritmos de aprendizado de máquina, por exemplo, SVMs.

Sugiro a pesquisa em grade para sua primeira tentativa. Basicamente, você forma uma tabela (grade) de possíveis hiperparâmetros, tenta todos e procura o melhor desempenho de validação (ou melhor probabilidade marginal).

A pesquisa em grade produziria um conjunto sub-ótimo de hiperparâmetros, e você deverá especificar a grade sozinho (dica: criar grade em uma escala de log), mas é necessário muito menos computação. (e você não precisa de gradiente!)

Se você não está familiarizado com a pesquisa em grade, pode procurar na Wikipedia: Otimização de hiperparâmetro - Pesquisa em grade

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.