Prévia do material em texto
Unidade III Aprendizagem de Máquinas 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 Aprendizagem supervisionada: como os sistemas digitais aprendem .... 10 Como os sistemas digitais aprendem .............................................................................. 10 Aprendizado supervisionado .................................................................................................. 15 Lógica indutiva ............................................................................................ 19 Lógica indutiva, retomando o raciocínio ........................................................................ 19 Algoritmos de primeira ordem supervisionados ..................................................... 21 k-nearest neighbors (k-nn) ....................................................................................23 Árvore de decisão ........................................................................................................25 Considerações sobre os algoritmos supervisionados ......................27 Aprendizagem por modelos probabilísticos ..................................28 Algoritmos não supervisionados ........................................................................................ 30 Expectation-Maximization (EM) .........................................................................33 k-means ..............................................................................................................................34 Considerações sobre os algoritmos não supervisionados .......... 36 Aprendizagem por reforço ...................................................................... 37 Retomando alguns fundamentos da aprendizagem indutiva e dedutiva..................................................................................................................................................37 Fase de pré-processamento............................................................................... 38 Fase de processamento ......................................................................................... 39 Fase de pós-processamento .............................................................................. 40 A aprendizagem por reforço em agentes inteligentes ........................................ 41 Os dois tipos de aprendizagem por reforço .............................................44 7 UNIDADE 03 Inteligência Artificial 8 INTRODUÇÃO Aprender é uma característica ímpar na sobrevivência de muitos organismos, porém, o ser humano a tem como primordial para a formação de tudo que nossa espécie construiu, tanto bom, como, infelizmente, ruim. Está habilidade permite que as experiências possam ser armazenadas de forma a podermos acessá-las quando necessário. O aprendizado biológico pode acontecer tanto a nível consciente, como inconsciente, além de alguns destes conhecimentos serem passados hereditariamente para os descendentes, como a imunidade a algumas doenças. De forma semelhante, a aprendizagem em agentes inteligentes, pode ser de vital importância para a melhor performance dos sistemas seja alcançada, aplicadas a mais diversa gama de problemas computacionais. Os processos de aprendizagem nos computadores seguem três estratégias principais, a aprendizagem indutiva, dedutiva e por reforço, sendo cada uma aplicada a uma gama de variações na forma como os dados estão disponíveis aos sistemas. Desta forma, o objetivo desta unidade será apresentar os conceitos ligados a aprendizagem em agentes inteligentes, especificamente ao tratar sobre como os dados disponíveis impactam na estratégia de aprendizagem, bem como, nos paradigmas que as lógicas de aprendizado utilizam para a criação de modelos eficientes de aprendizagem. Estas prontas? Então vamos lá! Inteligência Artificial 9 OBJETIVOS Olá. Seja muito bem-vindo à Unidade 3. Nosso objetivo é auxiliar você no desenvolvimento das seguintes competências profissionais até o término desta etapa de estudos: 1. Entender como se dá o aprendizado em sistemas inteligentes. 2. Compreender o conceito de aprendizado supervisionado. 3. Discutir as abordagens da lógica indutiva. 4. Identificar outros tipos de aprendizagem de máquina. Então? Preparado para adquirir conhecimento sobre um assunto fascinante e inovador como esse? Vamos lá! Inteligência Artificial 10 Aprendizagem supervisionada: como os sistemas digitais aprendem OBJETIVO: Aprender é uma habilidade ímpar para que organismos possam otimizar suas chances de sobrevivência. Por sua vez, sistemas digitais que procuram simular as características ligados ao aprendizado, o fazem por motivos específicos de suas aplicações, geralmente, procurando otimizar seus resultados positivos. Assim, este capítulo procurará apresentar como sistemas inteligentes implementam e se comportam ao serem dotados de capacidades de memorização, lembrança e previsões futuras. Bons estudos! Como os sistemas digitais aprendem O aprendizado é um tema complexo tratado por diversas áreas, como a psicologia, neurociência, pedagogia, inteligência artificial, entre outras. Esta interdisciplinaridade sobre o aprendizado, permite que a contribuição e achados relevantes para todas as áreas, mesmo que estas não venham a ter ligação direta nos seus objetivos de estudo sobre o ato de aprender. Como já vimos na unidade 1 deste material, a neurociência cognitiva apresenta a teoria do cérebro trino, onde o cérebro é formado por três camadas distintas, o chamado cérebro reptiliano, estrutura evolutivamente mais antiga e ligada as reações espontâneas e automatizadas. O sistema límbico, onde são tratadas as emoções e comportamentos sociais. Por fim, o Neocórtex, o qual, é responsável por processos complexos como recordar, fazer reflexões e tomar decisões (WAGNER; LUO, 2020). Vide o esquema do cérebro trino na Figura 1. Inteligência Artificial 11 VOCÊ SABIA? O Neocórtex compõe cerca de80% do cérebro humano e é uma das partes mais recentes da evolução cerebral nos mamíferos, o que inclui os seres humanos. O estudo desta parte do cérebro contribuiu bastante para o desenvolvimento da IA, especificamente nos processos de tomada de decisão e simulação de aprendizagem. O Neocórtex, é responsável por alguns processos cognitivos ligados ao aprendizado, como a percepção de eventos cotidianos como: ver que ao se jogar um objeto para cima, em condições frequentes, o objeto fatidicamente cairá, algo simples, mas que por ocorrer com frequência nos permite, mesmo sem conhecer os processos físicos por trás do evento, perceber que se no futuro um objeto for lançado para cima, este consequentemente cairá. Figura 1 - Modelo da teoria do cérebro trino Fonte: Autor (2020). Inteligência Artificial 12 Segundo o ganhador do Prêmio Nobel, Herbert Simon (1975), o ato de aprender em seu conceito, mudou durante a história humana, deixando de estar ligado apenas a lembrança e repetição de dados para a habilidade de acessar estes dados e usá-los de forma mais genérica, como o exemplo do lançamento de um objeto citado acima. Da mesma forma, a computação procura dotar alguns sistemas com a capacidade de perceber seu ambiente, capturar e registrar os estímulos, acessar estes dados e consequentemente, tomar decisões e prever estados futuros. NOTA: As habilidades e características das IAs que implementam processos de aprendizagem podem ser diferentes dos citados quanto a aplicação, porém, estas características em geral são os principais presentes em sistemas capazes de aprender. Existem diversas maneiras de implementar sistemas capazes de simular a aprendizagem, porém, antes de citarmos algumas características comuns nestes sistemas, precisamos definir o que vem a ser a capacidade de aprender. DEFINIÇÃO: Segundo o dicionário Houaiss da Língua Portuguesa (2009), aprender é: aprender a partir de experiências; instruir-se; adquirir habilidade prática (em); vir a ter melhor compreensão de algo. Com base na definição acima, Russell (2013) cita que a aprendizagem em sistemas digitais precisa ser baseada em quatro fatores, tratados nesta unidade em forma de perguntas, sendo eles: • Quais comportamentos o sistema precisa melhorar para ser mais efetivo? • Qual o conhecimento prévio que o sistema possui para ser usado no processo de aprendizagem? Inteligência Artificial 13 • Qual ou quais modelos são aplicados para representar os dados e componentes no sistema? • E Qual ou quais respostas estão disponíveis nos processos de aprendizagem? Perceba que as unidades anteriores nos permitiram compreender como os dados e componentes podem ser representados nos sistemas digitais, especificamente através de modelos e processos ligados a tomada de decisão. Os modelos de representação da lógica propositiva e da lógica de primeira ordem, permitem que o conhecimento seja representado e aplicado em modelos específicos, como por exemplo, os modelos das redes baysianas e do modelo oculto de Markov, os quais, são pertencentes a lógica de primeira ordem. REFLITA: Nas lógicas apresentadas nas unidades 1 e 2, podemos perceber que os modelos eram capazes de representar conhecimentos e seus fluxos com base em entradas. Mesmo quando os sistemas não eram capazes de prever completamente as respostas possíveis, os tipos esperados de respostas eram traçados através de estratégias específicas, buscando os prever, assim, podemos dizer que estes modelos seguiam padrões de resposta específicos dentro de suas limitações. Desta forma, reflita sobre os sistemas apresentados que implementam lógica propositiva e de primeira ordem e as quatro perguntas feitas acima e busque perceber se estes modelos atendem ou não os quatro fatores? A representação do conhecimento prévia nos sistemas digitais, em geral, são cadeias sequenciais de dados numéricos discretos, que podem ser chamados de representação fatorada (SALGADO, RINCÓN e OLIVEIRA, 2017). Esta representação fatorada significa que os dados de entrada podem ser valores e atributos em forma de um vetor (lista), onde por sua vez, as saídas podem ser valores numéricos contínuos ou discretos, como citado por Russell (2013). Existem duas formas principais de dotar a IA com Inteligência Artificial 14 a capacidade de aprender, são elas a aprendizagem indutiva e dedutiva. O Quadro 1 apresenta uma visão geral das duas aprendizagens. Quadro 1 – Aprendizagem indutiva e dedutiva Aprendizagem indutiva Aprendizagem dedutiva “[...] os métodos de aprendizagem indutiva como aqueles em que em que as proposições são introduzidas através de observações específi cas, casos de estudo ou problemas, a partir dos quais o estudante é estimulado a inferir regras e teorias. Tratam-se, portanto de modalidades de aprendizagem por descoberta” (FILHO, LIMA e TAROUCO, 2013, apud FELDER e PRINCE, 2006). Capacidade de “passar de uma regra geral conhecida a uma nova regra logicamente derivada, porém útil, por permitir um processamento mais efi ciente” (RUSSELL, 2013). Fonte: Autor (2020) As duas aprendizagens citadas se baseiam especificamente no conhecimento prévio da IA, porém, existem outras formas (métodos) de aprendizados baseados nas respostas do sistema e que aplicam as duas aprendizagens citadas. Um destes métodos é o aprendizado é a aprendizagem por feedback (aprendizagem por resposta), o qual, possui três subtipos principais de aprendizagens, a aprendizagem supervisionada (tratada neste capítulo a partir da sessão 1.2) e não supervisionada (capítulo 3) e aprendizagem por reforço (o qual, será apresentada no capítulo 4 desta unidade). ACESSE: Clique aqui para saber mais sobre como dotar um computador ou outro tipo de sistema digital com a capacidade de aprender. Inteligência Artificial https://www.youtube.com/watch?v=mhe5e2B9bL8 15 A seguir, iremos tratar sobre o aprendizado supervisionado de forma geral, uma vez que o capítulo 2 irá aprofundar o aprendizado supervisionado através da apresentação de alguns algoritmos além das redes bayesianas já apresentadas. Aprendizado supervisionado Pensemos um agente baseado na lógica de primeira ordem que pode receber um conjunto de dados quaisquer, inclusive dados não numéricos. Se tomarmos por base que os dados de entrada são combinações completamente ou parcialmente desconhecidas, podemos deduzir que os possíveis estados de saída também o serão. Para solucionar o problema da previsão das possíveis saídas, na unidade 2 deste material utilizamos algoritmos para o tratamento das incertezas, como as redes bayesianas. Para solucionar o problema da previsão, os programadores inserem modelos que calculam os possíveis estados das entradas combinatoriamente, permitindo que o modelo faça uma previsão estatística ou temporal das possíveis saídas mais prováveis de serem obtidas. Perceba que os modelos gerados para solucionar a predição, seriam complexos de serem inseridos manualmente por um programador, por isso, estes mesmos modelos aplicam estratégias onde o espectro de conhecimento sobre as entradas é inserido de forma relativamente simples, citando por exemplo o conjunto de variáveis e seus respectivos valores possíveis, muitas vezes impedindo que outros valores fora do espectro definido sejam possíveis de serem inseridos nestas variáveis. Porém, perceba que os métodos de tratamento de incerteza citados nas unidades anteriores, não aplicam aprendizado, uma vez que já possuem modelos fixos que não mudam durante a execução do sistema. Por sua vez, as redes bayesianas são capazes através de seus sensores, percebe os estímulos externos, agrupar em conjuntos de entradas, ou observações, e procurar padrões nestes conjuntos, alterando assim os modelos de previsão de saídas. Inteligência Artificial 16 Esta sequência permite que a rede se adapte a diferentes conjuntosde dados sem precisar diretamente da intervenção de um programador para mudar os modelos de tratamento das entradas e das possíveis saídas. Todavia, este tipo de tratamento de incertezas possui uma característica específica. O conjunto de saídas possível sempre é conhecido com base nas possíveis entradas esperadas. DEFINIÇÃO: Assim, podemos dizer que a aprendizagem supervisionada ocorre quando um conjunto de entradas incertas permite a previsão de uma saída certa, ou seja, uma resposta desejada. Neste sentido, podemos dizer que a aprendizagem supervisionada é um paradigma, ou seja, um modelo geral de algo, no caso, de aprendizagem indutiva. A indutividade se dá ao criar predições baseadas em dados particulares que apesar de esperados, não podem ser previstos. Um conceito comum no aprendizado em IA são os conjuntos de teste e de treinamento para geração dos modelos baseados na indutividade, o qual, é aplicado nas redes bayesianas. Para a criação dos modelos de predição das saídas, as redes bayesianas realizam um conjunto de etapas para treinar as redes. Primeiramente, é preciso preparar os dados de acordo com os tipos que o algoritmo é capaz de tratar, está etapa é exclusiva para cada tipo de algoritmo supervisionado. Por exemplo, as redes bayesianas devem receber valores variando entre 0 e 1, como por exemplo 0,2 ou 0,05, porém, outros algoritmos podem receber entradas com dados diversos, inclusive não numéricos como textos. Uma vez que os dados sejam preparados, estes devem ser agrupados e inseridos as possíveis saídas para cada combinação de entradas, por exemplo, se for dado um conjunto de temperaturas, nível de humidade do ar e período do ano, o resultado é um possível estado de Inteligência Artificial 17 chuva ou não para cada combinação. Perceba que estes dados de saída devem ser conhecidos, geralmente, obtidos de observações anteriores. Uma vez que os dados estão organizados e tratados, eles são divididos em dois grupos. Um grupo chamado de teste e outro de treinamento. A proporção de elementos em cada grupo é variável e cabe ao programador aplicar variações nestas proporções em pró de encontrar o melhor modelo possível, especificamente pelo fato de treinar exaustivamente uma rede, pode gerar um problema de viciar os resultados possíveis, algo que não é desejado, por sua vez, treinar as redes com poucos dados pode gerar uma capacidade baixa de predição, o que também não é aceitável para a maior parte dos problemas. Desta forma, as redes ou outros algoritmos supervisionados são treinados com um conjunto de dados e em seguida, os conjuntos restantes são usados para fazer o teste, ou seja, se o sistema é capaz de prever os resultados com base no treinamento. O Quadro 2 apresenta um exemplo simples de conjuntos de dados para serem aplicados a uma rede bayesiana. Quadro 2 – Exemplo de entradas e saídas Temperatura Umidade Dia do ano Chuva? 27,4° 35% 132 Sim 24,7° 12% 187 Não 25,9° 56% 284 Sim 32,4° 65% 361 Não 26,9° 34% 127 Sim 23,9° 8% 190 Não 25,5° 51% 256 Não 31,9° 63% 359 Não ... ... ... ... 27,3° 37% 135 Sim 21,5° 5% 201 Não 23,8° 41% 300 Não 31,7° 75% 360 Sim Fonte: Autor (2020) Inteligência Artificial 18 Uma vez que o sistema tenha sido treinado, ele poderá aplicar o modelo criado como base de conhecimento e tomada de decisões, atualizando através de novos treinamentos sempre que preciso ou quando os dados de entrada sofrerem alguma alteração ou os resultados deixarem de ser eficientes. REFLITA: REFLITA um pouco sobre os dados apresentados no Quadro 2 e veja se você é capaz de perceber algum padrão. Aproveite também para tentar prever se no dia atual da reflexão, com base na temperatura local e umidade, segundo os dados apresentados, sua região deveria estar chovendo ou não? Desta forma, concluímos este capítulo introdutório ao tratamento dos dados e aprendizagem em sistemas computacionais. RESUMINDO: Neste capítulo tratamos de forma geral sobre como os sistemas inteligentes aprendem, retomando os conteúdos já abordados em outras unidades, como o tratamento a incertezas e o uso das lógicas propositiva e de primeira ordem para criação de modelos de decisão. Em seguida, tratamos sobre diferentes estratégias de aprendizado, sendo duas principais citadas, o aprendizado indutivo e o dedutivo, o qual, o primeiro está presente no paradigma da aprendizagem supervisionada. Assim, aprofundamos um pouco sobre como sistemas supervisionados preparam os dados e realizam a criação dinâmica de modelos de predição com base em treinamento e testes, o preparando assim para a apresentação de conceitos adicionais e alguns algoritmos da aprendizagem supervisionadas no capítulo posterior (capítulo 2). Inteligência Artificial 19 Lógica indutiva OBJETIVO: Este capítulo abordará conceitos mais concretos sobre a aplicação da aprendizagem supervisionada, bem como, conceitos abstratos sobre alguns algoritmos supervisionados. Bons estudos! Lógica indutiva, retomando o raciocínio O aprendizado indutivo, parte do princípio que é possível criar hipóteses baseadas em uma amostra de dados qualquer, procurando criar o melhor modelo possível para representar um conjunto de saídas esperadas possíveis. No Capítulo 1, abordamos uma metodologia de aplicação do aprendizado indutivo através do paradigma supervisionado, onde um conjunto de dados deveria ser preparado para ser treinado e testado, a fim de criar modelos prontos para os dados futuros, necessitando da intervenção dos desenvolvedores para perceber quando seria preciso refazer ou reforçar o treinamento para adaptação dos modelos a novos tipos de dados ou respostas inadequadas do sistema. Este conceito citado é chamado de estratégia não incremental, ou seja, a hipótese mais eficaz é gerada especificamente para os dados específicos de um dado tipo ou conjunto de tipos. Porém, sistemas inteligentes também são capazes de fazer alterações nos modelos em tempo de execução, realizando cálculos para ajustar os modelos de predição com base em cada nova entrada. Esta estratégia é chamada de incremental. A importância no entendimento de cada uma das estratégias se dá pelo fato que cada problema para o qual a IA será aplicada, irá requisitar uma estratégia diferente, por exemplo, um mercado online onde o perfil dos consumidores constantemente se altera devido fatores complexos, necessita que o sistema digital se adapte constante a essas mudanças, Inteligência Artificial 20 algo que geraria alto custo se necessita-se da constante interferência dos desenvolvedores para ajuste dos modelos. REFLITA: O exemplo acima, deixa claro uma aplicação onde a performance é afetada pela necessidade de interferência e ajustes nos modelos de predição, porém, procure refletir sobre ações simples do cotidiano e que se repetem constantemente, como o horário das refeições ou rotina escolar. Procure refletir sobre os padrões que você constrói a cada dia e busque definir se estes padrões podem ser definidos através da estratégia incremental ou não incremental? Perceba que estas estratégias estão diretamente vinculadas a quantidade de dados disponível em um intervalo de tempo, como no exemplo do perfil de consumo. É preciso uma quantidade de observações mínimas para tornar bem definido uma nova tendência. Ademais, a aplicação de modelos fixos ou variáveis baseados no aprendizado supervisionado, possui forte relação com as estratégias de tratamento de dados advindo da lógica de primeira ordem, pois, permitem a criação de modelos complexos de tratamento de dados certos ou incertos, em diferentes formatos, algo que a lógica proposicional não permite por só receber entradas numéricas. A combinação entre a lógica de primeira ordem com os conceitos de aprendizagem indutiva, são chamados na Inteligência Artificial de Lógica Indutiva. Segundo Russell (2013), a lógica indutiva ganhou espaçonas pesquisas e desenvolvimento de sistemas inteligentes devido a três fatores, sendo eles: • A lógica indutiva permite aos desenvolvedores aplicar uma abordagem rigorosa quanto o tratamento de dados gerais; • A existências de algoritmos capazes de aplicar técnicas de indução sobre a lógica de primeira ordem, permitindo que sistemas Inteligentes aprendam sobre domínios de dados que muitas vezes não estão Inteligência Artificial 21 presentes em algoritmos baseados em atributos, uma vez que a lógica de primeira ordem permite descrever relacionamentos sobre dados diversos. • Por fim, a lógica indutiva permite a criação de modelos mentais, teóricos e dimensionais, capazes de serem expressos e lidos com pouco esforço, especificamente pelo fato da lógica indutiva nos permitir através de um fluxo bem definido, passar por fase de treino, experimentação, geração dos modelos hipotéticos, avaliação dos modelos e conclusão sobre refutar ou aceitá-lo como melhor para um dado problema a ser resolvido. Algoritmos de primeira ordem supervisionados Esta sessão abordará alguns algoritmos supervisionados mais utilizados pela comunidade científica e pela indústria de desenvolvimento de sistemas inteligentes, procurando dar uma visão superficial de seus funcionamentos, porém, explorando suas aplicações e principais conceitos. SAIBA MAIS: Uma área profissional que aplica estes conhecimentos é a ciência de dados, onde os analistas de dados procuram aplicar algoritmos específicos para o tratamento de dados em geral, sendo uma profissão ligada a IA com alta demanda, especificamente, a partir da expansão e acessibilidade da internet e o uso massivo dos mercados globais através de meios digitais. Clique aqui para saber um pouco mais sobre esta profissão. Uma observação importante sobre os algoritmos a serem apresentados é o fato destes estarem ligados a um fluxo bem definido de processos, mesmo que alguns sofrem leves alterações, divido em três grandes etapas e sub rotinas de execução. O primeiro passo após a aquisição dos dados, é a fase de pré- processamento, fase está onde os dados serão preparados para se Inteligência Artificial https://exame.com/carreira/cientista-de-dados-a-profissao-do-futuro-continua-em-alta 22 adequarem aos algoritmos. Está etapa também permite que dados de tipos diversos sejam tratados de forma eficiente nos algoritmos, como por exemplo as redes bayesianas, que precisam de entradas numéricas com valores variando de 0 a 1, como já citado em vários momentos. Existem muitas técnicas de tratamento de dados ligados a preparação destes, como a redução das amostras, dos atributos ou de outras características dos dados, como por exemplo, a desratização feita para o tratamento dos dados pelos algoritmos de Bayes. Um exemplo clássico deste pré-processamento é a discretização de imagens. Em geral, cada pixel de uma imagem é constituído da combinação entre três tipos de cores (R=Red, G=Green e B=Blue). Os valores para cada variável em geral então entre 0 e 255, onde por sua vez, a desratização faz que a variação ocorra entre 0 e 1, com o valor 0 sendo representado pelo 0 discreteado e o valor 255 pelo 1 discretizado, com os demais valores variando entre o intervalo binário citado. Neste sentido, também podemos citar alguns conceitos importantes na representação dos dados, que, geralmente estão apresentados em forma de tabelas multidimensionais. Geralmente as tabelas citadas possuem um cabeçalho descritivo ou conceitual, presente ou não na tabela, onde cada coluna representa um atributo (característica) que compõem um objeto, chamado de instância. Como pode ser visto no Quadro 2 apresentado no capítulo anterior, cada verificação estava apresentada em uma linha, com cada coluna representando um dado específico e ao final, a saída observada, o qual, é usada para os modelos de predição através de diferentes estratégias que passáramos a ver a seguir. As sessões abaixo descrevem alguns dos algoritmos mais usados na IA. Inteligência Artificial 23 k-nearest neighbors (k-nn) O primeiro algoritmo supervisionado que iremos tratar nesta unidade será o k-nn. Algoritmo este caracterizado por verificar a similaridade entre vizinhos representados em uma estrutura de grafo. O funcionamento do algoritmo é relativamente simples em sua forma conceitual. DEFINIÇÃO: Dado um conjunto de elementos conhecidos através da etapa de treinamento, qualquer novo elemento desconhecido poderá ser classificado de acordo com seus vizinhos mais próximos, sendo o valor K a quantidade de vizinhos a ser comparados (MUCHERINO; PAPAJORGJI; PARDALOS, 2009). Procurando evitar a apresentação de cálculos complexos, vamos exemplificar através do uso de dados de pixels como o citado anteriormente, onde a combinação entre as cores Vermelho, Verde e Azul, geram cores específicas. Para isto, vamos analisar o Quadro 3 e os valores de entrada para treinamento para percepção da cor amarela. Antes, perceba que alguns valores não serão alterados para reduzir as possibilidades de combinação e assim permitir uma visão um pouco mais didática do problema. Inteligência Artificial 24 Quadro 3 – Exemplo de dados de treinamento para o k-nn Instância R G B Resultante 1 255 255 0 Amarelo 2 153 204 50 Verde 3 217 217 25 Amarelo 4 140 120 83 Marrom 5 89 89 171 Roxo 6 127 255 0 Verde N ... ... ... ... n+1 ... ... ... ... Fonte: Adaptado de Shibolete (2020) Perceba no quadro acima, que os valores de R e G aproximados entre si e com o valor de B tendendo a zero, a cor resultante é uma variação do amarelo. Todavia, se o valor de B for ligeiramente menor que R e G, a cor tende a marrom e se o inverso ocorrer, B ligeiramente maior que R e G, a cor passa a tender para Roxo. Assim, dada uma cor qualquer, o algoritmo k-nn procurará aproximar seus atributos a cada um grupo de vizinhos. Por exemplo, se a entrada de R for igual a 200 e o valor de K for igual a 2, podemos dizer que o atributo está mais próximo das instâncias 3 e 2 respectivamente. Se o valor de G também for 200, seguindo o exemplo acima, os atributos vizinhos seriam os das instâncias 2 e 3. Por fim, se a entrada de B for igual a 25, perceba que existiram ao menos 4 elementos concorrendo a vizinho, sendo o atributo da instância 3 o mais próximo e os das instâncias 1, 2 e 6 concorrentes a segunda vaga. O exemplo acima é interessante, pois demonstra a necessidade de tratamento para possíveis candidatos a elemento aproximado, sendo a estratégia definida como o valor mais alto ou mais baixo, bem como, podendo ser decidido através da ordem ascendente ou descendente de ocorrência das instâncias, cabendo aos desenvolvedores escolher qual a melhor estratégia a ser aplicada. Inteligência Artificial 25 Por fim, perceba que a combinação dos vizinhos aproximados para cada atributo, irá apresentar uma probabilidade por aproximação qual a cor resultante da entrada, o qual, no exemplo dado se aproxima da instância 3, sendo a entrada categorizada como amarelo devido o modelo apresentado. REFLITA: Note que o exemplo acima não deixa claro a predição de outras cores resultantes das combinações. Além disto, também evidência que as entradas são números, mas a saída é o nome de uma cor, algo que podemos verificar no mundo real e comparar, além de ser possível entender visualmente o modelo e suas regras, sendo está uma das vantagens citadas na aplicação da lógica indutiva. Todavia, e se as combinações entre os atributos forem de uma cor que o conjunto de treinamento não foi capaz de prever, o sistema seria capaz de apresentar a cor correta no mundo real ou uma variação entre as cores possíveis apresentadas no Quadro 3? O k-nn, como citado, é um algoritmo bastante usado na IA, e possui aplicações diversas, como a coloração de mapas e de subespaços (BAVKAR; IYER; DEOSARKAR, 2019), tratamento e reconhecimento depadrões em imagens, muitas vezes usados para reconhecimento de problemas dessaúde (BALLERINI ET AL., 2013), entre outros. Árvore de decisão Para a computação, uma árvore é uma estrutura hierárquica constituída de elementos em camadas, onde cada camada pode ser entendida como uma geração de elementos filhos dos elementos da camada anterior, salvo quando o primeiro elemento é o nó de origem. Cada elemento pode estar ligados a zero ou muitos elementos de camadas inferiores, mas um nó filho nunca poderá ter dois ou mais pais, bem como, elementos em camadas inferiores não podem não ter um pai. A Figura 2 apresenta um esquema simples de uma árvore simples. Inteligência Artificial 26 Figura 2 – Árvores R O I G O O M A Ç Ã Fonte: Autor (2020) Perceba que a Figura acima é uma estrutura de árvore, o qual, sua raiz, ponto de início, se dá a partir do elemento A na primeira camada, a segunda camada é formada pelos elementos M e Ç, seguindo esta dinâmica sucessivamente para cada camada inferior até a camada mais profunda com o elemento O sendo seu representante. Baseado nestas estruturadas de dados, as árvores de decisão são algoritmos que objetivam classificar e criar modelos capazes de prever o valor de uma variável qualquer, aprendendo regras simples de decisão que inferem dos recursos de dados fornecidos (STEFANO ET AL., 2020). Por exemplos, podemos tratar a Figura 1 como um modelo para reconhecimento de palavras, sendo possível identificar as palavras AMOR, AMIGO e AÇÃO. Assim, as entradas esperadas serão cadeias de caracteres com o objetivo de perceber as palavras descritas no modelo. Todavia, as árvores de decisão são estruturas robustas e complexas, podendo ser aplicadas a problemas também mais complexos, com cada nó sendo um atributo a ser verificado. Neste sentido, problemas como o apresentado no Quadro 3 na sessão sobre o k-nn, também podem ser usados como modelos para a construção de árvores de decisão, onde cada nó, seria ou um valor específico para R, G ou B, ou um intervalo probabilístico, visto que, o próprio algoritmo deve ser capaz de decidir qual a melhor forma de representar as possibilidades de combinações e estados. Inteligência Artificial 27 Esta atualização e organização da estrutura do modelo da árvore se dá através de um processo chamado poda, ou seja, remoção de nós redundantes ou com baixa possibilidade de ser acessado, assim, reduzindo o custo do processamento de busca na árvore. Assim, perceba que cada problema a ser resolvido, em geral, pode- o-ser utilizando os algoritmos citados e outros, porém, os resultados podem ser melhores em um frente aos demais, cabendo ao analista de dados procurar qual o melhor algoritmo e configuração a ser aplicada sobre os dados na criação dos modelos mais eficientes. Considerações sobre os algoritmos supervisionados A sessão 2.2 procurou dar uma visão introdutória e direta sobre alguns importantes algoritmos de aprendizagem supervisionadas, sendo assim apresentado o k-nn e a árvore de decisão. Porém, o Bayes também é um algoritmo supervisionado bastante usado e não foi detalhado nestas sessões devido já ter sido citado e explorado no decorrer deste material. Outro algoritmo bastante utilizado e relevante são as redes neurais, porém, estas serão abordadas na Unidade 4 ligadas ao entendimento de modelos complexos de tratamento de dados, como a linguagem natural. RESUMINDO: Chegamos ao fim de mais um capítulo, o qual, tratou sobre a lógica indutiva e alguns algoritmos supervisionados. Para fundamentar o caminho do aprendizado sobre os sistemas supervisionados, fizemos uma introdução geral sobre como os sistemas digitais aprendem e o que vem a ser o aprendizado. Em seguida foi apresentado de forma simples, mas objetiva, alguns algoritmos supervisionados, sendo eles especificamente o k-nn e a árvore de decisão, concluindo assim o capítulo com uma consideração geral sobre os algoritmos supervisionados. Desta forma, esperamos que estes conhecimentos o auxiliem no entendimento geral sobre como se dá a aprendizagem supervisionada em agentes inteligentes que aplicam a lógica de primeira ordem. Inteligência Artificial 28 Aprendizagem por modelos probabilísticos OBJETIVO: Nas unidades anteriores estudamos como os agentes inteligentes tratam a incerteza, todavia, os modelos criados em geram gerados através de um conjunto e saídas esperadas pelos desenvolvedores. Porém, existem situações em que as saídas não podem ser completamente preditas, uma vez que as entradas não permitem essa completa sondagem das saídas possíveis. Neste sentido, este capítulo irá tratar sobre a lógica dedutiva e o paradigma não supervisionado, bem como, exemplificações de algoritmos e conceitos ligados a aprendizagem não supervisionada. Vamos lá! Um agente inteligente computacional é uma entidade digital que procura simular aspectos reais presentes em agentes biológicos. Neste sentido, já traçamos características ligadas a percepção, o mantimento de informações na memória, como se dá o acesso a memória, como é feito os processos de tomada de decisão através de modelos, expandimos os modelos numéricos para modelos complexos com tipos diversos e nesta unidade traçamos os aspectos da aprendizagem, onde até o momento, nos aprofundamos na chamada aprendizagem supervisionada, ou seja, quando existe um certo controle indutivo das saídas esperadas. Todavia, em muitos problemas além de não ser possível pré- definir as saídas, podemos querer encontrar possíveis padrões de forma computadorizadas, deixando que os agentes identifiquem as possíveis saídas (chamadas de classes). Neste sentido, a lógica dedutiva procura encontrar padrões em bases de dados compostas de atributos e instâncias, da mesma forma que os modelos de treinamento e teste da lógica indutiva. Neste sentido, os dados são tratados como evidências ligadas a hipóteses a serem encontradas (GONÇALVES; SANTANA, 2020). Desta forma, podemos definir também que a forma de inferir sobre os dados de entrada são meios probabilísticos, uma vez que, similar Inteligência Artificial 29 ao tratamento das incertezas em agentes que tomam decisões sobre modelos estáticos em ambientes parcialmente ou não observáveis, o uso da probabilidade nos auxiliará a criar algoritmos e modelos capazes de estatisticamente classificar os dados em grupos chamados de cluster. Neste sentido, podemos retomar as redes bayesianas, uma vez que essas redes são criadas a partir de probabilidades para cada hipótese com base no tipo e diversidade dos dados de forma combinada, ou seja, as redes são formadas pela combinação de todas as hipóteses. Porém, perceba que as variáveis tratadas nas redes bayesianas, são variáveis conhecidas, o que por sua vez, nos permitir induzir prováveis resultados esperados. Perceba que este conceito trata os problemas apresentando soluções definidas, o qual, são usadas nas etapas de treinamento e teste para validar se os algoritmos são capazes de dado uma cadeia de dados quaisquer, mas, similares ao treinados, apresentar boa qualidade na classificação dessas entradas. Todavia, se ocorrerem mudanças bruscas nos dados de entrada que venham a afetar a qualidade dos acertos nas classificações, é preciso intervir nos sistemas através de novos treinamentos e testes a procura do melhor modelo para representar os dados. Perceba que se um problema qualquer for afetado constantemente pelos dados de entrada, o número de intervenções e o aumento da probabilidade de o algoritmo usado deixar de ser eficiente para o problema, torna-se um problema adicional. Neste sentido, podemos procurar deixar os algoritmos identificarem as prováveis combinações com base em regras estabelecidas. Inteligência Artificial 30 REFLITA: O Quadro 3 apresentado no capítulo 2, apresentou um problema de classificação esperada, onde as entradas poderiam ser classificadascomo amarelo, verde, marrom e roxo (a existência de mais classes de cores ficou oculta no Quadro, porém, trataremos como se apenas estas cores fossem as classes disponíveis para a classificação). Porém, imagine que nós não sejamos capazes de prever todas as combinações de cores, assim, seria interessante que o agente fosse capaz de classificar as instâncias com base classes que ele mesmo foi capaz de identificar, cabendo posteriormente ao programador ou usuário do sistema em uma fase de pós processamento, verificar se as clusters (classes) criadas representam cores reais e similares, como por exemplo, o azul marinho e o azul escuro, uma vez que ambos estão presentes no espectro da cor azul. Neste sentido, a lógica dedutiva e seus algoritmos não supervisionados, permitem a criação de modelos capazes de perceber as classes com base na relação entre os atributos de cada instância. A seguir iremos aprofundar sobre os modelos e algoritmos não supervisionados através da conceitualização destes e de exemplos práticos. Algoritmos não supervisionados Assim como os algoritmos supervisionados, existem um número diverso de algoritmos não supervisionados, seguindo estratégias distintas com base na aprendizagem dedutiva. Os algoritmos possuem em comum a características de os dados utilizados para criação dos modelos não possuírem rótulos, sendo inseridos apenas com as instâncias e os atributos caracterizadores, ou seja, sem a presença de um atributo classe. Mais uma vez, semelhante aos algoritmos supervisionados, antes de serem inseridos os dados para treinamento e testes, é preciso fazer Inteligência Artificial 31 uma etapa de pré-processamento, tornando os dados prontos para os processos de geração de hipóteses e “clusterizações” dos objetos. Entre os principais algoritmos não supervisionados estão o Expectation-Maximization (EM) e k-means. Cada algoritmo citado possui uma estratégia própria e uma forma de avaliar as hipóteses. Antes de apresentar os algoritmos propriamente, vamos traçar um problema geral para ser usado com exemplo em cada um. Exemplo: Uma empresa de telefonia móvel está procurando entender o perfil de uso de seus clientes com planos pré-pagos a fim de criar um conjunto de pacotes de serviços em pró de fidelizar estes clientes no serviço pós-pago. Este exemplo apresentado acima possui uma importante característica para a aprendizagem não supervisionada, uma vez que, as entradas dos dados não são plenamente conhecidas, bem como, as possíveis combinações entre os serviços, o que por sua vez, faz com que as classes sejam ocultas a empresa. A fim de exemplificar possíveis entradas, vamos descrever no Quadro 4, abaixo, algumas instâncias de entrada para ser usada como conjunto de testes e treinamento, simulando a base de dados de serviços usados pelos clientes pré-pagos. Inteligência Artificial 32 Quadro 4 – Dados de uso de serviços de clientes pré-pagos Cliente Ligações local Ligação interurbana Redes so- ciais Internet 1 5% 0% 94% 1% 2 14% 24% 61% 1% 3 12% 2% 21% 65% 4 73% 0% 27% 0% 5 1% 0% 76% 23% 6 59% 10% 21% 10% 7 4% 0% 15% 81% 8 74% 21% 4% 1% 9 34% 6% 29% 31% 10 90% 10% 0% 0% N ... ... ... ... n+1 ... ... ... ... Fonte: Autor (2020). Note que cada valor acima presente no Quadro 4, apresentam o percentual de consumo em cada serviço utilizado em um período de trinta dias. Perceba também que os dados, mesmo em pouca quantidade, podem demostrar tendências de serviços mais e menos usados, algo que nos tentaria a criar classes de pacotes de serviços para estes clientes, porém, lembre-se que uma empresa de comunicação móvel, em geral, possui números elevadíssimos de clientes em simultâneo, algo que não permite em tempo hábil ou de forma eficiente, que uma ou mais pessoas possam avaliar os dados e indicar os melhores planos para cativar estes clientes. Em exemplos como o acima, o uso dos algoritmos não supervisionados para procurar padrões de combinação entre os atributos, mostram-se como uma ótima solução, reduzindo custos e aumentando a assertividade na criação das campanhas promocionais de pacotes de serviços. Inteligência Artificial 33 Expectation-Maximization (EM) Segundo Russell (2013), o algoritmo EM procura criar deduções esporádicas com base nos dados, para em seguida começar a fazer cálculos probabilísticos para avaliar a relação entre cada ponto e cada elemento da base de treino, realizando adaptações entre todos o conjunto de dados em relação a um componente. Ou seja, o algoritmo realiza deduções probabilísticas em relação a cada variável de cada atributo, preenchendo os dados durante cada dedução. Com base no exposto, o objetivo do algoritmo é procurar o maior nível de semelhança entre as funções, o qual, é feito a cada passo de interação. O algoritmo EM pode ser entendido como dividido em três passos, sendo o primeiro passo realizado apenas no início da execução, ocorrendo a distribuição aleatória dos atributos para cada elementos. Os seguintes passos são: Etapa de expectativa (E): Verificar a probabilidade de para um dado I pertencer a um elemento X. Esta probabilidade pode ser entendida como um peso, ou um valor de aproximação da verdade, ou seja, uma hipótese dos valores esperados. Etapa de maximização (M): Este passo é dividido em três sub-passos sequenciais ligados ao cálculo da média das hipóteses, da covariância entre os dados e entre os pesos dos componentes. Neste sentido, o objetivo da etapa é encontrar valores para os dados que maximizem sua probabilidade estatística de pertence ao elemento. Perceba que a etapa E nos permite ter um valor mensurável, onde podemos ver se a probabilidade geral entre as hipóteses e como está progride no tempo. Por sua vez, a etapa M é responsável pelos ajustes gerais nos pesos, melhorando a qualidade das hipóteses a cada nova interação. Assim, podemos usar a diferença entre o melhoramento anterior e o atual como parâmetro de parada para o algoritmo, encerrando sua execução. Perceba que a taxa de melhoramento é um importante parâmetro para o algoritmo, uma vez que, se este valor for definido com um intervalo Inteligência Artificial 34 muito grande entre duas observações, pode-se não chegar a solução ótima, da mesma forma, se for definido um valor muito baixo como parâmetro, o sistema irá realizar laços de processamento que na prática, não geraram grandes melhorias gerais. Outra característica importante do algoritmo é a citação de até quantos clusters serão criados definido pela letra K. É bem verdade que o algoritmo é capaz de definir esta quantidade, porém, o programador pode inserir um valor específico para a criação e categorização dos elementos nos clusters. O funcionamento do algoritmo possui uma vantagem especial para conjunto de dados incompletos, algo plausível no mundo real, como por exemplo, alguns documentos de identidade que não possuem o nome do pai registrado, ou formulários com campos opcionais, uma vez que o algoritmo preenche estes campos e procura as melhores combinações para cada cluster. Passo-a-passo: Os dados apresentados no Quadro 4 seriam, para cada instância, primeiramente a distribuição aleatorizada de acordo com o intervalo de valores presentes em cada atributos. Em seguida seria feito o cálculo de aproximação entre as hipóteses aleatórias geradas e os valores esperados, gerando um valor probabilístico de aproximação. Em seguida, é feito os cálculos de aproximação entre os valores esperados e os valores ajustados, permitindo assim a percepção de melhoria temporal da hipótese geral. Por fim, a empresa de comunicação mobile pode definir um valor para K, ou deixar que o algoritmo indique quantos clusters foram identificados, auxiliando na tomada de decisão da criação dos pacotes de serviços. k-means O algoritmo k-means procura realizar um processo de aproximação entre os diferentes clusterscom base na aproximação euclidiana dos atributos de cada elemento (KRISHNA; MURTY, 1999). Antes de aprofundarmos na apresentação do k-means, é preciso citar o que vem a ser a distância euclidiana. Segundo Ribeiro, Orbolato e Melo, (2020), a distância euclidiana é um algoritmo baseado no teorema de Pitágoras, ou seja, aplicado Inteligência Artificial 35 a representação multidimensional, onde um conjunto qualquer de elementos estão distribuídos em seu espaço. Assim, a distância euclidiana entre dois pontos, é dada pela raiz quadrada do somatório entre todas as diferenças ao quadrado entre as coordenadas dos pontos no ambiente. Por exemplo, se o ambiente for unidimensional, como uma linha, a distância entre o ponto A(a) e B(b) será dada por: (a-b)2 Por usa vez, se a distância for aplicada em um plano bidimensional com A (ax, ay) e B (bx, by), a fórmula será: (ax-bx)2 + (ay-by)2 Assim, para o k-means, cada instância é um ponto e seus atributos são suas coordenadas, realizando os cálculos baseados na aproximação pela distância euclidiana para vincular a proximidade entre cada elemento e consequentemente, a quantidade de clusters. A similaridade entre os atributos, será dado pela média entre uma nova entrada e o centroide (centro geométrico entre todos os pontos de uma forma geométrica) dos clusters. Semelhante ao EM, k-means também permite a definição de um valor K para limitar a quantidade de clusters a serem criados. Por fim, podemos citar como o k-means trataria o problema para os dados do Quadro 4. Passo-a-passo: O algoritmo k-means ao receber os dados presentes no Quadro 4, irá começar a fazer os cálculos de distância euclidiana entre todos os atributos. Por fim, cada instância possuirá um valor específico advindo da aproximação entre seus atributos e de outros elementos. Assim, se for definido um valor de K ligado a quantidade esperada de pacotes de serviços, o algoritmo irá distribuir os elementos nos clusters de acordo com a média de seus atributos em relação ao centroide do próprio cluster. Inteligência Artificial 36 Considerações sobre os algoritmos não supervisionados Além dos algoritmos apresentados, o algoritmo Hierárquico (H), também é frequentemente apresentado na literatura como um bom exemplar da lógica dedutiva, todavia, existem muitos outros exemplares, além dos processos de pós processamento que serão tratados no capítulo 4 desta unidade, o qual, servem para validar a qualidade dos modelos criados. RESUMINDO: Este capítulo procurou dar uma visão conceitual da lógica dedutiva. Para isso, os conceitos sobre algoritmos não supervisionados e da aprendizagem dedutiva foram apresentados, citando por exemplo a não presença de classes definindo as possibilidades das saídas, substituídas pelo conceito de cluster, ou seja, de elementos dentro de um conjunto que os vincula por características de relação e proximidade. Em seguida, apresentamos dois algoritmos não supervisionados, conceituando-os e exemplificando suas funções através de um exemplo comum. Assim, concluímos mais esta etapa no entendimento sobre como agentes inteligentes aprendem através da lógica dedutiva e do paradigma não supervisionado. Inteligência Artificial 37 Aprendizagem por reforço OBJETIVO: Os objetivos da aprendizagem computacional é tornar os sistemas capazes de encontrar soluções ótimas para problemas diversos através da criação de modelos. Neste sentido, para uma gama de problemas computacionais, a quantidade de probabilidades para se formar uma base de dados suficiente para treinar a base é impossível de ser adquirida em tempo hábil, o que torna o aprendizado sequencial uma solução viável Desta forma, este capítulo irá retomar alguns conceitos de aprendizagem para enfim, explorar o aprendizado por reforço. Vamos lá! Retomando alguns fundamentos da aprendizagem indutiva e dedutiva Até aqui, vimos os conceitos e exemplos de agentes que aplicam as lógicas indutiva e dedutiva, especificamente ao ser demonstrado suas funções básicas e problemas gerais o qual são aplicados, bem como, a funcionalidade de alguns algoritmos. Todavia, não exploramos superficialmente o fluxo de aplicação das lógicas citadas, especificamente citando um pouco sobre o pré- processamento no tratamento dos dados, a fase de treinamento e testes dos sistemas, e foi citado a existência de uma fase de pós-processamento, onde validados os resultados, fazendo também algum tratamento caso necessário e posteriormente inserindo a aplicação que usará as saídas. Neste sentido, esta sessão abordará de forma um pouco mais profunda as etapas do ciclo de vida dos algoritmos indutivos e dedutivos, especificamente para fundamentar a forma como o aprendizado por reforço se destaca das duas metodologias citadas anteriormente. Inteligência Artificial 38 Fase de pré-processamento A fase chamada de pré-processamento engloba toda e qualquer ação anterior a fase de treinamento, testes e validação dos modelos algorítmicos. Nesta etapa, diversas estratégias podem ser aplicadas procurando tornar os dados adaptados as entradas esperadas pelos algoritmos. Como por exemplo as soluções que aplicam Bayes e seus modelos probabilísticos discretos. Assim, qualquer entrada deverá ser discreteada para valores entre 1 e 0, e caso a entrada seja textual, será preciso realizar algum procedimento de adaptação destes textos para rótulos numéricos. Da mesma forma, existem algoritmos que trabalham melhor com rótulos textuais em lugar de números para as classes ou em menor frequência, para os atributos. Além deste exposto, alguns algoritmos trabalham melhor com dados com muitas instâncias ou definem um valor médio de atributos para uma dada quantidade de instâncias. Assim, se uma base de dados possui poucos ou muitos atributos, técnicas de adaptação deverão ser criadas, bem como, redução ou simulação de novas instâncias na base. Outro ponto importante ligado ao tratamento prévio dos dados, é a verificação e remoção de dados discrepantes e fora do eixo central dos dados. Por exemplo, imagine uma sequência de números formadas por uma lista de dez valores, sendo eles [1, 1, 2, 3, 5, 5, 5, 9, 9, 355]. Perceba que um valor específico possui diferença elevada dos demais, sendo ele o valor 355. Note que, se for feita uma média de todos os valores, sua resultante será um valor discrepante da média entre os valores removendo o 155. Este tipo de número discrepante e que cria ou puxa elementos para uma classe ou cluster que dificulta a esperada correta categorização dos elementos, é chamado de outlier. Inteligência Artificial 39 REFLITA: Façamos uma breve reflexão sobre como os dados apresentados nos exemplos anteriores estavam apresentados. Será que neles existiam valores considerados outliers? Assim, perceba que o tratamento dos dados não é apenas um processo complexo, mas, necessário, visto que, a coleta de dados nem sempre pode ser executada de forma altamente controlada, bem como, a necessidade de ajustes do problema a modelos específicos, o qual, possuem necessidades de formato de dados dizentes, de certa forma, obriga este tratamento prévio. Fase de processamento A fase de processamento, é de fato a fase onde os algoritmos são aplicados. Cada solução implementará um conjunto de regras para o tratamento dos dados em pró de encontrar a melhor solução via modelo para um dado problema. Como já citado, os problemas são variáveis, assim, cada solução poderá ser boa para um problema dentro de um espectro de possibilidades específicas, todavia, ao se alterar este espectro dentro de um mesmo problema, as soluções antes válidas, podem deixar de ser ótimas quando comparadas com outras que não apresentavam bons resultados comparativos sobre o espectro anterior. Como citado, existem vários tipos de problemas quando estamos tratando o aprendizado em agentes inteligentes. De forma geral,podemos definir a existência de três estratégias principais baseadas na forma como os dados de treinamento são apresentados aos sistemas. A primeira forma foi apresentada nos algoritmos supervisionados, especificamente em problemas onde é conhecido a quantidade de classes que agruparão os elementos a ser analisados posteriormente, cabendo aos desenvolvedores rotular cada instância dos dados de Inteligência Artificial 40 treinamento com uma classe dentro do espectro de variável das classes definidas. A segunda forma, também já estudada nesta unidade, foram os algoritmos não supervisionados, seu termo vem do fato de não serem definidas as classes prévias, usando os conceitos de cluster, ou seja, de conjuntos de elementos com características próximas definidas pelos algoritmos dedutivos. Por fim, a terceira forma de aprendizado é chamada de por reforço e como o nome cita, a experiência continuada permitirá o agente criar modelos de conhecimento incremental, geralmente aplicados a ambientes onde não se é possível inserir grupos de treinamento e testes prévios antes da execução, sendo esta estratégia de aprendizado apresentada a partir da sessão 4.2 desta unidade. Fase de pós-processamento A fase de pós processamento pode estar vinculada a algumas tarefas, sendo duas principais delas a validação dos resultados e um novo ajuste dos dados para a aplicação que os utilizará. Os algoritmos supervisionados, uma vez que possuem as bases originais para comparação com os resultados, são plenamente capazes de avaliar a qualidade através da comparação entre os dados de saída com os dados originais e suas classes. Todavia, os modelos não supervisionados não possuem classes pré-definidas, assim, existem soluções algorítmicas para procurar validar a qualidade do algoritmo para a base de dados utilizada. Entre estes processos, podemos citar os usos de índices de validação, sendo dois dos mais conhecidos o índice o Davies-Bouldin (DB) e silhouette (RAJ; MINZ, 2020). O índice DB é procura estimar a dispersão entre os dados, estimando através de cálculos a similaridade entre cada cluster (WANG ET AL., 2006). Ou seja, ao se calcular a diferença entre os clusters, somos capazes de Inteligência Artificial 41 visualizar a dispersão geral entre eles, sendo este valor de dispersão usado como critério de qualidade. Por sua vez, o silloutte procura verificar o quão próximo um ponto qualquer está de seu cluster, variando o valor da aproximação no intervalo de 1, muito próximo a 0, muito distante. Assim, a média total da aproximação de todos os pontos em relação a todos os demais pontos de seu clusters é o fator de verificação da qualidade geral do modelo, sendo o valor 1 significando que os clusteres possuem boa representação de seus elementos (AHMED et al., 2019). Atenção. É importante citar que os índices acima são aplicados nos algoritmos não supervisionados. NOTA: É bem verdade que existem outras motivações que levam a necessidade de pró processamento, porém, em geral estas são as principais dentro do ciclo de aprendizado. Por fim, a preparação dos dados de saída dos algoritmos muitas vezes é alterada após o processamento, uma vez que cada algoritmo, caso não tenham sido adaptados ao problema, geram um tipo específico de resposta, cabendo aos desenvolvedores das aplicações que usaram as respostas dos agentes, fazer este tratamento. A aprendizagem por reforço em agentes inteligentes A aprendizagem por reforço na computação segue algumas bases nos estudos sobre como os seres vivos realizam processos de aprendizagem. Por exemplo, quando um recém nascido começa a aprender a falar segundo as regras e símbolos de uma língua, ele está explorando um campo desconhecido para ele, percebendo, associando e replicando os sons que outros membros do grupo falam. Note que neste processo, um falante fluente, geralmente, irá corrigir os erros na fala, bem como, irá exaltar a criança por seus acertos. Inteligência Artificial 42 Assim, podemos dizer que existem conjuntos de recompensas e punições durante a exploração da fala, sendo algumas punições a dificuldade no entendimento de quem está escutando, bem como, recompensas como o entendimento do contexto e parabenização pelo sucesso. Alguns problemas computacionais são semelhantes, não sendo à gente recém criado capaz de perceber a relação direta e imediata de suas ações em relação a estarem certas ou erradas. São diversas as áreas da computação que utilizam os agentes com aprendizagem por reforço, como os jogos digitais. Alguns jogos, os inimigos procuram compreender os padrões dos jogadores para gerar uma dificuldade dinâmica aos jogadores. Por exemplo, digamos que em um jogo de luta, o jogador executa um conjunto de ações de ataque e defesa específicos, podemos citar neste exemplo que cada jogador possui sua própria identidade na movimentação e ações dos personagens, cabendo ao agente que controla o inimigo, avaliar constantemente estes padrões e procurar traçar estratégias de adaptação e superação sobre estes padrões percebidos. Note que no exemplo acima, o agente precisa estar constantemente avaliando como o jogador está jogando, registrando as principais características das ações executadas tanto pelo jogador humano, como pela IA usando um sistema de recompensa sobre estas combinações de ações. Por exemplo, se o agente inteligente atacar quando o jogador e este estiver longe ou defendendo, o fato de não ter causado dano poderá ser usado como parâmetro de punição, sendo ações que geram dano as recompensas. Por sua vez, se o jogador ataca e a IA não é capaz de defender, ocasionando a perda de vida, está é uma ação punitiva, onde o contrário, o agente realizou uma ação que defendeu e impediu a perca de vida, é uma recompensa. Assim, cada combinação de ações irá sendo registrada com a informação de recompensa ou punição, permitindo que o agente execute ações segundo sua base de aprendizagem. Inteligência Artificial 43 Perceba duas características fundamentais desta base de conhecimento construída, sendo elas: • Primeiramente a base manterá ações com base nas recompensas e punições, algo que será atualizado caso a ação ocorra novamente e gere um resultado diferente. • A outra característica é que o agente precisa ter conhecimento prévio de como seu mundo funciona, ou seja, quais as ações possíveis de serem executadas. Dentro da primeira característica citada acima, note que, se uma mesma combinação for executada sete vezes e as seis primeiras forem recompensas com apenas a última sendo uma punição, o agente entenderá que esta combinação não é ideal, procurando executar outra em seu lugar. Todavia, perceba que a taxa de acerto foi de 6 para 7, só que, o agente está tomando decisão em cima de uma taxa 1 para 7. Para evitar este problema, existe um conceito chamado de pesos. Os pesos aplicados nas estratégias de aprendizado e tomada de decisões são estruturas que permitem aos agentes avaliar se uma hipótese é ainda válida, mesmo que em algum momento seu resultado seja negativo para a aplicação. O assunto do uso de pesos é de vital importâncias para alguns sistemas, como por exemplo, o agente citado para jogos de luta. Por sua vez, outros sistemas sensíveis a erros, podem usar os pesos para evitar, evitar, caso uma hipótese apresente resultado negativo, sua execução ou gere um alerta para intervenção humana, de outros agentes, ou de suas próprias estruturas de balanceamento e ajustes de modelos. Desta forma, podemos entender os pesos como uma forma de aplicação da teoria da utilidade, uma vez que a variação do valor dos pesos pode ser compara com um conjunto de crenças e emoções na tomada de decisão de um sistema, como no exemplo do agente no jogo citado anteriormente, se ele registrar um conjunto de combinações diferentes para uma mesma ação sua ou do jogador,o agente poderá avaliar qual das combinações para um mesmo caso é a melhor para ser Inteligência Artificial 44 aplicada, cabendo a uma estrutura propositiva ou probabilística a decisão de qual hipótese usar. Os dois tipos de aprendizagem por reforço Como vimos, o agente precisa estar constantemente avaliando as mudanças no ambiente e em outros agentes para poder atualizar sua base de conhecimentos e, conseguintemente, escolher a melhor ação a ser aplicada. Desta forma, ele está constantemente atuando, seja de forma passiva, ou ativa no ambiente. Agir passivamente no ambiente significa que o agente possui uma base de conhecimento sobre como fazer as ações, precisando aprender quando fazer, ou seja, a utilidade da ação. Está abordagem foi destacada como uma característica ao avaliar o agente no jogo de luta apresentado anteriormente. Desta forma, a explicação geral dada neste exemplo, também exemplifica como funciona a aprendizagem passiva. Todavia, alguns agentes não sabem o que fazer, conseguintemente como fazer, precisando aprender durante a execução da aplicação. Esta habilidade de aprendizagem é chamada de ativa e é um processo complexo, onde o agente precisa explorar o ambiente e executar as ações possíveis. Por exemplo. Um aluno de um carro possui um aparelho que é capaz de executar muitas ações, como: acelerar, freia, fazer curvas, levar passageiros ou cargas, entre muitas outras. Todavia, ao ter o primeiro contato com o veículo, este aluno irá se ambientar nas possibilidades de ações, ou seja, aprender como fazer certas ações. Porém, a experiência por consecutivas execuções e leituras, o tornará apto a fazer as ações nos momentos devidos, como passar a marcha apenas quando a embreagem estiver pressionada, aprendendo também o controle para ir soltando-a. Inteligência Artificial 45 RESUMINDO: Desta forma, nós concluímos o estudo de como os sistemas inteligentes aprendem. Nesta unidade vimos que um agente é capaz de simular o aprendizado biológico através de três estratégias, a aprendizagem indutiva, dedutiva e por reforço. A aprendizagem indutiva procura aplicar modelos lógicos baseados em classes, ou seja, rótulos que classificam as instâncias de acordo com suas características (atributos com valores variáveis). Em seguida, vimos a lógica dedutiva, o qual, procura deduzir as classes, chamadas de clusters de agrupamento com base na aproximação entre os elementos. Por fim, procuramos apresentar os conceitos da aprendizagem por reforço, ou seja, a aprendizagem onde os agentes não conhecem as entradas possíveis para se construir as hipóteses. Assim, esperamos que este conteúdo tenha contribuído para seu entendimento geral da IA, e que possa servir de base para aplicações futuras que você venha a desenvolver. Inteligência Artificial 46 REFERÊNCIAS AHMED, N. et al. Forecasting river sediment deposition through satellite image driven unsupervised machine learning techniques. Remote Sensing Applications: Society and Environment, v. 13, p. 435-444, 2019. BALLERINI, L. et al. A color and texture based hierarchical K-NN approach to the classification of non-melanoma skin lesions. Color Medical Image Analysis. Springer, Dordrecht, p. 63-86. 2013. BAVKAR, S. IYER, B. DEOSARKAR, S. Detection of alcoholism: an EEG hybrid features and ensemble subspace K-NN based approach. International Conference on Distributed Computing and Internet Technology. Springer, Cham, p. 161-168. 2019. CONTENT, Branded Abril. Cientista de dados: a profissão do futuro continua em alta. Exame, 2019. Disponível em:<https://exame.com/ carreira/cientista-de-dados-a-profissao-do-futuro-continua-em-alta> Acesso em: 08 de jun. 2020. KRISHNA, K. MURTY, M. N. Genetic K-means algorithm. IEEE Transactions on Systems, Man, and Cybernetics, Part B (Cybernetics), v. 29, n. 3, p. 433-439, 1999. FILHO, A. B. C. LIMA, J. V. TAROUCO, L. M. R. Objetos de Aprendizagem Indutiva: Um Estudo de Caso. Conferencias LACLO, v. 4, n. 1, 2013. GONÇALVES, B. S. SANTANA, J. R. Uma análise do desempenho dos estados nordestinos na política de ciência, tecnologia e inovação entre 2000 e 2015. Revista Gestão & Tecnologia, v. 20, n. 1, p. 215-232, 2020. MUCHERINO, A. PAPAJORGJI, P. J. PARDALOS, P.M. k-Nearest Neighbor Classification. Data Mining in Agriculture. Springer Optimization and Its Applications, vol 34. Springer, New York, NY, 2009. RAJ, A. MINZ, S. Game theory based pixel approximation for remote sensing imagery. Applied Soft Computing, p. 106-365, 2020. Inteligência Artificial 47 RIBEIRO, B. G. G. ORBOLATO, D. R. S. MELO, E. V. Identificação das áreas de pesquisa no IFTM usando técnica de agrupamento. Revista Brasileira de Iniciação Científica, v. 7, n. 1, p. 149-165, 2020. RUSSELL, S. Inteligência artificial. 3. ed. Rio de Janeiro: Editora Elsevier, 2013. SALGADO, M. A. j. RINCÓN, J. P. A. OLIVEIRA, M. P. Caminho Alternativo Para Estudar Equação Quadrática E Suas Raízes. Seminário Nacional de Histórias e Investigações de/em Aulas de Matemática, n. 6. 2017. STEFANO, E. et al. Decision Trees for the Prediction of Outcome of Soccer Games-Historical Data Analysis. Brazilian Journal of Development, v. 6, n. 1, p. 4719-4732, 2020. TABELAS DE CORES RGB. Shibolete. Disponível em: <http:// shibolete.tripod.com/RGB.html> Acesso em: 05 de junho. 2020. WAGNER, M. J. LUO, L. Neocortex–Cerebellum Circuits for Cognitive Processing. Trends in Neurosciences, v. 43, n. 1, p. 42-54, 2020. WANG, G et al. Classification of surface EMG signals using optimal wavelet packet method based on Davies-Bouldin criterion. Medical and Biological Engineering and Computing, v. 44, n. 10, p. 865-872, 2006. Inteligência Artificial