Por que a probabilidade no filtro Kalman é calculada usando resultados de filtro em vez de resultados mais suaves?

11

Estou usando o filtro Kalman de uma maneira muito padrão. O sistema é representado pela equação de estado e a equação de observação .xt+1=Fxt+vt+1yt=Hxt+Azt+wt

Os livros didáticos ensinam que, depois de aplicar o filtro Kalman e obter as "previsões um passo à frente" (ou "estimativa filtrada"), devemos usá-los para calcular a função de probabilidade:x^t|t1

fyt|It1,zt(yt|It1,zt)=det[2π(HPt|t1H+R)]12exp{12(ytHx^t|t1Azt)(HPt|t1H+R)1(ytHx^t|t1Azt)}

Minha pergunta é: Por que a função de probabilidade é calculada usando a "estimativa filtrada" x^t|t1 e não a "estimativa suavizada" x^t|T ? Não é x^t|T uma melhor estimativa do vetor de estado?

Gustavo Amarante
fonte
Editei o título para ser mais informativo.
Juho Kokkala

Respostas:

5

Para responder à sua pergunta: você pode usar a densidade de suavização. Mas você não precisa. A resposta de Jarle Tufto tem a decomposição que você está usando. Mas existem outros.

Usando as recursões de Kalman

Aqui você está avaliando a probabilidade de

f(y1,,yn)=f(y1)i=2nf(yi|y1,,yi1).

Entretanto, meios e variações nem sempre definem completamente as distribuições de probabilidade em geral. A seguir, é apresentada a decomposição que você está usando para passar de filtrar as distribuições até as probabilidades condicionais :f(xi1|y1,,yi1)f(yi|y1,,yi1)

(1)f(yi|y1,,yi1)=f(yi|xi)f(xi|xi1)f(xi1|y1,,yi1)dxidxi1.

Aqui é a densidade de transição de estado ... parte do modelo é a densidade de observação ... parte do modelo novamente. Na sua pergunta, você as escreve como e respectivamente. É a mesma coisa.f(xi|xi1)f(yi|xi)xt+1=Fxt+vt+1yt=Hxt+Azt+wt

Quando você obtém a distribuição de previsão de estado um passo à frente, está computando . Quando você se integra novamente, você obtém (1) completamente. Você escreve essa densidade completamente na sua pergunta, e é a mesma coisa.f(xi|xi1)f(xi1|y1,,yi1)dxi1

Aqui você está usando apenas decomposições de distribuições de probabilidade e suposições sobre o modelo. Esse cálculo de probabilidade é um cálculo exato. Não há nada discricionário que você possa usar para fazer isso melhor ou pior.

Usando o algoritmo EM

Que eu saiba, não há outra maneira de avaliar a probabilidade diretamente nesse tipo de modelo de espaço de estado. No entanto, você ainda pode fazer uma estimativa de probabilidade máxima avaliando uma função diferente: você pode usar o algoritmo EM. Na etapa Expectativa (E-Step), você computaria Aqui

f(x1,,xn|y1,yn)logf(y1,,yn,x1,,xn)dx1:n=Esmooth[logf(y1,,yn,x1,,xn)].
f(y1,,yn,x1,,xn)é a probabilidade de "dados completos" e você está considerando a expectativa do log em relação à densidade de suavização da junta. O que geralmente acontece é que, porque você está assumindo o log dessa probabilidade de dados completa, os termos são divididos em somas e, devido à linearidade do operador de expectativa, você está assumindo expectativas em relação às distribuições de suavização marginal (aquelas você menciona na sua pergunta).

Outras coisas

Li em alguns lugares que o EM é uma maneira "mais estável" de maximizar a probabilidade, mas nunca vi esse ponto argumentar bem, nem vi a palavra "estável" definida, mas também não realmente não examinou isso mais. Nenhum desses algoritmos contorna a provação máxima local / global. Pessoalmente, costumo usar o Kalman com mais frequência apenas por hábito.

É verdade que as estimativas suavizadas do estado têm uma variação menor normalmente do que a filtragem, então acho que você está certo em ter alguma intuição sobre isso, mas não está realmente usando os estados. A probabilidade que você está tentando maximizar não é uma função dos estados.

Taylor
fonte
Qual a diferença entre KF e EM? Eles acabam fazendo a mesma coisa de maneiras vagamente semelhantes.
Mitch
1
@Mitch provavelmente é algo que merece mais do que um comentário. Depende do otimizador de uso geral que você usa com o KF e do tipo de EM que você usa. Não vou ter muita certeza sem investigar.
Taylor em
7

Em geral, pela regra do produto, a probabilidade exata pode ser escrita Partindo do pressuposto do modelo de espaço de estados, segue-se que o vetor de expectativa e a matriz de variação de cada condicional em observações passadas podem ser expressos como e

f(y1,,yn)=f(y1)i=2nf(yi|y1,,yi1).
yi
E(yi|y1,,yi1)=E(Hxt+Azt+wt|y1,,yi1)=HE(xt|y1,,yi1)+Azt+Ewt=Hx^t|t1+Azt,
Var(yi|y1,,yi1)=Var(Hxt+Azt+wt|y1,,yi1)=HVar(xt|y1,,yi1)H+Varwt=HPt|t1H+R.
Portanto, isso oferece a probabilidade exata sem calcular estimativas suaves.

Embora você possa, com certeza, usar as estimativas suavizadas, que na verdade são melhores estimativas dos estados desconhecidos, isso não daria a função de probabilidade. De fato, você usaria o valor observado de para estimar seu próprio valor esperado, portanto parece provável que isso levaria a algum viés nas estimativas resultantes. yi

Jarle Tufto
fonte
0

Penso que uma resposta melhor para "por que" a distribuição de suavização não é usada (normalmente) é eficiência. É, em princípio, simples calcular a probabilidade marginal (suavizada) no sentido de deixar de fora, da seguinte maneira. Excluir observação j, execute o Kalman mais suavemente nos dados restantes. Em seguida, avalie a probabilidade do y invisível (j). Repita isso para todos j. Resuma as probabilidades de log. Versões mais rápidas disso funcionam com blocos (randomizados) de amostras retidas (como CV k-fold). Observe que esse esquema requer uma implementação mais geral do filtro / suave Kalman, que pode ignorar arbitrariamente as atualizações de medição, quando necessário. O passe para trás / suavização não acessa as medições (algoritmo RTS de qualquer maneira) e permanece o mesmo.

Se a série temporal for "longa o suficiente", provavelmente haverá pouco benefício útil em fazer isso, pois a probabilidade de filtragem "queima" seu transiente inicial. Mas se o conjunto de dados for curto, a probabilidade de suavização mais cara pode valer a pena. Um atraso fixo mais suave pode ser uma solução intermediária.

threepwood
fonte