Por que os modelos de processos gaussianos são chamados não paramétricos?

26

Eu estou um pouco confuso. Por que os processos gaussianos são chamados de modelos não paramétricos?

Eles assumem que os valores funcionais, ou um subconjunto deles, têm um Gaussiano anterior com média 0 e função de covariância dada como função do kernel. Essas funções do kernel possuem alguns parâmetros (ou seja, hiperparâmetros).

Então, por que eles são chamados de modelos não paramétricos?

user34790
fonte
11
Conheço várias definições de "processos gaussianos", portanto não é aparente o que sua pergunta realmente está perguntando. Mas, ao considerar como esclarecê-lo, pergunte a si mesmo: exatamente como você parametrizaria o processo gaussiano que tem em mente? Se você não pode fazê-lo de maneira natural com um número finito de parâmetros reais, deve ser considerado não paramétrico.
whuber
@whuber. AFAIK, os principais parâmetros dos processos gaussianos são a média e as funções de covariância. Mas, à medida que continuamos adicionando pontos de dados, eles continuam aumentando. Então continua aumentando. É por isso que os processos gaussianos são denominados como não paramétricos?
user34790
@whuber Se eu tiver milhões de pontos de dados de treinamento, meu GP f ~ N (m, k) será uma distribuição gaussiana multivariada e multidimensional. Isso não é muito grande? Quero dizer, à medida que novos dados de treinamento chegam, cada vez maiores. Não gera problema computacional?
user34790
11
"Paramétrico" versus "não paramétrico" são termos que não se aplicam a processos específicos: eles se aplicam a toda a família de processos que podem ser adequados aos dados. Embora eu ainda não saiba qual família você tem em mente, parece que, embora o número de parâmetros possa ser finito em qualquer circunstância, não há limite para o número de parâmetros que podem aparecer entre os membros da família : logo, o problema é não paramétrico.
whuber

Respostas:

20

Eu prefácio isso dizendo que nem sempre é claro o que se quer dizer com "não paramétrico" ou "semiparamétrico" etc. Nos comentários, parece provável que o whuber tenha alguma definição formal em mente (talvez algo como escolher um modelo de alguma família onde é de dimensão infinita), mas eu vou ser bem informal. Alguns podem argumentar que um método não paramétrico é aquele em que o número efetivo de parâmetros que você usa aumenta com os dados. Eu acho que há um vídeo no videolectures.net onde (eu acho) Peter Orbanz dá quatro ou cinco tomadas diferentes sobre como podemos definir "não paramétrico". { M θ : θ Θ } ΘMθ{Mθ:θΘ}Θ

Como acho que sei que tipo de coisas você tem em mente, por simplicidade, assumirei que você está falando sobre o uso de processos gaussianos para regressão, de uma maneira típica: temos dados de treinamento estamos interessados ​​em modelar a média condicional . Escrevemos e talvez tenhamos a ousadia de assumir que os são iid e normalmente distribuídos, . será unidimensional, mas tudo será transferido para dimensões superiores.E ( Y | X(Yi,Xi),i=1,...,nY i = f ( X i ) + ϵ i ϵ i ϵ iN ( 0 , σ 2 ) X iE(Y|X=x):=f(x)

Yi=f(Xi)+ϵi
ϵiϵiN(0,σ2)Xi

Se nosso pode aceitar valores em um continuum, então pode ser pensado como um parâmetro de (infinita) dimensão infinita. Portanto, no sentido em que estamos estimando um parâmetro de dimensão infinita , nosso problema é não paramétrico. É verdade que a abordagem bayesiana tem alguns parâmetros flutuando aqui e ali. Mas, na verdade, é chamado não paramétrico, porque estamos estimando algo de dimensão infinita. Os anteriores do GP que usamos atribuem massa a todas as vizinhanças de todas as funções contínuas, para que possam estimar arbitrariamente qualquer função contínua. f ( )Xif()

As coisas na função turbulentos estão desempenhando um papel semelhante ao dos parâmetros de suavização nos estimadores frequentistas habituais - para que o problema a não ser absolutamente impossível nós temos que assumir que há alguma estrutura que nós esperamos ver exposição. Os bayesianos conseguem isso usando um prior no espaço de funções contínuas na forma de um processo gaussiano. De uma perspectiva bayesiana, estamos codificando crenças sobre , assumindo que é extraído de um GP com função de covariância. O prior penaliza efetivamente as estimativas de por ser muito complicado.f f fffff

Editar para problemas computacionais

A maioria (tudo?) Dessas coisas está no livro do Processo Gaussiano de Rasmussen e Williams.

Questões computacionais são complicadas para os GPs. Se prosseguirmos com niavelidade, precisaremos de memória de tamanho apenas para manter a matriz de covariância e (ao que parece operações para invertê-la. Existem algumas coisas que podemos fazer para tornar as coisas mais viáveis. Uma opção é notar que o indivíduo que realmente precisamos é , a solução para onde é a matriz de covariância. O método dos gradientes conjugados resolve isso exatamente nos cálculos de , mas se nos satisfizermos com uma solução aproximada, poderíamos terminar o algoritmo do gradiente conjugado após etapas e fazê-lo emO ( NO(N2)v ( K + σ 2 I ) v = Y K O ( N 3 ) k O ( k N 2 ) KO(N3)v(K+σ2I)v=YKO(N3)kO(kN2)cálculos. Também não precisamos necessariamente armazenar toda a matriz uma só vez.K

Então, passamos de para , mas isso ainda escala quadraticamente em , portanto, podemos não ser felizes. A próxima melhor coisa a fazer é trabalhar com um subconjunto de dados, digamos, do tamanho onde inverter e armazenar uma matriz não é tão ruim. Obviamente, não queremos apenas jogar fora os dados restantes. A abordagem do subconjunto de regressores observa que podemos derivar a média posterior do nosso GP como uma regressão de nossos dados em funções dependentes de dados determinadas por nossa função de covariância; então jogamos fora todos menos deles e reduzimos para cálculos.O ( k N 2 ) N m m × m S N m O ( m 2 N )O(N3)O(kN2)Nmm×mYNmO(m2N)

Existem algumas outras opções em potencial. Poderíamos construir uma aproximação de baixo escalão para e definir onde é e de escalão ; ele vira invertendo , neste caso, pode ser feito em vez invertendo . Outra opção é escolher a função de covariância como esparsa e usar métodos de gradiente conjugado - se a matriz de covariância for muito esparsa, isso poderá acelerar substancialmente os cálculos.K = Q Q T Q n × q q K + σ 2 I Q T Q + σ 2 IKK=QQTQn×qqK+σ2IQTQ+σ2I

cara
fonte
8

De um modo geral, o "não paramétrico" nos não paramétricos bayesianos refere-se a modelos com um número infinito de parâmetros (potenciais). Existem muitos tutoriais e palestras realmente agradáveis ​​sobre o assunto no videolectures.net ( como este ) que oferecem boas visões gerais dessa classe de modelos.

Especificamente, o Processo Gaussiano (GP) é considerado não paramétrico porque um GP representa uma função (isto é, um vetor dimensional infinito). À medida que o número de pontos de dados aumenta ((x, f (x)) pares), o mesmo acontece com o número de 'parâmetros' do modelo (restringindo o formato da função). Ao contrário de um modelo paramétrico, em que o número de parâmetros permanece fixo em relação ao tamanho dos dados, em modelos não paramétricos, o número de parâmetros cresce com o número de pontos de dados.

usuario
fonte
Isto é exatamente o que eu estava assumindo. Então, minha suposição está certa, eu acho. Mas minha pergunta é se eu tenho milhões de pontos (dados observados). Então meu f também será de milhões de dimensões. Então, eu não teria problemas computacionais. Além disso, minha matriz de covariância também será do tamanho de 1 milhão x 1 milhão. Então, o que devo fazer neste caso?
user34790
@ user34790 sim, você teria problemas computacionais. Os desafios computacionais são bastante importantes para os GPs. Rasmussen e Williams têm um livro sobre GPs com um capítulo inteiro dedicado a isso, e se você pesquisar o bastante, poderá encontrá-lo online gratuitamente. Veja meu post atualizado para obter alguns detalhes mínimos.
guy
1

Os parâmetros que você mencionou como hiperparâmetros não são parâmetros fisicamente motivados e, portanto, o nome. Eles são usados ​​para parametrizar apenas a função do kernel. Para dar um exemplo, em um kernel gaussiano:

K(xi,xj)=h2exp((xixj)2λ2)

hλ

Esta questão foi abordada nesta palestra também, pode ajudar a entender melhor.

camillejr
fonte