Inteligência artificial e a aquisição de conhecimento

Considerada por muitos especialistas como uma das etapas mais complexas para o desenvolvimento de uma aplicação em inteligência artificial, a aquisição de conhecimento é o foco deste artigo.

Segundo Rezende (2003), a aquisição de conhecimento é a segunda fase no desenvolvimento de um sistema inteligente – sendo a primeira, o planejamento do sistema. O objetivo desta etapa é adquirir a inteligência necessária para criar uma base de conhecimento. 

É importante frisar que existem dois tipos de conhecimentos:

– Conhecimento explícito: é o conhecimento “formal, explicado, declarado”, vem do latim explicitus. Este tipo de conhecimento encontramos em livros, internet, entre outros meios.

– Conhecimento tácito: aquele que existe na cabeça das pessoas, também conhecido como “know-how”. Tácito vem do latim tacitus que significa “não expresso em palavras”.

Em um processo de desenvolvimento de aplicações em inteligência artificial, o grande desafio é adquirir conhecimento tácito. Buchanan et al. (1983) define aquisição de conhecimento como a transferência e transformação do conhecimento especializado (tácito, normalmente) com potencial para resolução de problemas para um programa. O resultado da aquisição de conhecimento é a base de conhecimento.

Alguns especialistas definem a aquisição de conhecimento como um gargalo para construção de um sistema inteligente devido à complexidade do processo. Esta dificuldade se dá por não existir uma metodologia padronizada e confiável para extrair este conhecimento.

O conhecimento tácito é de difícil extração, pois muitas coisas para um especialista na área são tão naturais que não precisam ser explicadas, por isso, muitas vezes só são descobertas por meio de estímulos do responsável pela aquisição de dados. Para piorar a situação, estes profissionais são tão importantes e requisitados que é difícil conseguir a sua atenção e o seu tempo.

Ainda assim, existem técnicas sendo desenvolvidas para este fim, classificadas como: Manuais, Semiautomáticas e Automáticas.

Na Manuais, temos a técnica baseada em descrições ou em literatura, em que um estudo sobre o sistema proposto é realizado utilizando referências homologadas.

Outra técnica manual é a baseada em entrevistas, na qual um especialista no assunto é entrevistado para extrair o conhecimento desejado. Várias práticas podem ser utilizadas para maximizar o ganho da entrevista. No entanto, o mais importante é não realizar uma entrevista sem o conhecimento mínimo sobre o assunto a ser tratado.

A técnica baseada em acompanhamento é uma outra técnica manual que tem como objetivo acompanhar um especialista trabalhando. A ideia é mapear o raciocínio do especialista e extrair o conhecimento necessário em casos reais (ou complementar a aquisição de conhecimento).

Técnicas Semiautomáticas foram criadas para suprir as falhas que podem ocorrer nas técnicas manuais, diminuindo os ruídos na comunicação entre as partes envolvidas. Por meio desta técnica, ferramentas computacionais ajudam a codificar o conhecimento a ser incorporado no sistema. Estas metodologias, normalmente, reduzem a quantidade de pessoas envolvidas no processo e problemas na comunicação.

Outra técnica existente é a Automática, também conhecida como técnica baseada em aprendizado de máquina. O aprendizado de máquina é uma área de inteligência artificial que tem o objetivo de desenvolver algoritmos e metodologias computacionais que permitam o computador aprender, ou seja, adquirir “sozinho” o conhecimento.

Como isto é feito? Por meio dos exemplos históricos, podemos ter exames de imagens com anamneses e laudos – de preferência laudos com dados estruturados. É importante frisar que a representatividade dos exemplos disponíveis para o processo de aprendizado interfere na qualidade do produto final.

Normalmente, estes exemplos estão alojados em bases que contêm dados inconsistentes, incompletos, ruídos e erros. Para um processo de aprendizado de máquina, um trabalho essencial é o ajuste dessa base.  De acordo com a técnica de aprendizado utilizada, ela pode ser mais ou menos suscetível aos dados inconsistentes.

Tipos de aprendizado de máquina

Podemos dividir o aprendizado de máquina, de forma simplificada, em dois tipos:

– Supervisionado: mostram-se os dados e os objetivos para que o modelo de conhecimento seja construído;
– Não supervisionado: neste método, o algoritmo tenta agrupar os exemplos por similaridade.  Ou seja, exemplos mais similares tendem a ficar no mesmo grupo.

Alguns autores separam do aprendizado supervisionado, o aprendizado por reforço, onde são trabalhados os conceitos de recompensa ou punição, de acordo com a decisão tomada. Uma ação tomada pelo sistema para um estado satisfatório é reforçada, caso contrário é punida (este conceito foi inspirado na psicologia na abordagem chamada behaviorismo, cujo o maior expoente é B. F. Skinner).

Os algoritmos de aprendizado de máquina se baseiam em paradigmas de aprendizado, como por exemplo:

Simbólico: compreende a construção de conhecimento, a partir da análise de exemplos. O conhecimento pode ser representado através de expressões lógicas, árvores, regras de produção, etc.

Conexionista: utiliza modelos matemáticos simplificados inspirados no sistema nervoso, utilizado na técnica de redes neurais.

Evolucionário: baseia-se em modelos da evolução natural e reprodução genética, utilizado em técnicas de algoritmo genético e programação genética, por exemplo.

Existe muito mais sobre aquisição e representação de conhecimento, paradigmas e aprendizado de máquina. O essencial, neste caso, é esclarecer de forma simples este universo que é uma das etapas mais importantes na criação de um sistema que utilize inteligência artificial.

A busca por transformar o conhecimento tácito em um sistema vem desde os primórdios da inteligência artificial, e hoje estamos em um momento onde já temos dados suficientes para trabalharmos com estas técnicas em segmentos diversos, inclusive, para melhoria e otimização de mecanismos para a área de saúde.

* Vincenzo De Roberto é formado em Engenharia de Computação, com mestrado em Engenharia Elétrica pela Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio) e doutorado em Computação de Alto Desempenho pela Universidade Federal do Rio de Janeiro (UFRJ). É professor de Inteligência Computacional e Banco de dados, Diretor Executivo de Desenvolvimento e Cofundador da Medilab Sistemas.