Escalando a variável reversa no HMM Baum-Welch


9

Estou apenas tentando implementar o algoritmo de Baum-Welch em escala e encontrei um problema em que minhas variáveis ​​anteriores, após a escala, ultrapassam o valor de 1. Isso é normal? Afinal, as probabilidades não devem exceder 1.

Estou usando o fator de escala que obtive das variáveis ​​avançadas:

ct=1/sSαt(s)
onde c_t é o fator de escala do tempo t, alfa é a variável direta, s são os estados no hmm.

Para o algoritmo backward, eu o implementei em java abaixo:

public double[][] backwardAlgo(){
        int time = eSequence.size();
        double beta[][] = new double[2][time];

        // Intialize beta for current time
        for(int i = 0; i < 2; i++){
            beta[i][time-1] = scaler[time-1];
        }

        // Use recursive method to calculate beta
        double tempBeta = 0;
        for(int t = time-2; t >= 0; t--){
            for(int i = 0; i < 2; i++){
                for(int j = 0; j < 2; j++){
                    tempBeta = tempBeta + (stateTransitionMatrix[i][j] * emissionMatrix[j][eSequence.get(t+1)] * beta[j][t+1]);
                }
                beta[i][t] = tempBeta;
                beta[i][t] = scaler[t] * beta[i][t];
                tempBeta = 0;
            }
        }
        return beta;
    }

As escalas são armazenadas na matriz chamada scaler. Existem 2 estados neste hmm. Devo também observar que os fatores de escala que estou obtendo também ultrapassam 1.

Respostas:


0

Eu não faço isso por si só indica qualquer problema. é a probabilidade de que a sequência de saída observada até seja ,. Portanto, é bom que seja maior que um. Além disso, por exemplo, para , é , que pode muito bem ter mais de um.t t 0 , t 1 , ... , c t β t i m e - um Σ s S β t i m e - uma ( s ) = | S | c t - 1sSαt(s)tt0,t1,, eSequence.get(t)ctβtime1sSβtEume-1(s)=|S|ct-1


0

Tenho outra ideia, pois escalado representa queβ

βt(s)=p(xt+1,...,xN|st=s)p(xt+1,...,xN|x1,...,xt)

então, acho que pode ter mais de 1.β

consulte esta nota (página 8)

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.