680 likes | 1.02k Views
Estudo e implementação de algoritmos de inferência e aprendizado em redes bayesianas. Felipe Leal Valentim Orientação: Rudini Menezes Sampaio Co-Orientação: Ricardo Martins de Abreu Silva. Roteiro. Fundamentos da teoria da probabilidade Redes bayesianas Inferência bayesiana
E N D
Estudo e implementação de algoritmos de inferência e aprendizado em redes bayesianas Felipe Leal Valentim Orientação: Rudini Menezes Sampaio Co-Orientação: Ricardo Martins de Abreu Silva
Roteiro • Fundamentos da teoria da probabilidade • Redes bayesianas • Inferência bayesiana • Aprendizado de parâmetros • Aprendizado de estrutura • O sistema UFLABayes • Resultados • Conclusões
Fundamentos da Teoria da probabilidadeVariável aleatória • Algo que se refere a “parte” do mundo cujo “status” é inicialmente desconhecido. • Por exemplo, DorDeCabeça poderia se referir ao fato de uma pessoa estar sentindo uma dor de cabeça, e inicialmente não se sabe se o “status” seria verdadeiro ou falso. • Classificação dependendo do tipo do domínio: • Booleanas : DorDeCabeça = (verdadeiro, falso) • Discretas : Tempo = ( ensolarado, chuvoso, nublado) • Contínuas : Renda = (Renda<350, 351<Renda<900, Renda >900)
Fundamentos da Teoria da probabilidadeProbabilidade incondicional • Notação: P(A) A probabilidade a priori (P(A)), só deverá ser usada na ausência de outra evidência • Ex: P(cárie=verdadeiro) = 0.1 - significa que, como não há outra informação, a probabilidade de um paciente ter cárie é de 10% • Distribuição de probabilidade a priori: P(tempo = chuvoso) = 0.28 P(tempo = ensolarado) = 0.7 P(tempo = nublado) = 0.02 P(tempo) = (0.28, 0.7, 0.02) - distribuição a priori
Fundamentos da Teoria da probabilidadeProbabilidade condicional • Notação: P(A|B) • Usada quando se tem alguma evidência no domínio da aplicação • Representa a probabilidade de A “dado que tudo que sabemos” é B • Ex: P(Cárie|DorDeDente) = 0.8 - indica que se a única evidência é que o paciente tem dor de dente, então a probabilidade dele ter cárie será 80% • P(A|B,C) • A probabilidade a priori é um caso especial da probabilidade condicional - P(A|)
Fundamentos da Teoria da ProbabilidadeRegra do produto • Probabilidade condicional pode ser definida em termos da probabilidade a priori. Denotada pela equação: P(A,B) = P(A|B) P(B) ou P(A,B) = P(B|A) P(A) Regra do produto “Para que A e B sejam verdadeiros é necessário B ser verdadeiro e então A ser verdadeiro dado B”
O Teorema de Bayes • Dada as duas equações da regra do produto: P(A,B) = P(A|B) P(B) P(A,B) = P(B|A) P(A) • Igualando e dividindo as equações por P(A), obtém-se: P(B|A) = P(A|B) P(B) P(A) • Esta equação é conhecida como Regra de Bayes (Lei de Bayes ou Teorema de Bayes) que representa a base da maioria dos sistemas de IA para inferência probabilística
Fundamentos da Teoria da ProbabilidadeExemplo Prob. Condicional de Mamografia dado Câncer Probabilidade a priori de Câncer P(mamo+) = P(mamo+ | cancer+)*P(cancer+) + P(mamo+ | cancer-)*P(cancer-) = = 80%*1% + 0,96%*99% = 1,7504% Antes de qualquer observação, qual a probabilidade de uma mulher se deparar com um exame de mamografia com resultado positivo? Marginalização De posse de uma mamografia com resultado positivo qual é a probabilidade de uma mulher estar com câncer de mama? P(cancer+ | mamo+) = P(mamo+ | cancer+) *P(cancer+) / P(mamo+) = 80%*1% / 1,7504% = 45,7% (probabilidade a posteriori) Teorema de Bayes
2)Redes bayesianas Uma Rede Bayesiana é um grafo acíclico e dirigido onde: • Cada nó da rede representa uma variável aleatória • Um conjunto de ligações ou arcos dirigidos conectam pares de nós • cada nó recebe arcos dos nós que tem influência direta sobre ele. • Cada nó possui uma tabela de probabilidade condicional associada que quantifica os efeitos que os pais têm sobre ele É composta por dois elementos: • Estrutura gráfica S; • Parâmetros numéricos Θ.
P(S) P(C|S) P(B|S) P(X|C,S) P(D|C,B) Definição de redes bayesianas Fumar Causa Cancer Bronquite Efeito Raio-X Dispnea P(S, C, B, X, D) = P(S) P(C|S) P(B|S) P(X|C,S) P(D|C,B) Permite uma representação eficiente da distribuição conjunta total!
Construção de redes bayesianas • Defina uma ordenação para as variáveis; • Enquanto restarem variáveis no conjunto • Selecione uma variável Xi e adicione um nó para ela à rede; • Defina os pais de Xi (pa(Xi)) com algum conjunto mínimo de nós que já • estão na rede. • Defina a tabela de probabilidades condicionais de Xi; [RUSSEL & NORVIG, 2003]
Ladrão Terremoto Alarme MariaLiga JoãoLiga Construção de redes bayesianas Exemplo Rede Alarme Ordem: L T A J M
3)Inferência bayesiana • A tarefa básica de um sistema de redes bayesianas é computar a distribuição da probabilidade condicional para um conjunto de variáveis de consulta, dado os valores de um conjunto de variáveis de evidência P(Variável_consulta|Variáveis_Evidência)
Inferência bayesiana Classificação dos Algoritmos de Inferência [CASTILHO & GUTIERREZ, 1997] • Exatos • Aproximados • Simbólicos Principais Algoritmos Exatos • Eliminação de Variáveis [RUSSEL & NORVIG, 2004; COZMAN, 2001] • Enumeração [RUSSEL & NORVIG, 2004] • Junction Tree Principais Algoritmos Aproximados • Forward Sampling [RUSSEL & NORVIG, 2004] • Likelihood Weighting [FUNG & CHANG, 1990, RUSSEL & NORVIG, 2004] • Gibbs Sampling [GEMAN & GEMAN, 1984; RUSSEL & NORVIG, 2003] • Metropolis-hasting
Métodos exatos de inferência • Montar uma tabela de distribuição conjunta total é uma maneira muito ineficiente de se computar a inferência exata: • Complexidade de Tempo = O(n2n) • Complexidade de espaço = O(2n)
Algoritmo de Enumeração • A idéia básica do algoritmo de Enumeração é avaliar a equação (1) sem ter que montar explicitamente a tabela de probabilidade conjunta total. • Apenas, percorrem-se os nós da rede propagando as evidências e extraindo as probabilidades para que sejam feitas os somatórios e multiplicações necessárias. Equação 1
Algoritmo de Enumeração Variável de consulta B E A Evidências M J Equação 1 P(B|J,M)??
Algoritmo de Enumeração Nota-se que a Figura torna explícita as subexpressões repetidas que são avaliadas pelo algoritmo. Os produtos P(j | a)P(m | a) e P(j | a)P(m | a) são calculados duas vezes, um para cada valore de e.
Algoritmo de Eliminação de variáveis • Elimina os cálculos repetidos do algoritmo de Enumeração; • A idéia é simples : efetuar o cálculo apenas uma vez e guardar os resultados para uso posterior; • Esta é uma forma de programação dinâmica.
Algoritmo de Eliminação de variáveisExemplo Variável de consulta B E B = Burglary E = Earthquake M = MaryCalls J = JohnCalls A Evidências M J
Variável de consulta : B Evidências : J = true , M = true Ordenação das variáveis : M, J, A, B, E (das folhas para a raiz) B E J A Variável analisada: M • Como a variável A é oculta vai-se eliminá-la (através da soma). Para isso é necessário: • Efetuar o produto pontual dos factores que têm o parâmetro A: • fAJM(A,B,E) = fA(A,B,E) x fJ(A) x fM(A) • Eliminar a variável A obtendo o factor fÂJM(B,E) [fB(B) , fÊÂJM(B) ] [fE(E) , fB(B) , fÂJM(B,E) ] Factores : [fJ(A) , fM(A) ] [ fB(B) , fÂJM(B,E) ] [fA(A,B,E) , fJ(A) , fM(A) ] [ fÂJM(B,E) ] [ fM(A) ] [ ]
Algoritmo de Eliminação de variáveis Problemas do algoritmo Eliminação de variáveis: • A configuração inicial das variáveis influencia no tempo de execução dos algoritmos. • Encontrar uma configuração inicial ótima é um problema NP-Completo.
Algoritmos aproximados de inferência • Utilizam distintas técnicas de simulação para obter valores aproximados das probabilidades • Classificação: • Simulação estocástica • Simplificação de modelos • Busca e propagação de crenças em ciclos Simulação estocástica Simula o fluxo do impacto ou influência da evidência sobre o resto das variáveis
Algoritmo Forward Sampling • O Forward Sampling é um algoritmo para produzir amostras de uma distribuição difícil de amostrar a partir de uma distribuição fácil de amostrar.
Forward Sampling Distribuição analisada : P(B|A=n) : (0.8,0.2) P(D|B=n) : (0.1,0.9) P(A): (0.4,0.6) P(E|C=n,D=y) :(0.999, 0.001) P(C|A=n) : (0.4,0.6) Número aleatório: 0.55 0.01 0.9 0.5 0,8 Amostra gerada: D = y B = n A = n C = n E = y Amostras Consistentes !!! A Evidências: B C n y Amostra geradas: n n y y n D E Contador das amostras geradas: 0 1 0 1 0 0 0 1 1 1
Forward Sampling Problemas do Forward Sampling • Se uma evidência é muito rara, a maioria das configurações geradas serão rejeitadas e será necessário muitas simulações para se gerar um número razoável de configurações compatíveis. • A fração de amostras consistentes com a evidência cai exponencialmente conforme o número de variáveis de evidência cresce, assim, esse algoritmo é simplesmente inútil para problemas complexos.
Algoritmo Likelihood Weighting • Resolve o problema de rejeições do Forward Sampling, gerando apenas amostras consistentes; • Cada evento gerado é ponderado pela probabilidade de que o evento concorde com a evidência, medida pela função de ponderação:
Likelihood Weighting Evidência? sim não Gera amostra Atualiza peso 0.07 0.7 1 Distribuição : P(E|C=n,D=y) = (0.999,0.001) P(A) = (0.4 , 0.6) P(C|A=y) = (0.7,0.3) Número aleatório: 0,55 0.75 0.3 Peso = Peso * P(B=n|A=y) Peso = Peso * P(D=y|B=n) A = y C = y Amostra gerada: C = n Peso = 0.7 Peso = 0.07 A Evidências: B C Amostras geradas: y n y D E Contador das amostras geradas: 0 0 0 0.07 0.07 0.07
Algoritmo Gibbs Sampling • Gera cada amostra baseado na configuração gerada pela amostra anterior e atualiza a configuração atual para amostras futuras; • Depende de uma configuração inicial; • A estimativa do algoritmo é baseada na probabilidade da variável fazer a transição de um estado para outro – probabilidade de transição
Cobertura de Markov • Um nó é condicionalmente independente de todos os outros nós na rede, dados seus pais e pais dos filhos – isso é, dada sua cobertura de Markov: O conjunto de nós em cinza representa a Cobertura de Markov de A
Gibbs Sampling A, D, E Cobertura de Markov : B,C,E B, C α( P(C=y|A=y)*P(A=y)*P(D=y|B=n)*P(E=n|C=y,D=n) , P(C=n|A=y)*P(A=y)*P(D=y|B=n)*P(E=n|C=n,D=n)) α( P(A=y) *P(B=n|A=y)*P(C=y|A=y) , P(A=n) *P(B=n|A=n)*P(C=y|A=n) ) Distribuição : α(P(D=y|B=n)*P(B=n|A=y)*P(C=n|A=y)*P(E=n|C=n,D=y) ,P(D=n|B=n)*P(B=n|A=y)*P(C=n|A=y)*P(E=n|C=n,D=n)) Distribuição analisada : (0.7 , 0.3) (0.1 , 0.9) (0.8 , 0.2) Número aleatório: 0,45 0.85 0,55 Amostra gerada: C = n D = n A = y A Evidências: B C Configuração atual: y y n y n y n n D E Contador das amostras geradas: 2 0 0 3 1 1 1 3 3 1 0 1 2 0 0 1 2 0 2 0 0 0 1 0 2
Gibbs Sampling • Problema 1: Se a configuração inicial é pouco provável, as primeiras serão pouco representativas. Solução: Burn-in (Descartar as primeiras 5-10% das configurações) • Problema 2: As configurações podem ficar restritas a certas configurações. Solução: Para alcançar as configurações mais prováveis, uma variável poderia alterar seu estado um estado altamente improvável. • Problema 3: Pode ser muito difícil obter uma configuração inicial (NP-Difícil) Solução: Usar heurísticas para determinar a configuração. O algoritmo Forward Samplig pode ser usado para determinar uma configuração inicial,
Algoritmo Gibbs Weighting* • Analisa a mesma distribuição que o algoritmo Gibbs Sampling, e gera amostras da mesma forma que esse algoritmo, porém, atualiza a contagem segundo a função de ponderação, como o algoritmo Likelihood Weighting.
4)Aprendizado de parâmetros • Consiste em aprender automaticamente as TPC´s de uma rede bayesiana, dada a sua estrutura e uma base de dados. Dados Algoritmo de Aprendizado de Parâmetros + B E B E C A C A D D
Algoritmo AprendeParametros para aprendizado de parâmetros TPC de C: Base de dados: v f v f v 0.5 1 0.5 1 f v 0.875 7 f 0.125 1 v f Normalizando v f f v P(A) A f v f v C P(C|A) B P(B|A) f v f f D E v v P(D|B) P(E|C,D)
5)Aprendizado de estrutura • Consiste em aprender automaticamente a estrutura gráfica de uma rede bayesiana, dada uma base de dados. Dados B Algoritmo de aprendizado de estrutura E + Conhecimento de Fundo C A D
Aprendizado de estrutura Duas abordagens principais para o aprendizado de estrutura: • Métodos baseados em Busca e Pontuação • Vantagem: Menor complexidade no tempo • Desvantagem: Não garante encontrar melhor solução Algoritmos: - K2 • Métodos baseados em análise de dependência • Vantagem: Sob certas condições, encontra a melhor solução • Desvantagem: Teste de independência com uma quantidade muito grande de variáveis pode se tornar inviável Algoritmos: - PC - CBL
Algoritmos de busca e pontuação • Busca no espaço de estruturas a “melhor” estrutura • Definição da medida de avaliação (Pontuação) • Processo de busca prossegue enquanto a pontuação de uma rede for significativamente melhor que a anterior
Algoritmo K2 (Busca e pontuação) • Busca entre as 2n(n-1)/2 configurações possíveis a que maximiza a função de pontuação (n = nº de variáveis). • Necessita de uma ordenação prévias das variáveis. • A ordenação das variáveis garante que a estrutura da rede não terá ciclos.
Algoritmo K2 (Busca e pontuação) MAX(Função de pontuação) Ordenação: A, B, C e D A B C D
Algoritmos de análise de dependência • Procura uma rede que represente da melhor maneira possível a distribuição conjunta que surge da amostra aleatória • É fundamental que esta rede represente todas as relações de independência e dependência da distribuição conjunta induzida pela amostra. • As principais diferenças entre os algoritmos do enfoque análise de dependência são: a maneira como os conjuntos de variáveis S são determinados e as regras para associar direções aos arcos.
6)O Sistema UFLABayes • Implementado em Java; • Implementado em camadas de interface gráfica, IO, aprendizado e inferência; • Permite a inferência, aprendizado de parâmetros e de estrutura de forma sistêmica; • As operações são dividas em módulos: módulo de inferência,módulo aprendizado de parâmetros, módulo de aprendizado de estrutura;
O Sistema UFLABayes Algoritmos Implementados • Algoritmos de inferência • Enumeração • Eliminação de variáveis • Forward Sampling • Likelihood Weighting • Gibbs Sampling • Gibbs Sampling Burn-in • Gibbs Weighting • Algoritmo de aprendizado de parâmetros • Algoritmo AprendeParâmetros • Algoritmo de aprendizado de estrutura • Algoritmo K2
7)Resultados 8.1) O Sistema UFLABayes 8.2) Algoritmos de Inferência exata - Tempo de execução 8.3) Algoritmos de inferência aproximada - Convergência 8.4) Algoritmo de aprendizado de parâmetros - Divergência KL 8.5) Algoritmo de aprendizado de estrutura - Análise estrutural
O Sistema UFLABayes • Constitui-se de uma ferramenta computacional que permite o aprendizado e a inferência através dos diferentes algoritmos implementados, permitindo uma análise e comparação de cada método. • Apesar de ser bastante genérico, o sistema foi projetado de modo que possa atender problemas reais e ser utilizado como um sistema especialista. • O software será distribuído livremente.
Algoritmos de inferência exata – Análise de tempo de execução
Algoritmos aproximados • Testados em redes de topologias diversas; • Análise de precisão dos resultados variando o número de simulações e o tempo de execução;