Baixe o app para aproveitar ainda mais
Prévia do material em texto
Unidade II Inteligência Artificial e as Incertezas Inteligência Artificial Diretor Executivo DAVID LIRA STEPHEN BARROS Gerente Editorial CRISTIANE SILVEIRA CESAR DE OLIVEIRA Projeto Gráfico TIAGO DA ROCHA Autoria ALAN DE OLIVEIRA SANTANA AUTORIA Alan de Oliveira Santana Olá. Sou Alan de Oliveira Santana, possuo graduação em Ciência da Computação – Universidade do Estado do Rio Grande do Norte – e Mestre em Sistemas da Computação – Universidade Federal do Rio Grande do Norte. Atualmente sou professor conteudista, elaborador de cadernos de questões e doutorando em Ciências da Computação. Como cientista, atuo no desenvolvimento e avaliação de técnicas de desenvolvimento de sistemas com ênfase na educação. Desse modo, fui convidado pela Editora Telesapiens a integrar seu elenco de autores independentes. Estou muito satisfeito com o convite e a possibilidade de auxiliar em seu desenvolvimento intelectual e profissional. Bons estudos! ICONOGRÁFICOS Olá. Esses ícones irão aparecer em sua trilha de aprendizagem toda vez que: OBJETIVO: para o início do desenvolvimento de uma nova competência; DEFINIÇÃO: houver necessidade de apresentar um novo conceito; NOTA: quando necessárias observações ou complementações para o seu conhecimento; IMPORTANTE: as observações escritas tiveram que ser priorizadas para você; EXPLICANDO MELHOR: algo precisa ser melhor explicado ou detalhado; VOCÊ SABIA? curiosidades e indagações lúdicas sobre o tema em estudo, se forem necessárias; SAIBA MAIS: textos, referências bibliográficas e links para aprofundamento do seu conhecimento; REFLITA: se houver a necessidade de chamar a atenção sobre algo a ser refletido ou discutido; ACESSE: se for preciso acessar um ou mais sites para fazer download, assistir vídeos, ler textos, ouvir podcast; RESUMINDO: quando for preciso fazer um resumo acumulativo das últimas abordagens; ATIVIDADES: quando alguma atividade de autoaprendizagem for aplicada; TESTANDO: quando uma competência for concluída e questões forem explicadas; SUMÁRIO Como a IA trata a incerteza .................................................................... 10 Escalonamento e o tempo no mundo real ................................................................... 10 Expandindo o planejamento com hierarquia.............................................................. 13 Incertezas e a IA ............................................................................................................................... 16 Algoritmo de Bayes para tratamento das incertezas .................20 Algumas teorias fundamentais para o entendimento geral do algoritmo de Bayes ............................................................................................................................................... 20 Teoria da utilidade ...................................................................................................... 20 Teoria da probabilidade ...........................................................................................25 Teoria da decisão .........................................................................................................25 O algoritmo de Bayes ..................................................................................................................27 O modelo oculto de Markov .................................................................. 31 Aprofundando conceitos da teoria da probabilidade .......................................... 31 Relação entre o tempo e a incerteza ...............................................................................33 IA e a inferência nos modelos temporais ......................................................................35 O modelo oculto de Markov ...................................................................................................37 Tomada de decisão simples e complexa em IA .............................40 Retomando o raciocínio computacional ....................................................................... 40 Agentes de tomada de decisão simples ....................................................................... 41 Redes de tomadas de decisão .......................................................................... 41 Agentes de tomada de decisão complexa ..................................................................44 7 UNIDADE 02 Inteligência Artificial 8 INTRODUÇÃO Uma capacidade que muitos animais possuem, em especial o ser humano, é poderem fazer inferências em situações diversas, especificamente em momentos onde não é possível ter certeza sobre as consequências das escolhas. Sistemas digitais, através dos agentes inteligentes, podem possuir camadas de tratamento de dados específicas para simular este raciocínio incerto. Para o tratamento das incertezas, agentes computacionais podem realizar escalonamento nos problemas, discretizando a forma como ele deve ser tratado. Além do exposto, teorias específicas como a teoria de decisão, permitem que modelos complexos sejam desenvolvidos para o tratamento de dados incertos. Os algoritmos de Bayes e Markov também são modelos úteis para o tratamento diferenciado de problemas baseados na chamada lógica de primeira ordem. Desta forma, o objetivo desta unidade será apresentar os conceitos ligados ao tratamento incerto, como por exemplo, utilizando o modelo oculto de Markov e as redes baysesianas. Com o objetivo de fundamentar melhor estes conceitos, iremos retomar e aprofundar conceitos já visto na unidade anterior. Assim, poderemos ao final do material discutir sobre como os sistemas inteligentes realizam decisões sobre dados incertos. Inteligência Artificial 9 OBJETIVOS Olá. Seja muito bem-vindo à Unidade 2. Nosso objetivo é auxiliar você no desenvolvimento das seguintes competências profissionais até o término desta etapa de estudos: 1. Entender as características do tratamento das incertezas. 2. Compreender a lógica conceitual do algoritmo de Bayes e Markov. 3. Identificar a aplicabilidade do algoritmo de Markov. 4. Discernir sobre as técnicas de tomadas de decisão, simples e complexas. Então? Preparado para adquirir conhecimento sobre um assunto fascinante e inovador como esse? Vamos lá! Inteligência Artificial 10 Como a IA trata a incerteza OBJETIVO: O objetivo desta unidade é apresentar uma visão geral da IA e de seus conceitos fundamentais como a representação do conhecimento, finalizando o conteúdo com a apresentação de planejamentos estratégicos para tomada de decisão. Neste sentido, nesse capítulo iremos retomar o estudo das estratégias e da representação do conhecimento, nos permitindo apresentar como se dá o tratamento de incerteza na Inteligência Artificial. Bons estudos! Escalonamento e o tempo no mundo real As estratégias anteriores apresentadas na unidade 1, buscavam criar uma representação simplista do conhecimento e o uso de grafos para controle de fluxo de dados. Porém, em muitos problemas em que as IAs apresentam bom uso, o tempo é uma variável importante no tratamento das decisões. Por exemplo, um sistema inteligente implantando em aeroporto para tratar os conflitos de seleção de portão para os aviões. Note que o tratamento inteligente também leva em consideração mais uma variável, o tempo de chegada e saída do avião. REFLITA: Muitos sistemas que utilizam IA, possuem o tempo como uma variável em tomadas de decisão, você percebe mais algum sistema que também utilize esta variável na tomada de decisão? O tratamento do tempo deve ser tratado como uma ação hierarquizada em relação a variável tempo, uma vez que tais ações, ligadas ao exemplo acima, que possuem tempo menor, mais próximo do atual, devem ser executadas antes das ações com tempo maior, menos próximos do atual. Inteligência Artificial 11 Perceba que, o tempo é uma variável que pode ser entendida comodo mundo real, uma vez que ações temporizadas possuem implicações práticas no mundo real, pois tais ações necessitam que o tempo no mundo real avance para que estas possam completar seu ciclo de execução. Não apenas o tempo, mas várias outras variáveis do mundo real podem ser abstraídas para a tomada de decisão, com os dados destas variáveis, entendidos como conhecimentos variáveis ou constantes, podendo ser inseridos pelos programadores ou adquiridos por sensores, como por exemplo: o clima, quantidade de pessoas em um ambiente, entre outros. O tratamento para variáveis ligadas a estruturas hierarquizadas, é chamado de escalonamento. DEFINIÇÃO: Escalonar, segundo o dicionário Houaiss da Língua Portuguesa (2009), significa “...galgar níveis mais altos por meio de degraus ou etapas...”. Ou seja, utilizar uma estrutura em camadas hierárquicas, onde cada elemento se insere nestas camadas por ordem de prioridade. Tais camadas, podem ser definidas com os elementos fixados em suas posições, ou variando dentro da estrutura hierárquica, sendo a própria estrutura de camadas hierárquicas, uma camada de conhecimento específica para tomadas de decisão. Existem diversas estratégias na criação de sistemas que escalonam os processos. Uma delas é fazer primeiramente o escalonamento para depois fazer o planejamento estratégico. Outra forma de desenvolver a estratégia é realizar primeiramente o planejamento e em seguida fazer o escalonamento por demanda, sendo este último similar ao exemplo do sistema inteligente usado em uma companhia aérea citado acima. Agora, com base no que foi exposto, vamos analisar a seguinte situação: • Uma empresa A produz alguns tipos de suco, porém, dois tipos recebem como ingrediente laranjas; Inteligência Artificial 12 • O suco X é feito exclusivamente de laranjas e o suco Y é feito de setenta por cento de laranja e trinta por cento de limão; • A prioridade de produção é que a cada um suco do tipo Y, sejam feitos dois do tipo X. Para solucionar o problema acima, uma variável de tempo pode ser usada como estratégia de escalonamento, ao cronometrar quando um dado suco será produzido. Para isso, primeiramente devemos definir o planejamento, onde uma declaração chamada Processos, conterá as ações possíveis que o sistema poderá executar. Em seguida, definimos os recursos que serão usados em outra declaração, contendo a informação que os produtos que serão usados serão limão e laranja. Por fim, criamos todas as ações que representam as possibilidades de combinações e um temporizador como escalonador dos processos. Desta forma simples, podemos criar um algoritmo que aplica a escalabilidade através de uma variável do mundo real, o tempo. A Figura 1 apresenta um exemplo visual do algoritmo descrito acima. Figura 1 – Algoritmo de produção de sucos escalonados Processos({AdicionarLaranja}, {AdicionarLimão}, {Produzir}) Recusros(Laranja(Proporção), Limão(Proporção)) Ação(AdicionarLaranja, Produzir, Temporizador:15s, Inserir: Laranja(100%) ) Ação(AdicionarLaranja, AdicionarLimão, Produzir, Temporizador:30s, Inserir: Laranja(70%), Limão(30%) ) Fonte: Autor (2020) Inteligência Artificial 13 Perceba que primeiramente foi definido o planejamento estratégico e em seguida o escalonamento. Também perceba que o escalonamento possui valores fixos inseridos na lógica pelo programador. REFLITA: O algoritmo da Figura 1 demonstra uma estratégia onde o planejamento foi feito antes do escalonamento, você consegue recriar o algoritmo fazendo o escalonamento antes da aplicação do planejamento? Note que o planejamento geral apresentado na Figura 1 não leva em conta a quantidade de recursos disponíveis. A solução para esta falta de funcionalidade pode ser resolvida apenas com o aumento da complexidade estrutural, criando processos e ações de verificação da quantidade de recursos disponíveis, porém, o uso de hierarquias bem definidas para construção de soluções, além de organizar melhor o algoritmo, também permite isolar as soluções em problemas menores a solução geral. Expandindo o planejamento com hierarquia Um hierarquia é uma estrutura onde um indivíduo, processo, arquivo, pasta, entre outros, são organizados em uma estrutura onde cada etapa pode receber privilégios ou ser um referencial para os demais elementos, bem como, adicionar outras características que os distinguem ou que passam para os outros elementos abaixo da hierarquia (OLIVEIRA; BELO, 2014). Um bom exemplo de um sistema de hierarquia comum em nosso dia a dia, especialmente para quem usa computadores e smartphones, é a hierarquia de pastas e arquivos, onde, nesta estrutura podemos definir regras de acesso para as camadas mais externas e estas regras também serão aplicadas nas camadas mais internas de pastas e arquivos, semelhante às características genéticas que os filhos receberam dos pais, dos avós e assim por diante. Inteligência Artificial 14 Todavia, o sistema de hierarquias também pode conceder privilégios para certos membros, como a hierarquia militar em muitos países, onde os membros com cargos mais elevados na hierarquia possuem benefícios diferenciados, mesmo que, ligados a deveres e responsabilidades também diferenciados. Desta forma, um sistema hierárquico poderá assumir diferentes regras de estrutura e subordinação dos entes com base nos objetivos gerais a serem alcançados. Para a IA, um sistema de hierarquias ligado ao planejamento estratégico, permite que ações específicas sejam estruturadas de tal maneira, que elas podem possuir sub-rotinas de execuções para ações especializadas, onde as ações mais elevadas na hierarquia, definem quais ações subordinadas deverão ser executadas. Além disto, também é possível criar diversas ações independentes para cada camada da hierarquia, gerando consequentemente uma independência em cada fluxo hierárquico. Segundo Russell (2013), as ações podem ser divididas em duas, as chamadas primitivas, nomenclatura usada para identificar os modelos apresentados na unidade 1 deste material, apresentando geralmente pré- condição e ação respectiva, e as ações de alto nível, onde as ações são hierarquizadas e acessadas por chamadas unilaterais através de chaves de acesso. A utilização destas chaves, permitem que o fluxo de dados seja alterado durante a execução, ou seja, é diferente do uso tradicional de uma máquina de estados onde o fluxo segue uma estrutura direta. Um exemplo prático é o uso de uma função recursiva, função que sua saída pode apontar para o fim da solução ou chamá-la novamente. Estas funções, mesmo que previstas em máquinas de estado, podem ser consideradas um refinamento do planejamento proposicional apresentado na unidade 1, pois permite a criação de uma camada de tratamento especial para o direcionamento do novo fluxo com base nas saídas. Inteligência Artificial 15 O exemplo acima é composto de ações primitivas e uma camada de refinamento simples, mas, ainda se tem um controle bem definido do fluxo suas possíveis repercussões. Tais soluções são chamadas de busca por soluções primitivas, pois se conhece o caminho e as hierarquias seguem uma estrutura de fluxo. Todavia, reflita sobre o problema abaixo. Se uma pessoa definir que irá até o mercado comprar 1kg de farinha, 2 ovos, 1 pacote de açúcar e 1 litro de leite. Perceba que o objetivo está bem definido, a pessoa precisa comprar os produtos citados, assim, sua cesta precisamos conter no final da execução para que a saída seja positiva. Porém, não é necessário que a ação de pegar os produtos sejam feitas de forma estrutura, ou seja, seguindo um fluxo determinístico. Desta forma, podemos definir que a hierarquia de cada ação é independente umas das outras, com o caminho a ser percorrido sendo uma estrutura abstrata. REFLITA: Na unidade anterior aprendemos sobre a lógica propositiva e as tabelas verdade,bem como, sua importância para o estudo das unidades seguintes. Você é capaz de criar uma solução utilizando uma das tabelas verdades para quando a pessoa citada chega ao final da execução do algoritmo? Os exemplos apresentados até aqui possuem número X máximo de possibilidades. Porém, muitos casos podem ser não determinísticos, ou seja, impossível determinar quantas interações quais ações serão executadas. Um exemplo seria a própria ida ao mercado, onde pode-se deixar de levar algo devido o preço ou por não estar disponível, bem como, adicionar um produto que não estava previsto na lista de compras. Tais aplicações geralmente são implementadas para ambientes parcialmente observáveis, desconhecidos e não determinísticos. Inteligência Artificial 16 Desta forma, os agentes atuando no ambiente, manterão uma camada de conhecimento e uma camada de crenças, onde estas crenças estão relacionadas aos possíveis estados/ações que podem ser ativados. Desta forma, podemos chegar ao objetivo principal deste capítulo. Como os sistemas inteligentes tratam a incerteza? Primeiramente é preciso citar que está capítulo o fará superficialmente e de forma introdutória, uma vez que os demais capítulos aprofundarão as técnicas de tratamento de incertezas. Mas, o que veem a ser uma incerteza para a IA? DEFINIÇÃO: De forma simples, incerteza é a falta de capacidade de um modelo matemático aplicado a um computador de prever uma saída, dado um conjunto de entrada(s). Por sua vez, Mendes (2020), cita que incerteza é a falta de capacidade de dado um conjunto de dados, inferir sobre o significado dos processos. Problemas de incerteza são tratados em diversas áreas da computação, como a própria IA, métodos estocásticos, computação quântica, entre outros, permitindo que achados sobre o tratamento de incertezas estudados em uma área, sejam, em muitos momentos, utilizados em outras áreas da computação. Além do exposto acima, até o momento, vimos diversas estratégias que são aplicadas no planejamento de soluções ligadas a capacidade de raciocinar e tomar decisões com base em modelos. Tau conhecimento será de grande valia para o estudo do tratamento de incertezas, seja utilizando completamente ou parcialmente os modelos apresentados. Incertezas e a IA Como citado, as incertezas são definidas pela incapacidade de um modelo geral ser capaz de prever o fluxo de processos até a saída e/ou a própria saída. Inteligência Artificial 17 Entre as origens da incerteza, podemos citar os ambientes parcialmente observáveis e os casos onde os agentes são incapazes de observar os estados. Neste contexto, surge a camada chamada estado de crenças, onde o agente mantém todas as combinações possíveis de serem previstas como base de conhecimento principal ou adicional. Além deste modelo de crenças, o agente também deve possuir um conjunto de regras para tratar situações não previstas. Todavia, Russell (2013) cita que este tipo de sistema contém desvantagens significativas, apresentadas no Quadro 1 abaixo. Quadro 1 – Desvantagens da abordagem de crenças Ao interpretar a informação parcial do sensor, um agente lógico deve considerar cada explanação logicamente possível das observações, não importa o quão improvável seja. Isso leva a representações de estados de crença impossivelmente grandes e complexos. Um plano de contingência correto que lida com toda eventualidade pode crescer arbitrariamente e deve considerar as contingências arbitrariamente improváveis. Às vezes, não há um plano garantido de alcançar o objetivo — mesmo assim o agente deve agir. Deve ter alguma maneira de comparar os méritos dos planos que não são garantidos Fonte: Russell (2013) As desvantagens apresentadas deixam claro que o custo do processamento tende a ser bem elevado pela falta de um critério de qualidade para cada crença/ação. Para mitigar estes problemas, podemos criar uma camada de raciocínio sobre a camada de crenças, sendo a camada de raciocínio responsável por classificar o nível de importância das soluções. Inteligência Artificial 18 Ainda utilizando o exemplo da companhia aérea apresentado no início deste capítulo. Se um sistema de aviso aos clientes de quando seu voo chegará for implantado, o sistema deverá indicar o melhor momento para que o usuário sai de sua casa e vá para o aeroporto, levando em consideração o tempo de viagem de caso ao aeroporto, volume do trânsito e atrasos já identificados do voo. Porém, uma possibilidade para evitar a perda do voo é chegar mais cedo. Todavia, mais cedo quanto? Perceba que chegar muito mais cedo praticamente garante a chegada do usuário a tempo, mas gera um desperdício de tempo elevado. Por sua vez, chegar muito próximo do horário do voo pode acarretar a perda deste. Estas opções de chegar muito cedo ou muito tarde são viáveis, porém, seu custo é relativamente elevado para o cliente. Desta forma, uma camada de raciocínio atuando na identificação destes custos e na correta classificação hierárquica deste, tornará a experiência com a IA mais agradável e segura, uma vez que o cliente não perderá tempo e dinheiro. Está é uma forma simplista de solucionar problemas de incerteza, mas sua função prática mostra eficiência para problemas específicos como o citado. Veremos nos capítulos a seguir modelos mais elaborados de tratamento de incerteza, mas, esperamos que o conhecimento apresentado neste capítulo seja um bom referencial para os capítulos seguintes. Inteligência Artificial 19 RESUMINDO: Neste capítulo foi apresentado conceitos gerais e introdutórios sobre o que é e como tratar as incertezas. Para isto, primeiramente foi expandido o planejamento estratégico apresentado no final da unidade 1 deste material, citando como o escalonamento, especificamente feito pelo tempo, poderia aumentar a capacidade de modelar um raciocínio mais complexo. Em seguida, foi introduzida a ideia geral das hierarquias e como elas auxiliam a estruturação de estratégias gerais e dos problemas incertos. Por fim, a conceitualização geral da incerteza e como os sistemas inteligentes a percebem, foi explorado, especificamente através de exemplificações retomadas por todo o capítulo. Assim, este conteúdo introdutório, será uma base importante para o entendimento dos modelos de tratamento da incerteza apresentados nos capítulos a seguir. Inteligência Artificial 20 Algoritmo de Bayes para tratamento das incertezas OBJETIVO: Objetivo deste capítulo é fazer uma apresentação do tratamento de incertezas através do algoritmo de Bayes, procurando fundamentar algumas teorias que servem de base para o entendimento geral do uso de probabilidade e escolhas baseadas em critérios para a criação de modelos estratégicos mais elaborados. Esperamos que o estudo seja motivador e instigador ao aprofundamento destes conteúdos, bem como, que ajude em seus projetos futuros que venham a utilizar redes bayesianas. Bons estudos! Algumas teorias fundamentais para o entendimento geral do algoritmo de Bayes Esta Seção é destinada a apresentação de algumas teorias que embasam os modelos de inferências que, por sua vez, fundamentam conceitos de independência de dados e do próprio algoritmo de Bayes. Para esta fundamentação, apresentaremos a teoria da utilidade, teoria da probabilidade e a teoria da decisão. Teoria da utilidade Em geral, quando vamos ao mercado fazer as compras para um mês ou período, criamos, mesmo que virtualmente em nossas mentes, listas baseadas em necessidades específicas. Uma vez no mercado, a lista passa a ser um referencial, pois, ao fazer a análise dos preços, estoque, e outras variáveis, tendemos a realizar alterações em nossos planejamentos. Entre as experiências vividas em um mercado, nós podemos nos deparar com casos onde definimos um produto X de uma marca Y que queremos comprar, todavia, ao analisar se o preço está mais ou menos InteligênciaArtificial 21 elevado que a última compra, alguns podem decidir levar uma outra marca com preço mais em conta, ou assumir o risco do valor e levar a marca planejada. Perceba que para o mesmo produto X de uma marca Y qualquer, pessoas diferentes tomarão decisões diversas. Estas decisões estão ligadas a fatores como sabor, cheiro, cor, visual da embalagem, possuir ou não algum brinde, o preço, entre outros. Note que a insistência, ou falta dela, na compra do produto citado, é um processo individual ligado a utilidade que cada indivíduo dá para cada objeto e/ou situação. Com base na dinâmica acima, existe uma teoria que representa estas situações citadas, a teoria da utilidade. Antes de definir a teoria da utilidade, é preciso citar que sua base para representar as possibilidades é a teoria dos jogos e a probabilidade, o qual, o segundo será apresentada na próxima Seção. DEFINIÇÃO: A teoria da utilidade, segundo Nunes e Silva (2019), pode ser entendida como a capacidade de raciocinar ao processar conjunto de dados representados objetivamente, onde fatores emocionais de cada indivíduo, os permite tomar decisões em meio a incerteza. Um dos principais princípios desta teoria, é que um agente com base em sua base de conhecimentos e experiências, é capaz de tomar decisões e assumir os riscos destas decisões, decisões estas carregadas, também, de fatores emocionais. Na computação, os agentes que implementam a teoria da utilidade, a utilizam de forma individual, sendo constantemente influenciados pelo estado do mundo e de outros agentes concorrentes. Inteligência Artificial 22 SAIBA MAIS: Sesta Seção apresenta de forma simplificada e introdutória os conceitos da teoria da utilidade. Para saber mais assista o vídeo “Teoria do Consumidor: Teoria da Utilidade”. Acesse clicando aqui. A concorrência entre os agentes se dá ao passo que todos estão competindo com base em seus próprios conceitos/crenças e estão dispostos a “pagar por um custo” específico pelo que se está concorrendo. Assim, é preciso criar um conjunto de restrições racionais para permitir o tratamento das preferências de cada agente. Neste sentido, regras simples de decisão podem ser aplicadas aos agentes, como por exemplo criar uma camada reativa simples para tratar a quantidade de recursos disponíveis ou a necessidade destes. Tomando por base o exemplo anterior sobre ir ao mercado fazer compras específicas. Podemos elencar produtos essenciais e não mutáveis, ou seja, produtos que estão ligados a marcas específicas que não podem ser substituídos por outras. Em seguida, podemos descrever produtos que possuem prioridade a marcas, mas que em situações de alto custo total ou similares mais em conta (este termo “em conta” é definido dinamicamente com base nos valores totais na cesta e entre os produtos, levando em consideração uma variável de qualidade e uma regra que trate a variação do preço em relação a esta qualidade), podem ser substituídos. Por fim, os objetos da lista que podem ser substituídos por similares sem gerar emoções negativas acentuadas. Assim, podemos utilizar um pouco de matemática para fazer a representação computacional deste problema. Desta forma, vamos definir uma função chamada inserir na cesta. Sua função, como o nome diz, é inserir objetos na cesta e permitir adicionar uma camada de tratamento sobre estes objetos antes de serem inseridos. No exemplo percebemos a presença de três grupos de elementos distintos, os produtos que não podem ser substituídos, os que só devem Inteligência Artificial https://www.youtube.com/watch?v=m2GAdNxkCCg 23 ser substituídos em casos especiais e os que podem ser substituídos livremente. Logo, podemos chamá-los respectivamente de Grupo 1, Grupo 2 e Grupo 3. Em seguida, precisamos definir a camada de tratamento sobre a função inserir na cesta. Esta camada receberá dois elementos por vez com especificações para cada tipo de Grupo. Os elementos do Grupo 1 são uma exceção por comparar o produto desejado com um campo vazio, uma vez que estes elementos não devem ser substituídos por outros. Assim, vamos chamar os elementos do Grupo 1 de a1. Os elementos do Grupo 2 são verificados de acordo com uma ou mais regras de escolha, assim, vamos chamar os elementos de b1 e b2, sendo b1 o elemento pré-definido e b2 o elemento a ser comparado. Por fim, os elementos do Grupo 3 não precisam de regras elaboradas e serão chamados de c1 e c2, com os c1 sendo os pré-definidos, quando for, e os c2 os a ser comparados. Por fim, são definidas as regras de decisão. Como citado, os elementos do Grupo 1 não precisam ser comparados por não poderem ser modificados, porém, os elementos dos demais grupos precisam de tratamento especial. A regra para o Grupo 3 é definida quando um produto similar é comparado ao produto predefinido e a escolha será feita em favor do mais barato. Por sua vez, a regra para o Grupo 2 será comparar o preço dos dois produtos, pré-definido e não-pré-definido e verificar se a diferença entre eles é igual ou maior que trinta por cento (30%). REFLITA: Reflita sobre situações onde você precisou fazer escolhas com base em critérios baseados no que a teoria da utilidade apresenta? Inteligência Artificial 24 Desta forma simples, o agente computacional será capaz de tomar decisões com base, de forma simples, na teoria da utilidade. A Figura 2 apresenta a estruturação em forma de algoritmo do problema acima citado. Figura 2 – Algoritmo de inserção de produtos baseado em utilidade Processos({AdicionarACesta},{ValidarGrupo1},{ValidarGrupo2},{ValidarGrupo3}) Recusros(a1,b1,b2,c1,c2) Ação(AdicionarACesta, ValidarGrupo1(a1) Inserir: a1 Ação(AdicionarACesta, ValidarGrupo2(b1,b2) Validar: objetoB = percentualEntre(b1-b2) > 29: inserir b2, se não, inserir b1 Inserir: objetoB Ação(AdicionarACesta, ValidarGrupo3(c1,c2) Validar: objetoC = c1 > c2: inserir c2, se não, inserir c1 Inserir: objetoC Fonte: Autor (2020) Uma vez que a função de inserção dos elementos do Grupo 1 é direta e dos elementos do Grupo 3 apenas procuram inserir o mais barato, perceba que a regra na linha 6 do algoritmo da Figura 2, possui uma função chamada percentualEntre(). Esta função colhe a subtração entre os valores b1 e b2 e realiza uma transformação deste dados para representaram a porcentagem de diferença, permitindo em seguida que este valor seja comparado com o valor 29, ou seja, se o valor resultante é superior a 29 e por fim, se esta verificação for verdadeira, significa que o produto b2 é, baseado na utilidade, mais viável que o produto b1. Sendo o valor final igual ou inferior a 29, o resultado indicará que o produto b1 é mais útil que o produto b2 para a resolução do problema. Inteligência Artificial 25 Teoria da probabilidade Um exemplo clássico da teoria da probabilidade é o lançamento de um dado de seis lados. Note que, se retirarmos algumas regras físicas e na forma irregular dos dados, cada lado tem igual probabilidade de apresentar sua face para cima. Desta forma, podemos dizer que a probabilidade geral de uma face ser selecionada é de 1 para 6, pois todas as faces têm a mesma chance de ficar com a face para cima, porém, apenas uma face por vez pode alcançar este estado. Segundo Russell (2013), os modelos probabilísticos estão ligados a representações de mundo, nunca podendo existir dois mundos ao mesmo tempo, algo que pode ser explicado com base no exemplo acima, pois cada face só pode estar virada para cima caso todas as demais não estejam. Desta forma, cada resultado provável é um mundo específico. Desta forma, para se representar um modelo que represente estes mundos, devemos identificá-los se estão ativos ou inativos, geralmente representados por 1 e 0 respectivamente. Os modelos que representam estes mundos citados, geralmente, procuram representar as estruturas, conjuntos,no lugar dos elementos, especificamente pelo fato de procurarmos prioritariamente definir modelos gerais que incluem um número finito de possibilidades, cabendo ao modelo nos dizer este valor, todavia, este problema que a probabilidade procura resolver não é o único, cabendo ao aplicador do modelo verificar sua objetiva aplicabilidade. O objetivo desta Seção é apresentar introdutoriamente o que é e um exemplo básico da teoria da probabilidade, uma vez que, o capítulo 3 desta unidade, que tratará sobre o modelo de Markov, retomará este conceito e assim, este será abordado de forma mais profunda similar a Seção sobre a teoria da utilidade. Teoria da decisão Até o momento, vimos que uma forma de tratar as incertezas é inserir uma camada de utilidade a esta baseada em modelos da teoria Inteligência Artificial 26 da utilidade vinda da economia. Em seguida vimos como o uso simples da probabilidade nos permite criar modelos capazes de representar diferentes mundos através de conjuntos de elementos. REFLITA: Agora, façamos uma reflexão, e se fosse possível criar modelos estratégicos utilizando regras de seleção de ações com base em crenças e emoções, bem como, baseadas em mundos probabilísticos? A teoria da decisão é a solução para a reflexão acima, uma vez que esta teoria procura maximizar as um conjunto de utilidades em forma de mundos baseados nas crenças e desejos dos agentes (RUSSELL, 2013). Na prática, a teoria da decisão define uma nova camada sobre a camada apresentada na Seção sobre a teoria da utilidade, sendo esta nova camada responsável por aplicar modelos probabilísticos a fim de selecionar os estados de crenças mais úteis. Se tomarmos por base o exemplo dado na Figura 2, poderemos perceber que ele não trata bem os recursos totais para pagar as compras. Também não trata a falta de algum produto, bem como, não trata uma lista de produtos a serem comparadas umas com as outras de um mesmo grupo. Neste sentido, poderíamos criar uma função probabilística que trate todas estas variáveis e entregue como saída a atualização de nossas crenças de utilidade, como por exemplo, não apenas ver se um produto é mais caro que outro, mas também verificar se os preços destes impactarão os recursos para pagamento disponível, não permitindo que produtos de um dado tipo com valor superior ao que crença definiu, sejam inseridos na cesta. Desta forma, podemos dizer que este é um tratamento muito mais complexo sobre dados incertos que os apresentados anteriormente. Assim, finalizamos a introdução a conceitos básicos para o estudo teórico e introdutório do algoritmo de Bayes. Inteligência Artificial 27 O algoritmo de Bayes O algoritmo de Bayes, comumente chamado de redes bayesianas, é um grafo orientado composto de N vértices, com cada vértice representado um estado probabilístico, ou seja, um mundo. O nome rede, vem da forma como esta estrutura de dados se organiza, mantendo no grafo representações dos estados e de todas suas relações, resultando em uma estrutura que se assemelha a uma rede, ou teia de aranha. Desta forma, é possível visualizar a relação entre dois vértices, bem como, o nível de relação entre eles, quando houver. Redes bayesianas são indicadas para problemas de raciocínio probabilístico, ou seja, problemas em que não se tem completo conhecimento sobre um problema dado, seja pela falta de dados informativos, ou pela não possibilidade de obtê-los. Uma das premissas das redes bayesianas é que cada estado deve apresentar valores que variam entre 0 e 1, desta forma, podemos considerar que o valor 1 representa cem por cento em uma dada probabilidade e 0 zero por cento, com os valores intermediários representando valores entre o zero e o cem por cento. Também é importante lembrar que dado um conjunto de mundos, a soma total de todos os estados deve ser igual a 1, como no caso dos dados apresentado anteriormente, em que, cada face tem 1/6 porcento de chance de acontecer, ao se somar as seis faces o valor total será 6/6, ou seja, 1. Assim, cada vértice da rede será composto de um conjunto de probabilidades ligadas a regras de hierarquia parental, bem como, de ativação do vértice e posterior execução de vértices aparentados a partir dos filhos do nó atual. Agora vamos exemplificar uma rede simples ligada a um sensor para detecção de incêndios florestais. Este sensor possui duas funções que ativam notificações para a equipe de combate a incêndios, uma está ligada a percepção de fumaça e a outra em relação a carga útil da bateria do sensor, significando que precisa ser feita a troca da fonte de energia. Inteligência Artificial 28 Uma vez que algum dos problemas ocorram, o sistema utilizando a rede bayesiana lançará alertas textuais para a área de notificação do pessoal de apoio e suporte técnico, bem como, para a equipe de combate a incêndio, tratando probabilisticamente para quem será enviado cada mensagem. Assim, usaremos letras maiúsculas para definir cada ação: F, E, N, S e C, representando consecutivamente a percepção de fumaça, percepção de carga baixa, sistema de notificação, equipe de suporte e equipe de combate. Além da definição das letras, também será necessário vincular uma tabela de tratamento probabilístico para cada vértice. Desta forma, poderemos fazer uma representação probabilística deste controle de alerta para equipes diferente ligados a fatos geradores diferentes. O modelo citado no exemplo acima está demonstrado na Figura 3. Figura 3 – Exemplo de rede bayesiana Fumaça Nível de Energia Notificação Eq. Suporte Eq. Combate P(E) 0,005 P(F) 0,012 E F v v v f f v f f P(N) 0,03 0,087 0,648 0,001 Λ v f P(S) 0,999 0,001 ¬ → v f P(C) 0,999 0,001 Fonte: Autor (2020) A Figura 3, apresentada acima, apresenta desta forma os nós, vértices, exemplificando as suas funções através de textos diretos, as relações em forma das linhas de ligação hierárquicas e, por fim, as tabelas com as regras probabilísticas. Inteligência Artificial 29 Perceba que a função P () identifica qual estado está sendo ativo. Perceba também que P(E) e P(F) são independentes um em relação ao outro, porém, seu estado atual é vitalmente importante para P(N). Cada função é representada por uma probabilidade esperada do estado estar ativo dado as condições acima, desta forma, se for detectado que existe fumaça, mas a bateria está com carga suficiente, a notificação receberá como entrada para a análise respectivamente um f, falso, e um v, verdadeiro, bem como, será também apresentada a probabilidade esperada deste estado ser verdadeiro. Por fim, os vértices de notificação a equipe de suporte e combate, possuem regras especiais para tratar as saídas da notificação, a regra está definida na primeira célula da primeira coluna nas tabelas de P(S) e P(C) , sendo estas respectivamente uma função e lógico e se, então lógico negado. Assim, qualquer estado verdadeiro notificado com base nas entradas notificadas tratados com Λ, ativaram a notificação a equipe de suporte, que terá o trabalho adicional de notificar a equipe de campo para troca das baterias, bem como, a equipe de combate a incêndio caso ocorra percepção de fumaça e pouca carga ao mesmo tempo (estas últimas notificações pelo vértice da equipe de suporte não foram inseridas no exemplo da Figura 3). Por sua vez, o vértice da equipe de combate a incêndios, só será verdadeiro caso a função se, então lógico (Λ), obtiver saída falsa, sendo esta negada pelo não lógico representado pelo símbolo ¬. Assim, quando a entrada da notificação é dada por um fator f e v ao mesmo tempo, significa que o sensor percebeu exclusivamente a presença de fumaça, sendo a equipe notificada diretamente. Inteligência Artificial 30 RESUMINDO: Este capítulo procurou apresentar umabreve introdução sobre o algoritmo de Bayes para o tratamento de incertezas. Para isso, primeiramente tratamos de 3 teorias fundamentais para o tratamento complexo das incertezas, a teoria da utilidade, teoria da probabilidade, e a teoria da escolha. Por fim, apresentamos de forma simples e objetiva como o algoritmo de Bayes, também conhecido como redes bayesianas atuam através de exemplos práticos. Inteligência Artificial 31 O modelo oculto de Markov OBJETIVO: Neste capítulo iremos tratar de forma introdutória o modelo oculto de Markov, porém, a fim de comprar a forma como Markov trata a incerteza com a utilizada em Bayes, iremos retomar brevemente conceitos da teoria da probabilidade, especificamente os comparando com o tratamento sobre modelos temporais que são utilizados no modelo oculto de Markov. Por fim, apresentaremos exemplificações práticas durante a conceitualização do modelo. Vamos lá! Aprofundando conceitos da teoria da probabilidade A Seção 2.1.2 intitulada Teoria da probabilidade, apresentou de forma simples e objetiva, regras gerais para o modelo aplicado em Bayes, porém, não aprofundou outros conceitos, também gerais, da forma como a teoria trata conjuntos de elementos diversos. A teoria da probabilidade tem sua provável origem no século nono depois de Cristo, com os trabalhos ligados a criação de regras para análise de possibilidades de combinações de jogadas em jogos de azar. Posteriormente, matemáticos célebres como Pascal (1623-1662), Leibniz (1646-1716), Beroulli (1654-1705), Bayes (1702-1761) e Laplace (1749- 1827), contribuíram para a noção clássica que temos sobre a probabilidade e sua representação de possibilidades igualmente prováveis entre os elementos de um dado grupo (RUSSELL, 2013). Uma das principais contribuições da chamada probabilidade clássica é o princípio da indiferença. O princípio da indiferença, também conhecido como princípio da insuficiência da ração, o qual é aplicado a Bayes, considera que uma coleção qualquer de n estados possíveis que não podem ser controlados, possuem Inteligência Artificial 32 uma probabilidade igual a 1/n de acontecer, além de não ser permitido que mais de um estado esteja ativo ao mesmo tempo (KEYNES, 1921). Perceba que a definição citada a acima é a mesma, escrita de outra forma, que a definição geral da teoria da probabilidade, uma vez que ambas as definições condicionam que um conjunto qualquer de objetos possui igual possibilidade de ocorrer. Nos últimos 100 anos aproximadamente, as contribuições para a criação de modelos probabilísticos se desenvolveu muito, como a definição da lógica indutiva, que parte do princípio que cada indivíduo possui um conjunto de crenças ligadas a diferentes evidências, permitindo que a relação entre as duas variáveis citadas sobre cada indivíduo possam ser tratadas matematicamente de forma precisa (SAINSBURY, 1991). Por sua vez, as redes bayesianas já apresentadas, procuram dar a cada conjunto de objetos uma probabilidade interna de ocorrência, particionando probabilisticamente cada chance com base em percentuais específicos para cada elemento e suas relações específicas. O nome deste tipo de tratamento sobre conjuntos de objetos, chama-se lógica de primeira ordem. A lógica proposicional possui como característica a necessidade da declaração de valores a fim de realizar uma relação-verdade, dos dados analisados. Um dos principais problemas nesta descrição, é a impossibilidade do uso das chamadas linguagens de altíssimo nível, ou seja, expressões como: “Adicione o valor 1 a variável A e some o valor com o contido na variável B”. Perceba que podemos abstrair essa expressão e representá- la através, unicamente, de funções baseadas na lógica proposicional, porém, de forma muito complexa e de difícil leitura por pessoas que não possuem intimidade com programação e lógica computacional. Por sua vez, a lógica de primeira ordem, trata as expressões através de relações abstratas, permitindo que o uso de uma gramática qualquer que defina bem as regras de escrita e tratamento dos dados, possa Inteligência Artificial 33 ser usada como base de conhecimento para a criação e validação das expressões (RUSSELL, 2013). Ao compararmos matematicamente a lógica de primeira ordem com a lógica proposicional. Iremos notar que a lógica proposicional utiliza modelos formais que procuram validar se um conjunto de dados pode ser considerado verdadeiros ou falsos. Este conceito também está presenta na lógica de primeira ordem, porém, esta pode expandir este conceito e aplicar novos modelos. Por exemplo, a lógica temporal que procura avaliar e validar os dados de acordo com intervalos definidos de tempo e que iremos tratar ainda neste capítulo. Assim, podemos dizer que ambos os algoritmos, Bayes e Markov, aplicam seus modelos baseados em lógica de primeira ordem, uma vez que o uso de modelos temporais e probabilísticos, respectivamente a cada algoritmo, são expansões dos modelos da lógica proposicional. Relação entre o tempo e a incerteza Na Seção 1.1, Escalonamento e o tempo no mundo real, percebemos que a variável do tempo nos permite criar escalonamentos simples para o tratamento de incertezas, bem como, introduziu o conceito de tratamento de variáveis do mundo real em meios digitais. Meios computacionais não são capazes de aplicar modelos realmente contínuos, também conhecidos como valores analógicos, uma vez que a base da computação é a lógica proposicional, o qual, discretiza as interações em dois valores específicos, 1 e 0. Porém, os modelos discretos podem ser entendidos como modelos contínuos ao reduzir-se a valores muito pequenos os intervalos de tempo observacionais. Por exemplo, um vídeo rodando a 5 frames, intervalo de cinco imagens a cada um segundo, faz com que o olho humano perceba que as imagens estão sendo consecutivamente trocadas em um intervalo de tempo. Todavia, se a quantidade de imagens apresentadas em um frame Inteligência Artificial 34 for aumentada para valores igual ou superior a dez, o olho humano deixa de perceber a troca temporal. Assim, passamos a acreditar que o vídeo está sendo executado continuamente como vemos no mundo real. Neste caso, o intervalo de observações foi mantido, sendo alterado a frequência de substituição de imagens neste intervalo. Porém, em alguns casos o próprio intervalo de tempo condiciona a variação de ações. Como alguns programas computacionais que são afetados pela velocidade do clock dos processadores. Neste sentido, podemos retomar alguns exemplos anteriores sobre o tratamento com lógica de primeira ordem apresentados. Ao analisá-los, perceberemos que o uso da probabilidade os atende pois não é possível prever completamente todos os estados possíveis e sua utilidade. Porém, existem problemas que precisam levar em consideração intervalos definidos de tempo, mesmo que ainda tratando as incertezas. Exemplo: Se uma empresa que realiza customização de carros for realizar uma pintura através de um sistema inteligente, podemos perceber que após a pintura ser concluída é preciso esperar um tempo definido para secagem, além disso, é preciso posteriormente verificar se a pintura está boa ou é preciso fazer algum ajuste local em pontos que possam ter sofrido alterações físicas pelo ambiente, como a temperatura e o derretimento parcial da pintura. Neste exemplo acima, o sistema é incapaz de prever se apenas com uma pintura o resultado será o esperado, porém, é preciso esperar um tempo definido para saber se o objetivo foi alcançado completamente ou parcialmente. Note que o exemplo pode ser de forma relativamente simples, resolvido com uma rede bayesiana inserindo uma variável de tratamento de tempo constante. Porém, imagine um procedimento em que uma pessoa está apresentando pressão alterada e é preciso normalizá-la antes de iniciar propriamente os procedimentosmédicos. Ao medicar o paciente, é preciso verificar em um intervalo de tempo o estado atual da pressão. Inteligência Artificial 35 Além disso, também é sabido que o medicamento em geral apresenta tempo médio para que o efeito comece a ser percebido, bem como, o período médio de normalização da pressão. Poderíamos aplicar modelos probabilísticos para verificar os possíveis estados do paciente em relação ao tempo, todavia, note que estes resultados já formam discreteados na descrição dos efeitos do medicamento. Assim, podemos usar os intervalos de tempo discretizados como parâmetro para definir o intervalo de tempo entre as verificações, bem como, o estado esperado que o paciente esteja nestes intervalos, permitindo por sua vez que a equipe médica possa realizar possíveis intervenções em momentos específicos, otimizando este tratamento prévio, bem como, diagnósticos específicos. Os exemplos acima possuem em comum a variável tempo e a incerteza do estado após um dado período. Em alguns casos é possível resolver de forma similar a lógica proposicional, verificando se o tempo definido já passou e aplicando probabilidade em pró da solução, porém, veremos mais a frente como podemos resolver problemas que o tempo e a incerteza podem ser discretizados e resolvidos através do modelo oculto de Markov. IA e a inferência nos modelos temporais Na Seção anterior vimos alguns problemas ligados ao modelo temporal. Estes exemplos, porém, apresentaram soluções genéricas e que poderiam ser substituídas por outros modelos baseados na lógica de primeira ordem, ou até mesmo pela lógica proposicional. Todavia, agora trataremos características que auxiliam na construção de modelos para problemas temporais, facilitando a construção e manutenção dos modelos com base nas regras de construção e avaliação. A primeira característica é a capacidade de fazer estimativas baseadas nos estados de crença de cada agente. Por exemplo, se um humano faz a instalação de um sistema de sensores em um lugar remoto e estes sensores não são capazes de verificar a quantidade de energia Inteligência Artificial 36 disponível para seu funcionamento, o humano deverá definir uma crença que dado um tempo específico, ele precisará ir fazer a troca das baterias. Outro exemplo é quando um agente virtual ligado a um sistema de navegação, tomando por base o custo de um engarrafamento com trânsito se movendo a X quilômetros por hora, se é melhor seguir a rota principal por algum benefício posterior, como rota rápida livre, ou procurar uma rota alternativa mais lenta em todo o percurso. Em todos os exemplos, os agentes humanos e computacionais estão filtrando suas escolhas e alterando suas crenças com base em estado internos e externos advindo de suas emoções momentâneas, do ambiente e de outros agentes. Assim, podemos definir esta característica como filtragem. Quando um agente ligado a um sistema de navegação decide que ir pela rota que está com trânsito lento em parte de seu percurso, por acreditar que compensará se manter na via rápida em detrimento de usar uma via lenta sem congestionamento, este agente está realizando previsões de estados futuros, algo útil para definir estratégias com base em resultados esperados. Tomando por base o exemplo do humano e o sensor, perceba que a regra utilizada para trocar as baterias, são evidências de experiências anteriores, permitindo que o agente, humano no caso, defina um intervalo de manutenção com base em dados históricos experimentais seus ou de outros agentes. Esta característica se chama, suavização. A suavização permite que os dados anteriores sejam comparados constantemente com os dados atuais e sejam feitas alterações pontuais na estratégia definida. Por sua vez, a observação de fatores que se repetem ou que se alteram pouco durante o tempo, permitem aos agentes criar regras de estados mais prováveis de acontecerem. Por exemplo, se o sistema de navegação observou que os engarrafamentos das sextas-feiras são mais longos e lentos que os das quintas-feiras, bem como, o impacto do tempo das sextas quando se pega a via rápida em detrimento da via Inteligência Artificial 37 secundária apresenta resultados piores, este agente pode inferir com base em sequências históricas que especificamente nas sextas é melhor usar as rotas alternativas para se ganhar tempo. A característica ligada a exemplificação acima se chama explicação mais provável. REFLITA: Aprendemos muitas coisas até aqui, porém, reflita agora sobre as características citadas e procure observar se elas estão presentes em algum sistema inteligente que você já identificou previamente. O tema de aprendizado na Inteligência Artificial só será abordado em sua totalidade nas unidades posteriores, porém, perceba que ao citarmos que um agente está usando dados coletados de experiências anteriores, ele está usando um método rudimentar de aprendizagem, pois é capaz de alterar suas crenças com base nestes dados. Esta capacidade nos agentes que tratam a incerteza em ambientes temporais é chamada de aprendizagem. O modelo oculto de Markov Nesta Seção iremos apresentar os contextos gerais sobre o algoritmo de Markov, especificamente o chamado modelo de Markov, que será útil como ferramenta mais elaborada de criação de modelos para tratamento de estratégias para ambientes temporais. DEFINIÇÃO: Segundo Du (2019), o modelo oculto de Markov nos permite fazer a extensão de modelos estáticos em modelos dinâmicos. Já Russell (2013), cita que o modelo oculto de Markov tem por objetivo ser um modelo temporal para tratamento de estados através do uso de apenas uma única variável aleatória e discreta. Inteligência Artificial 38 O modelo oculto de Markov toma por base três variáveis principais, uma ligada ao modelo de transição, outra ligada ao modelo dos sensores e por fim, uma ligada as mensagens de movimentação entre as possibilidades. A primeira variável, o modelo de transição, procurará manter o estado probabilístico de todos os resultados possíveis, salientando que a quantidade de estados é definida pela desratização do tempo. Os modelos de sensores serão responsáveis por verificar o estado atual do ambiente e os estados atuais do agente em questão, permitindo a seleção do estado baseado no modelo de transição. Já as mensagens entre as movimentações, podem ser entendidas como as respostas que o sistema dará para cada estado. Desta forma, podemos dizer que a estrutura representativa do modelo oculto de Markov será uma matriz, tabela, onde as colunas serão definidas pelo modelo de transição, as linhas pelo modelo de sensores e as células da tabela pelas mensagens. Vamos exemplificar. Imagine um remédio para dor de cabeça com dosagem estipulada para crianças e adultos por faixa de peso da seguinte maneira: 5-10kg > 15ml; 11-20kg > 20ml; 21-40kg > 25ml; 41-75kg > 30ml; 76-105kg > 35ml; acima de 105kg > ml. No que uma pessoa por varia apenas um quilo, passará a tomar 5ml a mais, sendo que existe uma variação maior entre os que possuem por exemplo 40kg em comparação a quem possui 20kg. Assim, o uso do modelo oculto de Markov é indicado para este problema, pois poderá distribuir para variações de peso, a quantidade de ml necessárias de forma progressiva como demonstrado no Figura 4. Inteligência Artificial 39 Figura 4 – Exemplo de modelo de Markov Fonte: Autor (2020) O Figura 4 apresenta uma representação do modelo oculto de Markov para solucionar o exemplo acima. Perceba que as linhas coloridas representam a dosagem indicada para cada categoria de peso. Assim, se uma pessoa pesa por exemplo 42kg, o sistema indicará fortemente que ele deve tomar 30 ml. Assim, a regra de seleção para uma faixa específica de crenças é o valor da crença mais forte. RESUMINDO: Este capítulo procurou apresentar como o algoritmo de Markov trata incertezas. Para isso,primeiramente retomamos de forma a aprofundar nossos conhecimentos sobre a teoria da probabilidade, permitindo uma comparação conceitual entre o modelo probabilístico e modelos que tratam a incerteza através de inferências temporais. Por fim, apresentamos o algoritmo de Markov e um exemplo de sua aplicação prática. Inteligência Artificial 40 Tomada de decisão simples e complexa em IA OBJETIVO: Neste capítulo, trataremos sobre como sistemas inteligentes realizam tomadas de decisão simples e complexas. Desta forma, primeiro iremos retomar alguns exemplos simples e explorar outros um pouco mais complexos, procurando apresentar como a combinação da teoria da utilidade com a teoria da probabilidade, nos permite criar sistemas que implementam a teoria da decisão através de agentes. Retomando o raciocínio computacional Até o momento, vimos que uma tomada de decisão racional é orientada primeiramente por uma base de conhecimento básica, o qual permite que o agente possa consultá-la durante suas inferências, tornando os agentes reativos simples em sistemas capazes de raciocinar. A primeira base apresentada foram as tabelas-verdade da lógica proposicional, ao tratar dados binários através de modelos pré- definidos chamados tabela verdade, modelos estes advindos da lógica computacional e lógica dedutiva. Em seguida, vimos o uso de grafos baseados na lógica proposicional. Esta estrutura de dados permitiu que a tomada de decisão fosse mais efetiva, ao tratar conflitos e usar o fluxo para direcionar decisões em cadeia. Até este momento, a tomada de decisões era feita sobre dados certos, em que tínhamos o controle das entradas e das saídas previstas, bem como, qual o fluxo que levaria até uma dada solução. Isto mudou com a inserção da incerteza no capítulo 1 desta unidade. A incerteza inseriu um fator em que os agentes não são capazes de prever completamente um estado ou o próprio fluxo de dados. Neste momento, aprendemos que o uso da teoria da probabilidade nos permite criar soluções baseadas em modelos para o tratamento de problemas incertos. Inteligência Artificial 41 Desta forma, podemos retomar a definição do que vem a ser um agente e adicionarmos que agentes inteligentes capazes de raciocinar sobre incertezas, são aquelas que tratam com alguma complexidade os dados, baseando-se na teoria da utilidade e probabilidade. Assim, trataremos sobre o uso da teoria da decisão, o qual, é baseada na soma das teorias da probabilidade e utilidade. A teoria da utilidade procura encontrar a melhor escolha para um grupo de elementos com base em crenças. A teoria da probabilidade procura auxiliar na melhor escolha para um dado problema. Assim, podemos definir que a teoria da decisão procurará a melhor escolha baseada na utilidade pressuposta nos modelos de crenças. Agentes de tomada de decisão simples Redes de tomadas de decisão Redes de decisão é um termo usado para uma notação chamada também de diagrama de influência. Sua estrutura utiliza as redes bayesianas para com camadas adicionais de tratamento que processam os dados baseado na utilidade. Estas redes possuem uma diagramação própria para descrever os modelos, sendo formada por: • Nós de acaso: Representados por símbolos em forma de elipses que contém as variáveis do sistema em forma de vértices/nós. Estes nós podem receber camadas adicionais de tratamento de escolhas, como nós de decisão, bem como, estruturas que procuram simular situações adversas como uma catástrofe ou por exemplo, a danificação de um sensor por acidente. • Nós de decisão: Os nós de decisão são representados por retângulos e representam, como o nome cita, uma tomada de decisão iminente para controle de fluxo de dados. Redes simples, Inteligência Artificial 42 aplicam um nó geral para um problema, porém, existem casos que mais de um nó de tomada de decisão pode ser aplicado. • Nós de utilidade: Nós de utilidade são representados por losangos e representam as funções de utilidade que cada agente aplica com base em suas regras. Os nós de utilidade aplicam regras semelhantes aos das tabelas apresentadas nas redes bayesianas. • Ligações: São setas simples que apresentam o fluxo de dados dos grafos. Estas são as 4 estruturas básicas das redes de decisão. Esta notação mantém os nós de acaso para representar as implicações, porém, existe uma forma simplificada no qual os nós de acaso são omitidos. A Figura 5 apresenta um esquema exemplo de uma rede de decisão. Figura 5 – Rede de decisão normal Tráfego aéreo Litígio Mortes Construção Ruído Custo U Local do aeroporto Fonte: Adaptado de Russell (2013) Exemplo: Se o nó verificar CPF nos implica CPF Válido e CPF inválido antes de seguir o fluxo de ação, o caso dos modelos simplificados das redes de decisão omitem os nós CPF válido e CPF Inválido. A figura 6 representa um exemplo de uma rede de decisão simplificada. Inteligência Artificial 43 Figura 6 – Rede de decisão simplificada Tráfego aéreo Litígio Construção U Local do aeroporto Fonte: Adaptado de Russell (2013) Por fim, Russell (2013) apresenta um conjunto de regras para avaliar as possíveis soluções de cada nó, os quais, seguem três passos, sendo eles: Primeiro passo: Deve ser feita a avaliação para definição das variáveis de evidência que serão utilizadas no processo de decisão do estado atual; Segundo passo: É feita a avaliação para definir o custo baseado no valor de cada possível resultado em um dado nó de decisão. Esta regra é dividida em três etapas: • É realizado a definição do nó de decisão com base no valor da variável; • Usa-se um padrão pré-definido de avaliação probabilística para averiguar qual a probabilidade de cada valor entre o nó atual e seus filhos, ou seja, a probabilidade de acessar um fluxo específico com base nas regras de utilidade; • Por fim, (c) o sistema retornará à ação com nível de utilidade baseada em crenças mais elevado. Assim, dado um domínio estocástico, ou seja, que não se tem um controle pleno, vimos que diversas soluções podem ser aplicadas para a tomada de decisão simples. Inteligência Artificial 44 Desta forma, com base em todo o exposto, podemos definir uma tomada de decisão simples como uma tomada de decisão individual, em que cada ação tem apenas uma tomada de decisão, que por sua vez, é geral para todo o problema. Agentes de tomada de decisão complexa Até este momento, tratamos e exemplificamos apenas problemas com uma tomada de decisão apenas. Ou seja, eram problemas de decisão simples. Porém, nesta Seção procuraremos levá-lo a conhecer como se dá as tomadas de decisão complexas. Todos os conceitos aprendidos até o momento nos auxiliarão para entender este processo de seleção em ambientes com várias condições de decisão. Os problemas com vários nós de decisão são chamados de problemas de decisão sequenciais, uma vez que, um conjunto, ou sequência, de decisões estarão conflitante-mente atuando nos agentes durante as escolhas em cada camada de ações. Tomemos por base um exemplo baseado em decisões, quando o gestor deverá decidir o momento e o quanto deverá investir na construção de uma estrada. Perceba que o problema a seguir não se trata de um acesso pleno a possíveis repercussões das decisões, além de possuir um conjunto de decisões unilaterais que deverão ser avaliadas para decidir como a obra será feita e qual o valor a ser investido. Uma das regras a ser aplicada é definir o grau de utilidade dos possíveis locais onde a estrada será construída. A regra acima é impactada por outras regras, como o tempo que levará para preparar o ambiente físico para a construção, o custo do transporte e movimentação de pessoal e materiais, a quantidade provável de pessoas que usará a nova estrada, o custo ambiental provável da obra, entre outros. Nestemomento, podemos perceber que a variável custo, está determinada por várias outras variáveis, bem como, a própria variável de Inteligência Artificial 45 utilidade do local a ser construída a estrada, além do exposto, a variável de custo também é determinística para algumas das variáveis que a utilizam como tomada de decisão, sendo possível ver assim a complexidade deste problema. A fim de simplificar e tornar mais didático, vamos definir apenas 4 variáveis de decisão para este problema. Variável local a ser construído. Esta variável receberá três localizações com duas sub variáveis, uma ligada ao interesse popular e outra ao custo de preparação e de construção da estrada no local indicado. A última variável é o orçamento total da obra. Esta variável tratará se o custo total é útil ou não, tomando por base uma constante ligada ao orçamento do executivo que limitará o custo máximo que a obra poderá custar. As variáveis a seguir são conhecidas, porém, suas implicações não podem ser definidas completamente, uma vez que o custo de construção é probabilístico, bem como, a demanda pela estrada que após a conclusão e das escolhas, pode gerar um fluxo abaixo do esperado e consequentemente o uso desnecessário de recursos públicos. Para resolver o problema acima, vamos definir alguns princípios básicos para o tratamento de várias decisões em conjunto. Para definir uma utilidade geral com base em um conjunto de várias decisões simultâneas, poderemos definir uma função na qual cada decisão gera um valor de utilidade próprio, sendo este valor escolhido durante a decisão somado com as demais decisões sobre a mesma regra, resultando em uma expressão em que X é o valor obtido da soma de todas as escolhas e N a quantidade de escolhas, resultando em X/N. Perceba que para cada conjunto de soluções teremos valores distintos para a equação X/N, em que poderemos aplicar regras de validação para decidir qual o melhor resultado, geralmente sendo usado o maior valor ou menor valor, porém, existem estratégias diferentes como usar o valor médio ou a mediana. Inteligência Artificial 46 Estratégias que somam o valor das decisões e selecionam a maior soma para um dado conjunto de decisões, é chamado de estratégia de recompensas aditivas. Por sua vez, se for feito uma subtração dos valores obtidos durante a análise de todas as decisões e o melhor conjunto de decisões for o com menor valor total, a estratégia será chamada de recompensa descontada. Da mesma forma, se a média da estratégia, seja baseada na soma ou subtração das decisões, for usada como parâmetro de escolha, esta estratégia será chamada de recompensa média. Desta forma, poderemos aplicar estas estratégias no nosso exemplo. Vamos considerar a recompensa descontada, uma vez que os custos maiores serão um parâmetro negativo nas contas públicas e o valor da demanda já está definido, sendo executado como uma constante para cada possibilidade. A Figura 7 apresenta um algoritmo para o dado exemplo. Perceba que cada local possui um conjunto de crenças probabilísticas ligadas ao custo da obra e a demanda de pessoas e estes valores não podem ser definidos de forma controlada. Assim, apenas após a execução da obra o valor real será obtido, sendo este um risco a ser levado em consideração. Em seguida, A ação que tratará o melhor conjunto de escolhas que será executada, no qual, será passada a lista completa de possibilidades, bem como, o valor do teto de gastos para comparação. Por fim, a regra procura validar se o valor escolhido, o com menor valor, foi afetado por variações prováveis nas crenças, uma vez que, estes dados devem ser constantemente atualizados seja pelo preço dos materiais, como pelo interesse das pessoas pela obra em locais específicos. Inteligência Artificial 47 Figura 7 – Exemplo de algoritmo para decisão complexa OpçõesDeLocal(local1(demanda(43584-52529), custo(135000,00-165000,00), Local2(demanda(98121-143000), custo(350000,00-170000,00), Local3(demanda(5584-12000), custo(70000,00-100000,00) ) TetoOrçamentárioAtual(450000) ValidarSeleção(OpçõesDeLocal,TetoOrçamentoAtual, RegraRecopensaDescontada, { Ação: Escolha o menor custo total baseado em utilidade Pós-condição: Atualizar a base de crenças { Efeito: Se o valor da crença se alterar, reiniciar função, se não, começar obras. } }) Fonte: Autor (2020) Desta forma, esta unidade procurou apresentar de forma simples é realizada uma tomada de decisão para problemas incertos complexos. Inteligência Artificial 48 RESUMINDO: Assim, encerramos o último capítulo deste módulo que tratou sobre como se dá as tomadas de decisão em sistemas incertos. Procuramos fundamentar o raciocínio computacional ao fazer uma reflexão de diversos contextos já estudados nesta obra. Esta conceitualização nos permitiu apresentar de forma mais objetiva o que viria a ser um agente de tomada de decisão simples, especificamente ao definir o termo ao final da Seção 4.2. após falarmos sobre as redes de decisão. Por fim, apresentados um novo conceito, os agentes de tomada de decisão complexas, concluindo assim nosso estudo sobre como sistemas inteligentes tomam decisões baseadas em regras. Inteligência Artificial 49 REFERÊNCIAS BRANDÃO, Joel. Teoria do Consumidor: Teoria da Utilidade. Disponível em:<https://www.youtube.com/watch?v=m2GAdNxkCCg>. Acesso em: 25 de maio. 2020. DICIONÁRIO: Houaiss da Língua Portuguesa. Rio de Janeiro: Objetiva, 2009. DU, K, et al. Using a hidden Markov model to measure earnings quality. Journal Pre-proof, 2019. KEYNES, J. M. A treatise on probability, 2. ed. New York, Cosimo Classics. pp 484. 2007. OLIVEIRA, B. e BELO, O. Identificação de Hierarquias Incompletas em Estruturas Multidimensionais de Dados. Atas da Conferência da Associação Portuguesa de Sistemas de Informação. p. 247-262. 2014. MENDES, A. P. A incerteza na doença crítica e o imprevisto: mediadores importantes no processo de comunicação enfermeiro-família. Escola Anna Nery, v. 24, n. 1, 2020. NUNES, N. F. e SILVA, A. V. Modelos, métodos e teorias utilizados no estudo da decisão e suas aplicações. humanidades e tecnologia (FINOM), v. 1, n. 16, p. 333-360, 2019. RUSSELL, S. Inteligência artificial. 3. ed. Rio de Janeiro: Editora Elsevier, 2013. SAINSBURY, M. Lógica indutiva versus lógica dedutiva. Logical Forms, Blackwell, Oxford, p. 9-13, 1991. Inteligência Artificial
Compartilhar