Conteúdo organizado por Carlos Gustavo Lopes da Silva em 2023 do livro Inteligência Artificial, publicado em 2013 por George F. Luger e do livro Inteligência Artificial aplicada: uma abordagem introdutória, publicado em 2018 por Luciano Frontino de Medeiros.
Representação do Conhecimento
As aplicações da IA são imensas, mas um campo de muito estudo é a representação de conhecimento, que busca entender como o conhecimento humano pode ser capturado, organizado e utilizável por sistemas computacionais. Dentro das pesquisas sobre representação do conhecimento existem diversas formas de representar o conhecimento, cada uma com suas próprias vantagens e desvantagens.
Caro aluno, vamos iniciar nossa jornada na compreensão sobre a representação do conhecimento para então termos o embasamento para compreender os próximos passos de nossos estudos da IA.
"Existem princípios gerais de organização do conhecimento que se aplicam a uma série de domínios e que podem ser diretamente suportados por uma linguagem de representação. Por exemplo, são encontradas hierarquias de classe tanto em sistemas de classificação científicos como nos de senso comum. Como poderíamos conceber um mecanismo geral para representá-las? Como podemos representar definições? E exceções? Quando um sistema inteligente deve fazer suposições preconcebidas sobre uma informação faltante e como ele poderia ajustar o seu raciocínio caso essas suposições se mostrassem erradas? Como podemos representar o tempo da melhor forma possível? E a causalidade? E a incerteza? O progresso na construção de sistemas inteligentes depende da descoberta dos princípios da organização do conhecimento e do suporte a eles por meio de ferramentas representacionais de nível mais alto." (Luger, 2013, p. 209-2010)
A representação de conhecimento no campo da IA é uma área que estuda como representar o conhecimento de uma maneira que possa ser utilizada por sistemas de computador para realizar tarefas inteligentes.
A representação de conhecimento envolve a identificação de conceitos relevantes para o domínio de aplicação, bem como as relações entre esses conceitos. O sentido e objetivo é que, assim como os seres humanos, os sistemas de IA possam usar o conhecimento armazenado para inferir novas informações, tomar decisões e resolver problemas (Luger, 2013).
Existem várias formas de representar o conhecimento, incluindo grafos, ontologias, redes semânticas, lógica formal e linguagens de programação específicas para a representação de conhecimento, como a linguagem de programação Prolog.
A linguagem de programação Prolog foi desenvolvida em 1972, na Universidade de Marseille, França, se tornando a mais utilizada em computação simbólica, na compreensão de linguagens naturais, sistemas especialistas e outros, se tornando uma programação de referência para inteligência artificial e linguística computacional, pois consegue representar o conhecimento de forma lógica e concisa.
Em vez de se concentrar em como os cálculos devem ser realizados, a linguagem Prolog se concentra em declarar fatos e regras que descrevem um problema, permitindo que o sistema resolva o problema de forma eficiente. A linguagem é baseada em lógica de predicados, que é uma forma de lógica matemática que descreve relações entre entidades. A partir dessas relações, o sistema pode deduzir novos fatos e responder perguntas sobre o domínio de aplicação. Prolog é particularmente útil para expressar regras de inferência, que permitem que o sistema deduza novas informações a partir das informações já existentes.
A sintaxe da linguagem Prolog é simples, mas pode ser um pouco diferente do que muitos programadores estão acostumados. Em vez de usar expressões matemáticas e declarações de controle de fluxo como if/else, a linguagem Prolog se concentra na definição de fatos e regras que definem as relações entre entidades. Um programa Prolog é composto por uma série de cláusulas, que podem ser fatos, regras ou consultas.
Exemplo de uma programação em Prolog
(Pense que você vai digitar e programar em um ambiente online que roda programa Prolog, interpretador):
humano(pedro).
Com isso, você está afirmando que Pedro é humano. humano(pedro), nesse contexto, é um fato.
humano(pedro).
Você está fazendo uma consulta: Pedro é humano? Na área de resultados, o interpretador vai responder true.
Outras consultas para testar:
humano(shrek).
humano(caetano).
humano(X).
false significa “não é possível provar que é verdadeiro”
Além da representação de conhecimento, a IA também envolve técnicas de aprendizado de máquina, que permitem que um sistema aprenda a partir de exemplos e melhore seu desempenho ao longo do tempo. Juntos, a representação de conhecimento e o aprendizado de máquina formam a base da maioria dos sistemas de IA modernos.
O trabalho para desenvolver uma representação do conhecimento está menos preocupado em estabelecer uma ciência do raciocínio correto, mas sim descrever o modo como os humanos realmente adquirem, associam e usam o conhecimento do seu mundo, e com isso propor aplicações em IA, ligados à linguagem natural e raciocínio de senso comum (Luger, 2013).
Vamos agora conhecer algumas das formas mais comuns de representação de conhecimento.
São gráficos que mostram as relações entre conceitos. Cada conceito é representado por um nó, e as conexões entre os nós indicam as relações entre os conceitos. Por exemplo, em uma rede semântica de animais, o nó "gato" poderia estar conectado aos nós "animal", "mamífero", "doméstico" e "felino".
Podemos ainda compreender a redes semânticas analisando quando um ser humano percebe um objeto, onde essa percepção é mapeada primeiro por meio de um conceito, onde esse conceito faz parte do nosso conhecimento completo do mundo e está em conexão através de relacionamentos apropriados a outros conceitos, formando uma compreensão das propriedades e comportamento dos objetos (Luger, 2013).
Para melhor compreendermos a rede semântica da compreensão humana pense na neve, pois a partir da experiência associamos o conceito de neve a outros conceitos, como o frio, branco, boneco de neve, escorregadio e gelo, sendo assim a nossa compreensão sobre a neve e a verdade contida nas declarações como “a neve é gelada” e o “o boneco de neve é branco” se manifestam automaticamente por uma rede de associações.
Ainda temos evidências na psicologia que o ser humano além de associar conceitos, organiza hierarquicamente o conhecimento, para que a informação seja mantida nos níveis mais altos da taxonomia, na rede semântica, por meio de grafos (símbolos) de associação, relação.
"Os grafos, por proverem um meio de representar explicitamente relações usando arcos e nós, têm se mostrado um veículo ideal para formalizar as teorias associacionistas do conhecimento. Uma rede semântica representa o conhecimento como um grafo, com os nós que correspondem a fatos ou conceitos e os arcos como relações ou associações entre conceitos. Tanto nós como os arcos são normalmente rotulados." (Luger, 2013, p. 212)
Vejam que interessante caro aluno, passamos a compreender como organizamos nossos pensamentos e tomamos decisões nessa busca por criar sistemas inteligentes na representação do conhecimento.
Ao utilizar redes semânticas, é possível realizar operações como encontrar caminhos entre conceitos, descobrir relações entre conceitos e inferir novos conhecimentos a partir das informações existentes na rede. As redes semânticas são uma ferramenta poderosa para representar o conhecimento em sistemas de inteligência artificial, permitindo que os computadores processem informações de forma mais natural e intuitiva.
São uma técnica de representação de conhecimento na IA que são usados para modelar objetos ou conceitos em um determinado domínio, como estruturas de dados que permitem armazenar informações sobre objetos e conceitos de uma forma organizada. Um frame geralmente contém informações sobre as propriedades do objeto ou conceito, bem como suas relações com outros objetos e conceitos. Por exemplo, um frame para o conceito "carro" poderia conter informações sobre sua marca, modelo, ano, cor, motor e outras características.
"Os quadros tornam mais fácil a organização hierárquica de nosso conhecimento. Em uma rede, cada conceito é representado por nós e eles no mesmo nível de especificação. Entretanto, muito frequentemente podemos querer considerar um objeto como uma entidade única para certos propósitos e considerar detalhes de sua estrutura interna apenas para outros propósitos. Por exemplo, normalmente não nos damos conta da organização mecânica de um carro até que haja uma pane; somente então resgatamos nosso “esquema do motor do carro” e tentamos encontrar o problema." (Luger, 2013, p. 225)
A utilização de frames permite que as informações sejam organizadas de forma hierárquica, com frames mais genéricos sendo usados para definir conceitos mais amplos, enquanto frames mais específicos são usados para definir conceitos mais específicos. Por exemplo, um frame para um veículo pode ser mais genérico, enquanto um frame para um carro esportivo pode ser mais específico.
Frames são uma técnica poderosa para a representação de conhecimento em sistemas de inteligência artificial, porque permitem que as informações sejam organizadas de uma forma intuitiva e estruturada, o que pode ajudar os sistemas a tomar decisões e realizar tarefas mais eficientemente.
Eles também podem ser facilmente modificados ou atualizados conforme o conhecimento evolui e novas informações se tornam disponíveis (Luger, 2013).
Ainda temos no campo da representação do conhecimento para IA o uso da lógica formal, que consiste em uma linguagem matemática que expressa o conhecimento em termos de proposições, argumentos e inferências, aplicando regras lógicas para inferir novas informações.
Outra técnica para representação do conhecimento é a Representação baseada em Casos onde o sistema aprende por meio de exemplos e utiliza esse conhecimento para resolver novos problemas, onde por exemplo, um sistema reconhece padrões em imagens a partir de exemplos de imagens rotuladas.
A representação do conhecimento é fundamental para muitas aplicações de Inteligência Artificial, incluindo sistemas de recomendação, sistemas especialistas, sistemas de diagnóstico, sistemas de reconhecimento de fala, sistemas de visão computacional e muito mais.
No próximo tema vamos aprofundar um sistema de representação do conhecimento muito utilizado atualmente, as ontologias.
Nesse tema aprofundamos nossos estudos sobre a representação de conhecimento que estuda como representar o conhecimento de uma maneira que possa ser utilizada por sistemas de computador para realizar tarefas inteligentes. Ainda podemos conhecer alguns tipos de técnicas utilizadas para representação do conhecimento como Redes Semânticas, Frames, Lógica Formal e Representação baseada em casos.
Referências
Bibliográficas
Luger, George F. (2013). Inteligência Artificial. 6. ed. São Paulo: Pearson Education do Brasil.
Livro de Referência:
Inteligência Artificial. 6. ed.
Nome do autor: George F. Luger
Pearson Education do Brasil, 2013
Livro de Referência:
Inteligência Artificial aplicada: uma abordagem introdutória
Nome do autor: Luciano Frontino de Medeiros
Pearson Education do Brasil, 2018.