Baixe o app para aproveitar ainda mais
Prévia do material em texto
Unidade IV Linguagens de Programação para IA 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 Definição e modelos de linguagem natural ................................... 10 Uma breve história do surgimento do processamento de linguagem natural ...................................................................................................................................................... 10 Conceitos fundamentais sobre processamento de linguagem natural ........ 15 Extração, recuperação e classificação de informações ............20 Classificação dos dados ............................................................................................................ 20 Redes Neurais Artificiais .......................................................................................... 21 Recuperação da informação ...................................................................................................26 Extração de informação .............................................................................................................27 Gramáticas e os modelos de linguagem natural .........................29 Introdução às gramáticas ..........................................................................................................33 O processo de percepção da IA ...........................................................38 Sensores ............................................................................................................................................... 39 Percepção de objetos complexos ......................................................................................42 7 UNIDADE 04 Inteligência Artificial 8 INTRODUÇÃO Comunicação é uma característica ímpar nas sociedades humanas, especificamente pelo fato de que armazenamos informações para uso futuro a vários milênios. Na era moderna, onde a comunicação tem se tornado cada vez mais inclusiva e rápida, sistemas inteligentes passam a serem dotados com capacidades cada vez mais eficientes e realistas quanto a simulação da inteligência e comunicação em linguagem natural. Sobre a linguagem natural, esta habilidade nos permite comunicamo- nos de forma eficiente, algo que os computadores ainda não são completamente capazes de fazer de forma autônoma. Porém, os modelos de comunicação e processamento de linguagem natural, tem se tornado cada vez mais eficientes, algo que está sendo acompanhado pelo rápido desenvolvimento de tecnologias mais rápidas e baratas. Tais fatores geraram avanços excepcionais no desenvolvimento de agentes virtuais capazes de se comunicar, podendo ser visto como atendentes, tutores escolares, consultores, guias, entre várias outras funções que já estão presentes no nosso dia a dia. Desta forma, esta unidade explorará os principais conceitos ligados a comunicação avançada através dos agentes inteligentes, concluindo assim nosso estudo sobre a Inteligência Artificial. Vamos começar nossa aventura! Inteligência Artificial 9 OBJETIVOS Olá. Seja muito bem-vindo à Unidade 4. Nosso objetivo é auxiliar você no desenvolvimento das seguintes competências profissionais até o término desta etapa de estudos: 1. Definir modelos de linguagem natural. 2. Extrair, recuperar e classificar informações. 3. Compreender o uso de gramáticas em aplicações que utilizam linguagem natural. 4. Assimilar o processo de percepção da IA. Então? Preparado para adquirir conhecimento sobre um assunto fascinante e inovador como esse? Vamos lá! Inteligência Artificial 10 Definição e modelos de linguagem natural OBJETIVO: A habilidade de comunicação humana é uma das principais características que nos distinguem de outros animais. Utilizamos diversas ferramentas para esta comunicação, entre elas a linguagem verbal e corporal, porém, outras ferramentas de comunicação como símbolos e escrita, nos permitem trocar informações e ideias de forma objetiva e eficiente. Semelhante as características citadas, a IA possui ramos de estudo que procuram dotar agentes virtuais com a capacidade de comunicar-se como os humanos, facilitando a interação das máquinas com os usuários. Assim, o objetivo desta unidade é explorar os mecanismos e características dos agentes inteligentes dotados com habilidades de comunicação de alto nível, chamadas de linguagem natural. Bons estudos! Uma breve história do surgimento do processamento de linguagem natural Uma característica comum em todas as sociedades humanas desde a criação da escrita, é a capacidade de comunicação através da fala, característica que foi especializada e organizada através da formalização das diversas línguas modernas. DEFINIÇÃO: Podemos definir uma linguagem natural como a forma como os humanos se comunicam, especialmente através da fala e da escrita. Porém, este tipo de linguagem, normalmente baseadas em gramáticas, são repletas de informações que geram múltiplas interpretações (GONZALEZ; LIMA, 2003). Esse número elevado de interpretações faz da linguagem natural uma ferramenta complexa, mesmo que facilmente usada pelos humanos. Por exemplo. Perceba cada palavra que compõem a seguinte frase: Inteligência Artificial 11 Este sorvete de manga caiu sobre a manga da camisa dele. Note que a frase acima é composta de dois termos com significado diferente, porém, com grafia igual destacados no texto. O primeiro termo manga se refere a fruta proveniente da árvore mangueira. Por sua vez, o segundo termo manga se refere a uma parte de alguns tipos de vestuários. Outros dois exemplos, apresentado por Russell (2013), são as seguintes frases: Ele viu o banco Não ser convidado é triste A primeira frase, similar ao exemplo do uso do termo manga, possui vários sentidos, como por exemplo, pode estar se referindo a um objeto para se sentar ou uma instituição financeira. Já a segunda frase está ligada ao sentido do que se quer dizer ligado ao indivíduo, uma vez que para uns, não serconvidado pode ser uma coisa positiva, todavia, para outros pode ser algo negativo. Em todos os exemplos é possível perceber que a comunicação natural é complexa por ser constituída de significados que são dados pelo contexto, por sentimentos, e por outras variáveis, muitas de difícil classificação (RUSSELL, 2013). As línguas modernas procuram dar o entendimento de como usar corretamente cada termo através das gramáticas e dicionários das línguas, como do inglês e do português, que possuem estes artefatos para auxiliar o correto uso dos símbolos escritos e dos sons falados. Como citado, as habilidades ligadas à linguagem natural compreendem, em sua forma verbal, a fala e a escrita, todavia, nem Inteligência Artificial 12 todas as sociedades chegaram a desenvolver a escrita, porém, todas desenvolveram a linguagem falada. Ademais as duas formas de comunicação citadas, a linguagem corporal também é usada para dar entonação, sentido, emoção, e outras características importantes para a comunicação. Também podemos citar a dificuldade entre dois interlocutores que não dominam uma boa quantidade de símbolos e significados usados na comunicação, bem como, quando ambos estão se comunicando através de línguas diferentes. Problemas como os citados podem gerar dificuldades ou completa impossibilidade na comunicação. Desta forma, se comunicar através da fala e escrita é uma habilidade complexa que demanda grau necessário de compreensão e entendimento da aplicação dos sons e símbolos da língua, especificamente entre os dois interlocutores. Compreensão das reações físicas, como: expressões faciais, gestos, entonação da voz, escolha dos símbolos, entre outras, são ferramentas ligadas a boa comunicação. Apesar da simplicidade para um nativo humano se comunicar com outro nativo em vista da facilidade que muitos o fazem, muitas vezes esconde o processo de alfabetização e aprendizagem de uma língua por qualquer falante. Geralmente, o processo de domínio de uma quantidade mínima de palavras, seja por uma criança ou adulto sendo alfabetizado, é um processo longo e custoso, requerendo dedicação e constante treino. Da mesma forma, tornar um agente virtual capaz de compreender e comunicar-se através da linguagem natural, é um processo complexo, com a área da Inteligência Artificial (IA) chamada de Processamento de Linguagem Natural (PLN) sendo responsável por estudos computacionais com este propósito. A origem da PLN pode ser considerada através do trabalho de Alan Turing. Segundo Turing (1950), de forma objetiva, um agente será considerado inteligente se for capaz de se comunicar com um ser humano Inteligência Artificial 13 sem que este consiga diferenciar se está interagindo com um humano ou máquina. REFLITA: O teste de Turing foi um marco na busca pela criação de sistemas inteligentes e especificamente, no processo de compreensão e interação das máquinas dotadas de inteligência com os humanos. O teste permitiu que diversos pesquisadores procurassem criar agentes capazes de atender as especificações do teste, fator que gerou diversos achados importantes para o desenvolvimento de técnicas de processamento de linguagem natural que iremos explorar nesta unidade. Como exposto por Neto, Tonin e Prietch (2010), os primeiros sistemas que aplicaram PLN possuíam quatro características distintas que permitiam sua identificação e classificação. O Quadro 1 apresenta as quatro características citadas. Vejamos. Inteligência Artificial 14 Quadro 1 – Categorias históricas das PLNs baseadas em características distintas Características Ao ignorar certos problemas específi cos ligados ao processamento de linguagem natural, sistemas simples podiam aplicar soluções para um número determinado de objetivos, sendo a principal característica destes sistemas a simplicidade. Certos sistemas mantinham bases de conhecimento prévia através de combinações possíveis de palavras ou de textos. Essa característica permitia sua aplicação a diversos problemas, porém, não era possível deduzir contextos ou signifi cados complexos das orações. Alguns sistemas mantinham bases de dados prévias que proviam a capacidade de deduzir notações formais através de entradas de texto em forma de frases. Todavia, as possibilidades eram fortemente ligadas a quantidade de dados mantidos na ase, algo que é extremamente custoso de se construir, especialmente no início da computação. A dedução quanto habilidade, era uma das principais características dos sistemas que eram capazes de realizar deduções com base em seus dados de conhecimento sobre um domínio. Todavia, estes sistemas funcionavam como sistemas especialistas, sendo aplicados para um conjunto muito específi co de problemas. Fonte: Adaptado de Neto, Tonin e Prietch (2010) Foi a partir da década de sessenta que as aplicações que utilizavam de forma eficiente características ligadas a PLN começaram surgir, especificamente auxiliando em áreas como a medicina e matemática (SILVA; LIMA, 2013). Podemos destacar o programa ELIZA, publicado em 1966 pelo pesquisador do MIT Joseph Weizenbaum. O objetivo do sistema ELIZA era realizar conversões de linguagem natural inseridas por um usuário humano, em linguagem de máquina. Ao receber uma entrada de dados, em forma de fresas, ELIZA varria sua base de dados para identificar palavras-chaves previamente registradas que eram comparadas com palavras do texto. Utilizando posteriormente Inteligência Artificial 15 a análise, regras de remontagem das frases com base em regras de decomposição (WEIZENBAUM, 1966). Segundo o trabalho de Weizenbaum (1966), o desenvolvedor do algoritmo ELIZA, este sistema estava ligado a cinco problemas técnicos, sendo eles apresentados no Quadro 2. Quadro 2 – Problemas ligados ao algoritmo ELIZA Problemas 1° Identifi cação de palavras-chave 2° Descoberta de um contexto mínimo 3° Escolha de transformações apropriadas 4° Geração de respostas na ausência de palavras-chaves 5° Fornecimento de um recurso de edição para "scripts" ELIZA Fonte: Weizenbaum (1966) Perceba que o algoritmo ELIZA procurava deduzir espaços vazios quando as palavras-chaves não estavam presentes, permitindo que este sistema apresentasse um ótimo nível de dedução, algo que ainda é utilizado em sistemas simples modernos. Conceitos fundamentais sobre processamento de linguagem natural A seção anterior apresentou um breve histórico e algumas relações entre os primeiros modelos arquiteturais ligados ao processamento de linguagem natural, especificamente, apresentando os primeiros algoritmos e também algumas ligações com a simulação dos processos biológicos, normalmente usando como base o comportamento comunicativo humano, com os fundamentos apresentados. Desta forma, esta sessão apresentará mais conceitos, principalmente vinculados aos agentes modernos e as soluções que estes aplicam. Para permitir o entendimento de como os sistemas aplicam técnicas de processamento de linguagem natural, é importante compreender como um sistema lógico não inteligente utiliza as linguagens de programação, Inteligência Artificial 16 permitindo assim a compreensão da complexidade ligada aos agentes que processam a comunicação humana ou de outros animais. Um sistema lógico, ou seja, um programa escrito em linguagens como Java, C++ e Python, tratam as entradas através da lógica proposicional, ou através de camadas de tratamento baseados na lógica de primeira ordem. Todavia, todos possuem um conjunto de modelos previamente definidos. Para permitir uma compreensão mais eficiente, vamos retomar conceitos que podem ser comparados e aplicados com a PNL presentes nas unidades anteriores, como por exemplo: Vimos que a lógica proposicional permite que sistemas inteligentes possam usar uma base bem definida e relativamente simples para o tratamento de entradas, sejam de origem certa ou incerta. Paracompensar limitações de tipos de entrada diferentes de números binários, a lógica de primeira ordem expande as possibilidades de entradas e saídas, permitindo sistemas de tratamento mais complexos. Ligados a ambas lógicas, compreendemos que algoritmos específicos podem ser aplicados para o tratamento de incertezas, especificamente ao incluir conceitos como emoção e probabilidade nestas análises. Problemas como a variação de entradas de dados, necessidade de formação de uma base de conhecimento e incerteza tratada com probabilidade, são assuntos que estão fortemente ligados ao tratamento de linguagem natural. Entre estas análises, o uso do algoritmo de Markov pode ser usado para o tratamento de entradas prováveis seguidos ou não de caracteres previstos. Por exemplo: Exemplo: Se uma entrada de palavras possuir uma base de dados que estrutura o reconhecimento da frase “estou com fome”, ao receber o primeiro caractere “estou” e em seguida “com”, o algoritmo de Markov pode prever com base em outras regras como emoção ou estado atual, prever se o próximo caractere será “fome”, bem como, ser utilizado para usar toda a expressão em prol de identificar o sentido ou como responder a esta entrada. Inteligência Artificial 17 Segundo Russell (2013), outro exemplo prático do tratamento de entradas baseadas em caracteres é o modelo N-grama. Este modelo trata cada entrada de caractere como um conjunto n de caracteres, o qual, possuirá uma probabilidade de formação de palavras ou textos com base na combinação e análise de cada caractere. Ainda segundo Russell (2013), o uso da estratégia N-grama é indicado, e usada comumente, em problemas de identificação da linguagem utilizada. Por exemplo. Se uma sequência dupla de entradas de texto for igual a “I’m a programmer” e “Eu sou um programador”, este tipo de sistema será capaz de identificar que a primeira oração é escrita em inglês e a segunda em português. REFLITA: Com base no exemplo acima, onde um sistema é capaz de identificar se um texto pertence a uma língua. Como o sistema trataria um problema onde a escrita de uma frase é completamente igual entre duas línguas que o sistema domina. Note que seria preciso inserir um conjunto de regras probabilísticas para definir qual a maior probabilidade de ser uma língua e não outra. Para isto, o algoritmo de Markov pode ser aplicado para processar essa probabilidade com base no modelo oculto de Markov. Perceba que nas lógicas de programação, um valor, uma vez definido, seja pela lógica proposicional ou por meios probabilísticos, passa a ater apenas um significado. Por sua vez, um termo definido na PLN, pode apresentar diferentes significados, como já apresentado em exemplos como o uso da palavra manga. Desta forma, uma das principais soluções aplicadas para representar os diferentes significados que podem ser aplicados em entradas baseadas em linguagem natural, é o uso da probabilidade, especificamente através de modelos baseados em bases de conhecimento fixas ou dinâmicas. Conceito este já explorado nos sistemas incertos de primeira ordem das unidades anteriores. Inteligência Artificial 18 Note que uma base de informações para consulta é uma ferramenta importante para que o sistema possa criar modelos de avaliação e decisão sobre os dados de entrada. Esta base pode ser criada com base em grafos, máquinas de estado finitas, uso de regras proposicionais, ou até mesmo árvores de combinação de caracteres. SAIBA MAIS: Muitos sistemas do dia-a-dia trabalham com PLN processando a comunicação entre o usuário e o programa. Entre eles, podemos destacar os sistemas de processamento de linguagem natural do google, google assistente, usados em diversos smartphones em todo o mundo, com cada vez mais usuários, permitindo que o usuário faça pesquisas ou requisite que processos sejam ativados com base em comandos verbais. Para saber mais sobre este sistema, algo que agregará na compreensão geral da aplicação das PLNs, acesse clicando aqui: Outro conceito importante são as emoções e expressões físicas. Por exemplo, como uma máquina será capaz de entender uma ironia, ou identificar a prioridade de uma requisição. Assim, a compreensão e identificação destes padrões, auxiliam os agentes baseados em PLN a classificarem de forma mais correta as informações ligadas a comunicação. Inteligência Artificial https://support.google.com/assistant/answer/7394306?co=GENIE.Platform%3DAndroid&hl=pt-BR 19 RESUMINDO: Ao final deste capítulo, nós vimos alguns conceitos ligados ao processamento de linhagem natural. Primeiramente aprendemos um pouco sobre a história de como surgiu a PLN, bem como, sua relação com processos naturais presentes em diversos animais e principalmente nos humanos. Em seguida, aprendemos sobre mais alguns conceitos da PLN, como sua distinção entre a lógica de programação, bem como, algumas estratégias no tratamento de entradas baseadas em linguagem natural, como o uso do N-grama. Entre estes conceitos, foi apresentado a importância de uma base de dados fixa ou dinâmica que permite os agentes baseados em PLN a usar modelos de tratamento, bem como, o uso de probabilidade e tratamentos de expressões e emoções para a eficiente classificação dos contextos processados. Assim, este conteúdo servirá de base para as demais unidades, que procurarão aprofundar os conceitos já apresentados e explorar ferramentas que auxiliam o processamento de dados em agentes baseados em PLN. Inteligência Artificial 20 Extração, recuperação e classificação de informações OBJETIVO: Este capítulo apresentará como se dá os processos de classificação, recuperação e extração de informações, permitindo que os agentes tratem os dados de forma eficiente, especificamente quando ligados a classificação dos contextos das entradas baseadas em linguagem natural. Vamos lá! Classificação dos dados Esta seção tratará sobre os processos de classificação das entradas baseadas em PLN, porém, será dado foco na classificação de entradas de textos. Além do exposto, também retomaremos conceitos ligados ao uso de algoritmos probabilístico supervisionados, como Markov e Bayes. Exemplo: Tomemos por base dois interlocutores. O primeiro inicia a comunicação atraindo a atenção do outro como um alerta, indicando que uma informação muito importante deve ser discutida por ambos. A notícia poderá ser classificada como verdadeira ou falsa, visto que, muitas das interações do primeiro interlocutor são classificadas como mentiras. Perceba que existe uma condição externa ao texto que é o fato de existir uma frequente classificação como mentira nas comunicações do primeiro interlocutor. Este fato por si só gera uma probabilidade da nova interação ser também classificada como mentira. Perceba que problemas como o citado podem ser resolvidos através de modelos probabilísticos como por exemplo as redes de bayes, o qual, utilizam uma faixa de probabilidades para os diversos valores das variáveis, ou das hipóteses, sendo o somatório de todas as probabilidades igual a 1. Além do exposto, este tipo de problema também requer que a cada interação com o primeiro interlocutor, a base de conhecimento sobre seu padrão seja atualizada, como por exemplo a aprendizagem por reforço. Inteligência Artificial 21 Assim, o processo de classificação é uma etapa vital para que os agentes baseados em PLN possam processar entradas de texto. Este processo é chamado de categorização (RUSSELL, 2013). Note que para categorizar algo, é preciso tomar por base algum modelo que identifique ou distribua os dados. Modelos eficientes de classificação aplicados a IA é geralmente dividida em dois grandes grupos, os algoritmos supervisionados e não supervisionados, o qual, já foram explorados na unidade 3 deste material. Desta forma, é importante lembrar que em problemas supervisionados, as classes são previamente conhecidase suas características treinadas e testar para criar modelos específicos para identificá-las. Todavia, em problemas não supervisionados, as classes, chamadas de clusters, não são previamente identificadas, cabendo ao algoritmo categorizar as características principais presente em cada elemento que fará parte de um cluster. EXPLICANDO MELHOR: Outro ponto importante para a compreensão do processo de classificação dos textos, é identificar que as entradas são baseadas na lógica de primeira ordem, ou seja, em geral, os dados que serão avaliados serão textos formados por cadeias de caracteres, onde estes poderão ser letras, números e símbolos especiais. Com base no exposto, fica claro que algoritmos como o k-nn, árvore de decisão e bayes, são eficientes classificadores supervisionados para problemas ligados a agentes PLN. Todavia, iremos explorar um outro tipo de algoritmo de classificação muito importante. As Redes Neurais Artificiais (RNA). Redes Neurais Artificiais As RNA são algoritmos de classificação supervisionadas, todavia, foram deixadas para serem exploradas juntamente com os processos Inteligência Artificial 22 de linguagem natural pela simbologia de ambas simulares aspectos orgânicos muito independentes do cérebro dos animais, permitindo assim que este algoritmo seja utilizado de forma mais prática, explorando-o através de exemplos práticos ligados aos agentes PLN. Para compreender o que são as redes neurais, é preciso compreender previamente como é estruturada as células nervosas, especificamente, as células cerebrais. O cérebro humano é constituído de células chamadas de neurônios, os quais constituem estruturas semelhantes a redes, conectando os neurônios de forma a poderem trocar informações diretamente ou indiretamente. O termo rede vem do inglês, web, que é o fonema que representa as teias de aranha, estruturas formadas por diversos fios que se conectam em pontos específicos, fortalecendo a estrutura. Termo que cunhou a expressão networks, ou rede de trabalho. De forma semelhante, cada neurônio cerebral, é um nó (ponto), conectado com um número X de outros neurônios (a conexão é entendida como os vértices que ligam os pontos). A Figura 1 apresenta um esquema que simboliza uma rede que conecta alguns neurônios, simulando uma rede neural. Figura 1 – Exemplo da estrutura de uma rede neural Fonte: Autor (2020) Inteligência Artificial 23 Observa a Figura 1 e note que cada círculo representa um neurônio, bem como, cada vértice (linha) representa as conexões que cada neurônio possui. Perceba também que podemos isolar três grupos de neurônios, como pode ser visto na Figura 2, além dos vértices que conectam os elementos poderem conectar-se com mais de um objeto de cada grupo. Figura 2 – Exemplo de grupos em RNA Fonte: Autor (2020) Assim, semelhante aos neurônios biológicos, podemos dizer que cada grupo é responsável por um tipo de tarefa específica, todavia, compartilha informações com outros grupos de classes de funções. Uma rede neurológica é uma estrutura complexa, porém, a rede serve para comunicação, uma vez que cada neurônio realiza etapas de processamento de dados e geração de saída de forma independente uns dos outros. Para melhor entendimento, é preciso ver mais de perto como se estrutura um neurônio. Segundo Faveri e Resende (2020), os neurônios são formados por três partes distintas, o núcleo, o axônio e os dendritos, com o cérebro podendo ser divido em massa cinzenta (40%), formada pelos neurônios, e substância branca (60%), formada pelos axônios e dendritos. Inteligência Artificial 24 Como o oxigênio é um dos mais importantes elementos ligados a liberação de energia nas células e o processamento das informações se dá no núcleo dos neurônios, esta parte é responsável sozinha por consumir até 94% do oxigênio disponível no cérebro. A Figura 3 apresenta um exemplo da estrutura de um neurônio humano. Figura 3 – Esquema de um neurônio biológico Dendritos Núcleo Terminais do axônio Fonte: Autor (2020). Assim, podemos definir assim a função de cada parte de um neurônio, sendo elas: • Núcleo: Responsável pelo processamento da informação. • Dendritos: Terminais nervosos que captam os impulsos bioelétricos de outros neurônios. • Axônio: Terminais nervosos que emitem impulsos bioelétricos para outros neurônios. Com base no exposto, uma das primeiras formas utilizadas para o desenvolvimento de modelos inteligentes, procurou simular a estrutura das redes neurais biológicas, pavimentando os estudos modernos sobre as Redes Neurais Artificiais (RUSSELL, 2013). Inteligência Artificial 25 Uma RNA é composta de estruturas denominadas neurônios artificiais e camadas de tratamento. Cada neurônio, também conhecidos como unidades, se conecta com outras estruturas de forma direcionada, ou seja, de um início para um fim. SAIBA MAIS: A fim de não aprofundarem em dinâmicas matemáticas que explicaram como se dá de fato o tratamento da informação, esta sessão apenas explicará de forma superficial o funcionamento de uma RNA. Para saber mais sobre como estas redes processam os dados, clique aqui e leia mais sobre este assunto: Como citado, as redes são estruturas que aplicam camadas de tratamento para classificação dos objetos. Para isso, cada neurônio terá um valor associado denominado peso (LIVIERIS; ILIADIS; PINTELAS, 2020). Desta forma, cada neurônio terá um peso associado, determinado pela soma ponderada de suas entradas. Ou seja, para cada variação de entradas, os neurônios determinarão um valor que determinará qual será sua saída. Assim, se uma determinada entrada for mais comum que outra, a com maior frequência de aparecimento possuirá um peso associado maior. Relembremos o exemplo dos dois interlocutores, onde o primeiro era conhecido por mentor com frequência. Note que esta frequência determinou uma maior chance de pré-classificar sua explanação como mentira. Da mesma forma, a frequência também determina a maior probabilidade de um neurônio seguir um determinado padrão. Um neurônio pode receber mais de uma entrada ao mesmo tempo através de interfaces de entrada que simulam os Dendritos. Em seguida a informação é processada em seu núcleo, clara referência ao núcleo biológico, e por fim uma saída é dada e enviada para a próxima camada de tratamento, simulando o Axônio. Como cada neurônio possui um peso associado para um conjunto de entradas, a utilização de uma rede de neurônios permite que diferentes Inteligência Artificial https://medium.com/@davivc/um-mergulho-profundo-na-matem%C3%A1tica-por-tr%C3%A1s-das-redes-neurais-77994b87a2ab 26 saídas sejam geradas pela probabilidade em cada unidade. Ademais, um conjunto finito de unidades pode ser estipulado para cada camada. Desta maneira, as saídas combinadas das unidades da camada anterior, servirão de entradas para a próxima camada, recombinando a informação até gerar uma saída final. O número de camadas e unidades em uma rede é definida pelo programador, onde este procurará o melhor conjunto de quantidade de camadas e neurônios para criar um modelo eficiente para um problema específico. Recuperação da informação O processo de recuperação de informação é um tipo de ação onde buscasse encontrar dados em análises específicas. Por exemplo. Uma das estratégias de recuperação mais conhecidas é o protocolo de redes HTTP. Este protocolo busca recuperar páginas com base em uma estrutura de requisição bem definida (WIJAYA, 2020). Segundo Russell (2013), uma das estratégias mais simples de recuperação de informação é a busca binária. A busca binária permite que uma entrada qualquer seja identificada como falsa ou verdadeira com base em um conjunto de regras bem definidas. Por exemplo, a entrada “usar algoritmo supervisionado” só terá sentido caso os dados tratadossejam possíveis de classificar com base em classes já definidas. Desta forma, este tipo de estratégia busca dar significado a estruturas, todavia, a classificação sempre será na ordem binária, não permitindo uma boa ou efetiva classificação da ordem de prioridade dos elementos estruturados. Outro problema é que um dos objetivos da PLN é processar, porém, também é se comunicar através de linguagem natural, algo difícil de ser feito para usuários com pouco ou nenhum conhecimento de programação que recebem uma unidade binária como resposta do sistema, especificamente quando ligado ao problema anterior, onde não é possível ordenar essas respostas. Inteligência Artificial 27 Assim, uma forma de tratamento para a recuperação de informações é o uso da estatística como ferramenta para o tratamento de probabilidades de resposta. Algo que permite a criação de respostas complexas e que podem ser ordenadas. Desta forma, após a fase de processamento dos dados, será possível apresentar respostas baseadas em PNL mais fáceis de serem compreendidas por todos os usuários destes sistemas. Extração de informação O processo de extração de informação pode ser entendido como uma etapa de identificação e aquisição de conhecimento através da análise de dados classificados e recuperados (RUSSELL, 2013). Por exemplo, um carteiro ao receber uma encomenda a ser entregue, irá recuperar as informações do destinatário através da consulta aos dados previamente classificados pelo sistema de correios. Assim, este mesmo carteiro, poderá extrair informações como o endereço e nome da pessoa que receberá a encomenda. O processo de extração, também permite dar sentido a certas atividades, possibilitando a aprendizagem dos significados e valor da informação. REFLITA: Retomando o exemplo do carteiro, se for dado a sequência com os seguintes dados. “Alberto Fonseca”, “Centro”, “Sena Madureira”, “AC”, ”69940-000”. Perceba que cada campo é um tipo de informação que pode ser relevante para a identificação do local da entrega. Podendo até mesmo realizar sua estruturação com base nos campos, como por exemplo, usar o valor 69 para identificar uma região da cidade. Desta forma, reflita sobre seu endereço ou outros conjuntos de informações ligados a seu dia a dia e procure perceber se é possível identificar padrões que o permitam extrair informações das combinações possíveis. Inteligência Artificial 28 Existem diversas formas de extração de dados, como a busca por valores chaves, busca probabilística, uso de máquinas de estado, entre outras. Todavia, retomaremos os conceitos e aplicações da extração de informações na sessão posterior, especificamente, para a compreensão sobre o uso das gramáticas aplicadas a agentes PLN. RESUMINDO: Chegamos ao fim de mais um capítulo, o qual, apresentou conceitos sobre os processos de tratamento de informações. Primeiramente vimos que a classificação das entradas é um importante passo para o processamento de linguagem natural, uma vez que a classificação permitirá que contexto e combinações de palavras venham a ser usados para dar significado e possibilitar respostas eficientes. Assim, exploramos conceitos sobre o uso de algoritmos não supervisionados e supervisionados para classificação destes dados, bem como, aprendemos como se dá os fundamentos das RNA, importante algoritmo supervisionado e que também é aplicado para a classificação de entradas. Posteriormente, tratamos de forma conceitual as ações de recuperação e extração de informação, permitindo que as sessões posteriores tratem de forma mai9s objetiva os processos de comunicação em agentes virtuais. Inteligência Artificial 29 Gramáticas e os modelos de linguagem natural OBJETIVO: Neste capítulo, trataremos sobre os modelos de processamento de linguagem natural, especificamente, explorando as principais características do modelo N-grama. Ademais, será apresentado os conceitos do uso de gramáticas para formação de uma base para a comunicação em linguagem natural. Bons estudos! Na sessão anterior aprendemos um pouco sobre os modelos N-grama, o qual, iremos aprofundar um pouco no início desta sessão. Podemos definir que uma entrada escrita será composta de cadeias de caracteres, com cada caractere podendo representar uma palavra, número, pontos, entre outras representações possíveis, como algumas formas de representar simbolicamente as emoções, intituladas de emojis. IMPORTANTE: Além dos símbolos citados acima, os modelos N-grama também podem ser constituídos de letras, bits, palavras, entre outros. Cabendo ao desenvolvedor do modelo fazer essa definição previamente. Desta forma, podemos entender que um modelo N-grama é uma definição que estipula como as cadeias de entrada textual serão tratadas no sistema. Segundo Russell (2013), podemos entender os modelos N-grama como uma cadeia de Markov de ordem 1-N. Salientando que qualquer sequência de caracteres é composta pelo comprimento N, sendo N o próprio número de caracteres. Também é importante a percepção que existem três tipos especiais de modelos N-grama, sendo eles o 1-grama (unigrama), 2-gramas Inteligência Artificial 30 (bigrama) e 3-gramas (trigrama). Estas são nomenclaturas especiais para entradas determinadas pelos valores um, dois e três caracteres. Todavia, retomemos a cadeia de Markov. DEFINIÇÃO: Uma cadeia de Markov é caracterizada pelo fato de um estado no momento atual não ser dependente de qualquer estado em momentos anteriores, salvo apenas o estado anterior. Da mesma forma, apenas o próximo estado poderá ter dependência do estado atual (GRIGOLETTI, 2015). Um exemplo comum que pode ser dado é o lançamento de uma sequência de dados perfeitos, ou seja, dados não viciados e com igual probabilidade de todos os lados caírem para cima. Perceba que a soma de uma sequência de lançamentos não pode ser prevista, bem como, cada lançamento não interfere no próximo lançamento. Assim, se quisermos saber a relação se dada uma entrada de 3 dados (trigrama) com um valor qualquer, é preciso fazer o lançamento e realizar a soma. Exemplo: Se considerarmos uma entrada do modelo trigrama ligado ao lançamento de dados e quisermos identificar a relação deste valor com o número 6, podemos seguir algumas possibilidades, sendo elas expressas no Quadro 3. Quadro 3 – Exemplo de uma cadeia de Markov SOMA DOS LANÇAMENTOS RESPOSTA DO SISTEMA 3+2+2 = 7 Em relação ao valor 6: O somatório é superior ao valor avaliado. 1+3+2 = 6 Em relação ao valor 6: O somatório é igual ao valor avaliado. 1+1+3 = 5 Em relação ao valor 6: O somatório é superior ao valor avaliado. Fonte: Autor (2020). Inteligência Artificial 31 Perceba que a primeira entrada, o primeiro lançamento foi igual ao valor 3, seguido do segundo lançamento com valor igual a 2, mesmo valor obtido no terceiro lançamento. Note que ao final dos lançamentos, foi possível identificar que o valor do somatório dos valores obtidos, foi superior ao valor de referência, valor avaliado. Note que o primeiro valor não sofreu interferência alguma dos demais lançamentos, fator que também não aconteceu nos lançamentos posteriores. Todavia, se o primeiro valor fosse 5, já seria um fato que o somatório seria superior ao valor de referência, uma vez que se os segundo e terceiro valores fossem iguais a 1, ainda assim a soma seria superior a 6. Mesmo com esta afirmação, os valores obtidos nos lançamentos posteriores não tiveram dependência do anterior. Cadeias de Markov geralmente são descritas em forma de grafos, com todas as possibilidades ligadas probabilisticamente, permitindo assim que ao seguir uma sequência de entradas, seja possível identificar uma saída adequada. O modelo que descreve a cadeia de Markov para o exemplo anterior está presente no Quadro 4. Inteligência Artificial 32 Quadro 4 – Exemplo de uma cadeia de Markov Etapa dos lançamentos Valorespossíveis Compreensão do sistema 1a [1-6] = (61) A primeira entrada será constituída da probabilidade de um dos valores da cadeia serem verdade 2a 6 * 6 = (62) Defi nido o valor real obtido na rolagem do dado na etapa anterior, a probabilidade da segunda etapa será igual a probabilidade anterior multiplicada pela probabilidade atual. 3a 6 * 6 * 6 = (63) Semelhante ao segundo lançamento, tomar-se-á as probabilidades anteriores multiplicadas pelas probabilidades atuais. Fonte: Autor (2020). No modelo apresentado no Quadro 4, todos os elementos de entrada são independentes uns dos outros. Porém, existem casos onde existem dependência dos estados sequência, como por exemplo uma cadeia de caracteres que representam uma palavra ou frase. Exemplo: Se tomarmos por base a seguinte palavra: “Contar” Perceba que esta cadeia de caracteres para serem identificados, após identificar a letra “C”, seria preciso que a próxima verificação identificasse a letra “O”, e assim sucessivamente. Assim, existe uma dependência exclusiva entre os termos próximos na ordem de 1 verificação. Avalie a Figura 4. Ela representa uma árvore de dependência gerada após a verificação de todos os caracteres. Perceba que na estrutura da árvore, o último caractere é dependente do primeiro, todavia é importante entender que durante o processo de descoberta do N-grama, de fato existe uma independência entre os caracteres e que a saída é apenas um valor probabilístico antes de ser concretizada. Inteligência Artificial 33 Figura 4 – Exemplo de árvore de dependência gerada C O N T A R Fonte: Autor (2020). Note que no exemplo acima, Figura 4, cada nó identifica se o próximo nó é ou não pertencente a cadeia específica, todavia, este modelo apesar de simples, tem desvantagens quanto a representação de grandes quantidades de dados, sendo indicado para aplicações com possibilidades reduzidas. Introdução às gramáticas Como já citado nesta unidade, as línguas naturais como português e inglês, possuem um conjunto de regras definidos através de documentos chamados gramáticas. Segundo o dicionário Houaiss da Língua Portuguesa (2009), as definições para uma gramática podem ser: • “...É um conjunto de prescrições e regras que determinam o uso considerado correto da língua escrita e falada...”. • “...Tratado descritivo normativo da morfologia e da sintaxe de uma língua...”. Ou seja, uma gramática é uma base de dados para consulta daqueles que procuram corretamente se comunicar segundo alguma Inteligência Artificial 34 língua específica. Assim, esta base de informações deve ser dada aos agentes virtuais para que estes possam corretamente se comunicar com os usuários através de linguagem natural. IMPORTANTE: Para fins de exemplificação, a gramática da língua portuguesa será usada como principal referência. Lembremos que uma gramática pode ser entendida em relação a IA, como um modelo de comunicação, uma vez que suas regras auxiliarão os agentes virtuais poderem compreender os textos ou fala dos usuários humanos, bem como, realizar comunicação através de mecanismos específicos, inclusive fala e escrita. Além do uso de uma gramática, o agente baseado em PLN também precisa conhecer uma base de caracteres e sua correta classificação. Retomando os conceitos de aprendizado vistos na unidade anterior, podemos perceber que estas bases de caracteres, normalmente palavras, números e símbolos como pontos e vírgulas, podem ser previamente inseridos ou aprendidos durante as interações do sistema. Geralmente, as gramáticas são constituídas de duas partes principais, a semântica e a sintaxe. DEFINIÇÃO: Semântica é o estudo do significado na linguagem. Permitindo conclusões concretas sobre o significado durante a comunicação (HURFORD; HEASLEY, 1997). Por exemplo. Analise a frase e o código a seguir presentes no Quadro 5 Inteligência Artificial 35 Quadro 5 –Erros semânticos Língua Entradas Português Joãozinho caiu para cima Java Script var numero = numero; Fonte: Autor (2020). Perceba que a frase em português tem um sentido confuso, uma vez que, em geral, cair sempre é para baixo. Por sua vez, a linguagem Java Script define em suas regras, que quando uma variável é criada, ela não pode receber a si, uma vez que seus dados ainda não foram de fato iniciados. Ambos exemplos, são erros ligados a erro no significado da mensagem, ou seja, erros semânticos. Desta forma, os agentes baseados em Processamento de Linguagem Natural, devem manter bases de modelos semânticos para os caracteres que conhece, algo que permitirá melhorar o entendimento computacional descritos nas entradas textuais e também auxiliando na estruturação de respostas bem claras e objetivas com base nas regras da língua utilizada. Por sua vez, o outro campo gramatical importante para o estudo e aplicação em agentes PLN, é a sintaxe. DEFINIÇÃO: A sintaxe é o campo de estudo gramatical que estuda a correta estruturação das frases e em computação, de forma similar, é um campo de análise que visa identificar se os códigos atendem as especificações de escrita da linguagem (DONDIS; CAMARGO, 1997). Retomemos como referência o exemplo do Quadro 6, porém, com algumas alterações. Inteligência Artificial 36 Quadro 6– Erros sintáticos Língua Entradas Português Joãozinho subiu depois caiu Java Script var texto = Hello world!; Fonte: Autor (2020). Note que a entrada da língua portuguesa possui um sentido correto, porém, este sentido está prejudicado pela falta de um conectivo que une as orações Joãozinho subiu, bem como, depois caiu. Uma provável estruturação correta seria: “Joãozinho subiu e depois caiu” De forma semelhante, a entrada na linguagem computacional Java Script, está errada pois um texto deve estar obrigatoriamente entre aspas simples ou duplas, sendo a forma correta apresentada a seguir: var texto = “Hello world!” Este tipo de erro não prejudica o sentido das entradas, ou seja, é possível saber que Joãozinho subiu em algo e em seguida caiu, mesmo sem um conectivo. Da mesma forma, é possível entender que o texto Hello world é do tipo string. Este tipo de análise é chamada de análise sintática e, como citado, está vinculada a correta estruturação dos textos. SAIBA MAIS: Para aprofundar um pouco mais no entendimento sobre as gramáticas para processamento de linguagem natural, clique aqui. Desta forma, o uso de uma base gramatical permitirá que agentes inteligentes possam identificar sentido e contextos nas cadeias n-grama e assim, processar respostas eficientes para cada situação. Inteligência Artificial https://www.ime.usp.br/~slago/IA-pln.pdf 37 Esta identificação é aplicada como uma camada de tratamento adicional sobre modelos como as cadeias de Markov. Assim, a cada verificação e/ou quando uma palavra for identificada, as camadas de tratamento de estruturação e sentido são aplicadas para ajustar ou extrair informações do texto. RESUMINDO: Chegamos ao fim de mais um capítulo, o qual, exploramos conceitos ligados aos modelos de linguagem natural. Assim, primeiramente aprofundamos as análises dos conceitos sobre os modelos k-grama, especificamente ao demonstrar como se estruturam este tipo de entrada e sua relação com as cadeias de Markov. Em seguida apresentamos os conceitos fundamentais as gramáticas e sua relação com o sentido e correta estruturação na comunicação. Inteligência Artificial 38 O processo de percepção da IA OBJETIVO: Chegamos a nosso último capítulo que tratará sobre Inteligência Artificial. Até o momento citados de forma simples e pouco objetiva os sensores, apenas citando que eles são responsáveis por identificar estímulos no ambiente de forma passiva, ou seja, esperando que aconteça um estímulo para ativá-lo. Também citamos entradas, exclusivamente em formato de textos. Todavia, sensoressão responsáveis por funções adicionais, como varrer o ambiente em pró de objetivos e muitas outras funções. Assim, esta sessão abordará processos de percepção e identificação em agentes Inteligentes. Bons estudos! Uma das habilidades presentes em alguns agentes inteligentes, é capacidade de perceber. Perceber é um conceito complexo, uma vez que define o uso de diferentes tipos de sensores, bem como, de inúmeras abordagens de identificação de dados. DEFINIÇÃO: Segundo Bueno (2013), percepção é o ato, efeito ou faculdade de perceber, compreensão. Segundo Russell (2013), agentes capazes de perceber o ambiente através de sensores, o fazem monitorando o ambiente a procura de algum aspecto que o permita utilizá-lo para fins específicos. Sensores podem ser implementados de diversas formas em um agente inteligente, o qual, passaremos a estudar de forma mais profunda na seção a seguir. Inteligência Artificial 39 Sensores Sensores são ferramentas importantes para a coleta de dados, sejam originários do ambiente, de outros agentes ou até mesmo do próprio agente. Qualquer sistema de percepção pode ser caracterizado como um sensor. Por exemplo: se considerarmos um agente reativo ligado a um algoritmo que espera que um usuário faça login para executar ações específicas, com a verificação sendo uma condicional simples (se) que ativará a dita ação. Esta função será entendida como o sensor deste sistema. Por sua vez, como já vimos nas unidades anteriores, sensores climáticos utilizam ferramentas físicas como termômetros para identificar alterações no ambiente, o qual, disparam sinais para que algoritmos realizem a mesma função do exemplo anterior. Outros sistemas, como os geradores de rotas, utilizam dados advindo do sistema GPS (do inglês “Global Positioning System”, ou “Sistema de Posicionamento Global”) para realizar comparações entre a posição atual, ou informada, com a posição final, avaliando as rotas inseridas no sistema e identificando o melhor percurso, podendo ao não levar em consideração outras variáveis como velocidade de fluxo ou quilometragem mais curta. Note que o sistema GPS, em geral, não é de propriedade dos desenvolvedores de sistemas de rotas. Assim, esta função de captura de informações também é entendida como um sistema de percepção, uma vez que os agentes estarão avaliando constantemente alterações na posição advinda de um sistema externo, para atualizar a rota em tempo real. Segundo Russell (2013), sistemas que implementam sensores geralmente são aplicados em ambientes não observáveis ou parcialmente observáveis, assim, a incerteza gera a necessidade de os sensores aplicarem modelos específicos, denominados de modelo de sensores. Um modelo de sensores é uma estrutura, o qual, utiliza probabilidade, o qual, descreve a probabilidade temporal ligada as chances de uma determinam percepção ser identificada. Desta forma, o Inteligência Artificial 40 tempo e a incerteza passam a ser dados relevantes para a criação de sensores. Vamos exemplificar um evento onde sensores segundo os conceitos temporais e probabilísticos se aplicam. Exemplo: Consideremos uma empresa que possui máquinas que realizam etapas de um processo industrial qualquer. Cada máquina possui um sensor que identifica quando é preciso realizar manutenções de lubrificação e/ou troca de peças. Assim, sempre que uma nova peça é instalada, um prazo médio de verificação é registrado na máquina, bem como, quando a força necessária para a movimentação das engrenagens é superior a um valor determinado, o sistema também gera alertas de necessidade de lubrificação manual. Perceba que as duas funções ligadas à manutenção, reposição de peças e lubrificação, são funções temporais, ou seja, dependem diretamente que passe um determinado tempo. Todavia, a função de lubrificação não é determinística, ou seja, existe uma probabilidade com base em dados fornecidos ou em aprendizado, que revelam um tempo médio que esta manutenção é requerida. Ou seja. Existe uma probabilidade esperada ligada a necessidade de lubrificação das peças. O exemplo acima nos permite constatar que o conjunto de variáveis é uma importante etapa no processo de implementação de sensores eficientes, bem como, cada problema terá seu conjunto de variáveis próprios. Uma vez que os conjuntos de variáveis de um sistema for definida, é preciso identificar como se os processos de varrição temporal do mundo, ou seja, como o mundo evolui e como serão os valores que cada variável poderá receber. Como citado por Russell (2013), esta etapa de identificação do mundo e suas variações, bem como, os tipos de valores que cada variável irá apresentar, é chamado respectivamente de modelo do mundo e modelo dos sensores. Inteligência Artificial 41 Da mesma maneira que as cadeias de Markov nos permitem o tratamento das entradas incertas baseadas no modelo K-grama, estas mesmas cadeias também fornecem um bom modelo descritivo para previsão dos estados ligados aos modelos do mundo e dos sensores. IMPORTANTE: É importante citar que os problemas tratados pela cadeia de Markov para os modelos acima, geram hipóteses aproximadas, bem como, podem gerar problemas ligados a quantidades exorbitantes de estados possíveis no ambiente e nas variáveis dos sensores. Assim, tratar o ambiente como possuindo limitadas possibilidades de mudanças é uma forma de tornar os valores de tratamento nos modelos sempre finitos. Outros problemas podem estar vinculados a baixa confiabilidade nos dados fornecidos por um único sensor, seja por problemas mecânicos ou de representatividade dos modelos. Desta forma, pode-se reduzir esses inconvenientes ao serem adicionados mais sensores, sejam físicos ou virtuais. Russell (2013) também identifica um conjunto de tarefas que devem ser executadas por um sensor, sendo estas expressas no Quadro 7. Inteligência Artificial 42 Quadro 7 – Erros sintáticos Tarefa Descrição Filtragem Etapa ligada a percepção do estado crença através de cálculos probabilísticos usados para representar conjuntos de hipóteses. Previsão A previsão é a capacidade de realizar cálculos probabilísticos que permitam a percepção de ocorrência de estados futuros. Suavização Suavização é a capacidade de realizar previsões com base em dados passados. Explicação mais provável É a possibilidade que os sistemas possuem em identifi car padrões e gerar conclusões específi cas com base em evidências. Aprendizagem Possibilidade de aprender com eventos passados baseando-se nos algoritmos supervisionados e não supervisionados. Fonte: Adaptado de Russell (2013). Percepção de objetos complexos Uma vez definido o que são sensores e suas principais características, é possível agora explorar alguns tipos de dados que podem ser identificados através dos processos de captação, classificação, recuperação e extração de informação. Além dos textos, ou seja, conjunto de caracteres escritos, os sons e as imagens são objetos importantes no campo de estudos do processamento e classificação de dados. SAIBA MAIS: Todavia, trataremos nesta unidade apenas sobre imagens, para saber como se dá o tratamento de sons, clique aqui. O tratamento de imagens é um processo complexo, visto que, imagens em duas dimensões ou em três dimensões, apresentam características específicas ligadas a visualização, bem como, ao Inteligência Artificial http://www.pee.ufrj.br/https://scorm.onilearning.com.br/scorm.php?scorm=5402bae82b1504336d19f90bd669f248&estudante=0&nome=&licao=&sessao=g1tvi7hudgvbdkd2edp4568b2o/pt/producao-academica/dissertacoes-de-mestrado/2010-1/2010102901-2010102901/file 43 tratamento das entradas, uma vez que a quantidade de orientação (cima, baixo, esquerda, direita, traz, frente), bem como, a quantidade de pontos na imagem e os processos de compressão, devem ser levados em consideração. Outros pontos importantes ligadosao tratamento de imagens e reconhecimento dos padrões, estão ligados a forma como os objetos se dispõem na imagem. Como por exemplo duas linhas retas paralelas indo em direção a uma maior profundidade na imagem. Quanto mais profunda as retas se dispõem na imagem, mais próximas elas aparentarão estar na imagem. Vide Figura 5 onde duas retas paralelas, unidas por retas transversais contínuas, aparentam ficar mais próximas ao se distanciar a partir de um ponto fixo, algo gerado pela perspectiva da distância entre o início e o fim dos pontos de observação. Figura 5 – Retas paralelas em ambiente com profundidade Fonte: Autor (2020). O mesmo efeito apresentado na Figura 5, também pode ser visto em estradas retas ao se contemplar o horizonte. Quanto mais distante se olhar, mais próxima às bordas da pista pareceram uma das outra. Inteligência Artificial 44 Outros efeitos que podem gerar dificuldade de interpretação é quanto a profundidade de um objeto, ou seja, saber se este está à frente ou atrás de outro em um mesmo plano, pois, como visto na Figura 5, se compararmos os pontos onde o observador está sobre as retas e o ponto mais distante observável, perceberemos que a dimensão da distância aparentemente reduziu-se. Desta forma, o tratamento de imagens requer que algum modelo de identificação de padrões (hipóteses) possa classificar as imagens. Estes modelos podem ser do tipo supervisionados ou não supervisionados. Apesar da escolha estar fortemente ligada aos objetivos que fundamentam a analise das imagens, caba ao desenvolvedor da aplicação escolher a melhor estratégia. Todavia, é indicada a construção de soluções por clusters quando se deseja identificar quantas classificações podem ser identificadas e em relação aos padrões destas identificações. Bem como, quando se tem uma ideia geral ou impossível de ser aplicada quanto as classes existentes. Por sua vez, algoritmos supervisionados são indicados para problemas que já possuem hipóteses ou classes definidas, ou que a criação e classes seja algo pouco custoso e de fácil aplicação. Outros problemas também devem ser levados em consideração quanto a análise das imagens, como texturas sombreadas, cores incorretas ou falta de cores em certos pontos, resolução da imagem ou objeto, entre outros pontos. A própria direção que a luz ilumina o objeto pode gerar variações nas classificações. Assim, perceba que a maior parte das características que devem ser observadas durante o tratamento de uma imagem ou objeto tridimensional, podem ser tratadas em etapas de pré-processamento, removendo ruídos extremos como luz forte em certo ponto ou falta de dados em certas partes dos dados. Também perceba que imagens 2D e 3D são formadas por pontos que interligam conjuntos de vértices, podendo este ponto possuir uma cor ou característica associada. Inteligência Artificial 45 Em geral, a combinação de dois vértices de uma imagem é formada por padrões de cores RGB (combinação de variações de intensidade entre vermelho, verde e azul) ou CMYK (Ciano, Magenta, Amarelo (Yellow) e Preto (Key (chave)). REFLITA: Como visto na unidade anterior, no modelo RGB, cada cor pode variar entre 256 valores diferentes, o que gera uma quantidade de 2563 possibilidades mais de quatro bilhões de combinações diferentes para cada pixel (ponto). Reflita sobre uma imagem formada por uma resolução aproximada de 256 X 256 pixels, agregando ainda fatores como iluminação, posição do objeto, falhas de coloração, problemas na compressão ou descompressão das imagens, entre outros. Agora, lembre que apenas um pixel é formado por mais de quatro bilhões de hipóteses, quantas hipóteses de classificação uma imagem com resolução citada poderia formar. Depois, avalie o mesmo exemplo para uma imagem com resolução HD ou até mesmo um filme. Por fim, pense como é importante usar modelos como Markov, Bayes e o K-nn para criar as combinações destas hipóteses de forma discreta. Assim, percebemos como estes algoritmos são incríveis e como a IA ainda está muito longe de simular com perfeição as habilidades biológicas dos cérebros humano. Porém, estamos neste rumo, e você ao explorar este material, também fará parte destas incríveis descobertas ligadas a tornar uma máquina computacional, um ser pensante. Desta forma, um sistema pode captar uma imagem ou usar imagem advinda de outro dispositivo. Realizar tarefas de pré-processamento para adequação dos dados, realizar a etapa de processamento e classificação da imagem e por fim, realizar um pós-processamento onde sensores procurarão recuperar e extrair as informações descobertas através dos modelos de classificação. Inteligência Artificial 46 RESUMINDO: Chegamos ao final do último capítulo da unidade e também do material de Inteligência Artificial. Neste material pudemos ver que toda a trajetória feita até aqui, nos permitiu perceber como se dá os processos complexos de tratamento de informações. Assim, primeiramente vimos de forma um pouco mais detalhada o que são e como agem os sensores virtuais, fator que pavimentou a apresentação dos processos de percepção complexos, processos estes ligados a identificação de sons, imagens e outros tipos de dados não textuais. Desta forma, completamos nosso estudo sobre como dotar uma máquina com capacidades que simulam funções biológicas cerebrais, como, perceber, refletir, tomar decisões e aprender. Inteligência Artificial 47 REFERÊNCIAS BUENO, Silveira. Minidicionário da língua Portuguesa. 3 ed. São Paulo: FTD, 2016. DICIONÁRIO: Houaiss da Língua Portuguesa. Rio de Janeiro: Objetiva, 2009. DONDIS, Donis A. CAMARGO, Jefferson Luiz. Sintaxe da linguagem visual. São Paulo: Martins fontes, 1997. FAVERI, D. B. RESENDE, M. Cardoso. Neuroeconomia: perspectiva histórica, principais contribuições e interpretações para a teoria econômica. SINERGIA-Revista do Instituto de Ciências Econômicas, Administrativas e Contábeis, v. 24, n. 1, p. 39-49, 2020. GRIGOLETTI, Pablo Souza. Cadeias de Markov. Escola de Informática, Universidade Católica de Pelotas, pp. 1-8. 2015. GOOGLE. Google Assistente. Disponível em:< https://support.google. com/assistant/answer/7394306?co=GENIE.Platform%3DAndroid&hl=pt- BR>. Acesso em: 22 de jun. 2020. GONZALEZ, Marco. LIMA, Vera Lúcia Strube. Recuperação de informação e processamento da linguagem natural. XXIII Congresso da Sociedade Brasileira de Computação. p. 347-395, 2003. HURFORD, James R. HEASLEY, Brendan. Curso de semántica. Editora da ULBRA, 1997. LAPORTE, Luiz. Algoritmos de Separação Cega de Sinais de Áudio no Domínio da Frequência em Ambientes Reverberantes: Estudo e Comparações. COPPE, 2010. Disponível em:< http://www.pee.ufrj. br/index.php/pt/producao-academica/dissertacoes-de-mestra do/2010-1/2010102901-2010102901/file>. Acesso em: 22 de jun. 2020. LIVIERIS, Ioannis E. ILIADIS, Lazaros. PINTELAS, Panagiotis. On ensemble techniques of weight-constrained neural networks. Evolving Systems, p. 1-13, 2020. Inteligência Artificial 48 NETO, J. M. O. TONIN, Sávio Duarte. PRIETCH, S. Processamento da Linguagem Natural e suas aplicações computacionais. Escola Regional de Informática (ERIN), 2010. PEREIRA, Silvio. Processamento de Linguagem Natural. IME-USP. Disponível em:<https://www.ime.usp.br/~slago/IA-pln.pdf>. Acesso em: 22 de jun. 2020. RUSSELL, S. Inteligência artificial. 3. ed. Rio de Janeiro: Editora Elsevier, 2013. SILVA, R. R. LIMA, S. M. Barroso. Consultas em Bancos de Dados Utilizando Linguagem Natural. Revista Eletrônica da FMG, 2013. Disponível em: <http://re.granbery.edu.br/artigos/MjQ0.pdf> Acesso em: 20 de junho. 2020. TURING, A. M. Computing machinery and intelligence. Mind, Volume LIX, Issue 236, Pages 433–460. 1950. WEIZENBAUM, Joseph. ELIZA: A computer program for the study of natural language communication between man and machine. Communicationsof the ACM, v. 9, n. 1, p. 36-45, 1966. WIJAYA, Hamid. Implementasi Kriptografi AES-128 Untuk Mengamankan URL (Uniform Resource Locator) dari SQL Injection. Akademika Jurnal, v. 17, n. 1, p. 8-13, 2020. Inteligência Artificial
Compartilhar