• Nenhum resultado encontrado

Entrada: Um MMEO λ= (Q,Σ, a, e, π) e uma seq¨uˆencia de observa¸c˜oess=s1· · ·sn. Sa´ıda: Uma seq¨uˆencia de estadosq=q1· · ·qn tal que Pr(q|s) seja m´axima.

1: para j= 1, . . . , N fa¸ca

2: δ(1, j)←π(j)ej(s1);

3: ψ(1, j)←0;

4: para i= 2, . . . , n fa¸ca

5: paraj = 1, . . . , N fa¸ca

6: δ(i, j)←

maxj0∈Qδ(i−1, j0)aj0j ej(si);

7: ψ(i, j)←argmaxj0∈Qδ(i−1, j0)aj0j;

8: qn ←argmaxj∈Qδ(n, j);

9: para i=n−1, . . . ,1fa¸ca

10: qi ←ψ(i+ 1, qi+1 );

11: Devolvaq=q1· · ·qn;

A prop´osito, ´e interessante destacar a similaridade da rela¸c˜ao de recorrˆencia das vari´ a-veis δ do Algoritmo Viterbi e das vari´aveis α do Algoritmo Progressivo: o Algoritmo Viterbi pode ser obtido a partir do Algoritmo Progressivo (a menos da determina¸c˜ao do passeioq) pela simples substitui¸c˜ao de somas pelo c´alculo de m´aximo.

5.4.2.2.1 An´alise de Complexidade No come¸co do Algoritmo Viterbi, a primeira linha de cada uma das matrizesδ eψ(ambas matrizes de dimens˜oes|s| × |Q|) ´e inicializada em tempo O(|Q|).

9A observa¸ao ´e relevante porque o que o Algoritmo de Viterbi calcula ´e a probabilidade conjunta de s de do passeio ´otimo, enquanto o foco do Problema da Decodifica¸ao est´a na probabilidade condicional de passeios, dadas as seq¨encias de observa¸oes.

5.4 Problemas B´asicos de MMEOs 133

A parte principal do algoritmo consiste de dois la¸cos encaixados. A parte mais interna do la¸co cont´em um c´alculo de m´aximo sobre os estados de λ (al´em da determina¸c˜ao do estado em que o m´aximo ´e atingido) e ela pode ser realizada em tempo O(|Q|). Como os la¸cos encaixados executam um total de O(|s||Q|) itera¸c˜oes, o tempo para esta parte do algoritmo ´e deO(|s||Q|2).

O c´alculo deqn leva tempo O(|Q|). Finalmente, a determina¸c˜ao dos demais estados qi

´

e feita em tempoO(|s|).

Isso tudo significa que o Algoritmo Viterbi pode ser executado em tempo O(|Q|) + O(|s||Q|2) +O(|Q|) +O(|s|) =O(|s||Q|2), a mesma complexidade de tempo dos Algoritmos Progressivo e Regressivo.

Quanto ao espa¸co, al´em dos dados de entrada e das vari´aveis de controle, o Algoritmo Viterbiusa apenas as matrizesδeψ(ambas com|s|linhas por|Q|colunas) e um vetor para devolver a seq¨uˆencia q (que possui tamanho|s|). Logo, o consumo de espa¸co do algoritmo

´

e O(|s||Q|). Argumentos similares aos que j´a usamos para os Algoritmos Progressivo e Regressivopodem nos convencer de que o AlgoritmoViterbi pode ser implementado de maneira que o espa¸co usado sejaO(|Q|), se apenas a probabilidade Pr(q|s) for desejada.

5.4.2.2.2 Coment´arios Gerais Uma observa¸c˜ao trivial, mas importante em rela¸c˜ao ao Problema da Decodifica¸c˜ao ´e que um passeioq pode ser interpretado como uma rotula¸c˜ao das observa¸c˜oes des: com esta interpreta¸c˜ao, o s´ımbolo si da seq¨uˆencia de observa¸c˜oes ´e rotulado com o valorqi (ou com o valor de uma fun¸c˜ao deqi), para cada i.

Por exemplo, no caso do cassino desonesto, se tiv´essemos quatro dados sendo lan¸cados com dois deles sendo honestos e os outros dois, viciados, poder´ıamos estar interessados em saber se, dada uma seq¨uˆencia sde lan¸camentos, o i-´esimo resultado prov´em (com grande probabilidade) de um dado honesto ou de um dado viciado, sem importar qual dado produziu o resultado.

Esse tipo de tratamento de um passeio em umMMEOcomo uma rotula¸c˜ao da seq¨uˆencia de observa¸c˜oes ´e ´util para v´arias aplica¸c˜oes, incluindo a constru¸c˜ao de alinhamentos de seq¨uˆencias biol´ogicas.

Outro ponto a ressaltar sobre os algoritmos apresentados at´e aqui ´e que eles geralmente trabalham com um grande n´umero de produtos de fatores de pequena magnitude (probabili-dades). Isso fica bastante claro ao observar-se, por exemplo, o pseudo-c´odigo do Algoritmo Viterbi. Nesses casos, h´a riscos de que os n´umeros em quest˜ao fiquem t˜ao pequenos a ponto de n˜ao poderem ser representados em computadores convencionais (ocorrˆencia de

“underflow”).

Tal problema pode ser aliviado pelo uso de logaritmos das probabilidades para que se lide com n´umeros de magnitudes maiores do que aquelas que surgiriam se as probabilidades fossem usadas diretamente. Essa transforma¸c˜ao tamb´em apresenta o desej´avel efeito cola-teral de converter as multiplica¸c˜oes em adi¸c˜oes (que normalmente podem ser executadas em menos tempo do que multiplica¸c˜oes nos computadores convencionais).

Por exemplo, para o Algoritmo Viterbi, a modifica¸c˜ao ´e bastante direta ao usarmos logaritmos de probabilidades. J´a para os Algoritmos Progressivo e Regressivo, as transforma¸c˜oes para uso de logaritmos n˜ao s˜ao t˜ao imediatas quanto no caso anterior, mas ainda assim s˜ao poss´ıveis [DEKM98].

A id´eia b´asica ´e observar que log(x+y) = logx+log(1+y/x), sex6= 0. Fazendoz=y/x e supondo-sey≤x, temos quez≤1. Da´ı, o termo log(1 +z) pode ser facilmente calculado a partir de sua s´erie de Taylor (possivelmente via alguma implementa¸c˜ao em biblioteca),

de interpola¸c˜oes lineares de uma tabela de log(1 +z) para valores de z entre 0 e 1 ou de alguma mescla de t´ecnicas que sejam adequadas.

Outros m´etodos podem ainda serem usados para evitar trabalhar com n´umeros muito pequenos [DEKM98].

5.4 Problemas B´asicos de MMEOs 135

dispor de seq¨uˆencias de observa¸c˜oes do fenˆomeno e, por algum meio (talvez indireto), ter as seq¨uˆencias j´a rotuladas com estados do modelo.

Por exemplo, podemos ter uma cole¸c˜ao de seq¨uˆencias de DNA que j´a estejam anotadas, de forma que se saiba, para cada seq¨uˆencia, quais trechos fazem parte de ilhas CpGe quais trechos n˜ao fazem. Essa rotula¸c˜ao pode ser determinada, digamos, por algum m´etodo emp´ırico ou por inspe¸c˜ao manual [DEKM98]. Poder´ıamos, ent˜ao, estar interessados em construir umMMEOpara sistematizar a rotula¸c˜ao de outras seq¨uˆencias de DNA em rela¸c˜ao a ilhas CpGusando as seq¨uˆencias j´a anotadas no treinamento dos parˆametros do MMEO.

Uma vez que o modelo esteja totalmente especificado, ele pode ser usado para rotular uma nova seq¨uˆencia de DNA cuja estrutura ainda n˜ao seja conhecida. Em outras palavras, ele pode ser usado para encontrar uma seq¨uˆenciaq de estados doMMEOpara a seq¨uˆencia de observa¸c˜oess, por meio de alguma solu¸c˜ao ao Problema da Decodifica¸c˜ao (e.g., Algoritmo Viterbi).

Supomos ent˜ao que, para cadaj = 1, . . . , k, tenhamos um par (sj, qj).

Um algoritmo para estimar as probabilidades de transi¸c˜ao do modelo λ, fixados Qe Σ e conhecidos s1, . . . , sk e q1, . . . , qk pode ser percorrer o grafo do modelo λ para cada um dos passeios qj, contar quantas vezes cada transi¸c˜ao do modelo foi usada e adotar como probabilidade daquela transi¸c˜ao a sua freq¨uˆencia relativa (em rela¸c˜ao `as transi¸c˜oes com mesmo estado de origem).

Mais precisamente, seja Ajxy o n´umero de vezes que a transi¸c˜ao do estado x ao estado y foi usada no passeioqj. Com essa defini¸c˜ao, segue que Axy =Pk

j=1Ajxy ´e o n´umero de vezes que a transi¸c˜ao dexay foi usada por todos os passeios e, al´em disso, a probabilidade axy da transi¸c˜ao dex a y pode assim ser estimada por

axy = Axy P

y0∈QAxy0,

para cada transi¸c˜ao (x, y) do modelo. Estes s˜ao os estimadores de m´axima verossimilhan¸ca para as probabilidades de transi¸c˜ao [DEKM98].

De maneira parecida, as probabilidades de emiss˜ao de s´ımbolos podem ser estimadas tamb´em como freq¨uˆencias relativas de quanto a emiss˜ao de um dado s´ımbolo foi gerada em um dado estado. Mais formalmente, seja Exj(b) a quantidade de vezes que o s´ımbolo b foi gerado no estado x pelo passeio qj, para todo b ∈ Σ, x ∈ Q e j = 1, . . . , k. Para cada s´ımbolob e para cada estadox, sejaEx(b) =Pk

j=1Exj(b). A freq¨uˆencia relativa Ex(b)

P

b0∈ΣEx(b0)

pode ser usada para estimar a probabilidade ex(b) e, neste caso, a freq¨uˆencia relativa ´e tamb´em um estimador de m´axima verossimilhan¸ca para as probabilidades de emiss˜ao de s´ımbolos [DEKM98].

Finalmente, a mesma estrat´egia pode ser usada para estimar as probabilidades iniciais π. Seja Πj(x) = 1 seqj[1] =x ou Πj(x) = 0 seqj[1]6=x. Definamos Π(x) = Pk

j=1Πj(x), isto ´e, o n´umero de vezes que o estado x∈Q´e o in´ıcio de um passeio no modelo que gerou ask observa¸c˜oes.

Com esta nota¸c˜ao, para cada x∈Q, a freq¨uˆencia relativa Π(x)

P

x∈QΠ(x) = Π(x) k

´

e o estimador de m´axima verossimilhan¸ca para a probabilidade π(x) de que x inicie um passeio no modeloλ[DEKM98].

Conforme deve ficar claro, a estima¸c˜ao dos parˆametros do modelo (supondo-se que o modelo de fato represente o fenˆomeno em estudo) ´e t˜ao melhor quanto maior for a quan-tidade dispon´ıvel de dados para treinamento. Infelizmente, entretanto, o m´etodo de uso de estimadores de m´axima verossimilhan¸ca possui a deficiˆencia de que, digamos, se uma transi¸c˜ao (x, y) tiver probabilidade muito baixa (mas n˜ao-nula) pode acontecer que nenhum dos dados de treinamento (no caso de transi¸c˜oes, os passeios no grafo deλ) apresente uma ocorrˆencia de (x, y) e que, desta forma, Axy = 0, de onde segue que a probabilidade esti-madaaxy para a transi¸c˜ao (x, y) seja 0, o que n˜ao ´e desejado (pois queremos que os modelos estimados atribuam, para cada passeio v´alido no modelo, uma probabilidade diferente de zero para as seq¨uˆencias de observa¸c˜oes que puderem ser geradas por tais passeios).

Tal situa¸c˜ao ´e a mesma que vimos para a estima¸c˜ao de parˆametros de Cadeias de Markov e tamb´em para o presente caso usam-se pseudo-contadores, sendo que uma das estrat´egias

´

e a Regra de Laplace (isto ´e, adicionar 1’s como pseudo-contadores de cada parˆametro do modelo). Evita-se, desta forma, o Problema da Probabilidade Zero e, tamb´em, qualquer possibilidade de ocorrˆencia de zero nos denominadores dos c´alculos das freq¨uˆencias relativas.

Tamb´em como no caso das Cadeias de Markov, as quantias adicionadas podem refletir algum conhecimento pr´evio de como as probabilidades do modelo devem ser (por outro lado, a Regra de Laplace pode ser usada quando nenhuma informa¸c˜ao a mais ´e conhecida a respeito daquilo que se deseja modelar).

O pseudo-c´odigo para o AlgoritmoEstimaPC, que implementa o m´etodo, est´a adiante.

Nele, as contagens de uso de transi¸c˜oes, emiss˜oes de s´ımbolos e de estados iniciais est˜ao acumuladas diretamente nas matrizes A,E e Π, sem fazer uso das contagens em separado para cada passeio (isto ´e, sem usar Aj,Ej ou Πj).

5.4.3.1.1 An´alise de Complexidade A inicializa¸c˜ao das matrizesA,Ee Π com 0’s ou com pseudo-contadores ´e feita em tempoO(|Q|2) +O(|Q||Σ|) +O(|Q|) =O(|Q|2+|Q||Σ|).

As contagens das freq¨uˆencias de transi¸c˜oes, de emiss˜oes e de in´ıcio de gera¸c˜ao s˜ao feita pelo la¸co principal do algoritmo em tempo O(1) para cada caractere das seq¨uˆencias de treinamento, isto ´e, em tempo totalO(P

jnj), ondenj =|sj|. Denotando porno max{nj}, segue que essa parte do algoritmo pode ser executada em tempoO(kn).

O c´alculo das freq¨uˆencias relativas ´e feito em trˆes partes. Para a primeira, referente

`

as probabilidades de transi¸c˜oes, o algoritmo leva tempoO(|Q|2). Para a segunda, em que as probabilidades de emiss˜ao s˜ao estimadas, o tempo usado ´e O(|Q||Σ|). Para a terceira, onde as probabilidades iniciais s˜ao estimadas, o tempo ´e O(|Q|). Logo, o tempo gasto por estes c´alculos ´e O(|Q|2+|Q||Σ|), o mesmo tempo (assintoticamente falando) usado na inicializa¸c˜ao de A,E e Π.

O algoritmo leva, portanto, tempo O(|Q|2+|Q||Σ|+kn) para ser executado. Em casos de interesse, a quantidade de dados de treinamento ´e grande e o termokn´e dominante na complexidade de tempo.

Para contabilizar o espa¸co, basta observar que, excetuando-se as vari´aveis de controle dos la¸cos, as vari´aveisA0,E0 e Π0 e as matrizes a,ee π de sa´ıda, apenas as matrizes A,E e Π s˜ao utilizadas, que possuem tamanho total O(|Q|2+|Q||Σ|+|Q|) =O(|Q|2+|Q||Σ|).

Naturalmente, as matrizes a,e e π possuem, respectivamente, os mesmos tamanhos10 que

10Em uma implementa¸ao real do AlgoritmoEstimaPC, as matrizesa,e eπpodem ser as mesmas que A, E e Π, de forma que n˜ao ´e necess´ario usar espa¸co em separado para o c´alculo das freq¨encias e das

5.4 Problemas B´asicos de MMEOs 137

No documento Alinhamento de Seq¨uˆencias Biol´ogicas (páginas 150-155)