Considerações sobre Conhecimento Incerto e Redes Bayesianas Felipe S. Gurgel 1, Maiquel de Brito 1 1 Universidade Federal de Santa Catarina - UFSC Departamento de Automação e Sistemas - DAS UFSC/CTC/DAS - Campus Universitário - Trindade CEP: 88115-400 - Florianópolis/SC/Brasil {felipegurgel, maiquel}@das.ufsc.br Resumo. Este trabalho apresenta uma breve descrição sobre conhecimento incerto, os conceitos relacionados à teoria da probabilidade e uma ferramenta para tratamento desse tipo de conhecimento, definida como redes bayesianas. São apresentados os métodos bayesianos de raciocínio, a teoria de Bayes e a representação do conhecimento em um domínio incerto através da construção de redes bayesianas. Por fim, a teoria das redes bayesianas é aplicada e comparada com outros algoritmos para classificação de uma base de dados específica, de forma a demonstrar em exemplo de sua aplicação e desempenho. Abstract. This paper presents a short description about uncertain knowledge and about some concepts related to the probability theory. It presents to some words about bayesian reasoning, about the Bayes Theory and about the representation of the knowledge in an uncertain domain by use of bayesian networks. Afther this considerations, the theory of the bayesian networks is applied and compared with others algorithms in the classification of a specific database, of form to show an example of their application and performance. 1. Introdução O raciocínio a respeito de diversos domínios frequentemente é feito com base em conhecimentos parciais a respeito de determinadas premissas. A conhecida expressão onde há fumaça há fogo é um exemplo de uma representação extremamente simplista da realidade, pois há situações em que a presença de fumaça não indica, necessariamente, a presença de fogo [6]. A representação da realidade precisa, por isso, de recursos que possibilitem trabalhar considerando a incerteza. Entre esses recursos, é possível citar o raciocínio bayesiano e as redes bayesianas, que utilizam-se da teoria da probabilidade para estabelecer técnicas para raciocinar em domínios que combinem diversas variáveis aleatórias. Neste artigo, são apresentados, de forma breve, diversos aspectos relacionados ao raciocínio incerto com a utilização de redes bayesianas. Para isso, são feitas algumas considerações a respeito da representação do conhecimento através da lógica de primeira ordem e da necessidade de outras ferramentas para inserir a incerteza nessa representação do conhecimento. Além disso, são feitas considerações a respeito de aspectos da teoria da probabilidade e de redes bayesianas. Por fim, são analisados alguns algoritmos para
construção de redes bayesianas e classificadores, sendo feita ainda uma breve comparação entre estes algoritmos e alguns algoritmos de classificação que empregam a técnica de árvores de decisão. 2. Lógica e incerteza O raciocínio e a inferência sobre algumas premissas podem, em diversas situações, denotar um certo grau de certeza. Considere-se, por exemplo a seguinte regra: tt ransito(t, Congestionamento) T empo(t, Chuva) A sentença acima indica que, dada a ocorrência de um congestionamento, é possível concluir, como consequência, que há ocorrência de chuva. Tal regra, no entanto, não é precisa, pois congestionamentos podem ser causados por outros fatores além da chuva. Uma alternativa para tal expressão seria tt ransito(t, Congestionamento) T empo(t, Chuva) T empo(t, Neblina)... Esta regra poderia incluir, no lado direito da sentença, um número extenso de fatores adicionais a chuva e neblina. Poderia-se, ainda, baseado em tal raciocínio, tentar derivar uma regra causal: tt empo(t, Chuva) T ransito(t, Congestionamento) Esta regra também não é correta pois nem sempre a chuva causa congestionamento. Além disso, é possível que se verifique a ocorrência de congestionamento e chuva, e, ainda assim, um evento não precisa estar, necessariamente, associado a outro. Estas considerações demonstram que a lógica de primeira ordem não fornece uma abordagem totalmente adequada para lidar com problemas em que há algum grau de incerteza pois não é possível inferir consequências lógicas entre alguns eventos. Certas crenças de um agente, nestes domínios de problema, não podem ser expressas em termos de valores limitados a verdadeiro ou falso. Ao contrário, nestes casos, o agente pode ter apenas um grau de crença a respeito de certas sentenças. Para isso, uma ferramenta adequada é a teoria da probabilidade[3]. 2.1. Conceitos relacionados à teoria da probabilidade Os exemplos citados anteriormente trataram de probabilidades relacionadas a ocorrência de chuva, de acidentes de trânsito e congestionamento. Chuva, Acidente e Congestionamento podem ser consideradas variáveis aleatórias. Uma variável aleatória pode ser definida como uma grandeza que descreve aspectos do mundo que podem sofrer algum tipo de variação. Outro conceito importante é a probabilidade incondicional ou probabilidade a priori, que é o grau de crença a respeito de alguma proposição sem levar em conta qualquer outra informação. Suponha-se, por exemplo, que a possibilidade de congestionamento em uma determinada rua é de 15%. Escreve-se, então que P (congestionamento) = 0.15.
Complementar à probabilidade incondicional, existe a probabilidade condicional ou a posteriori, em que a probabilidade de ocorrência de um evento está condicionada a ocorrência de outros eventos [3]. Pode-se considerar, por exemplo, que a probabilidade de acontecer um acidente de trânsito em um dia de chuva seja de 6%. Nesse caso, diz-se que P (acidente chuva) = 0, 6. 3. Métodos bayesianos de raciocínio Segundo [2], o raciocínio bayesiano fornece uma abordagem probabilística para inferências que levem em conta aspectos como a independência condicional a respeito de certos eventos. Conforme citado anteriormente, alguns domínios de problema são caracterizados pela presença de incerteza e pelo raciocínio baseado em crenças parciais a respeito do mundo. Raciocínios adequados sobre esses domínios podem ser feitos através de métodos bayesianos[6]. 3.1. Teorema de Bayes O teorema de Bayes é a base para a aplicação de métodos probabilísticos à Inteligência Artificial (IA) [4, 3]. Este teorema permite calcular a probabilidade condicional de ocorrer um evento X dado o acontecimento de um evento Y sendo que são conhecidas as probabilidades incondicionais de X e Y e a probabilidade condicional de ocorrer um evento Y dado que X ocorreu, ou P (X Y ) = P (Y X)P (X) P (Y ) (1) Considere-se, hipoteticamente, a probabilidade de ocorrência de chuva (P(Chuva)) como 30%, a probabilidade de envolvimento em um acidente de trânsito (P(Acidente)) como 5% e a probabilidade de envolver-se em um acidente em dia de chuva (P (Acidente Chuva)) como 10%. De posse destes valores, o teorema de Bayes permite que seja calculada a probabilidade de estar chovendo, dada a ocorrência de um acidente de trânsito: P (Chuva Acidente) = P (Acidente Chuva)P (Chuva) P (Acidente) = 0, 1 0, 3 0, 05 =0,6 Observa-se que, pelo cálculo demonstrado, a probabilidade de estar chovendo dada a ocorrência de um acidente é alta (60%). Isso explica-se pela baixa probabilidade incondicional da ocorrência de um acidente. Ou seja, a probabilidade de ocorrer um acidente em um dia de chuva e a de verificar-se tempo chuvoso são relativamente altas. Em vista disso, a baixa probabilidade de ocorrência de um acidente indica que, se este ocorrer, é bastante provável que esteja chovendo. 4. Redes bayesianas Redes bayesianas são grafos orientados acíclicos utilizados para representar as dependências entre variáveis e fornecer uma especificação concisa de qualquer distribuição de probabilidade conjunta total.
Um conjunto de variáveis aleatórias constitui os nós da rede. Um conjunto de vínculos orientados ou setas conecta pares de nós. Se houver uma seta do nó X até o nó Y, X será denominado pai de Y. Cada nó X i tem uma distribuição de probabilidade condicional P (X i P ais(x i)) que quantifica o efeito dos pais sobre o nó[4]. 4.1. Semântica das Redes Bayesianas Há duas maneiras de compreender a semântica das redes bayesianas. A primeira é ver a rede como uma representação da distribuição de probabilidade conjunta. A segunda é visualizá-la como uma codificação de uma coleção de declarações de independência condicional. As duas versões são equivalentes, mas a primeira se mostra útil na compreensão de como construir redes, enquanto a segunda é útil no projeto de procedimentos de inferência [4]. Uma rede bayesiana fornece uma descrição completa do domínio. Toda entrada na distribuição de probabilidade conjunta total pode ser calculada a partir das informações armazenadas na rede. Uma entrada genérica na distribuição conjunta é a probabilidade de uma conjunção de atribuições específicas a cada variável, por exemplo P (x i,..., x n). O valor dessa entrada é dado pela equação: P (x 1,..., x n) = n P (x i pais(x i)) (2) i=1 Na fórmula, pais(x i) denota os valores específicos das variáveis em P ais(x i). Desse modo, cada entrada na distribuição conjunta é representada pelo produto dos elementos apropriados das TPCs na rede bayesiana. Além de ser uma representação completa e não-redundante do domínio, uma rede bayesiana pode ser mais compacta que a distribuição conjunta total. Essa propriedade é o que torna viável manipular domínios com muitas variáveis. Se supusermos n variáveis booleanas, a quantidade de informações necessárias para especificar cada tabela de probabilidade condicional será no máximo 2 k números, e a rede completa poderá ser especificada por n2 k números. Por exemplo, supondo n = 30 nós e k = 5 pais, a rede bayesiana exigirá 960 números, mas a distribuição conjunta total exigirá mais de um bilhão. 5. Redes bayesianas e classificadores A tarefa de classificação é uma área importante do aprendizado de máquina e consiste em, através de análise de um conjunto de variáveis, {F 1,..., F n}, definir um estado para uma variável classificadora ou valor alvo C. Formalmente, um classificador é um valor F 1... F n para C [3]. Diversas técnicas podem ser empregadas para classificação, como árvores de decisão e redes bayesianas, por exemplo. [3]. Se uma rede bayesiana estiver corretamente construída e representada através de um grafo, é possível, através da observação do modelo e da análise das tabelas de probabilidade condicional, fazer inferências a respeito de um conjunto de dados que reúna as variáveis aleatórias representadas no grafo. O software Weka disponibiliza algoritmos para classificação utilizando diversas técnicas, entre as quais, redes bayesianas [5]. Para efeito de comparação, feitos alguns testes entre os resultados da utilização de algoritmos de árvores decisão com a utilização
Table 1. Resultados da aplicação de algoritmos de classificação Algoritmo % Acerto J48 79.055% ID3 79.055% AODE 78.4643% AODEsr 78.4643% BayesNet 77.8075% HNB 78.3422% NaiveBayes 77.8075% NaiveBayesSimple 77.8075% NaiveBayesUpdateable 77.8075% WAODE 77.5401 % de redes bayesianas. Para a realização dos testes, foi utilizada a base de dados titanic.arff, que relaciona 2201 registros relativos a vítimas do naufrágio do navio Titanic. Para cada uma das 2201 pessoas referidas na base de dados possui os seguintes atributos: Classe - informa a classe em que a pessoa viajou. Os valores possíveis são 1 a classe, 2 a classe, 3 a classe e tripulação; Idade - informa a idade das vítimas. Os valores possíveis são adulto e criança; Sexo - informa o sexo das vítimas. Os valores possíveis são masculino e feminino A variável de hipótese, em função da qual é feita a classificação, indica a sobrevivência ou não de cada um dos passageiros. Por ocasião da execução dos algoritmos, é feito, inicialmente, um treinamento, em que as instâncias são analisadas, verificando os atributos e a variável de hipótese em cada um dos registros e, como resultado, é feita a construção da rede bayesiana com a tabela de probabilidade condicional para cada uma das variáveis aleatórias. Depois de realizado o treinamento, os registros da base de dados são analisados e é verificada a coerência entre as probabilidades das hipóteses levantadas no treinamento e a relação entre atributos e variável de hipótese. A tabela 1 exibe a comparação entre os resultados observados com a execução de dois algoritmos de árvore de decisão (ID3 e J48) e alguns algoritmos de redes bayesianas na ferramenta Weka. É possível observar que os resultados foram bastante próximos. Os algoritmos de árvore de decisão, entretanto, produziram taxas de acerto ligeiramente superiores. É importante ressaltar que a ferramenta Weka disponibiliza diversos parâmetros a serem ajustados para ajustar a execução dos algoritmos. Nos testes realizados neste trabalho, foram utilizados os valores padrão definidos pelo Weka. 5.1. O algoritmo NaiveBayes Entre os algoritmos disponibilizados pela ferramenta Weka, está o NaiveBayes (ou Bayes ingênuo)[1]. O adjetivo ingênuo é dado pois a classificação é feita considerando, de forma inocente, que todos os atributos são independentes entre si, sendo dependentes apenas do valor alvo. De forma resumida, para um problema com um conjunto V de m valores alvo (hipóteses), com um conjunto A de n atributos, o algoritmo funciona da seguinte maneira:
Table 2. Distribuições de probabilidade Classe Sobrevivente Não Sobrevivente Classe 1 a Classe 122/711 203/1490 2 a Classe 118/711 167/1490 3 a Classe 178/711 528/1490 Tripulação 212/711 673/1490 Idade Sexo Adulto 659/711 1433/1490 Criança 52/711 57/1490 Masculino 585/711 1146/1490 Feminino 126/711 344/1490 711 1490 1. Calcular a probabilidade de cada valor alvo V no conjunto de treinamento 2. Para cada atributo i da nova tupla, calcular a probabilidade de i para cada valor em V. 3. Calcular a distribuição conjunta total para cada um dos valores alvo 4. O valor em V com resultado mais alto para a distribuição conjunta total será a classe atribuída à nova tupla De maneira mais formal, a nova classe será correspondente ao elemento do conjunto V com probabilidade mais alta na distribuição conjunta total, que é calculada pela seguinte equação: P = arg max[p (v j) v j V n P (A i V j)] (3) Para exemplificar o funcionamento do algoritmo naivebayes, considere-se o a base de dados titanic mencionada anteriormente. Conforme citado, a base contém 2201 registros a respeito das vítimas do naufrágio do navio Titanic, relacionando a classe em que a pessoa viajava, sua idade, sexo e um indicador informando se a pessoa sobreviveu ou não ao acidente. Analisando a base de dados, foi possível verificar que, das 2201 pessoas relacionadas, 711 sobreviveram e 1490 morreram. Além disso, é necessário saber algumas informações a respeito das probabilidades dos demais atributos envolvidos no problema. As distribuições de probabilidade da base de dados em questão são dadas na Tabela 2 Com o conhecimento a respeito destas distribuições de probabilidade, é possível, com base nos atributos classe, idade e sexo, determinar a probabilidade de uma pessoa encontrar-se ou não entre os sobreviventes. Suponha-se que, para uma vítima qualquer, o conjunto de atributos Classe, Idade, Sexo tenha os valores 3 a classe, Criança, Feminino. Segundo essas informações, pode-se seguir os passos do algoritmo descrito anteriormente e verificar a probabilidade de a pessoa com tais atributos ter ou não sobrevivido ao naufrágio. O primeiro passo do algoritmo, descrito anteriormente, consiste em calcular a probabilidade a priori de cada um dos valores alvo envolvidos no problema. Tais valores, nesse caso, são: Sobreviver: 711/2201; Não sobreviver: 1490/2201. i=1
O segundo passo do algoritmo é calcular a probabilidade condicional de cada atributos em relação a cada um dos valores alvo. Esses valores, nesse caso, são: P (3aclasse Sobrevivente) : 178/711; P (3aclasse NaoSobrevivente) : 528/1490; P (Crianca Sobrevivente) : 52/711; P (Crianca NaoSobrevivente) : 57/1490; P (F eminino Sobrevivente) : 126/711; P (F eminino NaoSobrevivente) : 344/1490; De posse destes valores é possível calcular a distribuição conjunta total. Primeiro, realiza-se o cálculo para o valor alvo Sobrevivente: P (Sobrevivente) = P (3aclasse Sobrevivente) P (Crianca Sobrevivente) P (F eminino Sobrevivente) = 178 711 52 711 126 711 711 = 0, 00104 2201 Em seguida, realiza-se o cálculo para o valor alvo NaoSobrevivente: P (NaoSobrevivente) = P (3aclasse NaoSobrevivente) P (Crianca NaoSobrevivente) P (F eminino NaoSobrevivente) = 528 1490 57 1490 344 1490 1490 = 0, 00212 2201 Os valores calculados indicam que a probabilidade de a pessoa com os atributos informados não ter sobrevivido é aproximadamente o dobro de a probabilidade de essa pessoa ter sobrevivido. Estes valores podem ser expressos através de probabilidades depois de um processo de normalização: P (Sobrevivente) = 0, 00104 = 0, 33% 0, 00104 0, 00212 P (NaoSobrevivente) = 0, 00212 = 0, 66% 0, 00104 0, 00212 Em [1], são feitas algumas considerações a respeito do uso de algoritmos para classificação baseado em redes bayesianas, e, em especial, a respeito da utilização do NaiveBayes. A característica de o algoritmo de assumir a independência entre os atributos analisados faz com que, em situações em que exista algum tipo de dependência, os resultados sejam menos satisfatórios. Para isso, a correta definição do problema e da aderência da técnica utilizada, bem como a correta seleção dos algoritmos torna-se fundamental para que a classificação através de redes bayesianas tenha um resultado satisfatório. Além disso, atributos que não ocorrem no conjunto de treinamento para um determinado valor alvo, sempre que aparecerem em uma tupla a ser classificada, resultarão em probabilidade zero para tal valor alvo. Isso explica-se pelo fato de, no cálculo da probabilidade demonstrado anteriormente, um dos termos da multiplicação ser a probabilidade condicional dos valores dos atributos em função do valor alvo. Nesse caso, um dos termos da multiplicação seria zero e a probabilidade final seria, igualmente, zero. Para resolver esse problema, pode ser aplicado, ao conjunto de treinamento, um estimador de Laplace que elimina valores iguais a zero.
5.2. Outros algoritmos A ferramenta Weka disponibiliza outros algoritmos além do NaiveBayes. Pode-se citar, por exemplo os algoritmos do tipo One Dependence Estimators (ODE). No Weka existem dois algoritmos do tipo ODE: o AODE, o AODEsr e o WAODE. Nesse tipo de algoritmo, além de os atributos serem dependentes da variável classificadora, são também dependentes de um outro atribiuto. Um outro algoritmo frequentemente citado na literatura, porém não disponibilizado pelo Weka é Tree Argumented Naive Bayes (TAN), que é uma extensdão do NaiveBayes. Nesse algoritmo, a premissa de que todos os atributos são indepentendes entre si é desconsiderada. Em lugar disso, assume-se que cada variável pode ser dependente, além da variável classificadora, de uma outra variável componente da tupla. 6. Conclusão Quando um agente conhece fatos suficientes sobre seu ambiente, a abordagem lógica permite que ele derive planos que ofereçam a garantia de funcionamento. Infelizmente, os agentes quase nunca têm acesso a toda verdade sobre seu ambiente. Os agentes devem então agir sob a incerteza. Neste artigo, foi apresentado o tratamento do conhecimento incerto bem como os conceitos relacionados à teoria da probabilidade junto à apresentação de uma ferramenta aplicada na construção de modelos de redes para raciocinar sob a incerteza, de acordo com as leis da probabilidade. Essa ferramenta é determinada rede bayesiana. Exemplos foram apresentados de forma a ilustrar o teorema de Bayes. O software Weka foi utilizado na avaliação de desempenho de diferentes métodos de aprendizado de máquina, sendo feita uma comparação entre os resultados observados com a execução de dois algoritmos de árvore de decisão e alguns algoritmos de redes bayesianas. Além disso, buscou-se verificar a utilização de redes bayesianas na geração de classificadores, analisando-se alguns algoritmos de classificação. Assim, é possível definir que as redes bayesianas apresentam importante parte no que diz respeito a algoritmos de aprendizado de máquina para tratamento do conhecimento incerto, já que possuem resultados satisfatórios que podem tornar-se superiores de acordo com o ajuste do algoritmo em diferentes aplicações. References [1] Ian H. Witten; Eibe Frank. Data Mining: practical machine learning tools and techniques. Elsevier. [2] Tom Mitchell. Machine Learning. McGraw Hill, 1997. [3] Finn V. Jensen; Thomas D. Nielsen. Bayesian networks and decision graphs. Springer, 2007. [4] Start Russel; Peter Norvig. Inteligência artificial:tradução da segunda edição. Elsevier, 2 edition, 2007. [5] The University of Waikato. Weka 3 - data mining with open source machine learning software in java - www.cs.waikato.ac.nz/ml/weka/. [6] Judea Pearl. Probabilistic reasoning in Intelligent Systems. Morgan Kaufmann Publishers, 1988.