Escalando la variable hacia atrás en HMM Baum-Welch


10

Solo estoy tratando de implementar el algoritmo de Baum-Welch escalado y me he encontrado con un problema en el que mis variables hacia atrás, después de escalar, superan el valor de 1. ¿Es esto normal? Después de todo, las probabilidades no deberían ser superiores a 1.

Estoy usando el factor de escala que obtuve de las variables directas:

ct=1/sSαt(s)
donde c_t es el factor de escala para el tiempo t, alpha es la variable directa, s son los estados en hmm.

Para el algoritmo anterior, lo implementé en Java a continuación:

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;
    }

Las escalas se almacenan en la matriz llamada escalador. Hay 2 estados en este hmm. También debo tener en cuenta que los factores de escala que obtengo también son superiores a 1.

Respuestas:


0

No, esto en sí mismo indica ningún problema. es la probabilidad de que la secuencia de salida observada hasta era . Por lo tanto, está bien que sea ​​mayor que uno. Además, por ejemplo, para , es , que muy bien puede ser superior a uno.sSαt(s)tt0,t1,, eSequence.get(t)ctβtime1sSβtime1(s)=|S|ct1


0

Tengo otra idea, ya que escala representa queβ

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

entonces, creo que puede ser superior a 1.β

referencia esta nota (página 8)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.