o algoritmo soma-produto

Upload: mario-rodrigues-de-castro

Post on 18-Jul-2015

95 views

Category:

Documents


5 download

TRANSCRIPT

O Algoritmo Soma-ProdutoDaniel Igor Mendoza Quiones

Universidade de So Paulo, Brasil

O algoritmo Soma-Produto um algoritmo que, operando num grafo-fator, permite calcular de forma exata ou aproximada, funes marginais derivadas de uma funo global. Ele aplicado diversas reas como inteligncia articial, processamento de sinais e comunicao digital. No contexto da inferncia estatstica, o algoritmo de Propagao de Crena (Belief Propagation) uma aplicao particular do algoritmo Soma-Produto. Alem disso, em [1] se demonstra que algoritmos como o algoritmo BCJR, o algoritmo de Viterbi, o algoritmo de decodicao de turbo cdigos e o ltro de Kalman tambm so instancias particulares do algoritmo Soma-Produto. Este artigo tem como objetivo apresentar o algoritmo Soma-Produto e exemplos de sua aplicao nas reas de viso computacional e robtica.Resumo

1

Introduo

O problema de inferncia abordado em diversas reas da cincia como viso computacional, inteligencia articial, robtica e teoria de codicao e correo de erros. O objetivo calcular a distribuio a posteriori de um conjunto de variveis de interesse dado um conjunto de variveis observadas. Em geral, o calculo da distribuio a posteriori intratvel, devido a que o custo computacional cresce exponencialmente com o numero de variveis do sistema [2]. Existem diversos algoritmos para calcular ecientemente distribuies a posteriori em sistemas complexos. Neste artigo descreve-se o algoritmo Soma-Produto tambm conhecido como algoritmo de Propagao de Crena (Belief Propagation) que, aplicado num grafo-fator, permite calcular a distribuio a posteriori de forma eciente. A histria dos grafos-fatores e do algoritmo Soma-Produto tem incio em 1962 com o trabalho de Gallager [3], que introduziu os cdigos de matriz de paridade de baixa densidade (LDPC) e um algoritmo iterativo para decodicao atravs do clculo das probabilidades a posteriori, o qual considerado a primeira instancia do algoritmo Soma-Produto a aparecer na literatura. Em 1981, Tanner [4] introduziu grafos bi-particionados para descrever famlias de cdigos que so generalizaes dos cdigos de Gallager. Este tipo de grafo hoje conhecido como grafo de Tanner. Em 1995, Wiberg et al. [5] estendem os grafos de Tanner ao introduzir variveis de estado, dando origem aos grafos-fatores, e com isso proporcionam uma conexo com a descrio de cdigos atravs de trelias e com o algoritmo BCJR usado na decodicao turbo. Em paralelo, no ano 1982, Judea Pearl desenvolvia seu algoritmo de Propagao de Crena para

redes causais (Belief Propagation) [6]. Finalmente, foi em 1998 que McEliece et al. [7] observo que o algoritmo Soma-Produto e o algoritmo de Propagao de Crena eram a mesma coisa [8]. Mais recentemente, Kschischang, Frey e Loeliger [1] tem demonstrado que que muitos algoritmos importantes utilizados em reas como inteligncia articial, processamento de sinais e comunicaes digitais, so instncias do algoritmo Soma-Produto quando aplicado ao grafo-fator apropriado. Exemplos desse algoritmos so: o algoritmo belief propagation, o algoritmo BCJR, o algoritmo de Viterbi, o algoritmo de decodicao de turbo cdigos e o ltro de Kalman. Este artigo organiza-se da seguinte forma. O artigo inicia-se com esta introduo. Na seo 2 descreve-se o algoritmo Soma-Produto. Na seo 3 apresentase aplicaes deste algoritmo nas reas de viso computacional e robtica.

2

O algoritmo Soma-Produto

Nesta seo se descreve o algoritmo Soma-Produto. A descrio baseada na explicao do algoritmo encontrada em [1] e [8]. O algoritmo Soma-Produto permite calcular as funes marginais respondentes a uma funo global

g(xi )

cor-

f (x)

que possa ser expressada na forma

K

f (x) =k=1Onde

fk (xk ) .

(1)

x = (x1 , x2 , . . . , xn )

o vetor de variveis da funo global e

fk (xk )

uma funo que tem como argumento um subconjunto de variveis

xk

do vetor

x.A funo marginal

g(xi )

denida como

g(xi ) ={x}\xionde o operador

f (x) =x1 x2

xi1 xi+1

xn

f (x1 , x2 , . . . , xn ) .

(2)

{x}\xi denido como operador sumrio e designa os mltiplos somatrios de todos os argumentos da funo f (x1 , x2 , . . . , xn )excepto xi .Por exemplo, se

f

uma funo de 3 variveis,

x1 , x2 , x3 ,

ento, as funes

marginais para essas variveis so denidas como:

g1 (x1 ) ={x1 ,x2 ,x3 }\x1

f (x1 , x2 , x3 ) =x2 x3

f (x1 , x2 , x3 )

g2 (x2 ) ={x1 ,x2 ,x3 }\x2

f (x1 , x2 , x3 ) =x1 x3

f (x1 , x2 , x3 )

g3 (x3 ) ={x1 ,x2 ,x3 }\x3

f (x1 , x2 , x3 ) =x1 x2

f (x1 , x2 , x3 )

O algoritmo Soma-Produto opera sobre um modelo grco conhecido com grafo-fator. Um grafo-fator um grafo bi-particionado que que representa a estrutura da fatorao de uma funo. Esta constitudo por ns de variveis

fn e eixos que conectam um ns varivel xi com um ns fj se e s se xi um argumento do fator fj . Por exemplo, seja a funo g(x1 , x2 , x3 , x4 , x5 ) expressada como o produto de 5 funese ns de fatores fator

xn

g(x1 , x2 , x3 , x4 , x5 ) = fA (x1 )fB (x2 )fC (x1 , x2 , x3 )fD (x3 , x4 )fE (x3 , x5 )O grafo-fator correspondente a

(3)

g

se mostra na gura 1.

Figura 1.

Grafo-fator da funo g(x1 , x2 , x3 , x4 , x5 )

Grafos-fator um modelo grco que permite modelar sistemas, entendendo como modelo o conjunto de variveis do sistemas e as equaes que representam as interaes dessas variveis. Na modelagem de sistemas probabilsticos, um grafo-fator pode ser utilizado para representar a funo massa de probabilidade conjunta das variveis do sistema. Ele pode ser aplicado tanto a sistemas modelados com redes bayesianas como a sistemas modelados como Campos Aleatrios de Markov (MRF). Por exemplo, a gura 2 mostra uma rede bayesiana e seu correspondente grafo-fator, que representa a mesma funo distribuio de probabilidade conjunta:

P (F, B, L, G, H) =i

p(Xi |pa(Xi )) = P (F )P (L|F )P (D|F )P (D|B)P (H|D)(4)

O algoritmo Soma-Produto, aplicado ao grafo-fator do modelo probabilstico, permite calcular as distribuies marginais das variveis aleatrias do sistema.

Figura 2.

Rede Bayesiana transformada em grafo-fator

2.1

Inferncia exata: Algoritmo Soma-Produto em grafos sem ciclos

Quando o grafo-fator no apresenta ciclos (o grafo uma rvore), sua estrutura mostra as expresses para calcular exatamente todas as distribuies marginais das variveis aleatrias. Essas expresses levam diretamente ao algoritmo SomaProduto. Para facilitar o entendimento do algoritmo, podemos visualizar os ns do grafo-fator como processadores e os eixos como canais de comunicao entre os processadores. Esses processadores se comunicam mediante mensagens. Por isso dito que o algoritmo Soma-Produto um algoritmo de passagem de mensagens. Existem dois tipos de mensagens, de varivel a fator

xf

e de fator a varivel

f x . Uma mensagem ( xf fm varivel xn sempre umade um n

ou

f x )

enviado pelo eixo que conecta o fator

funo da varivel

xn . (ou a funo

A regra bsica que dene as mensagens a seguinte: a mensagem transmitida

atravs do ramo

e

o produto da funo local do n

unitria se

um n de varivel) com todas as mensagens recebidas em

atravs de seus outros ramos, operados com o operador sumario para a varivel

x

associada ao ramo

e. do grafo-fator. : (5)

Matemticamente, as mensagens so expressadas com as seguintes equaes: seja

n()

o conjunto de ns vizinhos de um n qualquer

xf (x) = f x (x) =x\xCom

hx (x)hn(x)\{f }

yf (x) f.(6)

f (X)yn(f )\{x}

X = n(f )

os argumentos da fator

A gura 3 mostra as mensagens

utilizadas no algoritmo Soma-Produto.

Figura 3.

Grafo-fator generico e as mensagens do algoritmo Soma-Produto [1].

O algoritmo denido em 3 etapas: 1. Inicializao: Escolhe-se um n arbitrrio como o n raiz, o que dene as folhas da arvore. Inicializa-se a passagem de mensagens pelas folhas. Se a folha um n de varivel um n de fator

x

a mensagem enviada

f,

a mensagem enviada

xf (x) = 1. f x (x) = f (x).

Se a folha

2. Atualizao: Um n (fator ou varivel) pode transmitir uma mensagem atravs de um ramo

e

apos ter recebido as mensagens dos outros ramos

do n. A mensagem a transmitir correspondem as equaes 5 e 6. 3. Finalizao: Depois que todos os ns do grafo-fator receberam mensagens provenientes de todos os seus ns vizinhos, a probabilidade marginal recebidas:

P (x)

pode ser obtida mediante o produto (normalizado) de todos as mensagens

P (x)

f x (x)f n(x)

(7)

No caso de ter um conjunto de variveis observadas

tiplicao das mensagens recebidas num n de varivel tribuio conjunta da varivel e todos os ns observados:

XE x

(evidencia), a mulcorresponde dis-

P (x|XE ) f n(x)

f x (x)

(8)

A distribuio de probabilidade condicional pode ser determinada mediante normalizao.

2.2

Inferncia aproximada: Algoritmo Soma-Produto em grafos com ciclos

Existem diferentes formas de calcular as marginais da funo global quando o grafo-fator apresenta ciclos. Uma das formas mais utilizadas transformar o grafo-fator com ciclos em um sem ciclos, aglomerando as variveis que formam os ciclos, e realizar clculos das marginais exatas. O custo de fazer isso que a complexidade do algoritmo incrementa com o numero de variveis aglomeradas. Esse mtodo conhecido como algoritmo Junction Tree [2]. Outra forma aplicar o algoritmo Soma-Produto sobre o grafo com ciclos. Nesse caso, o algoritmo obtm aproximaes das distribuies marginais. Este mtodo conhecido como algoritmo Loopy Belief Propagation. Devido aos ciclos no grafo, o algoritmo volve-se iterativo, sendo necessrio um critrio de parada com o intuito de nalizar o algoritmo (limitar o numero de iteraes ou quando os valores das mensagens se estabilizam) e de um cronograma de execuo que lide com a propagao de mensagens ao longo dos ciclos. Alem disso, a convergncia do algoritmo neste caso no garantida. O estudo da convergncia do algoritmo Soma-Produto em grafos com ciclos um tema de pesquisa aberto. Exemplos desses trabalhos so [9], [10]. Apesar de que a convergncia no garantida, o algoritmo Loopy Belief Propagation tem mostrado ser muito efetivo em diversas reas de aplicao como comunicaes digitais, inteligencia articial, processamento de sinais etc.

2.3 Variaes do Algoritmo Soma-ProdutoO algoritmo Soma-Produto o algoritmos base dos denominados algoritmos de passagem de mensagens [1] ou algoritmos de propagao sumria [8]. Existem diversas variaes do algoritmo Soma-Produto que seguem o mesmo principio passagem de mensagens porm, permitem calcular outras quantidades importantes. Na literatura, essas variaes so denominadas como algoritmos de Propagao de Crena (Belief Propagation). Um exemplo dessas variaes o algoritmo Max-Product que permite calcular a moda da distribuio a posteriori. A descrio desse algoritmo esta alem do objetivo deste artigo. Uma descrio apropriada do algoritmo pode ser encontrada em [11].

3

Aplicaes

O algoritmo Soma-Produto tem sido desenvolvido na rea de comunicaes digitais, especicamente na rea de cdigos para vericao de erros. Porm, devido a que o algoritmo Soma-Produto e o algoritmo de Propagao de Crena so a mesma coisa, utilizado tambm em aplicaes em inteligencia articial, viso computacional e robtica. Nesta seo se apresenta dois exemplos de aplicao.

3.1

Propagao de Crena aplicado a Viso Estereoscpica

Alguns dos melhores algoritmos de viso estereoscpica so baseados em Propagao de Crena [12]. No problema de viso estereoscpica o objetivo relacionar as projees de um mesmo ponto em dois imagens capturadas por dois cmeras diferentes separadas por uma distancia conhecida [13]. A idia geral da soluo , apos feita uma etapa de pr-calibrao para corresponder os pixeis das las das dois imagens, inferir a disparidade entre os pixeis correspondentes. Entende-se por disparidade a distancia entre pixeis quando uma imagem projetada na outra. Inferindo esta disparidade podemos calcular a profundidade

zs

de um ponto na imagem mediante a equao:

zs =Onde

f ds fa distancia focal [12].

(9)

a distancia entre as cmeras e

Um exemplo do uso do algoritmo de Propagao de Crena no problema de viso estereoscpica e apresentado em [14]. Neste trabalho, o problema modelado com 3 Campos de Aleatrios de Markov conectados: descontinuidades de profundidade na imagem de referencia e regies de ocluso na imagem de referencia. A distribuio conjunta das variveis dado o par de imagens estreo

D, a disparidade; L, que representa presena ou ausncia de O, que representa I =

{IR , IL }

expressada pela regra de Bayes:

P (D, L, O|I) =

P (I|D, L, O)P (D, L, O) P (I)

(10)

O calculo desta distribuio realizado utilizando o algoritmo Max-Product que resulta na mximo a posteriori. Neste trabalho o algoritmo foi comparado com outros algoritmos de inferncia, como Graph Cut e Bayesian Difussion, dando excelentes resultados de performance.

3.2

Propagao de Crena aplicado a alocao de tarefas em sistemas de mltiplos robs

Em [15] se apresenta uma aplicao do algoritmo de Propagao de Crena no problema de alocao de tarefas em sistemas de mltiplos robs. Nesse trabalho o problema de alocao de tarefa abordado como um problema de inferncia distribuda, onde cada rob deve decidir que tarefa realizar para atingir um objetivo comum. Com esse objetivo, os autores propem utilizar Propagao de Crena como soluo. A tarefa que o sistema de mltiplos robs deve realizar denomina Chain of Sight (COS). Nela, os robs so distribudos arbitrariamente num ambiente em que existem um ponto de origem conhecido e um ponto nal ou objeto de interesse desconhecido. Os robs devem encontrar o objeto de interesse e formar

uma cadeia de visibilidade entre o ponto de origem e esse objeto. O problema de alocao de tarefa consistem em determinar as localizaes dos robs para formar a cadeia de visibilidade. Os robs tem alcance de comunicao limitado e podem reconhecer outros robs e o objeto de interesse dentro de seu campo visual. A gura 4 mostra um exemplo desta aplicao.

Figura 4.

Exemplo de cadeia de visibilidade [15].

O problema de alocao de tarefas modelado com um Campo Aleatrio de Markov (MRF). Cada rob mantem dois variveis aleatrias, representa a percepo do rob e bilidade de que o rob

yi ,

varivel que

xi ,

varivel oculta (hidden) que representa a

probabilidade de alocao de tarefa (possveis localizaes do rob). A proba-

i

seja alocado a certa tarefa, que referida como crena

bi (xi ),

depende das observaes

yi

e das mensagens dos robs dentro do seu

rango de comunicao. A gura 5 mostra uma instancia do modelo grco do problema e as mensagens de Propagao de Crena utilizados. A crena

bi (xi )

do rob

i

determinada por:

bi (xi ) = Z(xi , yi )onde

mj,i (xi )

(11)

jN (i)

N (i) o conjunto de robs na vizini e (xi , yi ) uma funo de evidencia local e expressa a verossimilhana de que rob i seja alocado a uma tarefa especica, baseado nas observaes do rob yi . mj,i (xi ) uma mensagem do rob j ao rob i sugerindo uma tarefa para o rob i. A mensagem mj,i (xi ) expressada como: a constante de normalizao, hana do rob

Z

mj,i (xi ) =xj

j (xj , yj )j,i (xj , xi )kN (j)\i

mk,,j (xj )

(12)

Modelo grco utilizado em [15] para o problema de cadeia de visibilidade e mensagens do algoritmo de Propagao de Crena.Figura 5.

j,i (xj , xi ) a funo de compatibilidade que expressa quando o rob j deve xi , dado sua prpria possvel tarefa alocada xj .recomendar a alocao de tarefa especica A proposta estabelecer uma rede de comunicao entre os robs e utilizar o algoritmo de Propagao de Crena para que cada rob possa aproximar distribuio marginal de

xi .

Referncias

[1] KSCHISCHANG, F. R.; FREY, B. J.; LOELIGER, H.. Factor Graphs and the Sum-Product Algorithm. IEEE Transactions on Information Theory, v. 47, n. 2, pp. 498 - 519, 2001.Disponvel em: . Acesso em: 25 mar 2009. [2] MACKAY, D. J. C. Information Theory, Inference, and Learning Algorithms. Cambridge University Press, 2003. 640p. Disponvel em: . Acesso em: 10 abr 2009. [3] GALLAGER, R. G. Low-Density Parity-Check Codes. Cambridge, MA: MIT Press, 1963. [4] TANNER, R. M. A recursive approach to low complexity codes. IEEE Transactions on Information Theory, v. 27, pp. 533 - 547, Sept. 1981.Disponvel em: . Acesso em: 05 abr 2009. [5] WIBERG, N.. Codes and decoding on general graphs. 1996. 640 p.. Teses (Doutorado) - Univ.Linkping. Linkping, Sweden, 1996. [6] PEARL, J. Probabilistic Reasoning In intelligent Systems: Networks of Plausible Inference. 1er ed.: Morgan Kaufmann Publisher Inc., 1988. 552 p. [7] MCELIECE, R. J.; MACKAY, D. J. C.; CHENG, J. F. Turbo decoding as an instance of Pearl's belief propagation algorithm. IEEE Journal on Selected Areas in Communications, v. 16, n2, pp. 140 - 152, 1998. Disponvel em: . Acesso em: 06 abr 2009. [8] LOELIGER, H. A.. An Introduction to factor graphs. IEEE Signal Processing Magazine, pp. 28 - 41, Jan. 2004. Disponvel em: . Acesso em: 07 abr 2009.

[9] MURPHY, K. P.; WEISS, Y.; JORDAN, M. I. Loopy Belief Propagation for Approximate Inference: An Empirical Study. Proceedings of Uncertainty in AI, pp. 467 - 475, 1999 [10] YEDIDIA, J. S.; FREEMAN, W. T.; WEISS, Y. Understanding Belief Propagation and its Generalizations. In: Exploring Articial Intelligence in the New Millennium. Jan. 2003. Cap. 8, pp. 239 - 274. Disponvel em: . Acesso em: 20 abr. 2009. [11] WEISS, Y; FREEMAN, W. T. On the Optimality of Solutions of the MaxProduct Belief-Propagation Algorithm in Arbitrary Graphs. IEEE Transactions on Information Theory, v. 47, n 2, pp. 736 - 745, Feb. 2001.Disponvel em: . Acesso em: 04 abr. 2009. [12] SUDDERTH, E. B.; FREEMAN, W. T. Signal and Image Processing with Belief Propagation. IEEE Signal Processing Magazine, v. 25, n 2, pp. 114 - 141, Mar. 2008. Disponvel em: . Acesso em: 21 abr. 2009. [13] NALPANTIDIS, L.; SIRAKOULIS, G. CH.; GASTERATOS, A. Review of Stereo Matching Algorithms for 3D Vision. In: 16th International Symposium on Measurement and Control in Robotics (ISMCR 2007), 2007, Warsaw, Poland. 21-23 Jun. 2007. pp. 116 - 124. . Disponvel em: . Acesso em: 15 abr. 2009. [14] SUN, J.; ZHENG, N.; SHUM, H. Stereo Matching Using Belief Propagation. IEEE Transactions on Pattern Analysis and Machine Intelligence, v. 25, n 7, pp. 787 801, Jul. 2003. Disponvel em: . Acesso em: 20 abr 2009.Disponvel em: . Acesso em: 21 abr. 2009. [15] SCHWERTFEGER, J. N.; JENKINS, O. CH. Multi-Robot Belief Propagation for Distribuited Robot Allocation. In: IEEE 6th International Conference on Development and Learning (ICDL 2007), July 2007. pp. 193 - 198. . Disponvel em: . Acesso em: 12 abr. 2009.