Você está na página 1de 258

Inteligência

Artificial para
Automação
PROFESSORA
Me. Larissa Torres Ferreira

ACESSE AQUI O SEU


LIVRO NA VERSÃO
DIGITAL!
DIREÇÃO UNICESUMAR
Reitor Wilson de Matos Silva Vice-Reitor Wilson de Matos Silva Filho Pró-Reitor de Administração Wilson de Matos Silva Filho
Pró-Reitor Executivo de EAD William Victor Kendrick de Matos Silva Pró-Reitor de Ensino de EAD Janes Fidélis Tomelin
Presidente da Mantenedora Cláudio Ferdinandi

NEAD - NÚCLEO DE EDUCAÇÃO A DISTÂNCIA


Diretoria Executiva Chrystiano Mincoff, James Prestes, Tiago Stachon Diretoria de Graduação e Pós-graduação Kátia Coelho Diretoria
de Cursos Híbridos Fabricio Ricardo Lazilha Diretoria de Permanência Leonardo Spaine Diretoria de Design Educacional Paula
Renata dos Santos Ferreira Head de Graduação Marcia de Souza Head de Metodologias Ativas Thuinie Medeiros Vilela Daros Head
de Recursos Digitais e Multimídia Fernanda Sutkus de Oliveira Mello Gerência de Planejamento Jislaine Cristina da Silva Gerência
de Design Educacional Guilherme Gomes Leal Clauman Gerência de Tecnologia Educacional Marcio Alexandre Wecker Gerência
de Produção Digital e Recursos Educacionais Digitais Diogo Ribeiro Garcia Supervisora de Produção Digital Daniele Correia
Supervisora de Design Educacional e Curadoria Indiara Beltrame

PRODUÇÃO DE MATERIAIS
Coordenador de Conteúdo Fábio Augusto Gentilin Designer Educacional Lucio Ferrarese Curadoria Carla Fernanda
Revisão Textual Cintia Prezoto Ferreira e Meyre Aparecida Barbosa Editoração Adrian Marçareli; Lucas Pinna Silveira
Lima Ilustração Andre Luis Azevedo Fotos Shutterstock.

FICHA CATALOGRÁFICA

C397 CENTRO UNIVERSITÁRIO DE MARINGÁ.


NÚCLEO DE EDUCAÇÃO A DISTÂNCIA. FERREIRA, Larissa Torres
Inteligência Artificial para Automação. Larissa Torres Ferreira.
Maringá - PR: Unicesumar, 2022.

258 P.
ISBN: 978-65-5615-884-6
“Graduação - EaD”.

1. Inteligência 2. Automação 3. Algoritmo. EaD. I. Título.

CDD - 22 ed. 006

Impresso por:
Pró Reitoria de Ensino EAD Unicesumar
Bibliotecário: João Vivaldo de Souza CRB- 9-1679 Diretoria de Design Educacional

NEAD - Núcleo de Educação a Distância


Av. Guedner, 1610, Bloco 4 - Jd. Aclimação - Cep 87050-900 | Maringá - Paraná
www.unicesumar.edu.br | 0800 600 6360
A UniCesumar celebra mais de 30 anos de história
avançando a cada dia. Agora, enquanto Universidade,
ampliamos a nossa autonomia e trabalhamos Tudo isso para honrarmos a
diariamente para que nossa educação à distância nossa missão, que é promover
continue como uma das melhores do Brasil. Atuamos a educação de qualidade nas
sobre quatro pilares que consolidam a visão diferentes áreas do conhecimento,
abrangente do que é o conhecimento para nós: o formando profissionais
intelectual, o profissional, o emocional e o espiritual. cidadãos que contribuam para o
desenvolvimento de uma sociedade
A nossa missão é a de “Promover a educação de
justa e solidária.
qualidade nas diferentes áreas do conhecimento,
formando profissionais cidadãos que contribuam
para o desenvolvimento de uma sociedade justa
e solidária”. Neste sentido, a UniCesumar tem um
gênio importante para o cumprimento integral desta
missão: o coletivo. São os nossos professores e
equipe que produzem a cada dia uma inovação, uma
transformação na forma de pensar e de aprender.
É assim que fazemos juntos um novo conhecimento
diariamente.

São mais de 800 títulos de livros didáticos como este


produzidos anualmente, com a distribuição de mais de
2 milhões de exemplares gratuitamente para nossos
acadêmicos. Estamos presentes em mais de 700 polos
EAD e cinco campi: Maringá, Curitiba, Londrina, Ponta
Grossa e Corumbá, o que nos posiciona entre os 10
maiores grupos educacionais do país.

Aprendemos e escrevemos juntos esta belíssima


história da jornada do conhecimento. Mário Quintana
diz que “Livros não mudam o mundo, quem muda
o mundo são as pessoas. Os livros só mudam as
pessoas”. Seja bem-vindo à oportunidade de fazer a
sua mudança!

Reitor
Wilson de Matos Silva
Me. Larissa Torres Ferreira

Olá, eu sou a Larissa. Tudo bom com você? Eu resido no Ceará, na ci-
dade do Eusébio (bem pertinho do Parque Aquático Beach Park). Um
paraíso! Mas sou carioca de nascimento e vim para o Nordeste no início
da adolescência. Eu morei antes no Recife, a terra do Frevo. Pense em
um lugar também muito bom!
Sou solteira e moro com a minha mãe, tenho como hobbies assistir
a séries e a filmes e com muita pipoca. Para queimar as calorias, faço
musculação, mas já fui nadadora no Vasco, nos anos 80. E também
adoro música, seja para ouvir seja para dançar. Já toquei em um bloco
de carnaval chamado Baqueta, tentei primeiro o tamborim, depois caixa,
mas me encontrei no reco-reco. Cheguei a desfilar nas ruas de Fortaleza
no pré-carnaval, e foi uma excelente experiência.
Sobre minha trajetória profissional, eu comecei na TI me formando
em Análise de Sistemas, mas eu já trabalhava como webdesigner, fazen-
do sites e, também, na área de suporte. Posteriormente, fiz meu MBA
em Administração e Marketing e atuei no setor de marketing por mais
de doze anos. Afinal, estratégia precisa de dados e informação. Como
trabalhei muitos anos em uma fábrica de Lingerie, senti necessidade de
cursar Logística e assim fiz.
Aqui você pode Como mestrado, cursei Educação e defendi os objetos de aprendi-
conhecer um
zagem como fator motivacional para os alunos em EAD, pois sempre
pouco mais sobre
fui docente ao mesmo tempo em que trabalhei na fábrica. Com a
mim, além das
informações do pandemia, tudo mudou, e fiquei somente na educação como con-
meu currículo. teudista, docente e consultora.
Espero que você goste desta disciplina e possa amar a tecnologia
tanto quanto eu.

http://lattes.cnpq.br/8858297582288826
REALIDADE AUMENTADA

Sempre que encontrar esse ícone, esteja conectado à internet e inicie o aplicativo
Unicesumar Experience. Aproxime seu dispositivo móvel da página indicada e veja os
recursos em Realidade Aumentada. Explore as ferramentas do App para saber das
possibilidades de interação de cada objeto.

RODA DE CONVERSA

Professores especialistas e convidados, ampliando as discussões sobre os temas.

PÍLULA DE APRENDIZAGEM

Uma dose extra de conhecimento é sempre bem-vinda. Posicionando seu leitor de QRCode
sobre o código, você terá acesso aos vídeos que complementam o assunto discutido

PENSANDO JUNTOS

Ao longo do livro, você será convidado(a) a refletir, questionar e transformar. Aproveite


este momento.

EXPLORANDO IDEIAS

Com este elemento, você terá a oportunidade de explorar termos e palavras-chave do


assunto discutido, de forma mais objetiva.

EU INDICO

Enquanto estuda, você pode acessar conteúdos online que ampliaram a discussão sobre
os assuntos de maneira interativa usando a tecnologia a seu favor.

Quando identificar o ícone de QR-CODE, utilize o aplicativo


Unicesumar Experience para ter acesso aos conteúdos on-line.
O download do aplicativo está disponível nas plataformas:
Google Play App Store
INTELIGÊNCIA ARTIFICIAL PARA AUTOMAÇÃO

Os avanços na automação e na Inteligência Artificial (IA) abriram caminho para soluções da vida real, que podem
ajudar as organizações a economizar dinheiro e recursos. A tecnologia pode ser usada para tarefas necessárias,
mas tediosas e demoradas, que levariam muito mais tempo para os humanos e seriam mais propensas a erros.
No entanto, tanto a inteligência artificial quanto a automação inteligente são, frequentemente, mal compreendidas
e, quando se trata de IA, o hype está se espalhando mais rápido do que a ciência real.
Subconjuntos de inteligência artificial, como aprendizado de máquina e aprendizado profundo, podem ajudar
as organizações a filtrarem seus dados e lidarem com soluções do mundo real, como reconhecimento facial ou
contagem de pessoas. A automação inteligente pode ajudar ainda mais as organizações, usando dados existentes
e automatizando a análise com base nesses dados, ajudando a melhorar as operações e o fluxo de trabalho, além
de reduzir as respostas redundantes. Mas nenhuma tecnologia é “inteligente” no sentido de que eles podem pensar
ou agir como humanos. Estamos muitos anos longe disso. No entanto ambas as tecnologias possuem soluções
reais que podem ser implantadas hoje, proporcionando benefícios reais às organizações. Mas, afinal, quais os
benefícios da aplicação de Inteligência artificial na automação para as organizações?
A inteligência artificial aplicada à automação representa uma mudança fundamental na maneira como as or-
ganizações de todos os tamanhos abordam o aprendizado das máquinas e a ciência de dados. Aplicar métodos
tradicionais de aprendizado de máquina a problemas de negócios do mundo real consome tempo, consome
muitos recursos e é desafiador. Requer especialistas nas diversas disciplinas, incluindo cientistas de dados (alguns
dos profissionais mais requisitados do mercado de trabalho atualmente).
A automatização por meio de inteligência artificial muda isso, facilitando a construção e o uso de modelos de
aprendizado de máquina no mundo real, executando processos sistemáticos em dados brutos e selecionando
modelos que extraem as informações mais relevantes dos dados. A IA na automação incorpora as melhores
práticas de aprendizado de máquina de cientistas de dados de alto nível para tornar a ciência de dados mais
acessível em toda a organização.
Portanto, a inteligência artificial aplicada à automação permite que os usuários eliminem tarefas tediosas ou
trabalhos manuais mundanos, ajudando-os a tomar decisões mais rápidas e informadas. Ele pode automatizar
algumas dessas decisões também. IA integra automação e dados juntos. Uma maneira de analisar a IA é que ela
usa os dados existentes de uma organização de diferentes tecnologias e permite a análise de dados em larga
escala para automatizar as operações e melhorar a produtividade.
A inteligência artificial aplicada à automação é aquela esfera da inteligência artificial onde as máquinas são res-
ponsáveis por
​​ executar tarefas diárias, de modo mais rápido e eficaz que um trabalhador humano. A importância
da inteligência artificial e seus componentes subsequentes são conhecidos há muito tempo. Eles estão sendo
vistos como ferramentas e técnicas para tornar este mundo um lugar melhor. E não é que você precise ir a esses
aparelhos tecnológicos sofisticados para poder usá-los. Observe ao seu redor e analise em quais momentos do
seu dia você tem usado inteligência artificial para facilitar suas tarefas. Quais utilizações você identificou?
É possível notar, de forma simplificada, como a inteligência artificial torna nossa vida mais fácil. Estas tecnologias
UNIDADE 1

são um grande trunfo para os humanos e são programadas para reduzir ao máximo o esforço humano. Elas
tendem a possuir a capacidade de trabalhar de forma automatizada. Portanto, a intervenção manual é a última
coisa que pode ser solicitada ou vista durante a operação de peças associadas a essa tecnologia. As máquinas
tendem a acelerar suas tarefas e seus processos com um nível garantido de precisão e exatidão e, portanto, é
isso que as torna uma ferramenta útil e importante. Além de tornar o mundo um lugar livre de erros por suas
técnicas simples e cotidianas, essas tecnologias e aplicações não estão relacionadas apenas à nossa vida geral
e cotidiana. Também são impactantes e têm importância para outros domínios também, como a indústria, o
campo de pesquisas médicas, a produção de jogos e até na gestão de instituições financeiras e bancárias. Ou
seja, a inteligência artificial já se faz presente em nossa sociedade.
Caro(a) aluno(a), em sua jornada de aprendizado durante as unidades de ensino desta disciplina, logo na
Unidade 1, será possível entender a funcionalidade dos algoritmos de busca e como eles são utilizados para
facilitar tarefas do cotidiano, como encontrar informações em um grande volume de dados. Partindo para a
Unidade 2, nós nos aprofundaremos mais na ciência dos dados e em como a inteligência artificial trabalha com
os dados para obter as melhores soluções para as diversas questões do cotidiano.
Na Unidade 3, você observará como a inteligência artificial manipula os dados e utiliza de frames, que são
estruturas de dados pré-definidas, para entregar as soluções necessárias. Já na Unidade 4 mergulharemos nas
definições e nas aplicações de sistemas especialistas e suas inúmeras vantagens de utilização. A Unidade 5, então,
trará conhecimentos sobre linguagem de programação Prolog e LISP, que são duas das principais linguagens
aplicadas à inteligência artificial. Desse modo, então, poderemos caminhar para a Unidade 6, que traz consigo
a construção dos sistemas especialistas e quais ferramentas e pessoas serão necessárias e/ou úteis para esta
tarefa, utilizando os conhecimentos aprendidos nas unidades anteriores para a criação desses sistemas.
Na Unidade 7, você conhecerá a forma de aprendizagem das máquinas e como elas utilizam as informações
previamente fornecidas para criar novas informações, a fim de solucionar as questões apresentadas, sendo uma
das áreas mais promissoras dentro da inteligência artificial. Assim, podemos partir para a Unidade 8, que traz
uma explicação aprofundada das definições e das aplicabilidades das redes neurais que, como veremos, serão
essenciais para o processo de aprendizagem das máquinas. Então, poderemos entrar na Unidade 9, falando
sobre o reconhecimento de padrões e como esta prática permite analisar e manipular os dados utilizados para
o processo de aprendizagem em inteligência artificial, observando suas aplicações, a importância e os problemas
encontrados na aplicação deste conhecimento. Com isso, será possível compreender como funcionam muitas
das aplicações práticas em inteligência artificial.
Na ciência da computação e na área da tecnologia, a inteligência artificial tem desempenhado um papel muito
importante e, ultimamente, este termo vem ganhando muito mais popularidade, devido aos recentes avanços
no seu campo de estudo e do aprendizado de máquina. Ou seja, isso continuará a crescer no futuro, portanto,
não deixe de aprender, envolva-se e se divirta com a tecnologia o máximo que puder, estudando as unidades
desta disciplina e seus materiais de apoio!

7
1
11 2
39
ALGORITMO ÁRVORES DE
DE BUSCA DECISÃO

3
63 4
89
REPRESENTAÇÃO SISTEMAS
DO CONHECIMENTO ESPECIALISTAS
(SISTEMAS DE
PRODUÇÃO,
FRAMES)

5 113 6
137
LINGUAGENS FERRAMENTAS DE
PROLOG E LISP DESENVOLVIMENTO
DE SISTEMAS
ESPECIALISTAS
7 8
163 189
APRENDIZAGEM REDES
DE MÁQUINA (AM) NEURAIS

9
217
TÓPICOS ESPECIAIS
EM RECONHECIMENTO
DE PADRÕES
1
1
Algoritmo
de Busca
Me. Larissa Torres Ferreira

Olá, seja bem-vindo(a) à Unidade 1 de seu livro. Neste capítulo,


você estudará um dos principais fundamentos na resolução de
problemas: os algoritmos de busca. A automação consiste em uti-
lizar um programa em uma máquina para que esta consiga realizar
atividades sem a intervenção humana. O controle é feito por meio
de algoritmos que dirão a sequência de ações para o desempenho
da tarefa final. Assim, são aplicados os algoritmos de procura, que
fazem parte do campo de estudo da inteligência artificial. Nesta
unidade você entenderá como esses algoritmos de busca funcio-
nam desde sua definição bem como sua importância. Em seguida,
conheceremos os principais tipos e suas características. Com isso
será possível entender meios de aplicar os algoritmos de procura
na resolução de problemas.
UNICESUMAR

Em nosso cotidiano, utilizamos diversas formas para buscarmos informações, e um dos meios seria a
utilização de buscadores, como o Google. Neste aspecto, os ingredientes, como velocidade, eficiência
e assertividade, garantem que o algoritmo de busca possa trazer a informação que se busca. O Google
utiliza, especificamente, o software chamado PageRank e uma infinidade de algoritmos de análise
com o propósito de intermediar a importância das informações buscadas pelo motor de busca. Por
exemplo, se procurar pelo significado da palavra manga, o buscador trará desde fruta, especificação de
roupa ou mesmo quadrinhos japoneses, pois o algoritmo trará os aspectos mais acessados desta busca.
A inteligência artificial apresenta características associadas ao ser humano, como aprendizado,
raciocínio, resolução de problemas entre outros. Pensemos nos assistentes virtuais, comumente
conhecidos como Alexa. Estes, hoje, podem gerir sua agenda pessoal, efetuar buscas e fazer com-
parativos de preços. Mas como isso é possível? Por meio de uma inteligência artificial que utiliza
sistemas de computação inteligente e algoritmos.
Em se tratando de indústria, muitas produções são feitas por robôs com softwares que agem exa-
tamente como um ser humano (controlador) faria, tais como: movimentar, registrar, executar outras
atividades - mesmo atividades inseguras, como no caso de cargas muito pesadas. Pelo aumento do
consumo e para atender as demandas de mercado, muitas fábricas utilizam robôs que, diariamente,
tomam decisões e localizam itens na produção. A dificuldade dos seres humanos em serem tão ágeis
quanto assertivos tem contribuído para a escolha de robôs na produção e na logística. Mas não só isso,
em nossas residências e por meio do IOT (Internet of Things, Internet das Coisas) teremos cada vez mais
robôs para várias atividades. Acredito que você tenha ou conheça um aspirador robô. Não é verdade?
Portanto, se as empresas desejam agilidade e menos custos de perda na produção, uma pessoa co-
mum deseja assistentes e equipamentos de IOT para garantir o ganho de tempo. Sim, os robôs colabo-
rativos, ou seja, aqueles que aprenderão de acordo com seus operadores farão parte do nosso cotidiano.
De que modo os algoritmos de busca podem ajudar nas atividades cotidianas e nas corporações?
Por que precisamos de algoritmos de busca? Frequentemente, precisamos encontrar determinado
item de dados entre muitos outros dados. Por exemplo, você pode precisar encontrar o número de
telefone de alguém em seu telefone ou o endereço de determinada empresa no seu país. É por isso que
os algoritmos de pesquisa são importantes. Sem eles, você teria que olhar cada item, cada número de
telefone ou endereço comercial, individualmente, para ver se é o que você está procurando. Em um
grande conjunto de dados, isso levará muito tempo. Em vez disso, um algoritmo de busca pode ser
usado para ajudar a encontrar o item de dados que você está procurando.
Outro exemplo: você efetua uma compra virtual, e esta compra cria um pedido - dentro de um
estoque cujas cargas são movimentadas por robôs. Em vez de estes robôs ficarem procurando item
a item, estes buscarão o produto deste pedido de acordo com o endereço logístico do armazém.
Desse modo, existirá agilidade no processo de separação de pedidos por conta destes algoritmos
de busca nos robôs de estoques logísticos.

12
UNIDADE 1

Para ilustrar o conceito de algoritmo de busca assistiremos ao vídeo 5


Amazing Warehouse Robots You Must See - YouTube (5 robôs de armazém
incríveis que você deve conhecer) que exemplifica robôs que utilizam os
algoritmos de busca para separar, escolher, localizar e movimentar itens
específicos. Agora é com você! Localize no Google ou no Youtube outros
exemplos de robôs e indústrias que utilizam o algoritmo de busca em robôs.
Escolha um deles e faça uma lista informando cada movimento executado
pelo robô e a ordem em que executa. Nós estudaremos como uma ação
ou outra pode ser escolhida primeiro, com base nos algoritmos de procura.
Temos uma situação em que você precisa prever as ações que um robô precisa executar para realizar
um inventário de um estoque. Os robôs utilizados em armazéns e estoques são muito importantes
para detectar produtos extraviados, tomar decisões baseados em dados, organizar e separar pedidos.
O algoritmo de busca é utilizado neste tipo de robô principalmente para ajudar em meio a escolhas
tornar um padrão na execução de atividades. No vídeo anterior, gostaria que você analisasse:
• Os robôs escolhem, aleatoriamente, um produto no estoque?
• A separação de objetos feitos pelo robô tem uma característica ou padrão específico?
• Há necessidade da intervenção humana na ação do robô em fábricas?

Os robôs são muito eficientes em estoques e armazéns, mas devemos ter em mente que sistemas
de automação, pessoas treinadas para a programação bem como um espaço empresarial logístico
apropriado devem ser organizados e assertivos para o sucesso das operações. Considerando tudo
isso, anote seus resultados no seu Diário de Bordo.

13
UNICESUMAR

Caro(a) aluno(a), imagine que você fará uma viagem de carro, saindo da sua cidade e indo para cidade
vizinha. Imagine que, para isso, há vários caminhos, várias trajetórias que possibilitam esse desloca-
mento de uma cidade para outra. Para decidir, de forma inteligente, você precisa ter algumas informa-
ções sobre cada caminho: provavelmente, pensará no tempo que a viagem levará em cada caminho,
no custo com combustível (e onde abastecer) e na complexidade (as consequências da qualidade da
estrada para o seu carro ou quantas paradas necessárias em cada caminho, por exemplo). Depois de
decidido, você segue viagem, executando ações conforme a decisão tomada e, assim, pode atingir seu
objetivo de chegar à cidade vizinha.
O exemplo dado consiste na formulação de um problema e uma meta: qual o melhor caminho
para sair da cidade atual e chegar à cidade vizinha. Nesse processo, você verificou as várias opções de
caminho para decidir o que fazer primeiro, as diferentes sequências possíveis de ações que levam à
melhor escolha. Você acionou um procedimento de busca para resolver o problema e atingir o objetivo.
Os algoritmos de procura executam ações como essa para várias aplicações: eles têm o objetivo de
solucionar problemas de forma inteligente. Para isso, executam um processo de busca para encontrar
soluções para problemas variados, utilizando uma sequência de ações que levam a estados ou respos-
tas desejáveis. Os algoritmos de procura pegam um problema, como entrada e fornecerão diferentes
alternativas para definir a sequência de ações para se chegar a uma solução.

14
UNIDADE 1

Para que você possa entender, um algoritmo é uma sequência de instruções, e esta informa o que um
programa ou sistema deve fazer, sempre produzindo uma solução correta para um problema. São muito
importantes em nosso dia a dia, pois os algoritmos garantem o gerenciamento de fábricas, entregas
de mercadorias e até pilotam aeronaves. Os algoritmos estão presentes em várias programações como
Java, C, C++, Python, Fortran, Matlab, entre outras.
A pesquisa de algoritmos é uma etapa básica e fundamental na computação feita por meio do mé-
todo passo a passo para localizar dados específicos entre uma coleção de dados. Todos os algoritmos
de busca utilizam uma chave de busca para completar o procedimento. E eles devem retornar um
status de sucesso ou falha (em valor booleano verdadeiro ou falso). Ou seja, refere-se a um sistema
lógico usado para declarações verdadeiras/falsas. Como o computador opera de modo binário(0 ou
1), baseando-se como sendo 1 para verdadeiro e 0 para falso.

Nesta unidade, entraremos em contato com novos termos, vamos entendê-los.


Booleano: refere-se a um sistema lógico usado para declarações verdadeiras/falsas. Como o com-
putador opera de modo binário (0 ou 1), baseando-se como sendo 1 para verdadeiro e 0 para falso.
Tabelas Hash: é uma estrutura de dados que armazena dados de forma associativa. Em uma tabela
hash, os dados são armazenados em um formato de matriz, onde cada valor de dados tem seu
próprio valor de índice único. O acesso dos dados torna-se muito rápido se soubermos o índice
dos dados desejados.
Array: uma matriz é uma coleção de elementos de dados semelhantes armazenados em locais de
memória contíguos. É a estrutura de dados mais simples onde cada elemento de dados pode ser
acessado, diretamente, usando apenas seu número de índice.

Como funciona um algoritmo de busca? Um algoritmo de busca por definição recebe um problema na
entrada e apresenta uma solução na saída, descrevendo uma sequência de ações definidas. O resultado
destas ações é colocado em execução em três passos:

15
UNICESUMAR

2º PASSO:
1º PASSO: Busca de 3º PASSO:
Formulação do sequência de Execução das
objetivo e do ações para ações uma
resolver o por uma
problema problema

Figura 1 - Passos na execução de um algoritmo de procura / Fonte: a autora.

Descrição da Imagem: a imagem trata-se de um infográfico de sentido único, contendo três retângulos de fundo azul, com setas azuis
conectando no sentido da esquerda para a direita. No primeiro retângulo, está escrito: “1º passo: Formulação do objetivo e do proble-
ma”; no segundo retângulo, está escrito: “2º passo: Busca de sequência de ações para resolver o problema”; e, no terceiro retângulo,
está escrito: “3º passo: Execução das ações uma por uma”.

O passo inicial é definir o objetivo que o programa deve alcançar, com base na situação atual.
Isso auxilia na delimitação do problema e na seleção de sequências de ações possíveis para atingir
este objetivo. No exemplo apresentado, o objetivo é chegar à cidade vizinha a partir da cidade
atual. O mesmo poderia ser estabelecido usando a automação em uma máquina ou equipamen-
to: a partir da posição inicial em que se encontra, deve chegar a uma posição final ou concluir
determinada atividade. Para ser mais específico, podemos pensar em um aspirador de pó robô,
em que o objetivo estabelecido é limpar todo um cômodo a partir de sua posição inicial e da
situação atual de sujeira em que esse cômodo se encontra.
Após a formulação do objetivo, temos a formulação do problema, em que serão consideradas, a
partir do estado inicial, as ações subsequentes que levarão ao objetivo. Nessa etapa, avaliam-se quais
ações e estados considerar e quais influências de se adotar determinados caminhos. O processo de
formulação resultará em um problema que dependerá do nível de conhecimento disponível sobre os
caminhos possíveis e do estado inicial.
Como você pode observar, na formulação do problema, algumas etapas são executadas e é preciso
entender alguns termos envolvidos. A partir de um estado atual, são levantadas as ações possíveis
subsequentes, denominadas funções sucessoras. No exemplo da viagem, qual a primeira ação que você
poderia ter? Poderia ser abastecer o carro, calibrar os pneus, ou seguir diretamente por uma estrada
ou outra. No caso do aspirador robô, a partir de um estado atual, as ações possíveis poderiam ser: se
movimentar para esquerda, para direita, para frente ou para trás, enquanto aspira continuamente.

16
UNIDADE 1

Posição Inicial
Estado Inicial do aspirador
de pó robô

Ações Para esquerda Para frente Para direita Para trás

Estados
após as ações Posição A Posição B Posição C Posição D

Figura 2 - Possíveis ações de um aspirador de pó robô a partir de uma posição inicial, enquanto aspira continuamente
Fonte: a autora.

Descrição da Imagem: a imagem trata-se de um infográfico de sentido de cima para baixo. Na primeira linha do infográfico, deno-
minada “Estado Inicial”, está um retângulo azul, escrito “Posição Inicial do aspirador de pó robô”, do qual saem quatro setas pretas. A
linha do meio, denominada “Ações”, contém quatro retângulos de fundo azul conectados por setas com o retângulo acima, e cada um
com uma seta preta conectando no sentido de cima para baixo com outros quatro retângulos. Na última linha, denominada “Estados
após as ações”, estão os últimos quatro retângulos azuis. Após a “Posição Inicial do aspirador de pó robô”, no primeiro retângulo da
esquerda para a direita, está escrito: “Para esquerda”, ligando a um retângulo escrito “Posição A”. No segundo retângulo, está escrito:
“Para frente” e ligando a um retângulo escrito “Posição B”. No terceiro retângulo, está escrito: “Para direita” e ligando a um retângulo
escrito “Posição C”. No quarto retângulo, está escrito: “Para trás” e ligando a um retângulo escrito “Posição D”.

Esta análise permite levantar o espaço de estados do problema, que são todos os estados possíveis
de se alcançar, executadas diferentes ações, a partir do estado inicial. O espaço de estados é apre-
sentado em forma de grafo, em que os nós são estados, e os arcos que ligam os nós são as ações.
Um caminho é um conjunto de estados conectados por uma sequência de ações. Em cada estado, é
importante que o programa verifique se o objetivo foi atingido. Ou seja, após cada ação, deve ser ve-
rificado se o estado alcançado é o estado objetivo. No exemplo da viagem, após determinada ação,
conseguiu-se chegar na cidade vizinha? No caso do aspirador robô, após determinada ação, todo o
cômodo foi percorrido e limpo? Se não, há mais algumas ações para se fazer.

17
UNICESUMAR

Caro(a) aluno(a), você pensa que a Inteligência Artificial está fora do seu
alcance? Que só faz parte de filmes de ficção científica? Ouça agora como
o IOT faz parte do nosso cotidiano e que cada vez mais precisamos de
dispositivos inteligentes em nossas residências. O IoT está em toda a
parte, transformando objetos físicos em um ecossistema de informa-
ções compartilhadas entre dispositivos que são vestíveis, portáteis, até
implantáveis, tornando nossa vida rica em tecnologia e dados. Ouça,
agora, e entenda a influência do IOT em nosso cotidiano - dá um play.

No caminho, desde o estado inicial até o objetivo, como falei anteriormente, temos um conjunto de
estados ligados por uma sequência de ações. Cada ação tomada acarretará um custo numérico, de-
nominado custo de passo. Esse conjunto de custos de passo presentes nas ações sequenciais de um
caminho resultarão no custo de caminho. No exemplo da viagem, o custo poderia ser entendido como
o tempo ou a distância em quilômetros em cada trajeto. No aspirador, o custo poderia ser levantado
considerando o número de passos necessários para cada caminho.
Todas estas análises de formulação resultarão em um problema que será fornecido como dado
de entrada a um algoritmo para sua resolução. A solução consiste na utilização de um caminho até
um estado objetivo, ou nó objetivo, partindo de um estado inicial, e é interessante que essa solução
apresente o menor custo de caminho, denominada solução ótima.
Após o problema formado, é aplicado um processo de busca para permitir sua resolução.
É aí que são aplicados os algoritmos de procura. Vimos que a partir de cada estado temos um
conjunto de ações possíveis e que resultam em outros estados. O método de procura utilizado
no algoritmo dirá qual ação, entre as possíveis, será seguida primeiro na busca por essa solução
e quais ações sequenciais posteriores até que o estado objetivo seja alcançado. A cada resolução
de um problema, o algoritmo reinicia a formulação dos objetivos e do problema. Neste caso,
desenvolvendo outro objetivo e recomeçando a sequência.
Na aplicação destes algoritmos de procura, você, ao programar, deve conseguir analisar e
prever o comportamento do programa ou sistema. Deve verificar se é garantido que o algoritmo
encontrará uma solução, se ela existir, ou se há o risco de o algoritmo ficar preso em um laço de
repetição, sem chegar a um fim. Além disso, analisar se a estratégia de busca utilizada encontra a
solução ótima e quanto tempo e memória são necessários nesse processo. A qualidade da auto-
mação de uma máquina depende da qualidade da programação aplicada.
Para analisar o desempenho dos algoritmos de procura, é importante entender um pouco mais
sobre grafos e árvores de busca. Ambos são desenvolvidos da mesma forma, considerando os nós
e os arcos que definem os caminhos possíveis no espaço de estados. Porém o grafo considera que
um mesmo estado pode ser atingido por vários caminhos, o que acarreta maior complexidade.
Cada um dos caminhos apresentará uma profundidade, que é o número de passos necessários
para chegar no estado objetivo partindo do estado inicial.

18
UNIDADE 1

Apesar de nós representarem estados, nem todos os estados são nós. Isso porque os nós são uma
estrutura de dados em um caminho específico a partir de um nó-pai, aquele que gerou. Os estados
não necessariamente estão no mesmo caminho, correspondendo a uma configuração do mundo.
Além disso, dois nós podem representar um mesmo estado do mundo, se estiverem em caminhos
diferentes. Os nós sucessores são chamados nós-filho. Também é utilizada a denominação nós folha,
quando os nós-filho são gerados, mas ainda não expandidos e comporão a borda da árvore de busca.
O algoritmo de procura dirá qual nó será expandido no próximo passo.
Em inteligência artificial, o desempenho é medido considerando a complexidade de tempo e espaço
(memória utilizada). Para a verificação, são analisados o número máximo de sucessores de qualquer
nó (fator de ramificação); o número de arcos até o estado objetivo por meio do menor caminho (pro-
fundidade do nó objetivo); e o comprimento máximo de qualquer caminho no espaço de estados. O
tempo, no geral, é medido em função do número de nós gerados no processo de busca, e o espaço
estará relacionado com o número máximo de nós armazenados na memória.

Título: O Dilema das redes


Ano: 2020
Sinopse: especialistas em tecnologia e profissionais da área fazem um
alerta: as redes sociais podem ter um impacto devastador sobre a demo-
cracia e a humanidade.
Comentário: O Dilema das Redes é um documentário da Netflix, que apre-
senta como as Inteligências Artificiais influenciam a sociedade bem como
apresentam as técnicas de publicidade avançadas utilizadas pelas redes
sociais. Pelas ações do usuário, os algoritmos verificam quais as suas preferências de conteúdos,
e, assim, configuram produtos, anúncios e fotos entre outros conteúdos, conforme a necessidade
do usuário para maior assertividade no consumo deste público.

O algoritmo de procura é capaz de resolver o problema de pesquisa, nomeadamente, para recuperar


uma informação armazenada dentro de alguma estrutura de dados, ou calculada no espaço de pesquisa
de um domínio de problema, quer com valores discretos quer contínuos. Ou seja, os algoritmos de
pesquisa são projetados para verificar ou recuperar um elemento de qualquer estrutura de dados onde
ele está sendo armazenado. Eles procuram um alvo (chave) no espaço de busca, como:
• Todos os alunos da classe.
• Todos os números em determinada lista.
• Essas operações fornecem um dos dois resultados possíveis - Sucesso ou Falha, ou seja,‘Sucesso’
quando o alvo é encontrado, e ‘Falha’ quando o alvo não é encontrado.

19
UNICESUMAR

Os algoritmos de procura aplicados na ciência da computação, empregados em análise de dados, são


diferenciados de acordo com a forma como os elementos são avaliados. Esses algoritmos são classifi-
cados, principalmente, em duas categorias, de acordo com seu tipo de operações de pesquisa, que são:

Pesquisa sequencial Pesquisa de intervalo

• Esses algoritmos são projetados, especificamente,


• A lista ou matriz é percorrida, sequencialmen-
para pesquisar em estruturas de dados classificadas.
te, e cada elemento é verificado.
São mais eficientes do que a pesquisa sequencial.
• Exemplo: Pesquisa Linear.
• Exemplo: Pesquisa Binária.

Quadro 1 - Tipos de pesquisa para análise de dados / Fonte: a autora.

Além dos já citados métodos de pesquisa linear e binária, temos também: Pesquisa de salto, pesquisa de
interpolação, pesquisa exponencial, pesquisa de sublista, de Fibonacci, binária onipresente, entre outros.

Vamos entender um pouco sobre pesquisa linear e binária. Uma pesquisa linear, ou pesquisa se-
quencial, é um método para localizar um elemento em uma lista. Este tipo de algoritmo de pesquisa
verifica, sequencialmente, cada elemento da lista até que uma correspondência seja encontrada ou toda
a lista tenha sido pesquisada. Ela é executada no pior tempo linear e faz no máximo n comparações,
onde n é o comprimento da lista. Se cada elemento tem a mesma probabilidade de ser pesquisado,
então, a pesquisa linear tem um caso médio de n + 1/2 comparações, mas o caso médio pode ser afe-
tado se as probabilidades de pesquisa para cada elemento variarem.
A pesquisa linear raramente é prática porque outros algoritmos e esquemas de pesquisa, como o
algoritmo de pesquisa binária e tabelas de hash, permitem uma pesquisa, significativamente, mais
rápida para tudo, exceto listas curtas. É considerado o mais básico de todos os algoritmos de pesquisa.
A eficiência de um algoritmo de pesquisa é medida pelo número de vezes que uma comparação da

20
UNIDADE 1

chave de pesquisa é feita no pior caso. A notação usada nos algoritmos de busca é O ( n ), onde n é
o número de comparações feitas. Ele dá a ideia do limite superior assintótico do tempo de execução
necessário para o algoritmo em relação a determinada condição.

O algoritmo de pesquisa binária é usado para encontrar a posição de um valor específico contido
em um array ordenado. Esse algoritmo de busca trabalha com o princípio de dividir e conquistar
e é considerado o melhor algoritmo de pesquisa por causa de sua maior velocidade de pesquisa
(desde que os dados estejam ordenados). Uma pesquisa binária também é conhecida como pes-
quisa de meio intervalo ou pesquisa logarítmica. Ele começa pesquisando no meio da matriz e
desce até a primeira metade inferior ou superior da sequência. Se o valor mediano for inferior
ao valor alvo, isso significa que a pesquisa precisa ser mais alta; caso contrário, ela precisa olhar
para a parte descendente da matriz. A árvore de pesquisa binária é uma estrutura de dados de
árvore binária baseada em nós que possui as seguintes propriedades:

21
UNICESUMAR

• A subárvore esquerda de um nó contém apenas nós com chaves menores que a chave do nó.
• A subárvore direita de um nó contém apenas nós com chaves maiores que a chave do nó.
• As subárvores esquerda e direita também devem ser uma árvore de pesquisa binária.
• Não deve haver nós duplicados.

Uma pesquisa binária é um método rápido e eficiente de encontrar um valor-alvo específico em um


conjunto de itens ordenados. Começando no meio da lista classificada, ele pode, efetivamente, cortar
o espaço de pesquisa pela metade, determinando se deve subir ou descer a lista com base no valor
médio em comparação com o valor de destino. Por exemplo, com um valor alvo de 8 e um espaço de
pesquisa de 1 a 11:
• O valor médio é encontrado e o ponteiro é colocado lá, que, neste caso, é 6.
• A meta de 8 é comparada a 6. Como 6 é menor que 8, a meta deve estar na metade superior.
• O ponteiro é movido para o próximo valor (7) e comparado ao destino. É menor, portanto, o
ponteiro se move para o próximo valor mais alto.
• O ponteiro está agora em 8. Comparando-o com o alvo, é uma correspondência exata, portanto,
o alvo foi encontrado.

Usando a pesquisa binária, o alvo só teve que ser comparado a três valores. Em comparação com uma
pesquisa linear, ela teria começado do primeiro valor e subido, precisando comparar o alvo com oito
valores. A pesquisa binária só é possível com um conjunto ordenado de dados; se os dados forem
arranjados, aleatoriamente, uma pesquisa linear produziria melhores resultados.
Na inteligência artificial aplicada à automação, os algoritmos de procura estão mais voltados para
a forma como as tarefas são executadas. Assim, o controle de máquinas utiliza algoritmos de procura
para definir a sequência de ações para chegar a determinado objetivo, ou realizar determinada tarefa,
consistindo em uma adaptação e aplicação dos algoritmos de busca da ciência da computação.
Quando o algoritmo realiza a procura baseada apenas nas informações fornecidas no problema,
esse tipo de busca é chamado busca cega ou sem informação. Nesse processo, ele vai apenas seguir
determinado caminho e testar cada estado, verificando se é o estado objetivo. Ele tende a verificar todos
os nós seguindo uma sequência, por isso, também é chamado de busca exaustiva. Os algoritmos que
utilizam estratégias de procura com informação, em que realiza a chamada busca heurística, além de
testar cada estado verificará qual o melhor estado não-objetivo que deve ser seguido. Assim, buscarão
a solução sem a necessidade de percorrer todos os nós.

22
UNIDADE 1

Buscas exaustivas Buscas heurísticas

• Baseadas apenas nas informações do proble-


• Utilizam informações adicionais além daquelas da
ma formulado;
formulação do problema;
• Verifica todos os nós de acordo com uma
• Verifica primeiro os nós mais promissores em uma
sequência;
sequência;
• Exemplos: busca em profundidade, em exten-
• Exemplos: busca gulosa, A* e subida de encosta;
são, bidirecional;

Quadro 2 - Tipos de pesquisa para análise de dados / Fonte: a autora.

Tratemos, agora, da Procura em


extensão. Nesse método de busca,
também chamado de procura em
largura ou em amplitude (em inglês
breadth first search), todos os nós em
um mesmo nível de profundidade são
explorados antes de prosseguir para o
próximo nível. Assim, o nó raiz, após
ser testado, é expandido, dando ori-
gem a seus sucessores, que passarão
por avaliação. Depois é realizada a
expansão de todos os nós sucessores
desses últimos, depois os sucessores
desses, e assim por diante. A estrutura
de dados se organiza como uma fila ou
lista, em que os nós mais antigos, mais
próximos da raiz, são testados primei-
ro. Assim, a prioridade é avaliar os nós
irmãos antes de ir para seus descen-
dentes. A lista contendo os nós abertos
indica os estados que foram gerados,
mas os filhos não foram avaliados.
Este método permite encontrar o
nó objetivo, mas não necessariamente
entrega uma solução ótima. Se o nó
objetivo estiver em um nível raso de
profundidade, ele será encontrado
sem utilizar uma quantidade inviável
de tempo e memória. Porém, à me-
dida que o nó objetivo se encontra

23
UNICESUMAR

nas camadas mais profundas, e quanto maior o fator de ramificação, mais tempo e memória serão
consumidos para expandir e armazenar todos os nós de cada nível, antes de chegar ao nó objetivo. Um
pseudocódigo desse algoritmo de procura é apresentado a seguir.

função busca_em_amplitude
início
abertos:= [Inicial]
fechados:= [ ]
enquanto abertos ≠ [ ]
faça
início
remova o estado mais à esquerda em abertos, chame-o de X
se X for um objetivo, então retorna SUCESSO
senão início
gere filhos de X
coloque X em fechados
descarte filhos de X se já estivem em abertos ou fechados
coloque os filhos que restam no final à direita de abertos
fim
fim
retorna FALHA
fim

Para que você tenha uma noção, se a árvore de busca possuir um fator de ramificação de 10, ou seja,
cada nó gera dez nós sucessores nos diversos níveis de profundidade, e analisarmos até o segundo nível
de profundidade, isso resultará em 111 nós (o nó raiz expande 10 nós, e cada um dos nós sucessores
expande mais 10 nós). Considerando um computador que gere dez mil nós por segundo (10000 nós/s)
e que cada nó exija 1000 bytes de armazenamento, isso resultaria em um tempo de 0,011s e 111kB
(kilobytes) de armazenamento. Por outro lado, na profundidade igual a 10, o tempo saltaria para,
aproximadamente, doze dias e armazenamento aproximado de 11TB (terabytes).
Assim, nem sempre é viável utilizar este método de procura, principalmente porque consome
muita memória. Sua utilização é interessante apenas quando a profundidade e o fator de ramifi-
cação da árvore de busca são baixos. Em contrapartida, possibilita obter a solução, caso ela exista,
pelo menor caminho, ou seja, com menor custo.

24
UNIDADE 1

Os pesquisadores do MIT e da fabricante de automóveis BMW estavam testando maneiras pelas


quais humanos e robôs poderiam trabalhar próximos para montar peças de automóveis. Em uma
réplica de uma configuração de chão de fábrica, a equipe montou um robô sobre trilhos, projetado
para entregar peças entre as estações de trabalho. Enquanto isso, trabalhadores humanos cruzavam
seu caminho, de vez em quando, para trabalhar em estações próximas. O robô foi programado para
parar, momentaneamente, se uma pessoa passasse, mas os pesquisadores notaram que o robô,
frequentemente, congelava no lugar, excessivamente cauteloso, muito antes de uma pessoa cruzar
seu caminho. Se isso acontecesse em um ambiente de manufatura real, estas pausas desnecessárias
poderiam se acumular em ineficiências significativas.
Nesta aplicação, se utilizado o algoritmo de procura A*, podemos ter um bom planejamento de cami-
nho inteligente, e este será apresentado também nesta unidade. Comparado ao algoritmo de procura
em extensão, apresenta desempenho bem mais satisfatório. Ainda assim, devido a suas caracterís-
ticas, há maior probabilidade de falhar, e o caminho resolvido pode conter muitos caminhos locais.

Podemos imaginar o algoritmo de procura em extensão aplicado a um aspirador de pó robô. Consi-


derando que esse aspirador possui sensores que permitem mapear o ambiente, estas informações são
utilizadas para que ele saiba por onde já andou, por onde falta andar e quais os caminhos possíveis.
Assim, em cada posição, as ações possíveis são movimentar para esquerda, para frente, para direita ou
para atrás, nessa ordem, enquanto aspira, continuamente. Então, primeiro ele testará se é possível, por
meio das informações fornecidas pelo sensor, ir para a esquerda. Caso não seja possível ou já tenha
passado naquele ponto, tentará ir para frente, e assim por diante. Caso consiga ir em alguma direção,
nessa nova posição ele pode novamente atuar dentro das quatro opções de ação.
O algoritmo de busca por largura poderia ser utilizado para encontrar uma nova posição ainda
não aspirada, caso todas as ações em determinada posição fossem impossíveis ou já aspiradas. Nesse
caso, o nó pai seria a coordenada da posição inicial do aspirador de pó no mapa, e os nós sucessores
seriam as possíveis posições a partir daquele nó raiz que seriam testadas como possíveis ou aspiradas,
para depois seguir para novos nós a partir desses últimos.
É importante você notar que, neste exemplo dado, não foi utilizado o método puro de procura por
largura, uma vez que o equipamento contém sensores que fornecem informações parciais para justificar
a execução de ações. O método puro por largura, assim como alguns outros algoritmos de procura cegos
apresentados a seguir, não traz bons resultados quando aplicados na automação e robótica, áreas que
envolvem análises com grandes árvores de busca. Sobre isso, Russel e Norvig (2013, p. 70) ressaltam:

25
UNICESUMAR



Em vez de um conjunto discreto de rotas, um robô pode se mover em um espaço contínuo
com (em princípio) um conjunto infinito de ações e estados possíveis. No caso de um robô
em movimento circular sobre uma superfície plana, o espaço é essencialmente bidimen-
sional. Quando o robô tem braços e pernas ou rodas que também devem ser controlados,
o espaço de busca passa a ter várias dimensões. São exigidas técnicas avançadas apenas
para tornar finito o espaço de busca. (...) Além da complexidade do problema, robôs reais
também devem lidar com erros nas leituras de seus sensores e nos controles do motor.

O algoritmo de busca de custo uniforme é uma variação do método de busca por extensão. Nele, o
custo do caminho é avaliado, ou seja, o nó explorado primeiro será aquele com o custo de caminho
mais baixo. Assim, só será útil quando os custos de passo variarem.

O algoritmo de procura em profundidade (depth first search em inglês) expandirá o nó mais


profundo na borda da árvore de busca. Ele vai percorrendo os níveis abaixo até atingir o nó na borda,
retornando um nível acima para continuar. Ou seja, o nó raiz é testado se é o nó objetivo, não sendo,
seus nós sucessores são expandidos, e o primeiro nó sucessor é testado. Caso este não seja o nó objetivo,
os sucessores deste são expandidos, e o primeiro é analisado. Esse procedimento continua até encontrar
a borda, e, caso neste caminho não esteja o nó objetivo, o algoritmo retoma um nível anterior com nós
e seus sucessores inexplorados e testará os nós naquele caminho, seguindo o mesmo procedimento.
Dessa forma, este algoritmo permite analisar um ramo da árvore de busca por vez. A estrutura
de dados se organiza em pilha, em que os nós mais recentes, mais distantes da raiz, são explorados
primeiro. Uma vantagem que esse método pode apresentar é quanto à memória utilizada, uma vez
que só é necessário armazenar um único caminho até o nó folha, além dos nós-irmãos não expan-

26
UNIDADE 1

didos de cada nó no caminho. Depois que todos os descendentes de um nó foram testados, ele pode
ser removido da memória.
A principal desvantagem da busca em profundidade podemos notar quando trabalhamos com
árvores muito profundas ou infinitas. A procura descerá todos os níveis de profundidade, avaliando
o nó e seus sucessores. Caso seja uma árvore infinita, ele continuará descendo, continuamente, nunca
retornando uma solução. Pode ser também que, mesmo encontrando uma solução, encontre por meio
de um caminho mais longo. Assim, deve ser evitada quando se trabalha com árvores muito profundas
ou infinitas. Utilizando um limite de profundidade, conseguimos diminuir, razoavelmente, a chance
de a aplicação do algoritmo apresentar problema. Esse método, denominado busca em profundidade
limitada, consiste em estabelecer um limite de profundidade específico que será analisado como se os
nós ali não possuíssem sucessores. Porém pode ser que não retorne uma solução caso esta esteja além
da profundidade estabelecida. Além disso, se o limite for estabelecido além da profundidade necessá-
ria, haverá um gasto desnecessário de tempo e armazenamento. Nas aplicações práticas, dificilmente
sabemos o limite apropriado para estabelecer a profundidade.
Outra variação da busca em profundidade é a busca com retrocesso, que possibilitará o menor uso
de memória. Neste tipo de algoritmo de procura, cada nó sucessor é gerado por vez e avaliados seus
sucessores, também cada um por vez. Então, não será utilizada memória para armazenar nós-irmãos não
expandidos. A seguir, é apresentado o pseudocódigo para a busca recursiva em profundidade limitada.

função BUSCA-EM-PROFUNDIDADE-LIMITADA (problema, limite)


retorna uma solução ou falha/corte
retornar BPL-RECURSIVA (CRIAR-NÓ(ESTADO-INICIAL[problema]), pro-
blema, limite)
função BPL-RECURSIVA (nó, problema, limite)
retorna uma solução ou falha/corte
corte_ocorreu? ← falso
se TESTAR-OBJETIVO[problema](ESTADO[nó])
então retornar SOLUÇÃO (nó)
senão se PROFUNDIDADE [nó] = limite
então retornar corte
senão para cada sucessor em EXPANDIR (nó, problema)
faça
resultado ← BPL-RECURSIVA (sucessor, problema, limite)
se resultado = corte
então corte_ocorreu? ← verdadeiro
senão se resultado ≠ falha
então retornar resultado
se corte_ocorreu?
então retornar corte
senão retornar falha

27
UNICESUMAR

O algoritmo de procura em profundidade com aprofundamento iterativo combina as vantagens da


pesquisa em profundidade e a pesquisa em extensão. Esse algoritmo é executado de forma a encontrar
o melhor limite de profundidade, por meio do aumento gradativo de seu valor até que se encontre o
nó objetivo. Ele avalia os nós de cada nível de profundidade antes de passar para o próximo nível. Por
exemplo, o programa inicia com o limite de profundidade 0, avaliando o nó raiz. Não sendo este o nó
objetivo, um novo limite de profundidade igual a 1 é estabelecido, o que acarreta expansão e avaliação
dos nós sucessores do nó raiz, assim, realizando uma procura em largura. Não encontrando o nó obje-
tivo, um novo limite igual a 2 é definido, em que os nós sucessores são expandidos e avaliados, e assim
por diante. É o método de busca cego que melhor atua quando se tem uma árvore de busca grande
com profundidade de solução não conhecida. É mais rápido que a busca por extensão e consome a
memória em proporção aproximada à busca em profundidade.
Podemos imaginar a aplicação do algoritmo de procura em profundidade utilizando um exemplo
semelhante ao dado na procura em largura. Considerando um aspirador de pó robô com capacidade
de mapeamento, e estando ele em uma posição já aspirada e com impossibilidade de executar as ações
de movimentação, uma nova posição a partir da atual poderia ser encontrada utilizando um algoritmo
de busca por profundidade. Assim, o nó pai seria a coordenada da posição inicial do aspirador no
mapa, e, a partir dessa posição, seria testado o primeiro nó sucessor deste. Estando este com os mesmos
impedimentos, o seu sucessor seria testado, assim por diante.

28
UNIDADE 1

Falemos, agora, da Procura bidirecional. Os algoritmos que estudamos até então tinham a caracte-
rísticas de ser unidirecionais, ou seja, partindo de um nó raiz, seguia para frente até encontrar o nó
objetivo. Mas quando o nó objetivo é explícito, o algoritmo pode ser executado a partir do nó objetivo
para trás. O algoritmo de procura bidirecional consiste na execução de duas buscas, simultaneamente:
uma partindo do estado inicial para frente e outra do nó objetivo para trás, parando quando as duas
buscas se interceptam em um nó intermediário. Este será o caminho completo da solução.
Nesse processo, é possível aplicar algoritmos de procura diferentes em cada direção, mas é
importante verificar o custo computacional e se a solução será ótima nesse caso. O método mais
aplicado é a procura em extensão nas duas direções. Cada nó é testado antes de ser expandido, para
verificar se é um nó borda da outra árvore de busca. Para isso ser possível, além de ser necessário
que os nós sucessores sejam conhecidos, é importante conhecer também os predecessores - aqueles
que vêm antes de um nó sucessor. As vantagens na utilização desse algoritmo de procura é que
é gerada uma menor quantidade de nós se comparado ao método de extensão unidirecional. A
complexidade de tempo e de memória, portanto, são reduzidos. Quando se tem mais de um estado
objetivo, pode apresentar problema em sua aplicação.

Os algoritmos de procura chamados “heurísticos” trabalham com informações, regras, que são
utilizadas para definir as ações que serão tomadas e o caminho a ser percorrido em uma árvore
de busca ou grafo para se encontrar a solução. Faz referência ao termo “eurisco”, do grego, que
significa “eu descubro”. Assim, os algoritmos de procura heurísticos têm o objetivo de usar uma
informação limitada que esteja disponível para realizar ações baseadas em escolhas inteligentes.
Dessa forma, pode encontrar soluções de forma mais eficiente.
Para você entender a ideia por trás destes algoritmos, utilizaremos o mesmo exemplo sobre aplicação
de um aspirador de pó robô para a limpeza de um cômodo. Poderíamos simplificar bastante as buscas
se utilizássemos a informação de um sensor de poeira presente no equipamento. Assim, quando o equi-
pamento se encontrasse em uma posição já aspirada ou na qual as ações fossem impossíveis de serem
executadas, ele se moveria para a posição que apresentasse mais poeira e, assim, uma maior necessidade
de limpeza. Dessa forma, não seria necessário avaliar todas as posições do cômodo. Poderia ter sido uti-

29
UNICESUMAR

lizada também a informação de “local do cômodo que mais acumula sujeira” caso o equipamento tivesse
sensores, mapeamento e armazenamento de dados com esta informação. Na área de algoritmos de busca,
a heurística refere-se à utilização de uma função de estimativa de custo da solução.
A utilização deste método vai se mostrar relevante em situações em que se pode ter mais de uma
solução, ou que não há uma solução exata. E, também, nas situações que, mesmo tendo uma situação
exata, o custo computacional impede que seja praticável. Essas informações adicionais disponíveis são
utilizadas para guiar a busca, permitindo seguir pelo caminho que aparenta ser mais promissor. Assim,
na maioria das vezes, acelerará o encontro da solução.



As heurísticas e o projeto de algoritmos para implementar a busca heurística têm sido,
há muito tempo, uma preocupação central das pesquisas em inteligência artificial. Os
programas de jogos e os provadores de teorema são duas das mais antigas aplicações de
inteligência artificial; ambos requerem heurísticas para podar os espaços de soluções
possíveis. Não é viável examinar toda a inferência que pode ser feita em um domínio
matemático ou todos os movimentos possíveis que podem ser feitos em um tabuleiro.
A busca heurística é, frequentemente, a única resposta prática (LUNGER, 2013, p. 104).

No lugar de testar todos os nós em uma sequência pré-estabelecida, o algoritmo usando heurísticas
apenas avaliará aqueles mais promissores. É útil porque em aplicações práticas nem sempre é viável tes-
tar todos os nós, estados possíveis, para encontrar uma solução. Como vimos ao estudar os métodos de
busca exaustivos, às vezes, é até impraticável pela complexidade de tempo e de memória. E é semelhante
ao que fazemos quando precisamos tomar uma decisão: avaliamos as informações disponíveis em cada
uma das ações possíveis para só depois decidir qual ação tomar.
As heurísticas, geralmente, são definidas com base na experiência, na intuição e no conhecimento.
Mas essas informações são limitadas e podem falhar, e é preciso considerar isso ao aplicar. Elas servirão
para predizer o melhor caminho, tendo um conjunto de nós expandidos abertos, mas não vai prever o
que há após esses nós, nas próximas ações da busca. Assim, pode ser que não encontrem uma solução,
ou que encontrem uma, mas não a ótima.
O algoritmo de procura denominado busca pela melhor escolha (ou best-first search, em in-
glês), é um método que aplica as heurísticas por meio de diferentes funções de avaliação f(n) para
definir qual nó parece ser o melhor. Ou seja, dentro desta categoria, teremos outros diversos tipos
de algoritmos de buscas heurísticos, de acordo com o critério de avaliação. A avaliação pode ser a
medida do esforço de ir de um nó para o outro, por exemplo, ou a distância de um estado atual para
o estado objetivo, ou a verificação de qual nó está mais próximo do nó objetivo - essa última tam-
bém chamada de busca gulosa, entre outras funções de avaliação. O nó com a melhor avaliação será
expandido primeiro. Assim, a lista de nós a serem testados será formada de acordo com alguma ou
com uma combinação dessas funções de avaliação, indicando a ordem de expansão e teste dos nós.
Essas funções devem permitir estimar o custo do caminho do nó atual com relação ao nó
objetivo. Quanto melhor e mais informações se tem, a busca pela melhor escolha permite que

30
UNIDADE 1

menos nós sejam processados para chegar ao objetivo. Um pseudocódigo do algoritmo de busca
pela melhor escolha é apresentado a seguir.

Função busca_melhor_escolha;
início
abertos:= [Inicial];
fechados:= [ ];
enquanto abertos ≠ [ ]
faça
início
retire o estado mais à esquerda em abertos, chame-o de
X;
se X = objetivo então retorna o caminho de inicial até X
senão
início
gere filhos de X;
para cada filho de X faça
caso
o filho não está em abertos ou fechados:
início
atribua ao filho um valor herístico;
acrescente o filho a abertos
fim
o filho já está em abertos:
se o filho foi alcançado por um caminho mais curto
então dê ao estado em abertos o caminho mais curto
o filho já está em fechados:
se o filho foi alcançado por um caminho mais curto
então
início
retire o estado de fechados;
acrescente o filho em abertos
fim;
fim;
coloque X em fechados;
reordene estados em aberto pelo mérito heurístico (melhor mais à esquerda)
fim;
retorna FALHA
fim

31
UNICESUMAR

A busca pela melhor escolha pode ser executada, então, procurando explorar o nó que é considerado
mais próximo do estado objetivo. Assim, utiliza a heurística de proximidade com o nó objetivo como
função de avaliação. Esse tipo de procura é chamado de busca gulosa. Tem esse nome porque a lista de
prioridades de nós para avaliação é formada ao buscar o nó em que se acredita mais próximo do nó
objetivo, achando a solução mais rapidamente, mas não se preocupa com o custo - ou seja, se é uma
solução ótima. É dada a “maior mordida” possível, sem se preocupar se é o melhor caminho. Em cada
passo, ele procura chegar o mais próximo possível do estado objetivo.
Para entender melhor a ideia por trás da busca gulosa, voltaremos ao exemplo de sua viagem à cidade
vizinha. Se você selecionasse o caminho para chegar à cidade objetivo analisando apenas a questão de
proximidade a esta, por exemplo, verificando a distância em linha reta, provavelmente, chegaria mais
rápido. Mas você não avaliou se seria o melhor caminho considerando a qualidade da estrada, o impacto
da estrada no seu carro, a segurança, os preços do combustível naquele caminho, entre outras avaliações.
O objetivo foi alcançado mais rápido, mas não, necessariamente, foi o melhor caminho. A informação
da distância em linha reta não foi fornecida no problema, foi uma informação adicional, uma heurística.
Como desvantagem, como este algoritmo de procura se baseia apenas na menor distância ao nó
objetivo, pode ser que acabe explorando nós desnecessários ou passando por nós repetidos, o que
nunca permitiria achar uma solução. Assemelha-se com a busca em profundidade, uma vez que segue
um único caminho até o objetivo, voltando quando o caminho não for o certo. Assim, apresenta as
mesmas problemáticas com relação a isso.



A busca gulosa pela melhor escolha é semelhante à busca em profundidade, pelo fato de
preferir seguir um único caminho até o objetivo, mas voltará ao encontrar um beco
sem saída. Ela tem os mesmos defeitos da busca em profundidade - não é ótima e é incom-
pleta (porque pode entrar em um caminho infinito e nunca retornar para experimentar
outras possibilidades). A proporção da redução [da complexidade] depende do problema
específico e da qualidade da heurística (RUSSELL; NORVIG, 2013, p. 97).

Outro algoritmo de procura heurístico é denominado A* (chama-se “A estrela”), também chamado


busca por menor custo. É a forma mais conhecida de se aplicar a procura pela melhor escolha.
Consiste na combinação da busca gulosa com a busca com custo uniforme que você conheceu
anteriormente. O algoritmo, ao ser executado, procurará a solução por meio do menor caminho,
porém considerando os custos de cada caminho. Esse algoritmo analisará o custo total tanto de
um nó inicial para outro nó n quanto desse nó n até o objetivo. A lista de prioridades de avaliação
dos nós é levantada, então, por meio dos custos totais. Se no caminho não encontrar a solução,
retorna para que seja avaliado um outro caminho.
Este algoritmo de procura aplica uma função de avaliação do tipo f(n) = g(n) + h(n), onde
n é um nó no espaço de estados. Nesta relação, g(n) mede o custo do caminho até o nó n e h(n)
estima a distância de n até o nó objetivo. Assim, f(n) apresentará o custo total do caminho desde
o estado inicial, passando, em seguida, por n, até chegar o estado final. Quando essa função de
avaliação é aplicada, resulta no chamado algoritmo A*.

32
UNIDADE 1

Vamos pensar, aqui, para tentar aplicar esta ideia no caso do aspirador de pó robô. Ao chegar ao
estado em que as ações fossem impossíveis de serem executadas, ou que já tenha sido aspirado, ele
usará o algoritmo A* para definir a próxima posição no cômodo para continuar seu trabalho. Nesse
sentido, a próxima posição será decidida com base no custo até ela, e, no custo que será encontrado a
partir dela para que se chegue a solução - a limpeza completa do cômodo. O que tornará a solução
ótima com a utilização do algoritmo A* é o fato de a heurística aplicada ser admissível.


Heurísticas admissíveis são otimistas por natureza, pois imaginam que o custo da resolu-
ção do problema seja menor do que ele é na realidade. Tendo em vista que g(n) é o custo
exato para alcançar n, temos como consequência imediata que f(n) nunca irá superestimar
o custo verdadeiro de uma solução passando por n.” (RUSSELL; NORVIG, 2013, p. 97).

Mesmo quando não é possível estimar o custo real de um caminho até o estado objetivo, a utilização desta
heurística limita as ações a serem tomadas, definindo a quantidade de estados a serem testados. As funções
de avaliação com heurísticas são, no geral, monotônicas, e é importante que sejam. A monotonicidade,
ou consistência, é uma propriedade que afirma que o custo ao longo de um caminho nunca diminui.
Outra forma de se aplicar a procura heurística com base na melhor escolha é por meio da chamada
subida de encosta. Nesse algoritmo, o nó é expandido, e seus filhos são avaliados. O melhor nó filho é sele-
cionado para a próxima expansão, não sendo considerados nem os irmãos nem os sucessores. A qualidade
“melhor” pode ser avaliada como o nó mais próximo do nó objetivo. Tem esse nome por se assemelhar à
atividade de um alpinista, escalando os nós até chegar ao topo - o objetivo. Nesse ponto, nenhum vizinho
tem valor mais alto. A seguir é apresentado um pseudocódigo para esse algoritmo de procura.

função SUBIDA-DE-ENCOSTA (problema)


retorna um estado que é um máximo local
entradas: problema, um problema
variáveis locais: corrente, um nó
vizinho, um nó

corrente ← CRIAR-NÓ(ESTADO-INICIAL[problema])
repita
vizinho ← um sucessor de corrente com valor mais alto
se VALOR[vizinho] ≤ VALOR[corrente]
então retornar ESTADO[corrente]
corrente ← vizinho

Os algoritmos vistos anteriormente a este exploraram os espaços de busca, mantendo um ou mais


caminhos armazenados na memória, identificando os nós que foram explorados e os que não foram
explorados. Neles, tanto o alcance do estado objetivo como o caminho constituem a solução do pro-

33
UNICESUMAR

blema, mas, em muitas aplicações, o conhecimento do caminho até o estado objetivo é irrelevante. O
algoritmo de procura subida da encosta é um desses algoritmos, denominados algoritmos de busca
local, que não estão interessados no conhecimento do caminho, apenas no alcance da solução.



Essa classe de problemas inclui muitas aplicações importantes, como projeto de circuitos
integrados, layout de instalações industriais, escalonamento de jornadas de trabalho, pro-
gramação automática, otimização da rede de telecomunicações, roteamento de veículos
e gerenciamento de carteiras (RUSSELL; NORVIG, 2013, p. 110).

Como o algoritmo não registra o histórico do processo de subida, não gera uma lista de prio-
ridades de nós, ele não consegue se recuperar caso haja falhas em sua estratégia. Assim, tem a
tendência de ficar preso em máximos locais, quando um caminho aparentava ser o melhor, mas,
na realidade, não era. Se não for o objetivo, mas um máximo local, ele pode não achar a solução.
Porém apresenta vantagens, como o fato de usar pouca memória e a capacidade de encontrar
soluções razoáveis em grandes ou infinitos espaços de estados. Sua estrutura de dados armazena
o nó atual e o valor da função objetivo. A função objetivo guiará a busca pelo melhor estado.
Há muitos outros algoritmos de procura que podem ser utilizados na automação, com diversas
características e potencialidades. Para citar, temos a programação dinâmica (também chamada fowar-
d-backward, que significa “para frente para trás”, em inglês), os métodos IDA*, SMA*, entre outros.
Almeida et al. (2012) fizeram uma comparação entre os algoritmos de busca em profundidade,
em largura, busca gulosa, busca com custo uniforme e busca A* na navegação autônoma em um
robô. Verificou o caminho que o robô adotava conforme o tipo de algoritmo de procura aplicado,
desde uma posição inicial até uma posição final pré-estabelecidas. No estudo, constatou que a
busca em profundidade resultou na pior escolha de caminho comparado aos outros. A busca
em largura e de custo uniforme, apesar de terem encontrado o caminho ótimo, fizeram isso à
custa de muito processamento e custo de armazenamento, pois precisaram expandir vários nós
nesse processo. O melhor caminho possível foi encontrado pelo método de procura A*, mas
expandiu mais nós que a busca gulosa, que precisou expandir apenas 23 nós. Porém esta última
não encontrou o melhor caminho possível, devido a limitações de sua heurística. Mais detalhes
você pode encontrar consultando o trabalho indicado na lista de referências.
Um algoritmo de busca é o procedimento passo a passo usado para localizar dados específicos
entre uma coleção de dados. É considerado um procedimento fundamental na computação. Na
ciência da computação, ao pesquisar dados, a diferença entre uma aplicação rápida e uma mais
lenta, geralmente, está no uso do algoritmo de busca adequado. No vídeo, vimos que os robôs
executam ações conforme a decisão tomada. Mas que decisão foi tomada? Depende do objetivo
de trabalho que cada um deva exercer no armazém ou estoque apresentado no vídeo. Vimos que
o primeiro separa os resíduos e leva para cada recipiente (sendo plástico, alumínio e papel). O
robô número 2 executa atividades de busca de produtos que um operador deva ter executado
e, assim, o robô busca no endereço de estoque informado, tanto que eles escalam os armários
para a procura dos produtos.

34
UNIDADE 1

O último robô apresentado no vídeo é uma garra que identifica, separa e colhe de acordo com a
programação feita por seu operador humano e insere na esteira. Podemos compreender que cada
robô tem uma função, um tipo de execução e uma velocidade apropriada ao trabalho a ser executado.

35
Agora que você estudou sobre os algoritmos de procura, complete o Mapa Mental de acordo com
seu aprendizado neste capítulo, sintetizando o que são esses algoritmos, as aplicações, seus tipos
e as principais diferenças entre eles. Caso precise de ajuda na elaboração, utilize o modelo a seguir,
completando as informações. Você pode preencher os dados aqui, ou utilizar a ferramenta gratuita

Técnicas da inteligência artificial


aplicadas a problemas de alta
O que são: complexidade

ALGORITMOS DE PROCURA

Buscadores
de internet
APLICAÇÃO

Análise de ações
TIPOS
Buscas exaustivas

Buscas heurísticas Indústria

Verifica todos os nós


Indica a forma como os seguindo uma sequencia
elementos são avaliados em
uma estrutura de dados

36
1. Os algoritmos de procura pegam um problema como entrada e fornecerão diferentes alter-
nativas para definir a sequência de ações para se chegar a uma solução. Frequentemente,
resolvemos diversos problemas em nosso cotidiano como procurar contatos em nosso celular.
Analise as seguintes afirmativas e determine se são verdadeiras ou falsas:

I) Uma pesquisa linear, ou pesquisa sequencial, é um método para localizar um elemento em


uma lista. Este tipo de algoritmo de pesquisa verifica, sequencialmente, cada elemento da
lista até que uma correspondência seja encontrada ou toda a lista tenha sido pesquisada.
II) A cada resolução de um problema, o algoritmo reinicia a formulação dos objetivos e do pro-
blema. Neste caso, desenvolvendo outro objetivo e recomeçando a sequência.
III) Um algoritmo é uma sequência de transmissões elétricas e esta informa o que um programa
ou sistema deve fazer, sempre produzindo uma solução correta para um problema.

Marque a alternativa correta sobre o algoritmo de busca.

a) As afirmativas I e II estão corretas.


b) Somente a afirmativa II está correta.
c) Somente a afirmativa III está correta.
d) Somente a afirmativa I está correta.
e) As afirmativas I e III estão corretas

2. É usado para encontrar a posição de um valor específico contido em um array ordenado. Esse
algoritmo de busca trabalha com o princípio de dividir e conquistar, e é considerado o melhor
algoritmo de pesquisa por causa de sua maior velocidade de pesquisa (desde que os dados
estejam ordenados). Também é conhecida como pesquisa de meio intervalo ou pesquisa
logarítmica. Marque a alternativa que corresponde à definição apresentada:

a) Busca linear.
b) Busca binária.
c) Hash sort.
d) Quick sort.
e) Busca sequencial.

3. Na inteligência artificial aplicada à automação, os algoritmos de procura estão mais voltados


para a forma como as tarefas são executadas. Assim, o controle de máquinas utiliza algoritmos
de procura para definir a sequência de ações para chegar a determinado objetivo ou realizar
determinada tarefa, consistindo em uma adaptação e aplicação dos algoritmos de busca da
ciência da computação. Disserte, em 8 a 10 linhas, sobre quais os impactos dos algoritmos na
execução de robôs em fábricas e em casa.

37
38
2
Árvores
de Decisão
Me. Larissa Torres Ferreira

Olá, seja bem-vindo(a) à Unidade 2 de seu livro! Nesta unidade,


você estudará um dos métodos mais rápidos para a classificação
de dados, a Árvore de Decisão. Você aprenderá sobre os conceitos
empregados para a correta manufatura deste sistema de tomada
de decisão. Primeiro será feita uma revisão sobre o funcionamento
básico deste método, depois serão estudados os elementos presen-
tes em uma árvore de decisão. Com isso feito, podemos analisar
uma árvore de decisão pronta e entender como ela é feita e como
possíveis ajustes necessários são realizados. A partir deste exemplo,
serão pontuadas as vantagens e desvantagens na utilização deste
método, obtendo, assim, o conhecimento necessário para que você
saiba quando e como se utiliza a técnica apresentada.
UNICESUMAR

Vivemos em uma sociedade digital há algumas décadas, porém, recentemente, estamos vendo
crescer a utilização do termo Big Data (“grandes dados”). Isso é dado devido ao fato de que, apro-
ximadamente, dobramos o tamanho de informações armazenadas digitalmente a cada 12 meses.
Hoje, em média, cada pessoa cria em torno de 2 Megabytes de dado por segundo. A tendência
é que esse número continue a aumentar conforme se tenha o desenvolvimento das tecnologias
de informação e o acesso a essas tecnologias seja facilitado. Não é por coincidência que todas as
gigantes de tecnologia estão investindo grandes quantias na área da ciência de dados, a fim de
conseguir retirar o máximo de informações cruciais para novas estratégias de negócio.
Esses dados gerados englobam tudo o que realizamos em nossos dispositivos digitais, como exemplo
de dados gerados podemos citar: um vídeo que assistimos; uma foto que subimos para uma rede social;
uma mensagem que enviamos; compras que realizamos; informações de nossos planos de saúdes; entre
outras informações sobre o que somos ou realizamos no cotidiano. Esses dados podem ser utilizados
para diversas atividades, porém, analisando como futuros trabalhadores da área da informação, po-
demos enxergar várias oportunidades que irão surgir dentro dessa área. Ou mesmo, já aplicando o
conhecimento que iremos obter nessa disciplina, podemos analisar os dados gerados hoje, buscando
encontrar quais são essas oportunidades, utilizando como base o que já se tem armazenado. Obtendo,
assim, uma vantagem competitiva em relação ao resto do mercado.
Sabendo deste cenário, você consegue imaginar uma forma que, a partir de todos esses dados,
podemos definir uma relação entre um conjunto de dados e um resultado esperado?
Dados nada mais são que uma informação que foi previamente documentada, catalogada, arma-
zenada, registrada, entre outras definições. Nem todos os dados são importantes, temos que saber
relacionar as informações presentes com o que queremos obter.
Por exemplo, queremos definir se está chovendo ou não no exato momento, porém, temos apenas
um conjunto com 2 dados sobre o assunto, essas informações são: temperatura ambiente e estação do
ano. Mesmo que estas sejam informações importantes para responder outras perguntas, dificilmente
podemos definir precisamente se está chovendo a partir das informações presentes. Por isso, a escolha e
o tratamento das informações a serem utilizadas são passos muito importantes para a ciência dos dados.
Nas árvores de decisão, além de escolhermos corretamente os dados, precisamos também nos aten-
tar em como iremos separar esses dados, e utilizamos de diferentes perguntas que buscam segregar os
dados nas classes esperadas. Assim, analisamos os resultados obtidos e faremos ajustes nas perguntas,
ou no método de arranjo das perguntas, caso seja necessário.
O uso da Inteligência Artificial no setor bancário torna a prestação de serviços financeiros
realmente inovadora, agradável e segura. Além do mais, essas são as tecnologias nos quais os ban-
cos do futuro serão construídos. A detecção de fraudes é uma das questões mais urgentes para as
empresas financeiras, no entanto, cada vez mais ferramentas inovadoras são desenvolvidas para
evitar as tentativas de invasão ou mesmo prevenir falsários.
O aprendizado de máquina já tinha aplicativos em finanças muito antes do advento dos aplicativos
de mobile banking, chatbots proficientes ou mecanismos de pesquisa. Dado o grande volume, os re-
gistros históricos precisos e a natureza quantitativa do mundo das finanças, poucos setores são mais
adequados para a inteligência artificial. Há mais casos de uso de aprendizado de máquina em finanças

40
UNIDADE 2

do que nunca, uma tendência perpetuada pelo poder de computação mais acessível e ferramentas de
aprendizado de máquina mais acessíveis.
Pesquise 3 bancos no google – físicos e digitais – que utilizam IA e especifique cada banco com
cada ferramenta aplicada em IA.
Na atualidade, muitos clientes têm preferido o uso de bancos digitais como uma solução simplificada
para execução de atividades bancárias. Por exemplo, para fechar uma conta, os bancos físicos pedem
que o cliente deve ir pessoalmente, enfrentar uma fila, e entregar vários documentos para formalizar o
fechamento da conta. Em contrapartida, para os bancos digitais, o fechamento de conta exige apenas
que o cliente clique em um botão, execute uma ou duas ações, e fim.
Vamos analisar:
• Os bancos digitais utilizam mais tecnologia e por isso podem facilitar ações bancárias?
• Você acredita na segurança de um banco digital que utiliza a IA para executar ações bancárias
(transferências, saldos e extratos, por exemplo)?
• De que forma a FEBRABAN se posiciona sobre o uso de tecnologia nos bancos?

Anote no seu Diário de Bordo.

41
UNICESUMAR

Caro(a) aluno(a), você já parou para pensar por que os humanos são ditos inteligentes? O dicionário
Dicio ([2022], on-line) traz uma série de definições da palavra inteligência, entre elas “faculdade de
conhecer, de compreender; habilidade para entender e solucionar adversidades ou problemas, adap-
tando-se a circunstâncias novas”. Portanto, o conceito de inteligência é baseado fundamentalmente na
capacidade que temos de aprender. Por meio desse aprendizado, conseguimos lidar com experiências
novas com base em experiências e informações anteriores. É assim que desenvolvemos nossas habi-
lidades motoras e cognitivas, realizamos novas descobertas, resolvemos problemas no cotidiano e no
trabalho, estabelecemos teorias e tiramos conclusões de análises.
Vamos imaginar que você trabalhe em uma indústria, e um dos equipamentos que você é respon-
sável começou a apresentar mau funcionamento. Você, com base em situações anteriores e experiência
adquirida no trabalho, pode conseguir analisar as causas que podem ter levado esse equipamento a
falhar. Em um exemplo mais simples e cotidiano, quando você tenta ligar o seu computador pessoal
e ele não responde, você, com base em situações vividas, provavelmente irá logo verificar se ele está
conectado na tomada, ou uma outra ação baseada em outras vezes que ele apresentou esse problema.
Não resolvendo, você provavelmente iria fazer outros testes, também baseados em sua experiência
com o equipamento, até encontrar a causa do problema em questão.
Esse processo de análise e descoberta das causas de mau funcionamento de um equipamento industrial
ou computador, por exemplo, pode ser feito manualmente: investigando e testando fato por fato que possa
explicar aquele comportamento; e também podemos aplicar a inteligência artificial com o uso de árvores
de decisão para permitir análises automáticas, realizadas com base em informações previamente forneci-
das e com o aprendizado a partir de exemplos, de forma mais fácil e rápida. Esse é um estudo dentro do
aprendizado de máquinas, que busca desenvolver e implementar a capacidade de aprendizado, presente em
humanos, em computadores e máquinas, de forma que estes melhorem o seu desempenho com o tempo.
Simon (1983, p. 35) define aprendizado como: “Qualquer mudança em um sistema que melhore o seu
desempenho na segunda vez que ele repetir a mesma tarefa ou outra tarefa tirada da mesma população”.

42
UNIDADE 2

Dentre os vários tipos de aprendizado de máquina, temos o supervisionado, que se baseia em treinamentos ou
exemplos previamente classificados por um professor ou outro método. Assim, tentamos prever o resultado
de acordo com esses dados informados, onde relações apropriadas entre entrada e saída são demonstradas
previamente por um supervisor. Os algoritmos de aprendizado supervisionado procuram verificar a função
de mapeamento adequada para gerar dados de saída por meio de dados de entrada. O processo de apren-
dizagem é contínuo e baseado em feedback. Isso melhora o resultado da aprendizagem ao longo do tempo.
As árvores de decisão (do inglês Decision Trees ou DTs) consistem em modelos estatísticos e al-
gorítmicos de aprendizagem de máquina supervisionado e não paramétrico. A característica de não
parametricidade se dá devido ao fato que os algoritmos utilizados nesse método não pressupõem que
a relação entre as entradas e saídas seja de acordo com uma função matemática específica. Assim, não
são feitas suposições prévias sobre a função de mapeamento, o algoritmo aprende qualquer forma fun-
cional a partir dos treinamentos e exemplos e gera dados de saída a partir destes e de dados de entrada.
Conforme afirmam Norvig e Russell (2009 apud SILVA, 2019, p. 15): “Uma árvore de decisão representa
uma função que toma como entrada um vetor de valores de atributos e retorna uma “decisão” (um valor de
saída único)”. Os valores de saída podem ser discretos ou contínuos. Assim, podemos usar algoritmos dentro
desse método para classificação, prevendo categorias discretas, e regressão, prevendo valores numéricos.
Com sua aplicação, é possível prever uma decisão da saída mediante a aplicação de regras
de decisão simples que são aprendidas pela máquina através da análise de dados previamente
informados, realizando uma sequência de testes. Assim, permite a aprendizagem, por exemplo,
utilizando métodos computacionais para adquirir de forma automática novos conhecimentos
e habilidades. Dessa forma, conseguem interpretar e aprender as respostas de vários problemas
e suas possíveis consequências. Como resultado, as árvores de decisão conhecem as regras de
tomada de decisão em contextos específicos com base nos dados disponíveis.

Título: Ex-machina – Instinto Artificial


Ano: 2015
Sinopse: um jovem programador de computadores ganha um concurso na
empresa onde trabalha para passar uma semana na casa de Nathan Bateman
(Oscar Isaac), o brilhante e recluso presidente da companhia. Após sua chega-
da, Caleb percebe que foi o escolhido para participar de um teste com a última
criação de Nathan: Ava (Alicia Vikander), uma robô com inteligência artificial.
Mas essa criatura se apresenta sofisticada e sedutora de uma forma que nin-
guém poderia prever, complicando a situação ao ponto que Caleb não sabe mais em quem confiar.
Comentário: Um programador é escolhido para trabalhar em um projeto que consiste em
aplicar o teste de turing em um robô humanoide dotada de inteligência artificial chamada AVA.
Sua capacidade de aprendizado é excepcional e ela é alimentada por informações de bilhões de
celulares para gravar expressões e linguagens garantindo maior realidade em seu comportamento.

43
UNICESUMAR

As árvores de decisão em inteligência artificial são utilizadas para se obter conclusões a partir de dados
disponíveis sobre decisões tomadas no passado. Além disso, essas conclusões são utilizadas para prever
o curso de ação que provavelmente será realizado no futuro. Assim, as árvores de decisão fornecem um
processo de tomada de decisão científica baseado em fatos e valores, e não na intuição. As organizações,
por exemplo, usam esse processo para tomar decisões de negócios significativas. Alguns manuais de
conserto de equipamentos também podem ser encontrados como árvores de decisão.
Dessa forma, a árvore de decisão em si não consiste em uma abordagem de aprendizado de máquina,
já que podemos aplicar esse método para auxiliar no processo de tomada de decisão mesmo sem a
utilização de computadores, como nos exemplos citados anteriormente sobre os negócios e manuais.
A abordagem de aprendizado de máquina está presente à medida que a árvore de decisão é construída
automaticamente, baseada em dados previamente informados.
As árvores de decisão são uma variação da busca em espaço de estados, formando uma estru-
tura não linear semelhante a uma árvore e da mesma forma sendo descrita utilizando “ramos” e “nós”
organizados conforme uma hierarquia. Vamos entender como criá-las e suas características principais.
Como o nome sugere, o algoritmo da árvore de decisão tem a forma de uma estrutura semelhante
a uma árvore. No entanto, está invertida. Consiste em uma representação que possibilita classificar
um objeto de análise testando seus valores possíveis para determinadas características. Uma árvore
de decisão começa na raiz ou no “nó” de decisão superior que classifica os conjuntos de dados com
base nos valores dos atributos selecionados cuidadosamente.
O “nó raiz” representa todo o conjunto de dados. É aqui que a primeira etapa do algoritmo seleciona
a melhor variável preditora. Isso o torna um “nó de decisão”. Ele também classifica todo o conjunto de
dados em várias classes ou conjuntos de dados menores.
O conjunto de critérios para selecionar atributos é denominado Attribute Selection Measures (ASM
- Seleção de Subconjunto de Atributos). ASM é baseado em medidas de seleção, incluindo ganho de
informação, entropia, índice de Gini, razão de ganho e assim por diante. O “nó raiz” é estabelecido
conforme essas diferentes abordagens. Esses atributos, também chamados de recursos, criam regras
de decisão que ajudam na ramificação. O processo de ramificação divide o “nó raiz” em “subnós”,
dividindo-se ainda mais em mais “subnós” até que os “nós folha” sejam formados. Esses não podem
ser mais divididos: é a classe ou valor que será gerado como resposta.
Essa subdivisão de “nós” é realizada mediante testes de atributos. Cada “nó” é um teste de um valor
de um atributo, um ponto de decisão, e cada ramo é um possível valor do atributo. Essa ligação entre
“nós” é feita por meio de regras de “se” e “então”. Um atributo é testado em um determinado “nó”, se
positivo então vai para um lado e se negativo vai para o outro lado da árvore, seguindo ramos diferentes
que vão encontrar outros “nós”, onde o processo se repete até alcançar um “nó folha”. O caminho ob-
tido é de acordo com as regras de decisão, utilizando conectivo “e” juntamente com vários testes. Um
exemplo de árvore de decisão genérico, com seus componentes principais, é apresentado na Figura 1.

44
UNIDADE 2

RAIZ

NÓ NÓ NÓ

NÓ FOLHA NÓ FOLHA NÓ FOLHA

Figura 1 - Elementos de uma árvore de decisão genérica / Fonte: a autora.

Descrição da Imagem: a imagem apresenta um infográfico de sentido único, com um círculo no topo com a palavra “raiz”, in-
terconectado por três linhas com três círculos com a palavra “nó” abaixo. À esquerda, entre o primeiro círculo e o círculo inferior
esquerdo, próximo à linha, temos uma elipse, apontando para a linha, escrito “valores de atributos”. Abaixo de cada um dos três
círculos com a palavra “nó”, interconectados por duas linhas divergentes cada, temos retângulos com a palavra “nó folha”, e três
pequenos círculos iguais em ordem descendente.

Apontar se uma determinada imagem é de um gato ou de um cachorro é um exemplo típico de clas-


sificação. Aqui, as características ou atributos podem ser a presença de garras ou patas, comprimento
das orelhas, tipo de língua etc. O conjunto de dados será dividido em classes menores com base nessas
variáveis de entrada até que o resultado seja obtido. Podemos ter mais de uma árvore de decisão para
um mesmo problema e o tamanho da árvore varia de acordo com a ordem que as variáveis são testadas.
Mas onde conseguimos perceber a utilidade prática da árvore de decisão dentro da inteligência
artificial? Você, provavelmente, já lidou com um chatboot de alguma empresa para tirar dúvidas
ou realizar um outro tipo de atendimento.

45
UNICESUMAR

Um chatbot é um software em que um agente virtual conversa com uma pessoa de maneira natural,
para atender as necessidades dela de forma rápida e prática. Para o atendimento das necessidades
de clientes e usuários, muitas empresas estão investindo em chatboot que funcionam mediante ár-
vores de decisão. O objetivo é entender a intenção do usuário e conseguir responder suas perguntas
ou proceder com um serviço. A raiz da árvore é uma pergunta inicial e, em seguida, o agente virtual
faz uma série de outras perguntas para ir criando os ramos das árvores de decisão. Por meio das
interações com o usuário, as respostas vão sendo refinadas e a necessidade do cliente é atendida,
o que só é possível por meio de muitos treinamentos.
Fonte: Power Platform ([2022, on-line).

As árvores de decisão podem ser classificadas de acordo com o tipo de variável de saída como também
com base na forma em que são estruturadas. De acordo com a variável de saída, as árvores de decisão
podem ser de variável categórica (classificação) ou de variável contínua (regressão). Nas árvores de
decisão de variável categórica, a saída é dada com base em uma classificação ou categoria. Nas árvores
de decisão de variável contínua, a saída é prevista com base em uma variável contínua.
A previsão de variáveis contínuas depende de um ou mais preditores. Por exemplo, os preços de casas
em uma área podem depender de muitas variáveis, como endereço, disponibilidade de comodidades,
como piscina, número de quartos etc. Neste caso, a árvore de decisão irá prever o preço de uma casa
com base em vários valores variáveis. O valor previsto também será um valor variável.

46
UNIDADE 2

O modelo de árvore de decisão usado para indicar tais valores é chamado de árvore de decisão de
variável contínua. Várias árvores de decisão contínuas resolvem problemas do tipo regressão. Nesses
casos, conjuntos de dados rotulados são usados para prever uma saída contínua, variável e numerada.
A previsão de variáveis categóricas (ou discretas) é baseada em variáveis categóricas ou contínuas.
No entanto, em vez de prever um valor, esse problema é sobre como classificar um novo conjunto de
dados nas classes de conjuntos de dados disponíveis. Por exemplo, analisar um comentário no Face-
book para classificar o texto como negativo ou de apoio. Realizar o diagnóstico de doença com base
nos sintomas de um paciente também é um exemplo de um modelo de árvore de decisão de variável
categórica. As árvores de decisão de variáveis categóricas resolvem problemas do tipo classificação em
que a saída é uma classe em vez de um valor. A Figura 2 ilustra um exemplo de árvore de decisão de
variável categórica, para decidir se espera ou não por uma mesa em um restaurante, analisando vários
tributos, tais como a espera estimada, se está chovendo, preço, entre outros.

Clientes?

Nenhum Alguns Cheio


Não Sim Espera Estimada?

>60 30-60 10-30 0-10


Não Alternativa? Faminto? Sim
Não Sim Não Sim

Reserva? Sex/Sáb? Sim Alternativa?


Não Sim Não Sim Não Sim

Bar? Sim Não Sim Sim Chovendo?


Não Sim Não Sim

Não Sim Não Sim


Figura 2 - Árvore de decisão para decidir se espera ou não por uma mesa de um restaurante, exemplo de árvore de decisão
com variável categórica / Fonte: adaptado de Russell e Norvig (2013).

Descrição da Imagem: a imagem se trata de um infográfico, de leitura descendente, com vários caminhos. Começa com um
retângulo no topo, escrito “Clientes?”, com setas conectando abaixo três retângulos. A seta à esquerda, de nome “Nenhum”, está
conectada ao retângulo abaixo e à esquerda, de nome “Não”; a seta central “Alguns” está conectada ao retângulo “Sim”; a seta à
direita “Cheio” está conectada ao retângulo “Espera Estimada?”. Este retângulo “Espera Estimada?” tem quatro setas abaixo, ligadas
a quatro retângulos: a seta à esquerda, “>60”, conectada a “Não”; a seta centro-esquerda “30-60” conectada a “Alternativa?”; a seta
centro-direita “10-30” conectada a “Faminto?”; a seta à direita “0-10” conectada a “Sim”. O retângulo “Alternativa?” tem duas setas
ligadas a dois retângulos: seta esquerda “Não” ligada a “Reserva?”, e seta direita “Sim” ligada a “Sex/Sáb?”. O retângulo “Reserva?”
está ligado a outros dois: seta esquerda “Não” ligada a “Bar?”, seta direita “Sim” ligada a “Sim”. “Bar?” está conectado a dois: seta
esquerda “Não” ligada a “Não”, seta direita “Sim” ligada a “Sim”. Retornando, retângulo “Sex/Sáb?” está ligado a dois: seta esquerda
“Não” ligada a “Não”, seta direita “Sim” ligada a “Sim”. Retomando caminho anterior, no retângulo “Faminto?”, este se conecta a outros
dois retângulos: seta esquerda “Não” ligada a “Sim”, e seta direita “Sim” ligada a “Alternativa?”. “Alternativa?” está ligada a dois: seta
esquerda “Não” ligada a “Sim”, seta direita “Sim” ligada a “Chovendo?”. “Chovendo?” está ligado a dois: seta esquerda “Não” ligada
a “Não”, seta direita “Sim” ligada a “Sim”.

47
UNICESUMAR

Alguns problemas envolvem tanto variáveis contínuas quanto discretas, envolvendo tanto regres-
são quanto classificação. Nesse caso, aplica-se a floresta aleatória (ou random forest, do inglês),
um algoritmo mais avançado que permite escolher uma categoria e predizer dados através de
um conjunto de árvores treinadas.
Quanto ao tipo de estruturação de dados, as árvores de decisão podem ser: binária, não binária e balancea-
da. Na árvore de decisão binária (ou Binary Search Tree - BST no inglês), temos uma estrutura de dados não
linear composta por elementos que podem estar ou não encadeados, gerando ramificações e subdivisões, assim
como em outros tipos de árvores. O que a torna diferente é que nela, cada “nó” só pode apresentar nenhum,
um ou dois “nós filhos”. Assim, até dois ramos deixam cada “nó”. Além disso, os dados são inseridos de forma
organizada, estando à esquerda do “nó pai” apenas valores menores que ele, e a direita apenas valores maiores.
Essas características facilitam e tornam mais rápida a busca de dados posteriormente. É convencionado que
em ramos da direita estão as decisões verdadeiras, e nos ramos da esquerda as falsas.
O grau máximo de um “nó” em uma árvore binária, quantidade que indica o número de subárvores
que aquele “nó” terá, será dois. Os “nós folha” apresentam graus sempre iguais a zero. Os níveis da árvore
permitem indicar sua altura. O “nó raiz” consiste no nível zero, e seus “nós filhos” a partir da ramifi-
cação estão no nível um da árvore, assim por diante. A altura da árvore será igual ao seu maior nível.

Grau 2 8

RAIZ

Grau 1 6 13 Grau 0

FOLHA
GRAU 0 2

FOLHA

Figura 3 - Árvore binário com identificação dos graus nos “nós” / Fonte: o autor.

Descrição da Imagem:A imagem apresenta um infográfico em sentido de cima para baixo, onde o retângulo no topo tem o número
“8”, com a palavra “raiz” abaixo e a palavra “Grau 2” à esquerda. Este retângulo 8 está interligado com dois retângulos, um com o
número “6”, com a palavra “Grau 1” à esquerda deste, e o outro com o número “13”, sendo que existe a palavra “folha” abaixo e
“Grau 0” à direita deste. O retângulo “6” está interligado abaixo ao retângulo de número “2” que tem a palavra “folha” abaixo e a
palavraa “Grau 0” à esquerda.

48
UNIDADE 2

Nas árvores de decisão não binárias, vários ramos podem sair de um mesmo “nó”. Assim, os testes rea-
lizados em cada “nó” resultam na subdivisão em dois ou mais grupos. Desses, apenas um será satisfeito,
gerando um caminho na árvore de decisão. Já as árvores binárias balanceadas são caracterizadas pelo fato
que em cada “nó”, as duas subárvores geradas a partir dele, terão aproximadamente a mesma altura. Nelas,
a diferença entre a altura da subárvore esquerda com a subárvore direita nunca difere em mais de um.
Mas como se dá esse processo de aprendizagem? A aprendizagem da estrutura da árvore de decisão
e de regras de decisão a partir de dados é chamada indução da árvore de decisão. Como vimos, para
a formação dessa estrutura, os “nós” são subdivididos de acordo com testes de atributos, gerando
grupos diferentes que novamente são testados e subdivididos. Isso se repete até chegar ao “nó folha”.
Uma árvore pode ser “aprendida” dividindo o conjunto de origem em subconjuntos com base em
um teste de valor de atributo. Esse processo é repetido em cada subconjunto derivado de uma maneira
recursiva chamada particionamento recursivo. A recursão é concluída quando o subconjunto em um
“nó” tem o mesmo valor da variável de destino ou quando a divisão não agrega mais valor às previsões.
A construção de um classificador de árvore de decisão não requer nenhum conhecimento de domínio
ou configuração de parâmetros e, portanto, é apropriado para a descoberta de conhecimento explora-
tório. As árvores de decisão podem lidar com dados dimensionais elevados. Em geral, o classificador
de árvore de decisão tem boa precisão. A indução da árvore de decisão é uma abordagem indutiva
típica para aprender o conhecimento sobre classificação.
Assim, os atributos a serem testados devem ser selecionados. No geral, isso é realizado mediante
a análise de cada atributo quanto à qualidade e representatividade, fatores que influenciam na per-
formance da decisão. É utilizada uma função de avaliação para selecionar os atributos, de forma a
produzir a melhor árvore. Para isso, é importante que seja uma heurística para conseguir, mesmo com
informações limitadas, chegar a boas decisões.
A função de avaliação mais utilizada é a de entropia e ganho de informação, que tem o objetivo de
diminuir a impureza (grau de incerteza ou a aleatoriedade) de uma coleção arbitrária de exemplos para
o “nó” atual e os seguintes. A entropia indica a estimativa de falta de informação. Menores valores de en-
tropia indicam menor incerteza, já maiores valores indicam a desordem dos dados. Com ela, o algoritmo
analisa como os dados estão distribuídos nas variáveis de acordo com o objetivo da árvore de decisão.
Através da entropia, é avaliado o ganho de informação de cada variável para decidir qual aquela
que ficará no primeiro “nó”. A entropia indica uma medida de probabilidade da ocorrência de uma
configuração, e quanto menor ela for mais simples é o arranjo dos estados. Para um conjunto de dados
S, que contém exemplos positivos e negativos sobre o alvo do problema, estes com probabilidade pi e
pertencer a classe i, a entropia é conforme a equação a seguir.
Entropia ( S ) = ∑ pi log 2 pi
A entropia é igual a zero quando todos os membros de S pertencem à mesma classe. Já o ganho
indica a redução que se espera da entropia após a divisão do conjunto de exemplos de acordo com
uma determinada regra. Para o atributo A, o ganho é dado pela equação a seguir.

sv
Ganho
= ( S , A) Entropia ( S ) − ∑
v∈valoresA s
Entropia ( Sv )

49
UNICESUMAR

Em que valores A é o conjunto de todos os valores possíveis para o atributo A, e sv é o subconjunto de


S para o qual o atributo A tem valor v. O algoritmo avalia o maior ganho para selecionar os atributos e,
consequentemente, definir a ordem deles. Vai sendo feito um refinamento nível a nível observando esse
parâmetro. Assim, a árvore de decisão é desenvolvida ao estabelecer regras sobre as variáveis que retornam
o melhor ganho de informação, que equivale a menor entropia e a ramos das árvores mais homogêneos.
Essa seleção dos atributos também pode ser realizada por meio do índice Gini (também chamado
índice de diversidade), que também mede a impureza através da análise do grau de heterogeneidade
dos dados. Ele pode ser determinado por meio da equação apresentada a seguir.
c
ÍndiceGini = 1 − ∑ pi2
i =1

Em que pi é a probabilidade de cada classe em cada “nó” e c o número de atributos. O “nó” é dito puro
quando o valor do índice é igual a zero, e nesse caso, ao selecionar uma amostra na base de dados de
forma aleatória, ela sempre vai apresentar exemplos da mesma classe. Por outro lado, o “nó” é impuro
quando é igual a um. Com o índice Gini, a variável selecionada para o primeiro “nó” é a menor do
índice, indicando maior ordem de dados. Nas árvores binárias, ao utilizar esse método, o registro que
apresenta a classe mais frequente tende a se isolar em um ramo, enquanto com a entropia a árvore é
melhor balanceada em cada ramo.
Uma outra forma de se selecionar a ordem de teste dos atributos, nesse caso, quando se trabalha
com variáveis numéricas, é a regressão. Com ela, em síntese, a árvore utiliza o desvio padrão dos va-
lores da variável alvo com relação à variável de cada “nó”. A variável que apresentar maior redução do
desvio padrão é o primeiro “nó”.

50
UNIDADE 2

A árvore de decisão pode ser desenvolvida considerando diferentes métodos de cálculo, por meio de dife-
rentes algoritmos. Esses métodos vão definir a estrutura e o resultado final. São esses algoritmos que irão
organizar as variáveis, colocando mais próximos do “nó raiz” aquelas que têm uma maior relação com este.
O algoritmo CART (Classification And Regression Trees, ou seja, árvores de classificação e
regressão) produz árvores binárias de classificação e regressão. Ele seleciona as divisões dos dados
com base em questões simples de sim/não e depois repete o processo até encontrar a coleção
adequada. Utiliza o índice de Gini para a escolha dos atributos e sua ordem. O critério de parada,
no geral, é a saturação, ou seja, a árvore é construída mediante divisão de “nós” até chegar em
“nós” que não possam mais ser divididos, indicando “nós” mais puros possíveis. Esse algoritmo
pode ser utilizado com variáveis numéricas e categóricas.
Também pode ser utilizado o algoritmo CLS (Concept Learning System, que significa sistema de
aprendizagem de conceito), indicado para tarefas de aprendizado simples, que permite classificar
novos dados com base no aprendizado adquirido. A árvore de decisão é desenvolvida a partir de uma
coleção de exemplos, adicionando “nós” de decisão até que a árvore consiga classificar corretamente
todos os dados de treinamento de um conjunto. Retorna valor de sim ou não e cada exemplo fica
contido em uma das duas classes de decisão.

As empresas têm desenvolvido diversas soluções para maior produtividade em suas operações,
temos como exemplo os mercados financeiros que têm aplicado Inteligência artificial em suas
operações. Existem códigos capazes de aprender e ajudar investidores em pesquisas para que
estes possam tomar decisões mais assertivas?

O algoritmo Iterative Dichotomiser 3 (ID3, que traduzido significa dicotomia iterativa) é o su-
cessor do CLS. Permite criar árvores de decisão com múltiplos ramos, e cada “nó” é associado a
uma característica categórica que resultará no maior ganho de informação. Geralmente, aplica-se
um processo de poda para que a árvore consiga generalizar para dados desconhecidos. Dessa
forma, esse algoritmo tem o objetivo de maximizar o ganho de informação enquanto minimiza a
entropia. O processo é aplicado de forma recursiva, até chegar a uma classe homogênea. É baseado
na técnica “dividir para conquistar” e utiliza a matemática e a lógica para processar e organizar os
dados. Geralmente, resulta em árvores pequenas, com os atributos de maior importância próxi-
mo ao “nó raiz”. Sobre as características gerais desse algoritmo, que é um dos mais aplicados em
árvores de decisão, Mitchell (1997, p. 55, traduzido) afirma:

51
UNICESUMAR



[...] aprende árvores de decisão construindo-as de cima para baixo, começando com a
pergunta “qual atributo deve ser testado na raiz da árvore?” Para responder a esta pergunta,
cada atributo de instância é avaliado usando um teste estatístico para determinar quão
bem ele classifica os exemplos de treinamento. O melhor atributo é selecionado e usado
como teste no “nó raiz” da árvore.

Seguido a esse procedimento, o “nó raiz” é criado e o mesmo é feito para os demais “nós”. Disso resulta
uma busca gulosa por uma árvore de decisão, e o algoritmo não retorna para reavaliar as decisões an-
teriormente tomadas. O método de seleção dos atributos é através da entropia e ganho de informação.
Para entender melhor, vamos visualizar um exemplo fornecido por Mitchell (1997). O algoritmo
ID3 foi aplicado para desenvolvimento da árvore de decisão, considerando os seguintes dados de
treinamento da Tabela 1 para decidir se uma pessoa jogará tênis.

Dia Panorama Temperatura Umidade Vento Jogar Tênis

D1 Ensolarado Quente Alta Fraco Não

D2 Ensolarado Quente Alta Forte Não

D3 Nublado Quente Alta Fraco Sim

D4 Chuvoso Médio Alta Fraco Sim

D5 Chuvoso Frio Normal Fraco Sim

D6 Chuvoso Frio Normal Forte Não

D7 Nublado Frio Normal Forte Sim

D8 Ensolarado Médio Alta Fraco Não

D9 Ensolarado Frio Normal Fraco Sim

D10 Chuvoso Médio Normal Fraco Sim

D11 Ensolarado Médio Normal Forte Sim

D12 Nublado Médio Alta Forte Sim

D13 Nublado Quente Normal Fraco Sim

D14 Chuvoso Frio Alta Forte Não

Tabela 1 - Algoritmo para treinamento de tênis / Fonte: a autora.

52
UNIDADE 2

O primeiro passo é definir o “nó raiz”. O algoritmo ID3, para isso, determina o ganho de informa-
ção de cada atributo (panorama, temperatura, umidade e vento) e seleciona o maior. Por meio do
cálculo da entropia e do ganho de informação, que leva em conta a probabilidade de cada atributo
e seu impacto na decisão de jogar tênis, os valores do ganho foram:

Ganho (S, Panorama) 0,246

Ganho (S, Umidade) 0,151

Ganho (S, Vento) 0,048

Ganho (S, Temperatura) 0,029

Tabela 2 - Informação sobre panorama, temperatura, umidade e vento / Fonte: a autora.

Para exemplificar, demonstro, a seguir, os cálculos da entropia e do ganho de informação do atributo Vento.

Entropia(9, 5  )    9 / 14  log2  9 / 14   (5 / 14) log2 (5 / 14)  0, 940

Valores (Vento)  Fraco, Forte


S   9 , 5  
S fraco  6, 2  
S forte  3, 3  
Sv
Ganho( S , Vento)  Entropia ( S )   S
Entropia ( Sv )
vFraco , Forte

Ganho( S , Vento)  Entropia ( S )  (8 / 14) Entropia ( S fraco )  (6 / 14) Entrpia ( S Forte )


Ganho( S , Vento)  0, 940  (8 / 14)  0, 811  (6 / 14)  1, 00  0, 048

53
UNICESUMAR

Dessa forma, o atributo Panorama permitiu o maior ganho de informação, a melhor predição com re-
lação ao alvo, e assim é selecionada para o primeiro “nó”. O processo é repetido em cada “nó” utilizando
os dados de treinamento, até que todos os atributos sejam avaliados ou que dados de um “nó” tenha
os mesmos valores com relação ao alvo. A árvore de decisão final pode ser visualizada na Figura 4.

Jogar tênis?

PANORAMA

Ensolarado Chuvoso

Nublado

UMIDADE VENTO

Sim

Alta Normal Forte Fraco

Não Sim Não Sim

Figura 4 - Árvore de decisão para a ação de jogar tênis / Fonte: adaptada de Mitchell (1997).

Descrição da Imagem:essa imagem é um infográfico com sentido único de cima para baixo. No topo da imagem, existe uma
pergunta escrita "Jogar tênis?" e abaixo um retângulo azul com a palavra "Panorama", ligado a três setas descendentes, em que: a
primeira seta, à esquerda, tem a palavra "Ensolarado"; a segunda, no centro, tem a palavra “Nublado”; e a terceira, à direita, tem
a palavra "Chuvoso". “Ensolarado” se conecta a um retângulo azul “Umidade”, e este com duas setas abaixo, à esquerda "Alta" de
resposta “Não”, e à direita "Normal" de resposta “Sim”. Na seta central “Nublado”, temos a resposta “Sim”. “Chuvoso” se conecta a
um retângulo azul “Vento”, e este com duas setas abaixo, à esquerda “Forte” de resposta “Não”, e à direita “Fraco” de resposta “Sim”.

Por último, dos algoritmos mais aplicados em árvores de decisão, temos o algoritmo C4.5, que
é a versão melhorada do ID3. Com ele, é possível trabalhar com valores discretos, contínuos
ou indisponíveis, com poda e regras derivadas. A indisponibilidade de valores pode acontecer
pela falta de registro de dados no momento da coleta, por exemplo, e resulta em um signifi-
cativo aumento de complexidade de tratamento. Eles podem ser descartados dos dados de
treinamento ou classificados utilizando a probabilidade de valores possíveis.

54
UNIDADE 2

Árvore de decisão é uma técnica de aprendizado supervisionado que pode ser usada tanto para
problemas de classificação quanto de regressão, mas é preferida, principalmente, para resolver
problemas de classificação. É um classificador estruturado em árvore, onde os “nós” internos re-
presentam os recursos de um conjunto de dados, os ramos representam as regras de decisão e
cada “nó folha” representa o resultado. Para construir uma árvore, usamos o algoritmo CART, que
significa algoritmo de árvore de classificação e regressão. Uma árvore de decisão simplesmente faz
uma pergunta e, com base na resposta (Sim / Não), ela divide a árvore em subárvores.
Fonte: Youtube ([2022], on-line).

No desenvolvimento e aplicação das árvores de decisão em inteligência artificial, devemos ter cuidado
com a super adaptação (ou overfitting, que significa superajuste). Consiste em um ajuste excessivo dos
dados de treinamento. Pode ocorrer em qualquer tipo de estrutura de árvore de decisão, com maior
facilidade à medida que os atributos de entrada e o espaço de estados crescem, e diminui à medida
que aumenta os dados de treinamento. A poda da árvore já mencionada anteriormente evita a super
adaptação. Esse processo consiste em eliminar os “nós” que não mostram relevância para aquela decisão.
“Nós” irrelevantes são aqueles que apresentam ganho de informação próximo a zero.
A poda, ou podagem, da árvore de decisão pode ser realizada em duas circunstâncias, deno-
minadas pré-podagem (utilizada para parar o crescimento de uma árvore) ou pós-podagem (com
a árvore já completa). Consiste em transformar os “nós” em “nós folha” mediante à avaliação do
erro do “nó”. A pós-podagem é realizada depois que toda a árvore é gerada, por meio da seleção
do caminho com melhor desempenho.

55
UNICESUMAR

Título: Eu, Robô (2014)


Sinopse: escrito por Isaac Asimov, foi publicado, originalmente, em 1950.
O livro serviu como base para o roteiro do filme homônimo, no qual Will
Smith interpreta o protagonista, o detetive Del Spooner. Porém, a obra é
bastante diferente da história apresentada no filme. Eu, Robô é um conjunto
de nove contos que relatam a evolução dos autômatos através do tempo.
É neste livro que são apresentadas as célebres Três Leis da Robótica: os
princípios que regem o comportamento dos robôs e que mudaram defi-
nitivamente a percepção que se tem sobre eles na própria ciência. Eu, Robô inicia-se com uma
entrevista com a Dra. Susan Calvin, uma psicóloga roboticista da U.S Robots & Mechanical. Ela é
o fio condutor da obra, responsável por contar os relatos de seu trabalho e também da evolução
dos autômatos. Algumas histórias são mais leves e emocionantes como Robbie, o robô babá.
Outras, como Razão, levam o leitor a refletir sobre religião e até sobre sua condição humana. A
edição traz um posfácio escrito pelo próprio autor sobre sua história de amor com os robôs, tão
comuns em sua obra.
Comentário: Eu, Robô é uma obra de ficção científica que apresenta um desenvolvimento da
inteligência artificial. São apresentados nove contos envolvendo o desenvolvimento e uso dos
robôs, e reflexões sobre seu comportamento e o impacto na sociedade. Apresenta as três leis
da robótica, que são a base para guiar todas as ações dos robôs.

Algumas vantagens das árvores de decisão são:

• Simples de entender e interpretar. As árvores podem ser visualizadas.


• Requer pouca preparação de dados. Outras técnicas, geralmente, requerem normalização de
dados, variáveis f​​ ictícias precisam ser criadas e valores em branco devem ser removidos. Observe,
entretanto, que este módulo não oferece suporte a valores ausentes.
• O custo de usar a árvore (ou seja, dados de previsão) é logarítmico no número de pontos de
dados usados ​​para treinar a árvore.
• Capaz de lidar com dados numéricos e categóricos. No entanto, a implementação do scikit-learn
(biblioteca de aprendizado de máquina de código aberto para a linguagem de programação
Python) não oferece suporte a variáveis categóricas
​​ por enquanto. Outras técnicas geralmente
são especializadas na análise de conjuntos de dados que possuem apenas um tipo de variável.
• Capaz de lidar com problemas de múltiplas saídas.
• Se uma determinada situação é observável em um modelo, a explicação para a condição é
facilmente explicada pela lógica booleana. Por outro lado, em um modelo de caixa preta (por
exemplo, em uma rede neural artificial), os resultados podem ser mais difíceis de interpretar.

56
UNIDADE 2

• Possível validar um modelo por meio de testes estatísticos. Isso torna possível contabilizar a
confiabilidade do modelo.
• Apresenta um bom desempenho, mesmo que suas suposições sejam violadas de alguma forma
pelo modelo verdadeiro a partir do qual os dados foram gerados.

As desvantagens das árvores de decisão incluem:

• Os alunos da árvore de decisão podem criar árvores excessivamente complexas que não genera-
lizam bem os dados. Isso é chamado de overfitting. Mecanismos como poda, definir o número
mínimo de amostras necessárias em um “nó folha” ou definir a profundidade máxima da árvore
são necessários para evitar este problema.
• As árvores de decisão podem ser instáveis ​​porque pequenas variações nos dados podem resul-
tar na geração de uma árvore completamente diferente. Esse problema é atenuado pelo uso de
árvores de decisão em um conjunto.
• As previsões das árvores de decisão não são suaves nem contínuas, mas aproximações constan-
tes por partes, conforme visto na figura anterior. Portanto, eles não são bons em extrapolação.

O uso crescente da Inteligência Artificial no atendimento de clientes


bancários é de suma importância para garantir uma boa experiência
e agilidade nos processos. Muitos têm nomes e até formas humanas,
como o caso dos assistentes Bia do Bradesco e Babi do Banco Inter.
Estima-se que as instituições financeiras economizam quatro minutos
para cada comunicação que o chatbot executa em relação a um aten-
dente humano, visto que sua agilidade na tomada de decisão é bem mais
assertiva. Ouça mais sobre o que a inteligência artificial tem beneficiado
nos atendimentos na rede bancária! Dê o play!

O problema de aprender uma árvore de decisão ótima é conhecido por ser NP-completo (conjunto de
problemas de decisão que podem ser solucionados em tempo polinomial em uma Máquina de Turing
não determinística) sob vários aspectos de otimização e, até mesmo, para conceitos simples. Conse-
quentemente, algoritmos de aprendizagem de árvore de decisão práticos são baseados em algoritmos
heurísticos, como o algoritmo guloso, em que decisões localmente ótimas são feitas em cada “nó”. Esses
algoritmos não podem garantir o retorno da árvore de decisão globalmente ótima. Isso pode ser mi-
tigado pelo treinamento de várias árvores em um aluno de conjunto, onde os recursos e as amostras
são amostrados aleatoriamente com substituição.
A inteligência artificial é de suma importância em várias áreas, especialmente para os bancos,
pois permite que gerenciem dados de alta velocidade em nível recorde. Além disso, recursos como o
pagamento digital e transferências já são realidade para muitos clientes, sejam eles físicos ou digitais.

57
UNICESUMAR

Isso se dá devido ao fato da estrutura hierárquica das árvores de de-


cisão permitir uma visualização profunda no nível de informações, que
garantem maior assertividade na decisão. Vejamos como exemplos de
bancos digitais: Nubank, Neon e Santander. Já bancos físicos: Bradesco,
Banco do Brasil e JP Morgan. Todos estes se utilizam da IA no atendi-
mento de clientes, permitindo que os bancos gerenciem dados de alta
velocidade de nível recorde para receber ideias valiosas. Além disso,
recursos como pagamentos digitais, chatbots e sistemas de detecção
de fraudes biométricas garantem mais segurança aos clientes.

58
Vamos construir um Mapa de Empatia? Faça um checklist utilizando as perguntas a seguir na imagem:

O que
Pensa e Sente?

O que Escuta? O que Vê?

O que
Fala e Faz?

Quais são as Dores? Quais são os Objetivos?

O que você pensa e sente sobre a utilização das árvores de decisão no seu cotidiano?
O que você ouviu falar sobre a Inteligência Artificial e que hoje você tem outro entendimento?
O que você vê no uso da Inteligência Artificial no seu uso de decisões humanas?
O que a inteligência artificial faz para a sociedade?
Quais as dores, ou seja, as dificuldades para que empresas e instituições adquiram IA nos seus
processos?
Quais os objetivos da IA e da árvore de decisão?

59
1. As árvores de decisão em inteligência artificial são utilizadas para se obter conclusões a partir
de dados disponíveis sobre decisões tomadas no passado. Além disso, essas conclusões são
utilizadas para prever o curso de ação que provavelmente será realizado no futuro. Sobre esse
assunto, avalie as informações e marque a alternativa correta.

I) Esse é um estudo dentro do aprendizado de máquinas, que busca desenvolver e implemen-


tar a capacidade de aprendizado, presente em humanos, em computadores e máquinas, de
forma que estes melhorem o seu desempenho com o tempo.
II) As árvores de decisão fornecem um processo de tomada de decisão científica baseado em
intuição, por meio do fornecimento de dados para treinamento.
III) Uma árvore de decisão representa uma função que toma como entrada um vetor de valores
de atributos e retorna uma “decisão” – um valor de saída único. Os valores de saída podem
ser discretos ou contínuos.

Estão verdadeiras as afirmativas:

a) I e II, apenas.
b) II e III, apenas.
c) I e III, apenas.
d) I, II e III.
e) Nenhuma das opções.

2. A árvore de decisão pode ser desenvolvida por meio de diferentes algoritmos. Esses métodos
vão definir a estrutura e o resultado final. São esses algoritmos que irão organizar as variáveis,
colocando mais próximos do “nó raiz” aquelas que têm uma maior relação com este. Sele-
cione a opção que indica um algoritmo que é o sucessor do algoritmo CLS e aprende árvores
de decisão construindo-as de cima para baixo, em que cada atributo de instância é avaliado
usando um teste estatístico (entropia e ganho de informação) para determinar quão bem ele
classifica os exemplos de treinamento para organizar os atributos em “nós”.

a) Algoritmo CLS.
b) Algoritmo C4.5.
c) Algoritmo ID3.
d) Algoritmo CART.
e) Nenhuma das opções.

60
3. A função de avaliação mais utilizada em árvores de decisão é a de entropia com o ganho de
informação, que tem o objetivo de diminuir a impureza (grau de incerteza ou a aleatoriedade)
de uma coleção arbitrária de exemplos para o “nó” atual e os seguintes. Sobre a entropia e
ganho de informação, marque a alternativa correta.

a) A entropia indica a estimativa de falta de informação. Menores valores de entropia indicam


menor incerteza, já maiores valores indicam a desordem dos dados.
b) Por meio da entropia, é avaliado o ganho de informação de cada variável e é utilizado apenas
para decidir qual que ficará por último.
c) A entropia indica uma medida de probabilidade da ocorrência de uma configuração, e quanto
menor ela for, mais complexo é o arranjo dos estados.
d) O algoritmo avalia o maior ganho para selecionar os atributos e, consequentemente, definir
a ordem deles. Vai sendo feito um refinamento nível a nível, observando esse parâmetro, de
forma que aqueles que apresentam menor ganho aparecem primeiro.
e) A árvore de decisão é desenvolvida ao estabelecer regras sobre as variáveis que retornam
o menor ganho de informação, que equivale a maior entropia e a ramos das árvores mais
heterogêneos.

4. Determinar se uma imagem é de um gato ou de um cachorro é um exemplo típico de classifica-


ção. Aqui, as características ou atributos podem ser a presença de garras ou patas, comprimento
das orelhas, tipo de língua etc. O conjunto de dados será dividido em classes menores com
base nessas variáveis de entrada até que o resultado seja obtido. Com base nesse exemplo e
no material estudado, explique, em síntese, como a árvore de decisão na inteligência artificial
pode ser utilizada para reconhecimento de expressões faciais. Para isso, elabore um texto
dissertativo entre 10 a 15 linhas indicando quais os atributos que poderiam ser avaliados.

61
62
3
Representação
do Conhecimento
(Sistemas de
Produção, Frames)
Me. Larissa Torres Ferreira

Nesta unidade, você estudará sobre o sistema de conhecimento,


com suas etapas para adquirir um comportamento inteligente,
desde a entrada até sua saída. As características do conhecimento
como o objeto, eventos, desempenho, metaconhecimento, fatos e
a base propriamente dita. Entenderemos sobre a representação
do conhecimento e sua utilização nos sistemas de produção de-
senvolvendo uma estrutura computacional no raciocínio humano.
Nesta unidade, você vai entender sobre a importância dos frames
e da sua aplicabilidade como representação explícita e intuitiva do
conhecimento na inteligência artificial.
UNICESUMAR

O conhecimento é a informação necessária


para apoiar diversas decisões a serem tomadas
por empresas e pessoas no cotidiano. Houve
maior necessidade por uma tecnologia baseada
no conhecimento, e por bases de conhecimento
maiores e mais modulares para que pudessem
se comunicar e integrar com outras aplicações.
Para as indústrias, principalmente, possuir
conhecimento e dados assertivos, podem ga-
rantir maior controle em insumos, demandas de
produção ou mesmo aplicações específicas na
locomoção de materiais. Diante disso, temos a
representação do conhecimento como um cam-
po de inteligência artificial, que se concentra na
concepção de representações computacionais que
capturam informações sobre o mundo e podem
ser usadas para resolver problemas complexos.
Agora, fica a pergunta: qual a importância da base
de conhecimento nas indústrias?
A indústria da saúde é uma das principais
áreas que é beneficiada com a representação do
conhecimento de Inteligência Artificial (IA). Para
que as pesquisas sejam mais rápidas e o desen-
volvimento de novos medicamentos entrem logo
para o mercado, a IA auxilia nessa agilidade de
processos diante dos inúmeros resultados e con-
frontando a cada etapa de pesquisa. Vejamos que
o aumento do uso de robôs cirúrgicos, exames em
3D e a explosão dos serviços de telemedicina são
tudo um reflexo da economia do conhecimento
e utilização do IA.
Portanto, devemos entender que as aplica-
ções das representações de conhecimento são de
suma importância para o desenvolvimento de
novos produtos e garantir maior assertividade
nas pesquisas médicas. Durante o período atípico
da pandemia de covid-19 (iniciada nos meados
de 2020), a agilidade na confecção de vacinas foi
possível com o apoio da tecnologia. A robótica

64
UNIDADE 3

é fundamental para a manipulação de materiais perigosos ou contagiosos, reduzindo os riscos das


pessoas neste tipo de trabalho.
Diante desses fatos, podemos acreditar que sintomas de doenças podem ser lidos com cada vez
mais assertividade? Teremos menos riscos de contágio na execução de pesquisas de vírus ou bactérias
tendo robôs na manipulação?
Um frame consiste em um título, uma lista de achados necessários para tomar uma decisão ou
realizar uma ação, e uma instrução lógica ou matemática para determinar sua saída. Os frames de re-
presentação do conhecimento são vantajosos porque podem ser criados, visualizados e conceituados
como entidades independentes que correspondem a construções de dados. Facilitam a engenharia do
conhecimento e fornecem explicações compreensíveis para os usuários.
O tema da representação do conhecimento diz respeito às diversas formas pelas quais o acervo
dessas informações pode ser organizado e processado. O ponto importante é que as noções de
organização e processamento estão entrelaçadas. A forma como as informações são organizadas
tem um efeito sobre os processos ou operações, que podem ser usados para manipular elementos
das informações. Assim, a representação do conhecimento é uma questão de estrutura e função.
Existem muitas maneiras diferentes de representar o conhecimento em uma estrutura computa-
cional, e as diferenças ocorrem ao longo de várias dimensões diferentes. Na abordagem clássica
da representação do conhecimento, as unidades de representação defendem coisas claramente
articuladas, e as informações que são movidas e manipuladas pelas operações aplicáveis também
são confortavelmente significativas em um nível conceitual útil.

Para ilustrar o conceito de representação do conhecimento, vamos assistir


o vídeo Robô cirurgião já é realidade no Einstein - YouTube. Neste vídeo,
você irá conhecer o projeto Da Vinci, que faz parte do Hospital Albert
Einstein. Após assistir ao vídeo, anote que tipos de atividades estes robôs
efetuam, e se qualquer médico pode utilizar este robô.

Os robôs têm desempenhado um papel importante na área médica. Estes já fazem parte do cotidiano
de hospitais, sendo controlados por médicos para procedimentos menos invasivos e cirurgias. Alguns
robôs, na execução de cirurgias, evitam a mão trêmula do médico, bem como são mais precisos em
incisões, ocasionando menos sangramentos. Desse modo, temos indagações importantes sobre o
conhecimento dos robôs médicos.
• Na atualidade, precisamos treinar profissionais médicos para a utilização destes robôs?
• Como os programas que fazem parte destes robôs representam o conhecimento médico?
• Você acredita na substituição plena de médicos nas cirurgias?

Considerando tudo isso, anote seus resultados no seu Diário de Bordo.

65
UNICESUMAR

66
UNIDADE 3

Caro(a) aluno(a), o que torna um sistema inteligente não é apenas a sua capacidade de armazenar e
manipular dados. O sistema inteligente permite, por meio do conhecimento desses dados, desenvolver
novos conhecimentos e utilizar métodos de representação para resolver problemas complexos. É o
mesmo que nós, humanos, fazemos. Nos comportamos de forma inteligente porque temos acesso a
muita informação sobre o mundo e aplicamos esse conhecimento para produzir novos conhecimentos,
e com isso nos adaptamos ao mundo e atingimos nossos objetivos.
Você pode perceber, portanto, que o conhecimento e a inteligência têm uma relação direta. O
conhecimento do mundo real é extremamente importante para a inteligência humana e, da mesma
forma, para a Inteligência Artificial. É por meio do conhecimento que conseguimos obter um com-
portamento inteligente em um agente de IA. Os sistemas inteligentes passam por determinadas etapas
para adquirir o comportamento inteligente, que são a percepção, a aprendizagem, a representação e
raciocínio do conhecimento, o planejamento e a execução.
Em inteligência artificial, o conhecimento consiste na informação que um programa de
computador necessita ter para se comportar de forma inteligente. Os programas de computador
são alimentados com um conhecimento, que pode ser fornecido de diversas formas, sobre um
determinado problema a ser resolvido.
Esse conhecimento pode estar na forma de descrições, heurísticas, regras e procedimentos que um
especialista utilizará para a resolução de um problema. Os sistemas baseados em conhecimento, no geral,
utilizam uma base de conhecimento e um mecanismo de raciocínio através de uma lógica de controle.

Entradas: fatos, Base de Mecanismos Saídas: ações,


informações conhecimento de raciocínio hipóteses

Figura 1 - Sistema baseado em conhecimento / Fonte: a autora.

Descrição da Imagem:a imagem apresenta um infográfico de sentido único, contendo três retângulos de fundo azul, com setas azuis
conectando no sentido da esquerda para a direita. No primeiro retângulo, está escrito: “Entradas: fatos, informações”; no segundo re-
tângulo está escrito: “Base de conhecimento + mecanismos de raciocínio”; e no terceiro retângulo está escrito: “Saídas: ações, hipóteses”.

Conforme afirma Brachman (1990, p. 7): “o que torna um sistema baseado em conhecimento não é o uso
de um formalismo lógico [...] em vez disso, é a presença de uma base de conhecimento, uma coleção de
estruturas simbólicas que representam aquilo em que acredita e raciocina durante a operação do sistema”.
O conhecimento é a consciência adquirida mediante fatos, dados e situações. Quando pensamos em
domínios pequenos, estabelecidos em sentenças de frases, conseguimos estabelecer o conhecimento
utilizando diversas técnicas simples, mas quando pensamos em domínios complexos, como compras
na internet ou o mercado de ações, necessitamos de representações gerais, envolvendo objetos, eventos,
fatos, base de conhecimento, entre outros. Como você já deve ter observado, para estudar esses siste-
mas, é importante conhecer características do conhecimento dentro da inteligência artificial, que são:

67
UNICESUMAR

• Objeto: consiste na análise de fatos sobre objetos existentes.


• Eventos: são ações executadas no nosso mundo.
• Desempenho: comportamento relacionado com o conhecimento de como executar as ações.
• Metaconhecimento: é o conhecimento que sabemos.
• Fatos: verdades sobre o mundo real ou sobre o que representamos.
• Base de conhecimento: do inglês Knowledge Base (KB), consiste em um grupo de
sentenças ou informações.

Podemos falar de diferentes tipos de conhecimento, conforme suas características. O conheci-


mento declarativo, também chamado conhecimento descritivo, é aquele expresso em declarações
sobre conceitos, fatos e objetos, possuindo linguagem simples. O conhecimento processual, ou
imperativo, é aquele relacionado sobre saber como fazer algo por meio do uso de regras, estratégias
e procedimentos. Chamamos conhecimento heurístico aquele que envolve o conhecimento de
especialistas em um assunto, mediante experiências e conhecimentos adquiridos anteriormente.
Por fim, temos o conhecimento estrutural, que é o conhecimento básico para resolução de pro-
blemas, relacionando vários conceitos e objetos.
Contudo, para utilizar esse conhecimento, é necessária uma maneira de realizar a sua representação.
Assim, chegamos na representação do conhecimento, e conforme afirma Brachman (1990, p. 1087):



A representação e raciocínio do conhecimento é a área da Inteligência Artificial (IA)
que se preocupa em como o conhecimento pode ser representado simbolicamente e
manipulado de forma automatizada por programas de raciocínio. Mais informalmente,
é a parte da IA q​​ ue se preocupa com o pensamento e como o pensamento contribui para
o comportamento inteligente.

A representação do conhecimento é a área de estudo dentro da inteligência artificial que investiga


o comportamento inteligente, mas com ênfase no conhecimento. Dessa forma, buscamos descobrir
o que faz um sistema se comportar de forma inteligente e quais métodos computacionais podem
ser aplicados para permitir isso. Esse estudo se preocupa em como o sistema usa o que sabe para
decidir o que fazer. Para essa representação, é utilizado um conjunto de símbolos formais para
representar uma série de proposições fornecidas ao sistema. E aí é o raciocínio que vai permitir
produzir novas proposições a partir daquelas fornecidas.
No geral, há quatro abordagens dentro da representação do conhecimento:
• Conhecimento relacional simples: consiste na maneira mais simples de armazenar fatos, utili-
zando o método relacional. Os fatos sobre um conjunto de objetos são relacionados em colunas,
como exemplificado na Tabela 1 a seguir. É muito utilizada em sistemas de bancos de dados.
Apresenta pouca oportunidade de inferência.

68
UNIDADE 3

Jogador Peso (kg) Idade (anos) Altura (m)

Jogador 1 67 23 1,62

Jogador 2 59 18 1,60

Jogador 3 76 24 1,67

Jogador 4 68 22 1,69

Tabela 1 - Exemplo de conhecimento relacional simples / Fonte: a autora.

• Conhecimento herdável: os dados são armazenados conforme uma hierarquia de classes, e é


aplicada a propriedade herança, em que elementos herdam valores de outros dentro de uma
classe. Apresenta uma relação entre instância e classe, denominada relação instância. A represen-
tação de conhecimento através de frames, explicado mais à frente, corresponde a esse método.
Cada frame individual pode representar uma coleção de atributos e seu valor.
• Conhecimento inferencial: o conhecimento é representado na forma de lógicas formais, per-
mitindo obter mais fatos.
• Conhecimento processual: programas e códigos são utilizados para descrever como fazer
as coisas específicas e como proceder. A regra SE-ENTÃO é utilizada nesse caso. Podemos
representar conhecimentos heurísticos ou específicos por meio dessa abordagem. A repre-
sentação de conhecimento mediante sistemas de produção utiliza esse método, e conhece-
remos melhor mais à frente.

69
UNICESUMAR

Os humanos adquirem conhecimento ao longo de sua vida e, de acordo com esta evolução, reali-
zam suas ações no mundo real. Isso se dá devido a capacidade de entender, raciocinar e interpretar
conhecimento. Já as máquinas fazem isso mediante à representação e raciocínio do conhecimento.
Assim, podemos descrever a representação do conhecimento como a seguir:

• A representação e o raciocínio do conhecimento (do inglês Knowledge Representation


and Reasoning, KRR) é a parte da inteligência artificial que se preocupa com o pensa-
mento dos agentes de IA e como o pensamento contribui para o seu comportamento
inteligente.
• É por meio dela que é possível representar informações sobre o mundo real, para
que um computador possa entender e utilizar esse conhecimento para resolver os
complexos problemas do mundo real, como o diagnóstico de uma condição médica
ou a comunicação com humanos na linguagem natural.
• É também uma maneira que descreve como podemos representar o conhecimento
em inteligência artificial. A representação do conhecimento permite que uma máqui-
na inteligente aprenda com dados e experiências fornecidos, para que ela possa se
comportar inteligentemente como um humano.

Os sistemas de representação de conhecimento devem possuir algumas propriedades:

• Precisão representativa, a base de conhecimento deve ter a capacidade de representar


qualquer conhecimento que seja necessário.
• Adequação inferencial, deve ter a capacidade de manipular as representações existentes
para produzir novos conhecimentos.
• Eficiência inferencial, capacidade de direcionar o mecanismo de inferência de conhe-
cimento para direções mais promissoras.
• Eficiência de aquisição, que é a capacidade de adquirir novos conhecimentos utilizando
métodos automáticos.

Então, esses sistemas baseados em conhecimento são projetados com a capacidade de receber
fatos sobre o mundo e modificar seu comportamento de acordo com esses fatos. Neles, suas ações
são baseadas no que ele acredita sobre o mundo, e não apenas o que é explicitamente representado. O
raciocínio calcula as implicações de uma base de conhecimento.
Podemos realizar, de várias formas, a representação do conhecimento, entre elas: regras de produção,
lógica, redes semânticas, frames, procedimentos, redes neurais etc. Nesta unidade, iremos aprofundar
nas formas de representação mediante regras de produção e frames.

70
UNIDADE 3

Título: Minority Report


Ano: 2002
Sinopse: No filme, o mundo aboliu o assassinato, pois há a divisão pré-cri-
me, um setor da polícia onde o futuro é visualizado através de paranormais,
os precogs, e o culpado é punido antes do crime ter sido cometido. Quando
os três precogs, que só trabalham juntos e flutuam conectados em um tan-
que de fluido nutriente, têm uma visão, o nome da vítima aparece escrito em
uma pequena esfera e em outra esfera está o nome do culpado. Também
surgem imagens do crime e a hora exata em que acontecerá. Estas informações são fornecidas
para uma elite de policiais, que tentam descobrir onde será o assassinato, mas há um dilema: se
alguém é preso antes de cometer o crime, pode esta pessoa ser acusada de assassinato, pois o
ato que motivou sua prisão nunca aconteceu?
Comentário: O tema central do filme é a questão do livre arbítrio contra o determinismo, que
examina se o livre arbítrio pode existir se o futuro está definido e conhecido antecipadamente.
Outros temas incluem: o papel do governo que, com base no conhecimento antecipado de acon-
tecimentos, toma decisões para a proteção de seus cidadãos; o papel da mídia em um estado
futuro, em que os avanços tecnológicos tornam a sua presença quase sem limites; e a legalidade
potencial de um promotor infalível.

O raciocínio pode ser desenvolvido mediante o uso de um formalismo denominado sistemas de


produção, que é um sistema de raciocínio que se desenvolve progressivamente em cadeia, utili-
zando regras que são chamadas regras de produção, para representar o conhecimento. São uma
estrutura computacional e se baseiam na ideia que os humanos raciocinam a partir de regras
práticas para realizar tarefas. Ficou conhecido como sistema especialista, por usar regras como
uma representação do conhecimento para resolver problemas que, normalmente, necessitam de
experiência humana. É um sistema baseado em conhecimento procedimental, podendo controlar
hardwares ou softwares. A composição desses sistemas é:
• O conjunto de regras de produção.
• Memória de trabalho.
• O ciclo de reconhecimento-ação.

Esse sistema apresenta uma memória de trabalho que consiste em uma memória contínua de
afirmações como um banco de dados, apresentando o estado atual do mundo. Contudo, apresenta
maior volatilidade, pois, durante a operação do sistema, essa muda continuamente. Essa memória
de trabalho é composta por um conjunto de elementos, chamados elementos de memória de tra-
balho, no formato “atributo: valor”, por exemplo “idade: 30 anos”.

71
UNICESUMAR

A memória de trabalho contém a descrição do estado atual de resolução de problemas e a regra


pode escrever conhecimento para a memória de trabalho. Este conhecimento corresponde e pode
disparar outras regras.
A estrutura de uma regra de produção possui duas partes: um conjunto de condições, que antece-
dem um conjunto de ações. São escritas no formato “SE condições ENTÃO ações”. Essas regras podem
apresentar uma combinação condição-conclusão ou condição-ação, podendo ser encadeadas para trás
ou para frente, respectivamente. As condições são avaliações do estado atual da memória de trabalho,
enquanto as ações modificam esse estado.
Os sistemas de produção operam segundo um ciclo composto por três passos, que são repetidos
até que nenhuma regra consiga ser aplicada na memória de trabalho. As três partes do ciclo são:

• 1. Reconhecer: encontrar quais regras que as condições são satisfeitas pela memória
de trabalho atual, ou seja, aquelas que são aplicáveis.
• 2. Resolver conflito: verificar e escolher dentre as regras encontradas no primeiro
passo, que é denominado conjunto de conflito, qual deve ter a chance de ser exe-
cutada primeiro.
• 3. Agir: executar as ações consequentes das regras selecionadas no passo anterior,
modificando a memória de trabalho.

A composição dos sistemas de produção pode ser definida como uma base de conhecimento com um
motor de inferência e uma interface. Na base de conhecimento, ficam as regras de produção, condições
e ações de controle. Os fatos representam o estado do mundo ou uma informação estática. O programa
aplica as regras de produção aos fatos por meio do motor de inferência. E através da interface, conse-
guimos nos comunicar com o sistema de produção, em que vemos os resultados das ações.
Os motores de inferência são ciclos, verificando a cada ciclo no conjunto de regras quais são sa-
tisfeitas, ou seja, aplicáveis. O conjunto de regras aplicáveis, como vimos anteriormente, é chamado
conjunto de conflito porque são várias regras “competindo” entre si para serem aplicadas. O motor de
inferência seleciona a regra a ser executada e, em seguida, o ciclo é reiniciado.
Se houver uma nova situação (estado) gerada, então múltiplas regras de produção serão disparadas
em conjunto, isso é chamado de conjunto de conflitos. Nesta situação, o agente precisa selecionar uma
regra desses conjuntos, e é chamada de resolução de conflitos.
Nas regras de produção, o agente verifica a condição e se a condição existe, então, a regra de produ-
ção dispara e a ação correspondente é realizada. A condição parte da regra, determina qual regra pode
ser aplicada a um problema. E a parte de ação realiza as etapas associadas de resolução de problemas.
Este processo completo é chamado de ciclo de reconhecimento de atos.
Como dito anteriormente, as regras de produção possuem como antecedente um conjunto de con-
dições. Podem, inclusive, apresentar mais de uma condição e, nesse caso, todas devem ser trabalhadas
em conjunto, devendo ser verdadeiras para que a regra possa ser aplicada. As condições podem ser

72
UNIDADE 3

positivas ou negativas e são compostas pela estrutura “atributo: especificação”. A especificação pode
ser uma variável, uma expressão ou um teste dentro do conjunto de elementos ou, ainda, uma con-
junção (∧), disjunção (∨) ou negação (¬) de uma especificação. Por exemplo, uma condição pode ser
expressa na forma: (idade da pessoa: {<21 ∧ >7}), que vai ser satisfeita caso a memória de trabalho não
apresente um elemento que seja do tipo pessoa e com idade entre 7 e 21 anos.
Dessa forma, a regra é aplicável se as condições forem atendidas pela memória de trabalho atual. No
caso, se a condição for positiva, a regra é atendida se a memória de trabalho apresentar um elemento
correspondente àquela condição, e se negativa vai ser satisfeita se não houver um elemento correspon-
dente àquela condição na memória de trabalho. Essa correspondência acontece se o elemento apresenta
um par atributo:valor que corresponda com o atributo:especificação da condição.
Com relação às ações que também compõem as regras de produção, apresentam uma forma mais
procedimental, devendo todas ser executadas em sequência. As ações podem ser:
• Adicionar padrão, que significa adicionar à memória de trabalho um novo elemento especifi-
cado por padrão.
• Remover i, onde i é um inteiro, que consiste em remover da memória de trabalho o elemento
que atenda a i-ésima condição na parte antecedente da regra. Não se aplica se a condição for
negativa. Útil quando não é necessário que a regra seja testada uma outra vez.
• Modificar i (especificação de atributo), que consiste em modificar o elemento dentro da memória
de trabalho que corresponde a i-ésima condição na parte antecedente da regra, modificando
seu valor para aquele especificado. Também não se aplica se a condição for negativa.

No processo de aplicação das regras de produção, podemos optar por aplicar uma ou mais de uma
que seja aplicável. Na etapa de resolver conflito do sistema de produção, há algumas estratégias que
permitem selecionar quais regras serão executadas. Os sistemas de regras de produção geralmente
aplicam mais de uma estratégia para resolução de conflito. Pode ser uma escolha aleatória dentre as
regras aplicáveis ou seguir a ordem em que elas se apresentam.
Além disso, podem ser selecionadas aquelas que atendam determinadas condições, ou conforme
o tempo de retorno – que pode ser de acordo com o elemento da memória de trabalho criado ou
modificado recentemente ou com a regra que foi usada menos recentemente. Nesse caso, utilizando o
primeiro modo, garantimos que um solucionador de problemas continue focado no que está fazendo
(característico da pesquisa em profundidade); utilizando o último, fazemos com que todas as regras
tivessem chance de influenciar no resultado (característico da pesquisa ampla).
Há, também, a estratégia de refratariedade, que consiste em não selecionar a regra que foi mais
recentemente aplicada com os mesmos valores de variáveis. Assim, evitamos que o sistema entre em
um laço infinito, repetindo a mesma regra com o mesmo elemento da memória de trabalho.
As ações executadas alteram o estado do mundo, e devido a isso, as regras só podem ser exe-
cutadas uma por vez. Porque após a ação, as condições que estavam satisfeitas podem não mais
estar. Dessa forma, somente é possível repetir o ciclo e verificar as regras que são satisfeitas para
o estado do mundo atual disponível na memória de trabalho.

73
UNICESUMAR

Os sistemas de produção foram sendo aprimorados, principalmente devido ao tempo que leva-
vam para serem implementados. Uma melhoria nesse quesito foi a implementação de uma rede
a partir dos antecedentes da regra, por meio de um algoritmo denominado RETE. Este algoritmo
fornece uma descrição lógica generalizada de uma implementação da funcionalidade responsável
por combinar tuplas de dados (“fatos”) contra produções (“regras”) em um sistema de produção
compatível com padrões (uma categoria de mecanismo de regras). Isso permite computar as regras
com antecedência, de forma que os elementos da memória de trabalho, novos ou modificados,
passam de forma incremental na rede de testes.
Esses elementos, ao percorrer toda a rede em qualquer ciclo, eram considerados como satisfazendo
todas as condições. Isso faz com que apenas parte da memória de trabalho seja analisada, reduzindo o
tempo para calcular o conjunto de conflito. A rede contém dois tipos de nós: alfa, que são testes simples;
e beta, que leva em conta que as variáveis criam restrições entre as diferentes partes de um antecedente.
Esses sistemas de produção apresentam algumas vantagens na aplicação em problemas práticos,
principalmente quando se trata de pequenos e simples sistemas. Com as grandes aplicações, essas
vantagens vão tendo seus efeitos diminuídos. No geral, as vantagens são:
• Modularidade: cada regra funciona de forma independente, permitindo que sejam adiciona-
das novas regras ou excluídas as antigas de forma incremental e fácil, permitindo a aquisição
de conhecimento.
• Controle refinado: a estrutura de controle é simples, não aplicando metas ou estruturas com-
plexas na implementação.
• Transparência: usam uma terminologia facilmente identificado por humanos, uma vez que as
regras são desenvolvidas a partir do conhecimento especializado. O raciocínio pode ser com-
preendido e explicado em linguagem natural.

74
UNIDADE 3

Exemplo de aplicação de sistemas de produção:


• SE (no ponto de ônibus E ônibus chega) EM SEGUIDA, ação (entre no ônibus).
• SE (no ônibus E assento pago e vazio) Em seguida, ação (sente-se).
• SE (no ônibus e não pago) Em seguida, ação (pagamento de encargos).
• SE (ônibus chega ao destino) EM SEGUIDA, ação (descer do ônibus).

Vantagens da regra de produção:


1. As regras de produção são expressas em linguagem natural.
2. As regras de produção são altamente modulares, para que possamos facilmente remover,
adicionar ou modificar uma regra individual.
Desvantagens da regra de produção:
1. O sistema de regras de produção não apresenta nenhuma capacidade de aprendizagem,
pois não armazena o resultado do problema para os usos futuros.
2. Durante a execução do programa, muitas regras podem estar ativas, portanto, os sistemas
de produção baseados em regras são ineficientes.

Sistemas de produção foram aplicados, por exemplo, em 1970, para auxiliar os médicos no diag-
nóstico de infecções bacterianas, mediante à aplicação de 500 regras de produção para identificar
100 causas de infecção. Usava informações incertas e incompletas para
criar hipóteses.
Esse método pode ser aplicado, também como exemplo, na automação
de recrutamento e seleção em empresas, como demonstrou Souto et al.
(2016). A montagem da base de conhecimento é feita através da análise
de dados dentro dessa área. Foram definidas as variáveis, o objetivo, as
regras, a interface e outras informações.
Fonte: adaptado de Brasil (2020).

75
UNICESUMAR

As variáveis de entrada foram definidas, por exemplo ensino médio, ensino superior, experiência
profissional, de forma que representassem bem o problema e os critérios de seleção definidos pela
empresa e permitisse a entrada de seus valores.
As regras de produção também foram estabelecidas por meio da aquisição de conhecimento, de
forma que, quando executadas, permitam a resolução do problema. Foram desenvolvidas para verificar
a contratação ou não do candidato de acordo com os critérios estabelecidos nas variáveis.
Uma interface foi criada para promover a comunicação com o usuário mediante perguntas as-
sociadas às variáveis. Com base nas respostas que dão valor às variáveis, e nas regras estabelecidas, o
resultado é obtido indicando se aquele candidato está apto ou não para a próxima fase.

76
UNIDADE 3

No caso de sistemas de produção, as regras ou o conhecimento que temos de um determinado objeto


podem estar espalhados na base de conhecimento. À medida que se aumenta o número de sentenças,
é importante que se consiga organizá-las de alguma forma. Para resolver isso, podemos agrupar fatos
ou regras em função dos tipos de objetos que pertencem. E o conhecimento se apresenta muito mais
nesse sentido, como uma estrutura organizada sobre os objetos do que apenas uma coleção de frases.
É nisso que consiste um sistema de produção orientado a objetos.
Conforme afirmam Norvig e Russell (2013), uma parte vital da representação do conhecimento é a
organização dos objetos em classes ou categorias. Mesmo a interação com o mundo ocorrendo no nível de
objetos individuais, o raciocínio, em sua maior parte, ocorre no nível de categorias. Também conseguimos,
após essa classificação, realizar previsões sobre os objetos, verificando a presença de certo objeto por meio de
percepções ou deduzindo que este pertence a determinada categoria devido às propriedades que apresenta.
Os objetos podem ser de vários tipos, podem ser físicos, como casas e pessoas, ou abstratos, como
uma aplicação financeira ou uma viagem. E cada objeto tem suas partes, por exemplo: paredes e portas,
no caso de casas; braços e pernas, no caso de pessoas; tipos, no caso de aplicação financeira; e destino e
horário, no caso de viagem. E assim como as portas devem estar relacionadas com as paredes em uma
casa, as partes de um objeto devem estar conectadas de alguma forma mediante restrições procedimentais.
Utilizando esse agrupamento de objetos por tipo, conseguimos simplificar a base de conheci-
mento através da herança. Por exemplo, se afirmamos que todas as instâncias da categoria alimento
são comestíveis e que a fruta é uma subcategoria de alimento, sendo maçãs uma subcategoria de
fruta, concluímos que a maçã é comestível, pois herdou essa propriedade por ser um elemento
da categoria alimento (NORVING; RUSSEL, 2013).
Da mesma forma, se estivermos construindo uma base de conhecimento sobre pássaros, podemos
afirmar que possuem bico e penas, e aí as espécies de pássaro herdam esse atributo. Com isso, conseguimos
armazenar informações com níveis altos de abstração e reduzir o tamanho da base de conhecimento, uma
vez que só precisamos definir essas características uma vez. A herança também permite desenvolver a
base de conhecimento com maior consistência à medida que adicionamos novas classes (LUGER, 2013).
No uso de um sistema de representação de conhecimento orientado a objetos, levamos em conta as
operações de raciocínio para os vários tipos de objetos de importância na aplicação e desenvolvemos
procedimentos para lidar com eles. Grupos de procedimentos são desenvolvidos e orientados a objetos
para que, com esse conhecimento, consiga lidar com novas situações. É nesse sentido que se aplica os
frames, que são estruturas de dados para representar situações envolvendo um objeto ou categoria,
com características e relações com outros objetos ou categorias.

77
UNICESUMAR

A indústria da saúde é uma das muitas indústrias onde a Inteligên-


cia Artificial pode encontrar seu uso. Construir e manter o progresso
bem-sucedido no setor de saúde depende, em grande parte, de seguir
os últimos avanços tecnológicos. As novas tendências tecnológicas no
campo da Inteligência Artificial têm tido um impacto positivo significativo
na detecção de inúmeras condições médicas e doenças. Dê um play e
ouça mais sobre essas tecnologias!

Existem duas abordagens dentro da representação do conhecimento. Uma delas aplica a lógica sim-
bólica para resolver problemas dentro da inteligência artificial, denominada abordagem declarativa. A
outra entende que o comportamento inteligente humano é muito complexo e não poderia ser descrito
apenas utilizando a lógica simbólica. Para isso, utiliza frames, que é uma combinação de métodos e
ferramentas para descrever ações e atividades do cérebro humano. Esta é denominada abordagem
procedimental. Na maioria dos problemas práticos, é necessária uma combinação das duas abordagens.
Os frames, conforme a abordagem procedimental, são uma estrutura de dados de inteligência arti-
ficial usada para dividir o conhecimento em subestruturas, representando “situações estereotipadas”.
Com isso, conseguem desenvolver conexões implícitas em um problema por meio de uma estrutura
de dados explicitamente organizada. Eles foram propostos por Marvin Minsky, em seu artigo de 1974,
“Uma estrutura para representar o conhecimento”. Nele, apresenta uma discussão teórica, de modo
a promover o aprofundamento da problematização por meio do conhecimento científico. Sobre os
frames, Misky (1974, p. 267) afirma:



Esta é uma estrutura lembrada a ser adaptada para se ajustar à realidade, alterando
os detalhes conforme necessário. Um frame é uma estrutura de dados para repre-
sentar uma situação estereotipada, como estar em um certo tipo de sala de estar
ou ir a uma festa de aniversário de criança. Anexados a cada frame estão vários
tipos de informações. Algumas dessas informações são sobre como usar o frame.
Algumas são sobre o que se pode esperar que aconteça a seguir. Algumas são sobre
o que fazer se essas expectativas não se confirmarem.

Um frame é um registro como estrutura que consiste em uma coleção de atributos e seus valores
para descrever uma entidade no mundo. Os frames são a estrutura de dados de IA que divide
o conhecimento em subestruturas, representando situações de estereótipos. Consiste em uma
coleção de slots e valores de caça-níqueis. Estes slots podem ser de qualquer tipo e tamanho. Os
caça-níqueis têm nomes e valores que são chamados de facetas.

78
UNIDADE 3

Assim, na abordagem procedimental, os dados de controle necessários para usar o conhecimento


estão dentro do próprio conhecimento. Nele, é utilizado um conjunto de passos, na forma de
regras ou árvores de decisão, de forma a possibilitar a resolução de problemas e o encontro de
soluções. A utilização de frames permite a representação do conhecimento em unidades com-
plexas que caracterizam a organização de objetos.
O nosso conhecimento sobre o mundo vai muito nesse sentido. Temos e utilizamos informa-
ções estruturadas obtidas em experiências anteriores para conseguir lidar com novas situações.
Esse conhecimento vem a nós em estruturas semelhantes a frames, ou quadros, e por meio deles
conseguimos fazer essa análise comparativa. Por exemplo, quando nos hospedamos em hotéis,
temos uma ideia do que esperamos encontrar em seus quartos, mesmo sendo quartos diferentes,
como cama, banheiro, telefone. O frame desse exemplo também envolverá informações adicionais
sobre pressuposições, como: se ficar com fome, peça comida na recepção pelo telefone. Assim,
não é necessário reconstruir todo o quadro a cada novo quarto de hotel, todos os elementos rela-
cionados estão organizados em uma estrutura denominada frames e somente as particularidades
que deverão ser fornecidas quando for necessário (LUGER, 2013).

79
UNICESUMAR

Os frames são derivados de redes semânticas e, mais tarde, evoluíram para nossas classes e objetos
modernos. Um único quadro não é muito útil. O sistema de quadros consiste em uma coleção de
quadros conectados. No quadro, o conhecimento sobre um objeto ou evento pode ser armazena-
do em conjunto na base de conhecimento. O quadro é um tipo de tecnologia que é amplamente
utilizada em várias aplicações, incluindo processamento de linguagem natural e visões de máquina.

Os frames apresentam entidades como objetos estruturados e rotulados (denominados slots) com
valores atribuídos, formando uma entidade única e complexa. Essa metodologia apresenta algumas
vantagens em relação à declarativa. Ela torna mais fácil a representação do conhecimento de como
fazer as coisas e de como fazer de forma eficiente, lidando bem em situações que envolvem omissão
de dados ou probabilidade. Nessa abordagem, o conhecimento sobre um determinado objeto ou tipo
de objeto pode estar espalhado na base de conhecimento, e não apenas em sentenças.
Existem dois tipos de frames:
• Frames individuais: representam objetos individuais. São semelhantes aos elementos de me-
mórias de trabalho dos sistemas de produção. Consistem em uma lista que é alimentada com
valores. É uma parte de um frame genérico.
• Frames genéricos: representam categorias ou tipos de objetos. Podem também apresentar
procedimentos.

Cada frame individual consiste em uma estrutura de dados em que contém informação registrada
sobre entidades estereotipadas. Nesse aspecto, vamos encontrar informações, conforme afirma
Luger (2013), como:
• Identificação do frame.
• Relação desse frame com outros.
• Descritores de requisitos para um frame, que permitem que seja verificado quando novos
objetos são inseridos se satisfazem aquele estereótipo.
• Informação procedimental sobre o uso da estrutura descrita, que são códigos de procedimentos.
• Informação padrão do frame, que são valores tomados como verdadeiros.
• Nova informação de instância, dar um valor para uma instância.

O raciocínio com sistema de frames, geralmente, inicia com o sistema reconhecendo o objeto como
uma instância de um frame genérico. Em seguida, os procedimentos acionados por esse reconhe-
cimento são aplicados, o que pode promover a produção de mais dados ou mudanças na base de
conhecimento. Isso pode resultar no acionamento de outros procedimentos. O sistema é interrompido
quando não apresenta mais procedimentos aplicáveis.

80
UNIDADE 3

Título: TOP 5 JOGOS DE GERENCIAMENTO - P INDICA #10 - YouTube


Ano: 2015
Sinopse: neste vídeo, veremos os cinco jogos de gerenciamento não
convencionais para que você possa desenvolver liderança, gerenciamento
e organização de cidades.
Comentário: a Inteligência Artificial desempenha um papel fundamental
na indústria de jogos. Vários aspectos das indústrias de jogos e apostas
podem se beneficiar de sistemas ou algoritmos baseados em IA. Em outras palavras, para que
essas empresas alcancem progressos substanciais e se destacam da multidão, elas precisam
implementar um sistema que os ajude a aprender o comportamento dos jogadores, antecipando
as necessidades e demandas dos apostadores e elaborando ofertas personalizadas para suas
necessidades e expectativas específicas.

81
UNICESUMAR

Brachman (1990, p. 141) afirma que o loop (uma repetição de um ciclo) de raciocínio básico em um
sistema de frames tem estas três etapas específicas:

1. um usuário ou sistema externo usando o sistema de frames como sua representação


de conhecimento declara que um objeto ou situação existe, instanciando assim
algum frame genérico.
2. quaisquer preenchimentos de slot que não sejam fornecidos explicitamente, mas
possam ser herdados pela nova instância do frame, são herdados.
3. para cada slot com um enchimento, qualquer procedimento IF-ADDED (tradu-
ção livre: SE-ADICIONAR) que pode ser herdado é executado, possivelmente
fazendo com que novos slots sejam preenchidos ou novos frames sejam instan-
ciados, e o ciclo se repete.

Esse é um exemplo envolvendo o raciocínio local com um frame, mas outros esquemas são possíveis.
Para se construir uma base de conhecimento de frame, deve se pensar em sua estrutura, como utilizar
recursos computacionais para produzir o raciocínio desejado. Os frames genéricos, geralmente, são
criados para qualquer tipo de objeto principal ou tipo de situação para a solução de problemas.
A representação do conhecimento por frames torna mais fácil a organização hierárquica do co-
nhecimento. Além disso, conseguimos vincular procedimentos para conectar trechos específicos de
código. Quando uma instância da classe é criada, o sistema pergunta ao usuário sobre o valor padrão
da classe ou executa um procedimento para obter o valor para a instância. Esses valores podem ser
herdados pela hierarquia de classes.

Slots Filtro

Nome Caio

Profissão Engenheiro

Idade 28

Estado civil Solteiro

Peso 78

Tabela 2 - Exemplo de representação de conhecimento através de frames com relação a um homem / Fonte: a autora.

82
UNIDADE 3

Vantagens da representação do frame:


1. A representação do conhecimento do quadro facilita a programa-
ção agrupando os dados relacionados.
2. A representação do quadro é comparativamente flexível e usada
por muitos aplicativos em IA.
3. É muito fácil adicionar slots para novos atributos e relações.
4. É fácil incluir dados padrão e procurar valores faltantes.
5. Representação de quadros é fácil de entender e visualizar.
Desvantagens da representação de quadros:
1. No mecanismo de inferência do sistema de quadros não é facil-
mente processado.
2. O mecanismo de inferência não pode ser suavemente precedido
por representação de quadros.
3. A representação do quadro tem uma abordagem muito genera-
lizada.

Podemos concluir, portanto, que a representação do conhecimento é uma etapa essencial na aplicação
de sistemas baseados em conhecimento dentro da inteligência artificial, consistindo em uma forma de
promover o comportamento inteligente em sistemas e equipamentos. Tanto o método de representa-
ção de sistemas de produção quanto de frames possibilita aproximar a programação computacional a
mecanismos de raciocínio humanos. Na automação, os dois métodos têm sido amplamente aplicados
para permitir a execução de tarefas por equipamentos e dispositivos.
O conhecimento é de extrema importância para que você, futuro profissional, consiga desenvolver
e executar processos adequadamente, utilizando inteligência artificial na automação. A utilização da
automação permite a execução, por máquinas, de tarefas que são repetitivas e exaustivas para huma-
nos, substituindo o esforço manual. Isso auxilia na redução de erros e custos, e aumenta a eficiência
e agilidade dos processos.
Podemos exemplificar, nesse sentido, com o desenvolvimento do Sistema Intuitivo Da Vinci, que
é um sistema que permite a realização de uma cirurgia robótica. As cirurgias executadas com essa
ferramenta são minimamente invasivas, podendo ser aplicadas em várias áreas, patologias e regiões do
corpo, como coração, tórax, pescoço, sistema gástrico e urológico, por exemplo. Além disso, permite a
diminuição de perda sanguínea durante o procedimento, e uma recuperação mais rápida do paciente.
O equipamento necessita de algum treinamento por parte dos médicos, mas os benefícios são
tangíveis. Quando os profissionais da área médica operam o equipamento, podem executar, inclusive,
operações à distância mediante um console. O robô contém braços articulados que permitem movi-
mentos variados e precisos. Uma câmera em um dos braços possibilita acompanhar todo o processo
e movimentação. Em outros, estão os instrumentos cirúrgicos necessários para o procedimento. O
equipamento é dotado de filtração de tremor, auxiliando na maior precisão do momento cirúrgico.

83
UNICESUMAR

O sistema depende de uma conexão eletrônica entre a “interface principal” do cirurgião e os instru-
mentos cirúrgicos, que são acionados por meio de “manipuladores escravos”. Para que funcione, um
programa computacional é o intermediário entre eles, estendendo a presença e controle sensorial do
cirurgião, transmitindo imagens da câmera para o visualizador do console, e transmitindo os movi-
mentos estabelecidos pelo profissional aos braços. O próprio controle pode modificar os sinais e graus
de movimentação, de modo a filtrar o tremor natural do cirurgião.
A automação desse processo só é possível porque foram utilizados conhecimentos a partir de dados
e informações da área, mediante representações de conhecimento. A representação do conhecimento,
como vimos nesta unidade, permite que uma máquina inteligente aprenda com informações e experiên-
cias fornecidas, para que ela possa adquirir o comportamento inteligente semelhante ao de um humano.
Na atualidade, não podemos definir se existirá uma completa remoção do fator humano na execu-
ção de tarefas como esta: o intelecto humano ainda abarca conhecimentos mais complexos e tem uma
capacidade mais elástica de adaptações a novas situações. Contudo, a tecnologia existente já permite
ações que a meros 20 anos eram impossíveis – um médico de um grande centro urbano, por exemplo,
fazendo cirurgias a milhares de quilômetros de distância. Seguindo este padrão de desenvolvimento,
pode-se esperar cada vez mais o auxílio da inteligência artificial, desde a análise de grandes quantidades
de informação até a implementação fina deste conhecimento.

84
Com o que aprendeu sobre representação do conhecimento, elabore um
Mapa Mental indicando as principais características do conhecimento a ser
representado na inteligência artificial. Caso precise de ajuda na elaboração,
utilize o modelo a seguir, completando as informações. Você pode preencher
os dados aqui ou utilizar a ferramenta gratuita.

Do inglês "Knowledge Base


(KB)", consiste em um grupo de
sentenças ou informações

Verdades sobre o mundo real ou sobre


o que representamos Comportamento relacionado
com o conhecimento de como
Desempenho executar as ações

Metaconhecimento CONHECIMENTO Eventos

Consiste na análise de fatos sobre objetos existentes

85
1. A representação do conhecimento é a área de estudo dentro da inteligência artificial que
investiga o comportamento inteligente, mas com ênfase no conhecimento. Dessa forma,
buscamos descobrir o que faz um sistema se comportar de forma inteligente e quais métodos
computacionais podem ser aplicados para permitir isso. Sobre essa área de estudo, indique
a alternativa correta.

a) Esse estudo vai permitir produzir novas proposições a partir daquelas fornecidas, preocupan-
do-se apenas com o raciocínio desenvolvido pelo sistema.
b) A representação e raciocínio do conhecimento é a área da Inteligência Artificial (IA) que se
preocupa com o treinamento com base em exemplos. Mais informalmente, é a parte da IA​​
que se preocupa com o pensamento e como o pensamento contribui para o comportamento
inteligente.
c) É por meio da representação de conhecimento que é possível representar informações
sobre o mundo real para que um computador possa entender e utilizar esse conhecimento
para resolver os complexos problemas do mundo real, como o diagnóstico de uma condição
médica ou a comunicação com humanos na linguagem natural.
d) É também uma maneira que descreve como podemos representar o conhecimento em in-
teligência artificial. A representação do conhecimento permite que uma máquina inteligente
aprenda com dados e experiências fornecidos, porém não possibilita que ela adquira o com-
portamento inteligente como um humano.
e) No geral, há quatro abordagens dentro da representação do conhecimento: conhecimento
relacional simples, heurístico, processual e declarativo.

2. O raciocínio pode ser desenvolvido mediante o uso de um formalismo denominado sistemas


de produção, que é um sistema de raciocínio que se desenvolve progressivamente em cadeia,
utilizando regras, que são chamadas regras de produção, para representar o conhecimento.
Sobre esse método de representação de conhecimento, avalie as afirmativas:

I) Os sistemas de produção operam segundo um ciclo composto por três passos: reconhecer,
resolver conflito e agir. Estes são repetidos até que nenhuma regra consiga ser aplicada na
memória de trabalho.
II) Os sistemas de produção são baseados em regras, que são chamadas regras de produção. A
estrutura de uma regra de produção possui duas partes e são escritas no formato “ENQUANTO
condições FAÇA ações”.
III) Esse sistema apresenta uma memória de trabalho que consiste em uma memória contínua
de afirmações como um banco de dados, sendo estática, uma vez que não muda seu estado.

86
Marque a alternativa que indica as que estão corretas

a) I e II, apenas.
b) II e III, apenas.
c) I e III, apenas.
d) I, II e III.
e) Apenas I.

3. Os frames, conforme a abordagem procedimental, são uma estrutura de dados de inteligência


artificial usada para dividir o conhecimento em subestruturas, representando “situações este-
reotipadas”. Disserte entre 8 a 10 linhas como essa forma de representação de conhecimento
se aproxima do comportamento inteligente e raciocínio de humanos.

87
88
4
Sistemas Especialistas
Me. Larissa Torres Ferreira

Olá, seja bem-vindo(a) à Unidade 4. Aqui, você estudará uma das


principais formas de simular, dentro da inteligência artificial, a ca-
pacidade humana de resolução de problemas: o desenvolvimento e
utilização de sistemas especializados, que são programas computa-
cionais baseados em conhecimento, que têm o objetivo de promo-
ver o raciocínio por meio do domínio intelectual de um especialista
na área. Você verá o que são, como funcionam e a relevância desses
sistemas especialistas para a inteligência artificial e automação.
Conheceremos, também, os principais tipos e suas características, a
composição, vantagens e limitações na utilização, e quando e como
aplicar esses sistemas especializados na resolução de problemas.
UNICESUMAR

A preocupação e o cuidado com a saúde têm aumentado nos últimos anos, porém, é notável que nem
todos os países conseguem atender essa demanda da mesma forma e de modo satisfatório. Principal-
mente em países em desenvolvimento, o diagnóstico de doença e o tratamento geralmente são precários
e/ou lentos, não apresentando a qualidade necessária para a efetiva atuação e resolução do problema.
Nesse sentido, têm sido desenvolvidos e aplicados os sistemas especialistas na área de saúde. Eles
podem ser aplicados a diferentes doenças e análises, como diagnóstico de depressão, doença no olho,
infecções bacterianas, entre outras necessidades e patologias. Um dos primeiros sistemas especialistas
desse tipo foi o MYCIN, desenvolvido nos anos 70 nos Estados Unidos para diagnóstico de infecções
bacterianas ou meningite, que se baseia em características de um organismo infectado e informações
físicas e sintomáticas do paciente.
Ao longo dos anos, os sistemas especialistas foram sendo desenvolvidos e aplicados nas mais diver-
sas áreas de conhecimento. Eles permitem simular, em uma máquina ou programa, o comportamento
inteligente e o raciocínio de um humano, utilizando, para isso, uma base de conhecimento construída
com informações e experiências fornecidas por um especialista humano daquela área. A aplicação da
inteligência artificial para auxiliar os médicos, diminuindo a barreira existente entre o acesso de infor-
mações sobre o diagnóstico e tratamento dos usuários, otimiza esse processo, além de tornar acessível
nas áreas mais remotas e com indisponibilidade de infraestrutura necessária. Em muitas pesquisas,
inclusive, foi apresentado que esses sistemas especialistas conseguem dar respostas melhores do que
os próprios especialistas humanos.

90
UNIDADE 4

Sabendo disso, você consegue imaginar em que outras áreas os sistemas


especialistas podem ser úteis? Quais as vantagens e limitações da aplicação
dos sistemas especializados em diagnóstico de falhas em equipamentos,
por exemplo, e como estes poderiam ser aplicados?
Qual a importância do estudo e desenvolvimento dos sistemas de es-
pecialistas? Esses sistemas surgiram da necessidade de resolver problemas
que os sistemas tradicionais não conseguiam solucionar, ou solucionavam
de forma demorada. Seu desempenho é melhor porque se baseiam em
heurísticas e promovem a resolução de problemas, simulando o raciocínio
e comportamento inteligente de humanos especialistas em específicas áreas.
Contudo, diferentemente do especialista humano, o sistema especialista
está sempre disponível e não é afetado pelas emoções, apresentando uma
constância de desempenho. Podem ser aplicados nas mais diversas áreas,
utilizando diversas técnicas computacionais, preservando e transmitindo
o conhecimento adquirido pelo especialista humano. Desse modo, teremos
vários benefícios em sua aplicação.
Para entender como os sistemas especialistas podem ser empregados,
digite na ferramenta de busca do Google “aplicação de sistemas especialistas”
e anote as três primeiras e diferentes áreas que aparecem nos resultados da
pesquisa. Escolha uma delas e faça uma lista com as características prin-
cipais do sistema especializado empregado, observando qual o tipo, como
funciona, qual a composição e os benefícios de sua utilização. Nós vamos
estudar esses diferentes tipos e características dos sistemas especialistas, e
ver outras formas de aplicação.
Imagine que queremos aplicar um sistema especialista na automação
de equipamentos industriais. Isso permite que os equipamentos operem
de forma autônoma, baseando seu raciocínio e tomada de decisão no co-
nhecimento fornecido por um especialista humano. Considerando as ca-
racterísticas do sistema que você anotou em sua pesquisa anterior, analise:

• Quais dessas características seriam úteis para a aplicação na auto-


mação de equipamentos industriais?
• Qual conhecimento seria necessário de ser obtido para o funciona-
mento do sistema? Quem poderia fornecê-lo?
• Como o comportamento inteligente obtido com esses sistemas pode
beneficiar essa área de automação?
• Quais outras características você imagina que sejam úteis para
essa aplicação?

Considerando tudo isso, anote seus resultados no seu Diário de Bordo.

91
UNICESUMAR

Caro(a) aluno(a), você sabe o que torna uma pessoa especialista em algo? Por exemplo, quando uma
máquina quebra, o operador solicita chamar um especialista para verificar o que ocorreu, dar o diag-
nóstico, corrigir. Uma pessoa especialista é aquela que conhece muito uma área e, por isso, tem um
alto desempenho nela. Da mesma forma, um sistema especialista (SE) utiliza de um conhecimento
específico para resolver um problema como um especialista naquela área.
Esse conhecimento utilizado por um sistema especialista é fornecido pelo projetista por meio de
especialistas humanos na área. O sistema emula a atuação de um especialista humano, focando em
um conjunto de problemas. Conforme afirma Luger (2013, s.p.):

92
UNIDADE 4


o seu conhecimento é tanto teórico como prático: o especialista humano que fornece o
conhecimento do sistema geralmente ampliou o seu próprio entendimento teórico do
domínio do problema com artifícios, atalhos e heurísticas para usar o conhecimento que
ganhou por meio da experiência em resolução de problemas.

Em inteligência artificial, um sistema especializado, que em inglês é chamado expert systems, é um sistema
de computador que emula a capacidade de tomada de decisão humana. Os sistemas especializados são
descritos para resolver problemas complexos mediante o raciocínio através de órgãos de conhecimento,
representados, principalmente, como regras em sequência, em vez do código processual convencional.
Inicialmente, as pesquisas e o desenvolvimento de sistemas especialistas eram voltados para a re-
solução de perguntas, e não à tomada de decisões. Eram, basicamente, voltados para a recomendação
de ações por meio de regras condição-ação, sem fornecer opinião sobre as questões no geral. O desen-
volvimento da área de inteligência artificial permitiu o desenvolvimento de sistemas especialistas que
recomendam decisões ótimas a partir de evidências e preferências de um usuário.

Emular - emulador é um programa de computador (ou ocasionalmente


hardware de computador personalizado) que foi projetado para simular
outro tipo de dispositivo. Portanto, emular é o ato de simular um programa
ou hardware em um dispositivo. Os emuladores podem preencher uma
lacuna entre esses dispositivos, permitindo que os programas funcionem
em todos os tipos de hardware. Alguns emuladores podem até aprimorar
o hardware que está simulando. Por exemplo, videogames antigos feitos
para televisores 4:3 podem ser atualizados para rodar em resolução wi-
descreen, bem como em uma taxa de resolução maior.
Fonte: Gogoni (2020, on-line).

Sistemas especializados possuem conhecimentos específicos para um domínio problemático, por exemplo,
medicina, ciência, engenharia etc. O conhecimento do especialista é chamado de base de conhecimento,
que consiste no conhecimento e experiência acumulados que foram carregados e testados no sistema.
Dessa forma, consistem em um sistema baseado em conhecimento, em que utiliza o domínio intelectual
de um especialista em um programa computacional para simular o seu raciocínio e comportamento
inteligente. Assim como outros sistemas de inteligência artificial, o conhecimento do sistema especia-
lizado pode ser aprimorado com complementos à base de conhecimento ou adições às regras. Quanto
mais experiência inserida no sistema de especialistas, mais o sistema pode melhorar seu desempenho.

93
UNICESUMAR

O raciocínio executado por um sistema especialista deve possibilitar que seja inspecionado, com jus-
tificativas para as decisões que o programa faz e informações sobre a solução do problema que apre-
senta. Isso é importante para que um especialista humano, como um médico ou engenheiro, consiga
compreender as justificativas de recomendações dadas pelo programa.
Dessa forma, as características gerais desses sistemas é que:

• Permitem inspeção de seus processos de raciocínio.


• Permitem a modificação, adição ou exclusão de habilidades da base de conhecimento.
• Permitem o raciocínio heurístico, de modo a utilizar o conhecimento para obter soluções.

Em sua essência, um sistema especializado é um software de IA que se baseia em uma base de conhecimen-
to para resolver problemas específicos. A base de conhecimento é fornecida por um ou mais especialistas
humanos, e o sistema preserva o conhecimento para resolver automaticamente problemas em maior
escala. Esses aplicativos de computador funcionam em altos níveis de inteligência, são confiáveis e extre-
mamente responsivos no enfrentamento de problemas exclusivos de cada empresa. Aplicar esse sistema
a softwares de atendimento ao cliente, como tecnologia chatbot e programas de call center, permite que
a empresa responda rapidamente a muitos clientes ao mesmo tempo por meio de um sistema integrado.
Estes sistemas apresentam algumas características desejáveis nesses tipos de aplicações, tais como:

• Altamente responsivo.
• Confiável.
• Compreensível.
• Alto desempenho.

Outras características desses sistemas podem ser citadas. São um caso específico de sistemas baseados
em conhecimento, ou seja, envolvem a manipulação de uma base de conhecimento composta de fatos
e regras sobre o domínio. Eles apresentam conclusões sobre um tema, trabalhando com informações
não numéricas. Além disso, possibilita a utilização de métodos heurísticos para resolver o problema.
Assim, atuam em problemas que não apresentam solução convencional de forma algorítmica ou que
a resposta apresentada nesse caso é muito demorada. O conhecimento adquirido pelo programa é
obtido por meio da alimentação de ideias e orientação de especialistas humanos. Eles fazem inferência
a partir das informações fornecidas pelo usuário. Outra característica é que a base de conhecimento
desses sistemas é facilmente modificada.
Os sistemas especialistas podem atuar em problemas diversos, conforme afirma Waterman (1985):

94
UNIDADE 4

• Interpretação –desenvolver conclusões a partir de dados brutos.


• Predição – prever consequências prováveis de determinadas situações.
• Diagnóstico – diagnosticar a causa de mau comportamento de sistemas com base em obser-
vação de sintomas.
• Projeto – satisfazer as restrições e desempenho do projeto por meio de uma configuração do sistema.
• Planejamento – definir a sequência de ações que permitirá atender aos objetivos especificados,
atendendo as condições e restrições.
• Monitoramento – comparar o comportamento do sistema com aquele que era esperado.
• Instrução – dar atenção à educação em domínio complexo.
• Controle – controlar o comportamento completo de um ambiente.

Para se trabalhar com sistemas especialistas, primeiramente, deve-se analisar se o problema pode ser
resolvido por meio deste. Para isso, é importante observar se naquele campo de conhecimento existem
peritos que dominem o assunto. Além disso, verificar se o conhecimento requerido para a resolução
do problema é multidisciplinar e detalhado.
Para tomar a decisão, o sistema especialista o faz a partir de um conhecimento prévio obtido a partir
da experiência e treinamento, apoiado em conhecimento justificado. Com esse conhecimento, consegue
realizar inferências e aprender novos conhecimentos, melhorando o seu raciocínio e a capacidade de
decisão. Durante esse processo, verifica a importância dos fatos e informações que encontra, e compara
com aquelas já conhecidas. O resultado dessa contínua análise e comparação, produto do raciocínio,
influência nas decisões posteriores.
Como podemos observar, o conhecimento dos fatos na quantidade e detalhamento suficientes é
essencial para o funcionamento adequado de um sistema especialista. A falta de conhecimento, ou o
conhecimento equivocado, pode levar a decisões erradas. É também importante que este avalie não só
a qualidade dos fatos, mas a importância e probabilidade. Como afirmam Norvig e Russel (2013, s.p.):



Por exemplo, uma estratégia comum nos primeiros sistemas especialistas médicos era
classificar os diagnósticos possíveis em ordem de probabilidade e informar o mais prová-
vel. Infelizmente, isso pode ser desastroso! Para a maioria dos pacientes em geral, os dois
diagnósticos mais prováveis são normalmente “não há nada de errado com você” e “você
tem um forte resfriado”; porém, se o terceiro diagnóstico mais provável para determina-
do paciente for câncer de pulmão, esse será um assunto sério. É óbvio que um plano de
exames ou de tratamento deve depender tanto de probabilidades quanto de utilidades.
Os sistemas especialistas médicos atuais podem levar em conta o valor da informação
para recomendar testes e, em seguida, descrever um diagnóstico diferencial.

Nesse sentido, podemos falar sobre a eficiência dos sistemas especialistas. É importante que esses sejam
de fácil interação e manipulação. Eles devem ser capazes de justificar seu raciocínio, adquirir novos
conhecimentos e modificar os anteriores. Nestes sistemas, é essencial o conhecimento humano na área

95
UNICESUMAR

para que se consiga uma solução. É interessante,


também, que se avalie o problema a ser resolvido
ou em que domínio de conhecimento deve ser
realizada a decisão, para selecionar e desenvolver
o sistema especialista que tenha o melhor desem-
penho dentro daquela situação.
Existem cinco tipos básicos de sistemas espe-
cializados. Estes incluem um sistema de especia-
listas baseado em regras, sistema de especialistas
baseado em frames, sistema de especialistas em
fuzzy, sistema de especialistas neurais e sistema
de especialistas em neuro-fuzzy.
Um sistema especialista baseado em re-
gras é um sistema simples, em que o conheci-
mento é representado como um conjunto de
regras, semelhante ao que foi estudado em sis-
temas de produção, porém mais desenvolvidos
e complexos. Baseiam-se em regras SE-ENTÃO,
que associa condições a ações. Nesse caso, os
sistemas são fáceis de entender e manipular, com
facilidade também para obter inferências e jus-
tificativas, assim como combinar com incerte-
zas. O obstáculo em sua utilização fica evidente
à medida que se aumenta a complexidade do
problema de análise, pois aumenta significati-
vamente o número de regras.
Esse tipo de sistema especialista pode ser em-
pregado em conjunto com a automação de pro-
cessos industriais. Como exemplo, podemos pen-
sar em um sistema especialista baseado em regras
em um processo industrial para permitir inferir
conclusões a partir de processamento de dados
fornecidos por especialistas na área, utilizando
uma representação simbólica baseada em regras.
Assim, é possível simular o raciocínio de um es-
pecialista humano para detecção e diagnóstico de
falhas no equipamento. Uma regra nesse sentido,
apresentada de forma simplificada, pode ser:
SE “pressão na caldeira > 1960 kPa” ENTÃO
“ações necessárias”

96
UNIDADE 4

Essa regra, utilizada em conjunto com outras,


pode identificar problemas ocorrendo no equipa-
mento. As ações necessárias vão ser estabelecidas
de acordo com o conhecimento fornecido por um
especialista ao sistema, que alimentou a base de
conhecimento. Pode ser, por exemplo, a abertura
de determinada válvula de segurança para possi-
bilitar a redução da pressão na caldeira.
Sistemas de especialistas em lógica fuzzy
também são chamados de lógica multivaloriza-
da, difusa ou nebulosa. Baseiam-se na ideia de
que podemos ter graus de variação de parâme-
tros, como temperatura e velocidade, e incertezas
nessa graduação. Por meio de regras SE-ENTÃO,
refletem o modo como os humanos pensam, tra-
balhando com informações vagas e incertas que,
geralmente, descrevemos como “mais ou menos”
ou “a maioria”, que na lógica convencional não é
possível. Mediante de uma função de pertinência,
descreve o grau de pertencimento de um objeto
de um conjunto fuzzy, utilizando conhecimentos
de um especialista. Através de agregação e com-
posição dessas regras, consegue inferir e verificar
a influência das regras nas variáveis de saída.
Com esse tipo de sistema especialista, é possível,
por exemplo, controlar o nível de água em uma
caldeira de forma a impedir o funcionamento em
condições críticas de pressão e temperatura. Uma
das vantagens é que os sistemas fuzzy não reque-
rem modelagem matemática para serem desen-
volvidos, sendo baseados na experiência de um
humano especialista. São desenvolvidos a partir
de regras, variáveis de aplicação e método de de-
senvolvimento do sistema. Nesse exemplo dado, a
partir de variáveis de entrada, como temperatura e
pressão, considerando os diferentes graus que esses
parâmetros podem ter e o efeito da combinação
deles, é possível determinar qual a condição ou
o conjunto de condições que se deve promover a
alimentação de água para o equipamento.

97
UNICESUMAR

Em um sistema de especialistas baseado em frames, os frames são usados para capturar e representar
conhecimento. O conhecimento obtido com um especialista deve ser, inicialmente, representado, podendo
utilizar o método de frames visto na unidade passada. Os frames se relacionam por meio de herança atra-
vés da organização dos dados em classes. Com isso, o projetista do sistema pode utilizar o conhecimento
de um especialista para desenvolver a base de conhecimento para aplicação nos mais variados campos
da automação. Com essa organização de dados em classes, torna-se possível a inferência como forma de
obter novos conhecimentos.
Um sistema de especialista neural substitui uma base de conhecimento tradicional por conhe-
cimento neural, armazenando-a como pesos nos neurônios. A Google, por exemplo, desenvolveu
um sistema especialista baseado em rede neural para identificar problemas de saúde de retinopatia
diabética por meio do exame de fundo de olho. Para isso, alimentou o sistema com diversas imagens
de fundo de olho saudáveis e doentes, e treinou o sistema mediante redes neurais. Esse método
utiliza um modelo computacional inspirado em um cérebro humano com capacidade de aquisição
e modificação de informações. As redes neurais são definidas como um conjunto de unidades de
processamento, emulando os neurônios, que são interligados por um conjunto de conexões, emu-
lando as sinapses do nosso cérebro. O aprendizado é obtido a partir de treinamento com exemplos.
Finalmente, um sistema neuro-fuzzy combina habilidades paralelas de computação e aprendizagem
com habilidades de representação e explicação do conhecimento.

98
UNIDADE 4

Um sistema neuro-fuzzy (neuro-difuso) é baseado em um sistema difuso


que é treinado por um algoritmo de aprendizagem derivado da teoria da
rede neural. O procedimento de aprendizagem (heurística) opera em infor-
mações locais e causa apenas modificações locais no sistema subjacente.
Este sistema pode ser visto como uma rede de alimentação neural para
fora de 3 camadas. A primeira camada representa as variáveis de entrada, a
camada do meio (oculta) representa as regras difusas, e a terceira camada
representa as variáveis de saída. Conjuntos difusos são codificados como
pesos de conexão. Não é necessário representar um sistema difuso como este para aplicar um
algoritmo de aprendizagem a ele. No entanto, pode ser conveniente porque representa o fluxo de
dados de processamento de entrada e aprendizagem dentro de um modelo.
Observação: às vezes, uma arquitetura de 5 camadas é usada, onde os conjuntos difusos são re-
presentados nas unidades da segunda e da quarta camadas. Também é possível criar o sistema
a partir dos dados de treinamento do zero, pois é possível inicializá-lo por conhecimento prévio
na forma de regras difusas. Além disso, nem todos os modelos neuro-difusos especificam proce-
dimentos de aprendizagem para a criação de regras difusas.
Fonte: Ferreira, Affonso e Sassi ([2022, on-line).

As capacidades inteligentes desses sistemas são utilizadas em uma ampla gama de indústrias. Aqui,
estão alguns exemplos de sistemas especializados que já estão em uso:

• SHINE: projetado pela NASA para monitorar, analisar e diagnosticar sistemas de comunicação
em tempo real.
• MYCIN: foi utilizado para o diagnóstico médico de um grupo específico de doenças bacterianas
no sangue.
• MUDMAN: utilizado para analisar fluidos de perfuração, verificando propriedades físicas e
químicas e comparando com outras fornecidas por um especialista, possibilitando a análise de
problemas de perfuração e recomendando tratamentos corretivos.
• XCON: sistema baseado em regras para auxiliar na configuração de sistemas de computador
e personalizar sistemas de rede.
• GARIMPEIRO: para avaliar sítios geológicos em desenvolvimento comercial.
• DENDRAL: pode inferir a estrutura de uma molécula com base em sua composição química,
sua fórmula química e outros dados.

99
UNICESUMAR

Título: O jogo da imitação


Ano: 2020
Sinopse: o filme mostra a história do matemático Alan Turing – mais tar-
de conhecido como o pai da informática – e sua tentativa incansável de
quebrar um código de comunicação nazista durante a 2ª Guerra Mundial.
Apresenta um episódio essencial na história da computação, bem como o
pensamento estratégico para simulação ou mesmo emulação.
Comentário: o matemático Alan Turing encontra um meio de decifrar os
códigos alemães da segunda guerra mundial realizados pela máquina de envio de mensagens
enigma. Para isso, ele criou outra máquina, que foi a premissa de todos os computadores. Isso
deu a ele, inclusive, o título de pai da computação.

Os sistemas de conhecimento humano são difíceis de documen-


tar e disseminar em uma rede complexa. Mesmo quando devida-
mente distribuídas, nas mãos de não especialistas, as informações
não podem ser comunicadas como pretendidas ou no nível de
perícia necessária para determinada situação. Por outro lado, a
base de conhecimento de um sistema especializado é facilmente
documentada e simples para não especialistas implantarem em
todo um sistema de múltiplos canais.
Finalmente, recursos humanos especializados são caros
de manter. Os humanos com experiência exigem um salário
maior, e as empresas podem ter que contratar mais de um
especialista para fornecer recursos adequados para resolver
problemas. Enquanto isso, um sistema especializado é muito
mais econômico, uma vez que armazena o conhecimento de um
especialista humano e o dissemina automaticamente enquanto
o sistema estiver funcionando corretamente. Uma vez que o
sistema de especialistas esteja funcionando, as empresas não
precisam depender do trabalho dispendioso dos especialistas
humanos para executar seus processos.
A maioria dos sistemas especialistas, como você talvez já
tenha percebido, atua com dois componentes principais: uma
base de conhecimento e um motor de inferência. Além desses,
contam também com um módulo de aquisição e aprendizagem
de conhecimento, uma interface e um módulo de explicação.

100
UNIDADE 4

SISTEMA ESPECIALISTA
Interface do
usuário
BASE DE CONHECIMENTO

Fatos

Conhecimento
MOTOR DE INFERÊNCIA

Figura 1 - Arquitetura básica de um sistema especialista / Fonte: a autora.

Descrição da Imagem: a imagem se caracteriza por um infográfico que começa pela esquerda com uma imagem de emoticon, de
um simples rosto amarelo sorridente, e com um texto acima “Interface do usuário”. Ao lado direito do emoticon tem duas setas, uma
com a palavra “fatos” acima e apontando para direita, e a outra seta abaixo apontando para a esquerda e com a palavra embaixo
“conhecimento”. Ao lado direito das setas está um retângulo que dentro tem dois retângulos. Dentro deste retângulo grande, acima,
está escrito o título “Sistema especialista”; abaixo deste o primeiro retângulo com o texto “Base de conhecimento” e um símbolo “+” e
abaixo o outro retângulo com o texto dentro “Motor de inferência”.

Vamos conhecer um pouco de cada um desses elementos:

• A base de conhecimento armazena regras e conhecimentos em domínios específicos para


formar procedimentos para resolver problemas. O conhecimento é obtido a partir de fatos,
experiências, informações, heurísticas no geral, podendo ser representado de diferentes formas.

• O mecanismo ou motor de inferência obtém dados da base de conhecimento e interpreta


esses dados para encontrar uma solução para o problema. Este componente também possui
habilidades de depuração e dedução para agilizar o processo de resolução de problemas. É o
núcleo do sistema, consistindo em algoritmos que manipulam o conhecimento representado
para possibilitar a elaboração de respostas ou soluções.

• O módulo de aquisição e aprendizagem de conhecimento permite que o aplicativo adquira


mais dados e informações de fontes e que estes possam ser adicionados à base de conhecimento.

• Uma interface de usuário permite que usuários não especialistas acessem o sistema especializado
e determinem uma solução para determinado problema ou análise.

101
UNICESUMAR

• Um módulo de explicação auxilia o usuário


não especialista a explicar como o problema foi
resolvido, entender a justificativa de decisões e
ações definidas pelo sistema especialista.

Além disso, é necessária a atuação de um engenheiro


de conhecimento, que vai tornar possível a aquisição
do conhecimento. Ele realizará a implementação do
sistema, sabendo lidar com as incertezas e propondo so-
luções para isso no sistema especialista. Este deve saber
métodos de representar e estruturar o conhecimento.
Por outro lado, há também o implementador que
irá construir o sistema especialista, devendo também
ter bom conhecimento na estruturação e represen-
tação do conhecimento, desenvolvendo o sistema
por meio do método e linguagem adequados para a
necessidade da aplicação.
O usuário do sistema pode ser uma pessoa qual-
quer ou um conjunto de pessoas, o próprio especia-
lista ou algum substituto seu diante de um impre-
visto ou, até mesmo, alguém que queira se tornar
um especialista, uma vez que o desenvolvimento e
aperfeiçoamento do sistema permite que este sirva
de sistema tutorial inteligente.
A aquisição do conhecimento necessário para o
desenvolvimento desses sistemas é realizada pelo en-
genheiro de conhecimento e mediante entrevistas, com
formulários e anotações, ou observações práticas de
atuação de especialistas naquela área de interesse. Pode
ser feito, inclusive, com a verificação do raciocínio que
o especialista desenvolve ao resolver um problema prá-
tico. Posteriormente, esse conhecimento é codificado.
Um sistema especializado oferece muitas vanta-
gens sobre um sistema tradicional que confia em espe-
cialistas humanos. Embora os sistemas especializados
dependam do conhecimento de especialistas huma-
nos, o fato é que a inteligência humana é perecível. Por
exemplo, se o especialista humano é um funcionário
que tem que sair de licença, essa fonte de conhecimen-
to não está mais disponível para aqueles que precisam

102
UNIDADE 4

resolver um problema. Um sistema especializado é


mais consistente por natureza, pois conta com um
armazenamento permanente de conhecimento que
pode ser acessado várias vezes, independentemente
de o usuário ser um especialista ou não especialista,
estando disponível todo o tempo. No mesmo exemplo,
mesmo que um especialista humano esteja afastado
do local de trabalho, qualquer outro agente ou fun-
cionário pode acessar o sistema especializado para
resolver um problema imediatamente.
Comparando, ainda, os sistemas especialistas a
especialistas humanos, podemos verificar outros be-
nefícios. O conhecimento disponível em um sistema
especialista é global, enquanto o do humano é local.
O conhecimento de especialistas humanos também é
imprevisível na natureza. Em um dia em que o espe-
cialista humano não está se sentindo bem, ele ou ela
pode atuar em um nível mais baixo do que o habitual.
Em contraste, um sistema especializado funciona nos
mesmos níveis altos todas as vezes, garantindo um
desempenho consistente, não importa quem use o
sistema. Assim, o sistema especialista não é afetado
por emoções, cansaço ou outras influências físicas,
diferentemente do especialista humano.
O conhecimento humano também é difícil de du-
plicar em vários canais de comunicação. Considere o
caso de um especialista humano que deve auxiliar um
grande volume de chamadores que precisam de suporte
técnico. O humano só pode ajudar um cliente de cada
vez por meio de um canal de comunicação de cada vez.
Compare isso com um sistema de especialistas auto-
matizado que pode aplicar inteligentemente conheci-
mento em todos os canais e ajudar muitos chamadores
ao mesmo tempo. Para empresas que experimentam
um alto volume de chamadas de suporte ao cliente,
um sistema especializado é uma ferramenta inestimá-
vel para garantir o manuseio preciso e eficiente dessas
chamadas. Além disso, com custos aceitáveis, diferente
do que seria se fossem necessários vários especialistas
humanos para o atendimento dessa demanda.

103
UNICESUMAR

Vamos entender a diferença entre a Inteligência Artificial (IA) e um Sistema Especialista e como
estes estão relacionados:

INTELIGÊNCIA ARTIFICIAL SISTEMA DE ESPECIALISTAS

A IA é a capacidade de uma máquina ou um Os sistemas especializados representam a de-


programa de computador para pensar, traba- monstração mais bem-sucedida das capacida-
lhar, aprender e reagir como humanos. des da IA.

Os sistemas especialistas são programas de


A IA envolve o uso de métodos baseados no
computador projetados para resolver proble-
comportamento inteligente dos seres humanos
mas de decisão complexos com base no conhe-
para resolver problemas complexos.
cimento de um especialista na área.

Componentes da IA: Componentes do sistema especializado:


1. Processamento de Linguagem Natural (PNL) 1. Motor de inferência
2. Representação do conhecimento 2. Base de conhecimento
3. Raciocínio 3. Interface do usuário
4. Resolução de problemas 4. Módulo de aquisição de conhecimento
5. Aprendizado de máquina 5. Módulo de explicação

O sistema especializado utiliza o conhecimento


A IA é o estudo de diversos tipos e sistemas que
de um especialista para treinar um programa
agem de forma a adquirir o comportamento
de modo que ele dê respostas demonstrando
inteligente.
um comportamento inteligente.

Os sistemas de IA são usados em uma ampla Sistemas especializados fornecem conselhos


gama de indústrias, desde saúde até finanças, e orientações especializadas em uma ampla
automotivo, segurança de dados etc. variedade de atividades.

Quadro 1 - A diferença entre a Inteligência Artificial e o um Sistema Especialista / Fonte: a autora.

104
UNIDADE 4

Sistemas especializados oferecem muitos benefícios para empresas que ado-


tam a IA em seus processos e atividades. Aqui estão apenas algumas das
vantagens apresentadas por sistemas especializados em inteligência artificial:

• Disponibilidade: os sistemas especializados são produzidos


em massa e, portanto, prontamente disponíveis para qual-
quer empresa disposta a investir em um sistema movido a IA.
• Eficiência: sistemas especializados são rápidos e reduzem a
quantidade de mão de obra gasta para resolver problemas.
• Menores custos de produção: os custos de produção de
sistemas especializados são econômicos e, portanto, os pre-
ços dos sistemas especializados são razoáveis e acessíveis
a muitas empresas.
• Capacidade de diagnosticar e monitorar problemas: sistemas
especializados podem monitorar padrões de problemas que
surgem, identificar problemas comuns e resolver esses pro-
blemas durante um período relativamente curto de tempo.
• Baixa taxa de erro: as taxas de erro dos sistemas especializa-
dos são significativamente menores do que as dos sistemas
de especialistas humanos.
• Fator de baixo risco: sistemas especializados podem ser apli-
cados em ambientes inseguros para humanos.
• Taxa de resposta consistente e estável: os sistemas espe-
cializados são imunes à tensão e fadiga e podem continuar
a correr durante as horas de folga em um nível constante
de desempenho.

Para se ter uma noção das vantagens de um sistema especialista, voltamos ao


exemplo do sistema especialista desenvolvido pela Google para diagnóstico de
retinopatia diabética citado anteriormente. A pesquisa realizada para análise de
viabilidade do sistema apresentou que o sistema especialista acertou um valor
médio de 0,95 de diagnósticos, enquanto os especialistas humanos tiveram uma
média de acerto de 0,91. Isso traz uma perspectiva promissora nas diversas áreas
de serviços, comerciais e industriais, principalmente nos casos em locais remotos
que não há determinados especialistas para realizar diagnósticos, ou quando
há,mas esses não possuem a infraestrutura necessária para realizar suas tarefas.

105
UNICESUMAR

Com suas vastas capacidades, sistemas especializados podem ajudar sua empresa de várias ma-
neiras. Você consegue imaginar os benefícios da aplicação de sistemas especializados na área de
atendimento ao cliente?

No contexto de um sistema de atendimento ao cliente alimentado por IA, os sistemas especializados


podem, por exemplo, aconselhar os clientes sobre como usar o produto da sua empresa, como redi-
recionar as entregas e fazer alterações em suas próprias contas. Os dados obtidos por Big Data irão
gerar centenas de milhões de dados que podem fornecer demonstrações e instruções para esclarecer
o uso adequado de um produto ou serviço (TAURION, 2013).
Sistemas especializados podem prever ou diagnosticar problemas que seus clientes estão enfren-
tando e obter uma solução para os clientes seguirem. Se essa solução não funcionar, o sistema pode até

106
UNIDADE 4

fornecer um conjunto de soluções alternativas para o cliente tentar. Este sistema multifacetado pode
tornar a experiência de seus clientes agradável, atendendo a todas as suas necessidades e preocupações.
Além de resolver problemas para os clientes da sua empresa, os sistemas especializados também
obtêm insights valiosos para ajudar sua empresa a tomar decisões críticas. Os sistemas especializados
são projetados para interpretar resultados e fornecer saídas adequadas relevantes para esses resulta-
dos. Com o tempo, os sistemas especializados se tornam adeptos à previsão de resultados, dando à
sua empresa a oportunidade de monitorar efetivamente quais problemas estão sendo continuamente
abordados e determinar como melhorar a evolução da empresa. Por exemplo, os dados de um sistema
especializado podem mostrar se os clientes estão frequentemente ligando para resolver um problema
com um determinado produto. Esses dados informarão sua empresa sobre a descontinuação ou a
modificação de um produto com essas reclamações em mente.
Embora um sistema especializado pareça complicado de ser executado, uma vez implantado
corretamente, é fácil para os usuários finais acessar os benefícios da tecnologia. Para desenvolvê-lo,
existem seis etapas principais:

107
UNICESUMAR

• Determinando o domínio do problema. Essa etapa envolve identificar se o problema


é adequado para um sistema especializado resolver, se é possível e onde encontrar
especialistas para contribuir com o projeto e estabelecer se a resolução do problema
é econômica para o negócio.
• Projetando o sistema. Isso envolve determinar o grau de integração que o sistema terá
com outros sistemas e bancos de dados.
• Desenvolvendo um protótipo. Esta etapa envolve a obtenção de conhecimento de
domínio do especialista ou especialistas adequados e o estabelecimento de regras
para o sistema de especialistas.
• Testando o protótipo. Isso envolve verificar o protótipo com casos de amostra. Esta
etapa permite que os engenheiros identifiquem quaisquer deficiências no sistema. Este
também é um momento para os usuários finais testarem o sistema para usabilidade,
eficiência e precisão.
• Refinando e completando o protótipo. Esta etapa garante que o sistema especializa-
do se integre bem com outros sistemas e bancos de dados e funcione para todos os
usuários finais também. Além disso, este é o momento de documentar o projeto do
sistema especializado e treinar todos os usuários finais sobre como usar o sistema
especializado corretamente.
• Mantendo o sistema de especialistas. Esta etapa contínua envolve a revisão regular e
atualização da base de conhecimento. Além disso, o sistema deve ser mantido atua-
lizado à medida que outros bancos de dados integrados e sistemas de informação
evoluem ao longo do tempo.

É importante que se conheça também as limitações dos


sistemas especializados. Se não tivermos especialistas
naquele domínio ou se eles estiverem indisponíveis ou
hesitantes, pode tornar difícil a aquisição de conheci-
mento. Além disso, é importante que se verifique qual
o melhor tipo de sistema especialista para determinado
problema, o que requer múltiplos especialistas. Além
disso, os sistemas especialistas são desenvolvidos, ge-
ralmente, voltados para uma área específica, não ten-
do flexibilidade para atuação em diferentes domínios
nem apresentando conhecimentos genéricos. Deve-se
considerar também que podem cometer erros e não ser
confiáveis, se não forem bem desenvolvidos.

108
UNIDADE 4

Saiba mais sobre o projeto SHINE da Nasa! O projeto consiste em um


software, baseado na experiência do Grupo de Pesquisa em Inteligên-
cia Artificial, no desenvolvimento de sistemas especializados. Acesse o
Podcast e entenda!

Podemos notar, portanto, que os sistemas especialistas têm grande importância e aplicação prática den-
tro da automação. Eles permitem a resolução de problemas em domínios específicos de interesse, com
a aquisição e apresentação do conhecimento de forma compreensível. Seu desempenho se aproxima
ao de um especialista humano, no qual se baseia, tornando possível chegar a conclusões justificadas
mesmo diante de incertezas.
Nesta unidade, vimos como os sistemas especialistas são um ótimo exemplo da interseção entre
ciência da computação e negócios. Nos últimos anos, houve um aumento acentuado do interesse pela
IA e sua aplicabilidade pelas corporações no mundo dos negócios, e os sistemas especialistas são o
que mais parecem chamar sua atenção. Isso ocorre, principalmente, porque as corporações têm o
incentivo de usar sistemas especialistas como meio de aumentar a eficiência, reduzir erros humanos
e, assim, gerar mais lucro.
Os sistemas especialistas têm perspectivas promissoras em todas as áreas em que o processo de
tomada de decisão deve levar em consideração uma grande quantidade de dados. Na área industrial,
por exemplo, os especialistas humanos podem ser auxiliados (ou mesmo substituídos) por sistemas
especialistas (nessa parte de suas funções, podemos designar como “baseados em conhecimento”) para
coletar, consolidar, modelar e apresentar dados. Essa “informática orientada para a decisão” aumenta
consideravelmente a capacidade visionária dos especialistas em relação ao trabalho na linha de produ-
ção, possibilitando o acesso a hipóteses de trabalho e configurações que jamais imaginariam sozinhos.
Portanto, estamos caminhando para um momento em que a IA e os humanos trabalharão juntos
para resolver problemas. No entanto, ainda existem muitas questões desafiadoras que precisam ser
resolvidas para tornar os sistemas especialistas aceitáveis ​​pelas massas de pessoas. O ramo da IA, ​​cha-
mado sistemas especialistas, é o principal responsável por ajudar especialistas humanos e aprender com
eles. Ainda é necessário muito trabalho e pesquisa para encontrar um ponto ideal entre o trabalho de
especialistas humanos em vários campos e as capacidades da inteligência artificial.
O uso de sistemas especialistas na indústria ainda não é difundido, mas nos últimos anos, com o
advento do big data (ativos de altos volumes, velocidades e variedades de informação, que exigem custo
benefício e formas inovadoras de processamentos de informações para maior visibilidade e tomada
de decisão, conforme Basso (2020)), houve um aumento considerável na adoção dessa tecnologia, à
medida que mais e mais corporações experimentam o poder da IA.

109
Faça uma breve avaliação do seu conhecimento: desenvolva o seguinte mapa mental, sobre as
características dos sistemas especialistas dentro da inteligência artificial.

Possuem conhecimentos específicos


Emula a capacidade de raciocínio humano sobre um domínio problemático

Sistema baseado em conhecimento

SISTEMAS ESPECIALISTAS

Utiliza o domínio intelectual


de um especialista em um
programa computacional

110
1. Em inteligência artificial, um sistema especializado, que em inglês é chamado expert systems,
é um sistema de computador que emula a capacidade de tomada de decisão humana. Os
sistemas especializados são descritos para resolver problemas complexos mediante o racio-
cínio através de órgãos de conhecimento, representados, principalmente, como regras em
sequência, em vez do código processual convencional.

Neste contexto, analise as afirmativas a seguir:

I) Consistem em um sistema baseado em conhecimento, em que utiliza o domínio intelectual


de um especialista em um programa computacional para simular o seu raciocínio e compor-
tamento inteligente.
II) É baseado em algoritmos determinísticos, processando um conjunto de dados e instruções
de forma repetitiva, não fazendo inferências a partir de informações fornecidas pelo usuário.
III) Assim como outros sistemas de inteligência artificial, o conhecimento do sistema especializa-
do pode ser aprimorado com complementos à base de conhecimento ou adições às regras.
IV) Sistemas especializados possuem conhecimentos específicos para um domínio problemático.
É composto, em essência, por uma base de conhecimento, um motor de inferência e uma
interface com o usuário.

Está correto o que se afirma em:

a) I, II e III, apenas.
b) II, III e IV, apenas.
c) I, III e IV, apenas
d) I, II e IV, apenas.
e) I, II, III e IV.

2. Existem cinco tipos básicos de sistemas especializados. Estes incluem um sistema de especia-
listas baseado em regras, sistema de especialistas baseado em frames, sistema de especialistas
em fuzzy, sistema de especialistas neurais e sistema de especialistas em neuro-fuzzy.

Associe as duas colunas, relacionando o tipo básico de sistema especializado à sua definição:

1) Sistema especialista baseado em regras.


2) Sistema especialista baseado em frames.
3) Sistema de especialista em fuzzy.
4) Sistema especialista neural.
5) Sistema especialista em neuro-fuzzy.

111
( ) Conjunto de unidades de processamento, emulando os neurônios, que são interligadas por
um conjunto de conexões, emulando as sinapses do nosso cérebro. O aprendizado é obtido
a partir de treinamento com exemplos.
( ) Possui estrutura e dados que se relacionam por meio de herança através da organização em
classes. Com isso, o projetista do sistema pode utilizar o conhecimento de um especialista para
desenvolver a base de conhecimento para aplicação nos mais variados campos da automação.
( ) O conhecimento é representado como um conjunto de regras SE-ENTÃO, que associa condi-
ções a ações. Os sistemas são fáceis de entender e manipular, com facilidade também para
obter inferências e justificativas, assim como combinar com incertezas.
( ) Combina habilidades paralelas de computação e aprendizagem com habilidades de repre-
sentação e explicação do conhecimento.
( ) Mediante regras SE-ENTÃO, refletem o modo como os humanos pensam, trabalhando com
informações vagas e incertas que, geralmente, descrevemos como “mais ou menos” ou “a
maioria”, que na lógica convencional não é possível.

A sequência correta dessa associação é:

a) (1), (2), (3), (4), (5).


b) (2), (3), (4), (5), (1).
c) (3), (2), (4), (1), (5).
d) (4), (2), (1), (5), (3)
e) (5), (4), (3), (2), (1)

3. Explique, com suas palavras, utilizando de 8 a 10 linhas, o que seria necessário para conseguir
projetar um sistema especialista para diagnosticar problemas em automóveis, para isso, ex-
plicitando quais os elementos, habilidades e informações que seriam necessários.

112
5
Linguagens
Prolog e LISP
Me. Larissa Torres Ferreira

Olá, seja bem-vindo(a) à Unidade 5 de seu livro. Neste capítulo, você


estudará sobre duas das principais linguagens de programação apli-
cadas à inteligência artificial: Prolog e Lisp. Iremos entender quais
são as características de cada uma e as principais diferenças entre
elas. Primeiramente, vamos entender a importância da linguagem
de programação e seus princípios. Em seguida, conheceremos a
linguagem Prolog, sua composição e aplicabilidade. Posteriormente,
estudaremos a linguagem Lisp, avaliando esses mesmos aspectos.
Por fim, uma comparação é feita entre as características das duas
linguagens estudadas. Isso ajudará você a entender como podem
ser aplicadas na prática da automação.
UNICESUMAR

Os bancos digitais começaram a surgir no Brasil a partir de


2016. Estes, no geral, não possuem espaço físico. Assim, atuam
completamente on-line, permitindo que todos os serviços sejam
realizados por sites e aplicativos. Da mesma forma que os bancos
convencionais, é possível efetuar pagamentos, transferências,
TED/DOC, Pix, entre outros serviços. O atendimento ao cliente
é realizado por chat, e-mail ou telefone, podendo ser realizado
pela própria equipe ou por uma empresa terceirizada.
Nesse sentido, percebemos como a tecnologia está atuando
e cada vez mais presente na rotina da sociedade. O desenvolvi-
mento e aplicação da tecnologia permitiu transformar o setor
bancário e trouxe consigo vários benefícios, principalmente re-
lacionados à praticidade e rapidez de execução de determinados
serviços. As pessoas têm almejado cada vez mais soluções rápidas,
práticas e simples para os seus problemas e necessidades do dia
a dia, e o controle da conta bancária, proporcionado por essas
contas digitais, tem atendido satisfatoriamente essa demanda.
Mas qual a relação dessas informações com o conteúdo
da nossa unidade? O fato é que, para executar e agilizar seus
processos, esses bancos digitais utilizam linguagens de pro-
gramação. Elas são aplicadas em micro serviços, como cálculo
de juros e simulação de negócios, por exemplo, como forma
de diminuir a burocracia e permitir um maior controle da
conta pelo cliente. E é possível encontrar algumas empresas
aplicando dialetos da linguagem Lisp, que estudaremos nesta
unidade. Um exemplo é a linguagem Clojure que surgiu, em
2007, como uma versão moderna de Lisp.
A vantagem de utilização de uma linguagem pertencente à fa-
mília de linguagens Lisp é que aproveita seus aspectos de linguagem
funcional e concisa, tratando o código como dados e possuindo
um sistema de macros integrado que permite adicionar novas
instruções à linguagem, de acordo com a necessidade. Além disso,
a utilização dessa linguagem permite facilmente integrar e usar
bibliotecas de outras, como a Java, que também é muito utilizada.
Com base nessas informações, você consegue visualizar a
importância da aplicação de linguagens de programação em
processos na automação? Como isso poderia facilitar e agilizar
a execução de tarefas e ações?

114
UNIDADE 5

As linguagens de programação permitem que um programador


desenvolva um sistema capaz de executar tarefas mediante a comu-
nicação com um computador, além de possibilitar a compreensão e
alteração por outros programadores do código gerado. Elas come-
çaram a surgir junto com os primeiros computadores, mas somente
a partir da década de 50 que foram desenvolvidas linguagens mais
modernas, como Fortran e Lisp. Posteriormente, surgiu o Prolog.
Como já estudamos nas unidades anteriores, o campo de estudo
da inteligência artificial permite utilizar a tecnologia para simular
o comportamento inteligente dos humanos. Com ela, é possível
desenvolver pesquisas inteligentes, assistentes virtuais, interface
de voz, criar aplicativos diferenciados, robotização, entre outras
inúmeras capacidades. Mas isso só é possível com a utilização de
uma linguagem de programação que, mediante instruções e códi-
gos, permita atender a resolução daquela necessidade ou problema.
Assim, é importante conhecer as principais características e
benefícios de duas das linguagens de programação mais utilizadas
dentro da inteligência artificial, que são Prolog e Lisp. A obser-
vação de exemplos de aplicação nessa área vai permitir que você
visualize outras aplicações, e quais os benefícios e importância
de sua utilização na automação.
Para entender a importância de uma linguagem de programa-
ção e um código bem desenvolvido para possibilitar a execução
de ações e resolução de problemas, vamos assistir ao vídeo (QR
Code): Fantástico - 21/10/18 - Sophia a robô mais inteligente do
mundo - | Indústria 4.0 - #7. Agora é com você! Localize no google
informações sobre o programa SHRDLU, que se baseia na lingua-
gem de programação Lisp. Veja e anote as características desse
programa, destacando as similaridades e diferenças com relação ao
vídeo assistido. Em ambos os casos, o comportamento inteligente
e a execução de ações só é possível devido ao desenvolvimento
de um código baseado em diferentes linguagens de programação.
Com base nos seus conhecimentos prévios e informações ob-
tidas nessa e em outras unidades, você consegue imaginar o que é
preciso para aplicar a linguagem de programação na automação? A
linguagem de programação vai permitir sequenciar um conjunto
de instruções para serem operadas pelo programa de computador
ou máquina. Considerando as informações que você acessou em
sua pesquisa solicitada e na contextualização acima, analise:

115
UNICESUMAR

• Qual a importância da linguagem de programação para os bancos digitais?


• Como a linguagem de programação pode ser útil para robotização?
• O que os exemplos mencionados (banco digital, robô Sophia e SHRDLU) têm em comum, do
ponto de vista da programação e automação?

Considerando tudo isso, anote seus resultados no seu Diário de Bordo.

Caro(a) aluno(a), podemos falar ou escrever uma mesma informação em diferentes línguas, como,
por exemplo, “A inteligência artificial é o futuro”, em português, e em inglês “artificial intelligence is
the future”. Uma boa comunicação entre dois interlocutores depende da forma de falar e da língua
que escolhemos. Da mesma forma, na programação, temos diferentes idiomas de linguagem que são
padrões que melhoram a comunicação entre programadores e permitem a execução em um compi-
lador. Utilizar uma linguagem padrão de programação facilita a compreensão do objetivo almejado
por outras pessoas e a manutenção ou extensão do código.
Um bom idioma de linguagem de programação é aquele que utiliza padrões considerados bem
apresentados por programadores experientes, que expressam satisfatoriamente sua intenção e melhoram

116
UNIDADE 5

o poder da linguagem. Para isso, vai ser específico em um determinado estilo. Nesse sentido,
as linguagens podem ser do tipo declarativa, funcional ou orientada a objetos. A forma
como organizamos um programa em Prolog, por exemplo, não é a mesma que utilizamos em
Lisp, apesar de ambos serem padrões de linguagem de programação.
Uma linguagem padronizada consiste na forma e linguagem utilizadas para captar o
conhecimento de um mestre para a criação de um programa de computador e aplicar isso
para resolver um conjunto de problemas. Constitui-se de um conjunto de símbolos e códigos
que orientam a programação em estruturas. Possibilita que o programador crie programas
definindo um conjunto de instruções e ações que controlam o comportamento de um equi-
pamento. Todos os equipamentos necessitam de uma linguagem de programação para que
executem suas funções. Uma boa linguagem deve ter a capacidade de trabalhar com ideias
simples, combinar essas ideias simples para formar ideias complexas e abstrair ideias com-
plexas para constituir ideias simples.
Você sabe como surgiu a primeira linguagem de programação? A primeira linguagem
de programação foi desenvolvida em 1883 e foi um algoritmo para a Máquina de Charles
Babbage. Era um computador mecânico primitivo que foi capaz de representar mais do que
apenas valores numéricos como uma calculadora, por exemplo. A máquina diferencial de
Babbage era capaz de resolver questões algébricas e poderia ser usada como uma máquina
pensante (ISAACSON, 2014).
As linguagens podem ser idiomas de alto nível e idiomas de baixo nível, todas podendo
ser aplicadas para escrever programas de computador. A linguagem de alto nível é relativa,
principalmente, à linguagem de montagem. É uma programação mais próxima da lingua-
gem natural e com fórmulas matemáticas. Dessa forma, apresenta uma maior facilidade de
compreensão e domínio pelas pessoas. Nela, está inclusa muitos tipos de linguagens de pro-
gramação, como a popular java, c, c++, C#, pascal, python, Lisp, Prolog, FoxPro, entre outras.
Porém, observamos algumas diferenças nos formatos de gramática e comandos entre cada tipo.
A linguagem de alto nível expressa operações com dados e estruturas de controle de
programas, descrevendo vários algoritmos. O código do programa gerado com a utilização
de linguagem de alto nível é geralmente mais longo do que outros códigos projetados com
outros tipos de linguagens e a velocidade de execução também é lenta.
Já as linguagens de baixo nível são divididas em linguagem de máquina (linguagem binária)
e linguagem de montagem (linguagem simbólica), sendo ambas orientadas por máquina e
estando diretamente relacionadas com a instrução de uma máquina específica. Enquanto a
linguagem da máquina utiliza códigos de instrução para desenvolver programas, as linguagens
simbólicas utilizam mnemônicos de instrução.
Para que eu e você possamos entender as linguagens que estudaremos, precisamos entender
quais são os princípios da linguagem de programação no geral. O vocabulário básico de uma
estrutura e projeto de programação é composto por três princípios fundamentais:

117
UNICESUMAR

• Sintaxe: está relacionado à descrição do que constitui a estrutura do programa.


Vai nos dizer a gramática utilizada para escrever programas, ou seja, o conjunto de
palavras e símbolos utilizados para que este seja desenvolvido de forma correta.

• Nomes e tipos: a linguagem consiste em um conjunto de regras que nomeiam


entidades, que podem ser variáveis, funções, classes etc. Os tipos são os valores
que o programa pode lidar, como números decimais, listas etc.

• Semântica: está relacionado com o significado do programa, qual o efeito propor-


cionado sobre os valores de variáveis.

Nas unidades anteriores, estudamos os algoritmos de procura e a representa-


ção do conhecimento, que são dois pilares que fundamentam a inteligência
artificial (IA) e que estão relacionados entre si. A busca nos diz a sequência
de ações dentro da estrutura do conhecimento para permitir a resolução de
problemas complexos. As linguagens Prolog e Lisp auxiliam nessa busca.
A escolha do tipo de linguagem de programação depende do problema
que queremos solucionar. Prolog e Lisp são duas das mais populares lin-
guagens de programação de computadores de IA atualmente (2022). Eles
são construídos com dois paradigmas de programação diferentes. Prolog é
uma língua declarativa, enquanto Lisp é uma linguagem funcional. Ambos
são usados para vários problemas de IA, mas o Prolog é mais usado para
problemas de lógica e raciocínio, enquanto Lisp é usado para problemas com
necessidade de rápida prototipagem. Vamos entender melhor cada uma delas.
Prolog é uma linguagem de programação de IA que pertence à família
de linguagens de programação lógica, baseada em lógica de predicados de
primeira ordem e resolução de prova de teorema. Prolog é uma linguagem
declarativa, direcionada não para o que o computador deve fazer, mas nas
condições que uma solução deve satisfazer. Isto é, consiste em uma declaração
das condições lógicas que uma solução de um problema deve atender. Assim,
não trabalha com estruturas de controle como SE-ENTÃO como a maioria
das outras linguagens de programação, e sim com uma sequência lógica de
inferências para seu processamento. Isso possibilita que os programadores
coloquem toda a atenção na solução do problema em vez de se preocupar
com os detalhes de escrita de instruções algorítmicas de baixo nível.

118
UNIDADE 5

O nome Prolog vem das letras iniciais das palavras “programação em lógica” (Programming in Logic
no inglês). Foi desenvolvido, aproximadamente, em 1970, consistindo em uma das mais antigas lin-
guagens de lógica e uma das mais populares linguagens de programação em inteligência artificial da
atualidade (juntamente com Lisp). É uma linguagem gratuita, mas estão disponíveis muitas versões
comerciais. Foi usado, pela primeira vez, para o processamento de linguagem natural, mas agora é usado
para várias tarefas, como sistemas especialistas, sistemas de resposta automatizados, jogos, sistemas
de controle avançado, análise de estruturas bioquímicas e em banco de dados relacionais, com ampla
presença na computação simbólica.
Para esclarecer, a linguagem natural (ou Natural Language Processing no inglês) permite que uma
máquina entenda o significado de frases ditas e escritas por humanos, seja por texto ou voz. De acordo
com Russell e Norvig (2013), as linguagens naturais não podem ser caracterizadas como um conjunto
de sentenças definitivas. Elas também são ambíguas, de forma que não podemos falar de apenas um
significado para uma sentença, mas de uma probabilidade sobre possíveis significados. Além disso, são
difíceis de ligar devido estar mudando continuamente e constantemente e pelo seu tamanho.
Conforme afirmam Luger e Stubblefield (2009, p. 11) sobre o Prolog:



A ideia de usar o poder representacional do cálculo de predicados de primeira ordem para
expressar especificações para a solução de problemas é uma das contribuições centrais
que o Prolog fez à ciência da computação em geral e à inteligência artificial em particular.
Os benefícios de usar o cálculo de predicado da primeira ordem para uma linguagem
de programação incluem uma sintaxe limpa e elegante e uma semântica bem definida.

119
UNICESUMAR

A utilização da linguagem Prolog permite desenvolver programas mais rapidamente


do que outras linguagens de programação. Isso acontece pelo fato de que seu método
de programação utiliza linguagem lógica para escrever o programa. O programa de-
senvolvido com Prolog não apresenta uma sequência específica de execução, sendo
o computador que determina essa sequência.
No geral, o Prolog opera como um programa de processamento de dados ou ló-
gica e coopera com outros programas como VC++, JAVA, entre outros, permitindo
alcançar a característica de software com comportamento inteligente, ou seja, consiste
em um banco de dados inteligente. Prolog é bom em lidar com a relação entre dados
lógicos e é importante não confundir com o SQL. Portanto, essa linguagem visa lidar
com a relação entre os dados.

A Linguagem de Consulta Estruturada (Structure Query Language no inglês), conhe-


cida como SQL, é uma linguagem de programação de propósito especial. Consiste
em uma consulta de banco de dados e linguagem de programação que é utilizada
para acessar dados e consultar, atualizar e gerenciar sistemas de banco de dados
relacionais; é também a extensão de arquivos de script de banco de dados.
Fonte: Puga (2013).

A linguagem Prolog apresenta apenas um tipo de dados chamado “termo”. Um termo


pode ser uma constante, variável ou um termo composto. Para a solução do problema,
a linguagem Prolog utiliza uma série de fatos e regras lógicas, chamados também
de cláusulas, que especificam como essa resolução deve ocorrer. Um conjunto de
cláusulas compõem um programa lógico. Esses fatos e regras são fornecidos a uma
base de dados e por eles são realizadas as consultas para gerar a solução do problema.
Os fatos com que a linguagem Prolog trabalha são formados por uma estrutura
composta por um predicado (que diz a situação relacional de interação sobre os ar-
gumentos) e seus argumentos ou objetos, separados por vírgula e finalizado com um
ponto, na forma “predicado (argumento A, argumento B).”. A ordem de apresentação
dos argumentos pode influenciar na resolução. Apresenta, inclusive, a característica
de poder criar metapredicados, que são predicados que podem manipular, restrin-
gir ou interpretar outros predicados. Admitimos os fatos alimentados no programa
como verdadeiros e a omissão de fatos indica negação. Como exemplo de notação
de um fato, temos “dentro (café, xícara)”, que mostra a relação entre os argumentos
indicando que o café está dentro da xícara.

120
UNIDADE 5

A sintaxe e a semântica da linguagem de programação Prolog são o conjunto de regras que define
como um programa Prolog é escrito e como é interpretado. As regras são estabelecidas na norma
ISO/IEC 13211-1:1995, embora haja diferenças nas implementações do Prolog. Essa norma foi de-
senvolvida para promover a portabilidade e aplicabilidade da linguagem Prolog em diversos tipos
de sistemas de processamento de dados.

Associado a um fato, pode ser realizado um questionamento (ou consulta), para verificar se, na base de
dados, há um fato correspondente àquele. O modo de execução da questão depende do compilador, mas
pode ser feito com um sinal de interrogação. Já as regras são utilizadas para verificar se determinadas
condições são satisfeitas, permitindo a constituição de questões mais complexas. As regras permitem
relacionar e deduzir fatos e regras.
Assim, um programa que aplica a linguagem PROLOG consiste em:

• Declaração dos fatos e relações entre argumentos.


• Declaração de regras relativas às relações entre fatos e regras.
• Formulação de perguntas a serem respondidas, mediante consulta aos fatos do banco de dados.

Podemos trabalhar com os conceitos de conjunção (AND ou E) utilizando a vírgula para separar os
fatos e disjunção (OR ou OU) e, para isso, utilizando ponto e vírgula. Além disso, alguns operadores
podem ser utilizados para construir regras, indicando igualdade, diferença e outras relações. Quando
se trabalha com uma variável, esta deve começar com letra maiúscula e, inicialmente, tem valor des-
conhecido, ou seja, não instanciado. A partir do momento em que instanciamos, não podemos mais
modificá-la. O Prolog suporta listas e strings (sequência de caracteres) como coleção de itens.
Em síntese, a linguagem de programação PROLOG tem algumas convenções a serem seguidas:

• Escrevemos todos os nomes de relações e objetos em letras minúsculas.


• Os objetos são separados por vírgulas.
• Os relacionamentos são terminados com um ponto final.

Além disso, podemos utilizar grafos ou árvores para representar relacionamentos em uma regra e facilitar
a visualização desses, em que os nós são os objetos, e os arcos indicam a situação relacional entre esses
objetos. Há a possibilidade de indicar arcos com linha pontilhada, que se referem a relações que estão sendo
definidas. Utilizando um conjunto dessas características acima mencionadas, a execução do programa
Prolog é realizada de forma que é feita uma consulta para encontrar um conjunto de variáveis ou asso-
ciações que atendam às condições estabelecidas para os objetivos específicos definidos para o programa.

121
UNICESUMAR

Outros conceitos importantes na programação com linguagem Prolog são unificação, recursão e
backtracking. A unificação ocorre quando se tenta tornar dois termos idênticos por meio da instan-
ciação. A recursão se refere ao método em que o programa chama uma nova cópia dele para resolver
o problema, fazendo referência a si mesmo. Já o backtraking, ou retrocesso, é quando são feitas novas
tentativas de avaliação das opções de solução de forma exaustiva. O corte é um predicado que permite
controlar o efeito do backtraking. Em síntese:

• Unificação: a ideia básica é que os termos dados podem ser unificados para representar a
mesma estrutura.
• Backtracking: quando uma tarefa falha, o Prolog rastreia para trás e tenta satisfazer a tarefa
anterior.
• Recursão: a recursão é a base para qualquer pesquisa no programa, em que o programa chama
a ele mesmo.

E o que faz essa linguagem ser tão aplicada na área de inteligência artificial? Precisamos lembrar que a
inteligência é a capacidade de adquirir e manipular conhecimento, raciocinando logicamente. A lingua-

122
UNIDADE 5

gem Prolog tem sido muito aplicada em aplicativos conhecidos, por exemplo o jogo Sudoku. Também
permite implementar métodos estatísticos, como o ProbLog. Prolog tem uma forte conexão histórica com
a inteligência artificial, estando diretamente ligado com o Sistema de Computadores de Quinta Geração
lançado no Japão na década de 80. O objetivo é usar a programação lógica, como a trabalhada em Prolog,
simultânea como base de projeto de software para criar computadores paralelos em larga escala.
Prolog tem sido bastante aplicado no atendimento de necessidades humanas, simples e complexas,
e na facilitação e melhoria da qualidade de vida. As passagens emitidas por companhias aéreas são, em
boa parte, realizadas mediante à utilização dessa linguagem de programação. Como outro exemplo,
podemos citar a utilização do Prolog na verificação de anormalidade, diagnóstico, instruções de atuação
e operação em falhas em trens, conforme desenvolvido em Marques et al. (1988). O conhecimento
acumulado sobre falhas recorrentes de trens, por meio da experiência de operadores e mantenedores
ao longo dos anos, pode ser estruturado e codificado em uma base de conhecimento. A aplicação de
um sistema especialista como o proposto no trabalho tem o objetivo de agilizar o processo de análise
e atuação, de forma que o fluxo do metrô não seja demasiadamente comprometido. A Figura 1 mostra
uma síntese do sistema desenvolvido.

123
UNICESUMAR

I
n
t Gerenciador Histórico
e dos trens
r
f
a
Usuário c
e
Manifestações Diagnóstico Atuações Operação

Figura 1 - Estrutura para um sistema especialista para diagnóstico e atuação em falhas de trens / Fonte: Marques et al. (1988).

Descrição da Imagem: a imagem apresenta um infográfico em preto e branco que começa da esquerda para a direita, com o desenho
de uma pessoa e abaixo escrito “usuário”. Ao lado da pessoa existe uma seta bidirecional, interligada com um retângulo com uma pa-
lavra dentro “interface”. Este tem uma interligação com cinco ramificações com seta bilateral ao lado direito. A primeira segue à direita,
ligada a um retângulo com uma palavra “gerenciador”; abaixo, o retângulo interface se liga a quatro outros retângulos, e o retângulo
“gerenciador” também se conecta a estes mesmos retângulos. O primeiro retângulo possui a palavra “manifestações”, o segundo a
palavra “diagnóstico”, o terceiro a palavra “atuações” e o último a palavra “operação”. Interligado a estes retângulos e ao retângulo
“gerenciador”, acima e à direita, está uma imagem de um cilindro com a frase “histórico dos trens”.

No mesmo trabalho mencionado, é ainda proposta a utilização da linguagem Prolog em um sistema


especialista de apoio à produção em uma indústria de fluxo contínuo, envolvendo processos de extrusão
e moldagem de plásticos, permitindo um melhor planejamento e relação entre esses dois processos. O
sistema reconhece a solicitação demandada, planeja e programa a execução. Para isso, utiliza regras e
comandos na linguagem Prolog, como exemplificado a seguir, uma regra e sua tradução para Prolog
(MARQUES et al.,1988).

regra_1;
se a classe for ginosperma e a forma for redonda e o padrão for aleatório ou o padrão possuir
linhas_pares e a banda_prateada for sim então a família será pinheiro.

Tradução em Prolog:
família(regra_11,pinheiro) :-
classe (A,ginosperma),
forma(B,redonda),
( padrao(C,aleatorio)
; padrao(D,linha_pares
),
banda_prateada(E,sim).

124
UNIDADE 5

Extrusão é um processo de fabricação realizado por meio de uma máquina, podendo trabalhar
com diferentes tipos de materiais como metais e plásticos, e consiste em forçar a passagem de
um material por um orifício. Já o processo de moldagem de plásticos é realizado à vácuo, em que
o plástico é injetado em um molde.
Fonte: Groover (2011).

Em resumo, as características principais da linguagem Prolog são:

• Linguagem declarativa.
• Baseada em lógica.
• Opera como um programa de processamento de dados.
• Utiliza uma série de fatos e regras lógicas na formação de um programa.

Já a linguagem Lisp vem do termo processamento de lista (List Processing em inglês), uma vez que
se baseia em estruturas de dados e programas em listas. Lisp, na verdade, é uma família de linguagens
de programação. Foi uma das primeiras linguagens de programação a surgir que se baseia na teoria
matemática, tendo sua primeira aplicação em torno dos anos 1950. Por meio de funções recursivas
parciais, realiza a manipulação de uma lista implementada internamente.
Inicialmente, Lisp consistia em funções para construir e acessar listas, além de definir novas funções,
mediante uma linguagem compacta. O controle era realizado por meio de recursão e uma condicional.
Com o tempo, essa linguagem se desenvolveu, adicionando novas funções que permitiam a estruturação
de dados, edição de funções, verificação de execução e controle do programa.
Atualmente, os dialetos Lisp mais utilizados para programação no geral são Common Lisp (ou Lisp
comum) e Scheme (ou programa). Na verdade, o Common Lisp é o dialeto padrão para a linguagem,
definido pela Agência de Projetos de Pesquisa Avançada após a ocorrência da disseminação da lin-
guagem. Já o Scheme é uma outra versão da linguagem, que é muito aplicada em inteligência artificial
e no ensino da ciência da computação.
De acordo com Luger e Stubblefield (2009, p. 13)


Lisp era uma linguagem compacta, consistindo em funções para construir e acessar listas
(car, cdr, cons), definir novas funções (defun), detectar igualdade (eq) e avaliar expressões
(quote, eval). [...] Funções mais complicadas, quando necessárias, foram definidas em
termos dessas primitivas. Com o tempo, o melhor dessas novas funções tornou-se parte
da própria linguagem. Este processo de estender a linguagem pela adição de novas fun-
ções levou ao desenvolvimento de numerosos dialetos do Lisp, frequentemente incluindo
centenas de funções especializadas [...].

125
UNICESUMAR

Diferentemente da linguagem Prolog que vimos anteriormente, a qual era declarativa, Lisp é tratada como
uma linguagem imperativa. Isso quer dizer que tem construções de iteração imperativas descrevendo
como executar o algoritmo. Além disso, é funcional, uma vez que se baseia na combinação de funções
recursivas para, assim, obter outras, mediante à sintaxe e semântica derivada da teoria matemática.
A combinação da programação funcional com ferramentas de alto nível, para construir estruturas
de dados simbólicos, tem sido bastante aplicada na inteligência artificial, permitindo construir e testar
protótipos, desenvolver motores de busca e provadores de teoremas, além da aplicação em sistemas
especialistas e algoritmos de aprendizagem.

Título: Operação Big Hero


Ano: 2014
Sinopse: o filme mostra a história de um menino de 13 anos que desen-
volveu um poderoso robô para participar de lutas clandestinas, onde tenta
ganhar um bom dinheiro. Seu irmão, Tadashi (voz de Daniel Henney), deseja
atraí-lo para algo mais útil e resolve levá-lo até o laboratório onde trabalha,
que está repleto de invenções. Hiro conhece os amigos de Tadashi e logo
se interessa em estudar ali. Para tanto, ele precisa fazer a apresentação
de uma grande invenção, de forma a convencer o professor Callahan (James Cromwell) a matri-
culá-lo. Entretanto, as coisas não saem como ele imaginava e Hiro, deprimido, encontra auxílio
inesperado através do robô inflável Baymax, criado pelo irmão.
Comentário: esta animação, além de divertida, demonstra como o robô influencia o menino, bem
como apesar dele ser um robô de ajuda passa a ser de combate. Tudo depende das emoções e
decisões que o ser humano implanta no robô inflável.

126
UNIDADE 5

A linguagem Lisp faz uso de listas para criar estruturas de dados simbólicos, e implementa algoritmos
de busca para possibilitar a manipulação dessas estruturas. Na verdade, todo o código fonte é escrito
mediante listas entre parênteses ou s-expressions (s-expressões). O termo s-expressions denota os
elementos sintáticos da linguagem Lisp, que são expressões simbólicas. Estas podem indicar um áto-
mo (que são unidades básicas da linguagem e incluem números, símbolos ou qualquer sequência de
caracteres) ou uma lista.
Dessa forma, tanto o programa quanto os dados são escritos como expressões. Ao ser avaliada, a ex-
pressão resulta em um valor ou conjunto de valores que podem ser introduzidos em outras expressões. Por
exemplo, uma chamada de função é escrita como (f a1 a2 a3), o que significa que a função f é chamada a
usar a1, a2 e a3, que são argumentos de entrada para a função. Essas funções são utilizadas para executar
o que se deseja. Portanto, é chamada de linguagem orientada à expressão, onde todos os dados e funções
são escritos como expressões. O sistema que aplica essa linguagem continuamente lê uma expressão
obtida a partir de uma fonte de entrada de dados, a avalia e imprime valores em uma saída.
Já a lista consiste em uma sequência de listas de átomos ou outras listas. Isso permite trabalhar com
complexidades e formas variadas. Listas são ferramentas extremamente flexíveis para a construção de
estruturas representacionais. Essa manipulação de listas permite que se desenvolvam programas que
agem sobre outros programas, o que é chamado de metaprogramação.
A escrita de uma lista na linguagem Lisp é realizada com os elementos delimitados por parênteses
separados por espaços. O primeiro elemento apresentado na lista é o nome da função ou de um ope-
rador, e o restante são os argumentos. Tem o objetivo de armazenar informações e chamar funções. A
notação da lista é (nomedafunção argumentoA argumento B). A lista vazia é considerada, ao mesmo
tempo, um átomo e uma lista, indicada pelo símbolo Nil.

127
UNICESUMAR

Título: Robôs
Ano: 2005
Sinopse: Rodney Lataria é um robô que tem um dom para inventar má-
quinas, que trabalha com seu pai lavando pratos. Sonhando em conhecer
seu ídolo, o Grande Soldador, Rodney decide partir em uma viagem rumo
a Robópolis. Porém, ao chegar na cidade, ele percebe que sua busca será
mais difícil do que imaginava. Logo Rodney se torna amigo dos Enferrujados,
um grupo de robôs de rua que sabe se virar e que acaba por abrigá-lo.
Tentando encontrar o Grande Soldador e mantendo seu ideal em fazer um mundo melhor, ele
enfrenta situações que podem pôr em risco a própria existência de Robópolis.
Comentário: essa animação, além de divertida, demonstra aspectos de empreendedorismo,
provenientes dos comentários do Grande Soldador. Outro aspecto importante é a capacidade
de sonhar do Rodney, que determina que ele trilhe um caminho diferente das pessoas que vivem
ao redor dele. Se analisarmos, também temos aspectos sobre subutilização de máquinas e a
substituição de peças sobressalentes.

A linguagem Lisp também opera com recursão, quando uma função


chama a ela mesma, o que permite o desenvolvimento de códigos
compactos. Isso possibilita trabalhar com estruturas de controle
em loop (ciclo). Além disso, o Common Lisp e o Scheme possuem
“car” e “cdr”, que são exemplos de funções recursivas que fornecem
funcionalidade de looping (fazendo um ciclo constante), aplicando
uma função sucessivamente a todos os seus elementos e, em se-
guida, coletando os resultados em uma lista. A função “car” opera
recebendo um único elemento, que deve ser uma lista, e retorna o
primeiro elemento dela. Já a função “cdr” recebe um único elemento
na forma de lista, e a retorna sem o primeiro elemento.
A partir da década de 80, o interesse na Inteligência Artificial
aumentou no mundo dos negócios, principalmente voltado para o
desenvolvimento de sistemas especialistas. Com isso, muitos pro-
dutos comerciais foram desenvolvidos, promovendo a evolução
de sistemas baseados em conhecimento. Os primeiros produtos
foram, geralmente, desenvolvidos em Lisp e baseados em regras de
produção SE-ENTÃO para raciocínio lógico, com hierarquias de
frames (quadros ou blocos de construção reutilizáveis e adaptáveis
à programação) para representação de dados.

128
UNIDADE 5

Neste podcast, vamos conhecer o uso da inteligência artificial no diag-


nóstico de cânceres de pele. Além de ser benéfico para o paciente se
tratar o quanto antes, também pode gerar menos custos ao hospital
com o tratamento precoce. Aperte e dê o play.

Uma das ferramentas mais conhecidas e aplicadas nessas primeiras fases de sistemas baseados em
conhecimento utilizando a linguagem Lisp foi o Ambiente de Engenharia do Conhecimento (KEE,
de acordo com o termo em inglês Knowledge Engineering Environment). O KEE é uma ferramenta
baseada em frames para o desenvolvimento de sistemas especialistas. Essa ferramenta forneceu uma
linguagem frame com várias heranças, slots (abertura ou porta, comumente chamado na informática),
gatilhos, valores padrão e um mecanismo de regra que permitia encadeamento para trás e para fren-
te. Apesar de ter sido originalmente implantado em Lisp em aplicações de IA, atualmente apresenta
portabilidade com PCs e estações de trabalho Unix.

129
UNICESUMAR

A linguagem de programação Lisp, desde o seu surgimento, tem sido bastante utilizada. Pode ser encon-
trada em sistemas de e-commerce (Comércio eletrônico) e de reserva de passagens aéreas. Uma aplicação
conhecida é no AutoCAD, que é um software que permite o desenho auxiliado por computador (ou
CAD, do inglês computer aided design) comercializado pela Autodesk. O software em questão possui
diversos recursos para auxiliar no desenho de dispositivos ou ambientes, porém tem situações que não
são contempladas diretamente por esses recursos. Para criar essas ferramentas adicionais, pode ser uti-
lizada uma linguagem de programação, que geralmente é a Lisp. No caso, para o AutoCAD é chamada
AutoLisp, que tem a base no Common Lisp, mas aplicado, especificamente, para o AutoCAD. Assim,
pode ser implementada uma rotina, com instruções para executar tarefas complicadas e/ou demoradas
quando feito de forma manual, como por exemplo hachuras personalizadas. As hachuras são utilizadas
em desenhos técnicos para indicar partes maciças ou material aplicado em determinados elementos.
A aplicabilidade dessa linguagem é diversa, indo desde a área de desenvolvimento de softwares,
negócios, engenharia, processamento de dados, hipermídia, animação e IA. Um outro exemplo de
aplicação da linguagem Lisp foi o software Viaweb: como afirma Meidanis (2014), esse software foi
desenvolvido quase completamente em Common Lisp e foi um dos primeiros a tornar possível a
criação de lojas online na internet por usuários. A companhia que o desenvolveu, que tinha o mesmo
nome, foi vendida ao grupo Yahoo!
Podemos, então, elencar como características principais da linguagem Lisp:

130
UNIDADE 5

• Trabalha com expressões, listas e funções recursivas.


• Linguagem funcional e imperativa.
• Metaprogramação.
• Possibilita flexibilidade em uso e personalização.
• Atende a execução de tarefas de diferentes níveis de complexidade.
• Permite prototipagem rápida.
• Permite que todo um programa seja dado como entrada de outro.

Já entendemos que Prolog e Lisp são duas das linguagens de programação de IA mais populares. Agora,
vamos comparar um pouco as duas linguagens que estudamos? Essas linguagens apresentam várias
diferenças. Enquanto Lisp é uma linguagem funcional, Prolog é uma linguagem de programação lógica
e declarativa. Lisp apresenta uma maior flexibilidade, permitindo a prototipagem rápida e a aplicação de
recursos macro, de forma que permite estender a linguagem para se adequar e solucionar o problema
em questão. Com relação à aplicação na área de inteligência artificial, o Lisp lida bem com problemas na
área devido a essa característica de prototipagem rápida. Contudo, o Prolog também tem sido bastante
aplicado devido às suas habilidades de programação lógica integradas. A escolha de qual linguagem de
programação utilizar depende, essencialmente, do tipo de problema de IA que queremos solucionar.
É possível levantar diferentes vantagens para essas linguagens. As vantagens na utilização de Prolog são:

PROLOG LISP

• É extensível.
• Programas relativamente curtos. • Facilmente geram códigos.
• Sintaxe que lembra o formalismo lógico. • Boa integração com outros códigos.
• Estruturas que facilitam a programação. • Alto nível de abstração.
• Alto nível de abstração e dedução. • Programas funcionais simples para muitas
• Procedimentos apresentando inúmeras aplicações.
respostas. • Foi construído em manuseio de listas. Tor-
• Uso da recursão e backtracking. na mais fácil associar com qualquer algo-
ritmo envolvendo listas.

Quadro 1 - Quadro comparativo de linguagens / Fonte: a autora.

O Prolog faz parte de um grupo de tecnologias que, mesmo trazendo melhorias perceptíveis e rele-
vantes em relação a linguagens anteriores, não são exclusivamente aplicadas, uma vez que, em várias
aplicações, outros tipos de linguagens são preferidos. Fica muito aplicada a determinados nichos, ao
contrário da linguagem C ou Python que são mais universais. Ainda assim, é uma importante ferra-
menta para representar e manipular dados. A programação na linguagem Prolog pode ser resumida
à declaração de fatos, de regras e perguntas.
Dessa forma, a linguagem Prolog não é a favorita, uma vez que não é uma linguagem de programação
de sistemas, não atendendo as necessidades da atualidade nesse campo de atuação. É boa para aquelas

131
UNICESUMAR

pessoas e situações já familiarizadas com problemas de raciocínio lógico. Nesses casos, ela atua mais
rapidamente que outras linguagens de programação. Com Prolog, os dados são um programa e um
programa são dados, não apresentando sequência de execução específica, diferentemente das outras,
sendo o computador que determina sua série de execução.
Dessa forma, o Lisp domina sobre o Prolog em alguns aspectos. Um programa desenvolvido com
LISP é voltado a dados, não apresentando a mesma característica de sequência de etapas processuais,
como no FORTRAN (linguagem de programação procedimental) e ALGOL. A notação utilizada é
simples, trabalhando com listas que representam dados e também operações e operandos em uma
lista. Devido a isso, é fácil conciliar um programa LISP com outros programas.
As listas vinculadas são uma das principais estruturas de dados nessa linguagem de programação.
O próprio código fonte é composto por listas. Devido às características mencionadas, rapidamente se
tornou a linguagem de programação preferida para a pesquisa e desenvolvimento dentro de inteligência
artificial. Como uma das primeiras linguagens de programação, foi pioneira em muitas ideias, como
estruturas de dados de árvores, gerenciamento automático de armazenamento, digitação dinâmica e
o compilador de auto-hospedagem.

132
UNIDADE 5

Podemos perceber que a linguagem de programação é essencial para promover a resolução de


problemas utilizando a computação. Além disso, tem favorecido o desenvolvimento do campo de
estudo da inteligência artificial. É com a linguagem de programação que conseguimos construir um
código com instruções que o computador ou máquina deve executar, para realizar ações e solucionar
problemas, atendendo a necessidades variadas.
E é isso que a robô Sophia tem em comum com o programa SHRDLU, e também com o desenvolvi-
mento de bancos digitais. Todo esse desenvolvimento tecnológico só é possível devido a utilização de uma
linguagem de programação em cada um dos casos. Claro que qual linguagem e o grau de complexidade
vai depender de cada caso: podemos perceber que o conhecimento necessário para o desenvolvimento
da robô Sophia não é o mesmo que o programa SHRDLU ou do banco digital – até porque são setores,
aplicações, objetivos e necessidades diferentes em cada um desses exemplos que vimos.
Assim, percebemos que a escolha adequada e o desenvolvimento da linguagem de programação é
essencial para a automação. Com ela, conseguimos a execução de processos e atividades de variados equi-
pamentos, desde um aspirador robô, drone ou máquina industrial de manufatura, até páginas na Web. Isto
é, tanto as grandes e pequenas aplicações da automação só são possíveis porque é aplicada uma linguagem
de programação apropriada, para indicar quais ações e a sequência para atingir o objetivo do programa.

133
Agora que você estudou sobre as linguagens de programação Prolog e Lisp, desenvolva o seguinte
Mapa Mental de acordo com seu aprendizado, sintetizando as características principais de cada uma
dessas linguagens.

LINGUAGENS DE PROGRAMAÇÃO
Programação lógica

Prolog Lisp
Trabalha com expressões,
Utiliza fatos e listas e funções recursivas
regras lógicas
Linguagem Recursão
declarativa

Boa integração com


outros códigos
Unificação, backtracking,
recursão

134
1. Uma linguagem padronizada consiste na forma e linguagem utilizadas para captar o conhe-
cimento de um mestre para a criação de um programa de computador e aplicar isso para
resolver um conjunto de problemas. Constitui-se de um conjunto de símbolos e códigos que
orientam a programação em estruturas. Sobre as linguagens de programação, marque a
alternativa que apresenta informações corretas.

a) A forma como organizamos um programa em Prolog é exatamente igual à forma em Lisp,


uma vez que ambos são padrões de linguagem de programação.
b) Possibilita que o programador crie programas definindo um conjunto de instruções e ações
que controlam o comportamento de um equipamento.
c) As linguagens podem ser idiomas de alto nível e idiomas de baixo nível, todas podendo ser
aplicadas para escrever programas de computador. A linguagem de alto nível apresenta uma
menor facilidade de compreensão e domínio pelas pessoas.
d) O vocabulário básico de uma estrutura e projeto de programação é composto por quatro
princípios fundamentais: sintaxe, nomes, tipos e semântica.
e) A sintaxe da linguagem de programação está associada com o significado do programa, qual
o efeito proporcionado sobre os valores de variáveis.

2. O nome Prolog vem das letras iniciais das palavras “programação em lógica” (Programming
in Logic no inglês). Foi desenvolvido, aproximadamente, em 1970, consistindo em uma das
mais antigas linguagens de lógica e uma das mais populares linguagens de programação em
inteligência artificial da atualidade (juntamente com Lisp). Sobre essa linguagem de progra-
mação, avalie as afirmativas:

I) Prolog é uma linguagem de programação de IA que pertence à família de linguagens de pro-


gramação lógica.
II) Prolog é uma linguagem funcional, uma vez que se baseia na combinação de funções recursi-
vas para, assim, obter outras, mediante à sintaxe e semântica derivada da teoria matemática.
III) Trabalha com uma sequência lógica de inferências para seu processamento. Isso possibilita
que os programadores coloquem toda a atenção na solução do problema em vez de se preo-
cupar com os detalhes de escrita de instruções algorítmicas de baixo nível.

Estão corretas as alternativas:

a) I e II, apenas.
b) II e III, apenas.
c) I e III, apenas.
d) Apenas I, apenas.
e) Todas estão corretas.

135
3. A linguagem Lisp vem do termo processamento de lista (List Processing em inglês), uma vez
que se baseia em estruturas de dados e programas em listas. Lisp, na verdade, é uma família
de linguagens de programação. Foi uma das primeiras linguagens de programação a surgir
que se baseia na teoria matemática, tendo sua primeira aplicação em torno dos anos 1950.
Disserte entre 8 a 10 linhas sobre aplicações dessa família de linguagens na automação.

136
6
Ferramentas de
Desenvolvimento de
Sistemas Especialistas
Me. Larissa Torres Ferreira

Olá, seja bem-vindo(a) à Unidade 6 de seu livro. Neste capítulo,


você entenderá melhor como se dá o desenvolvimento de sistemas
especialistas e quais ferramentas e pessoas necessárias e/ou úteis
para essa tarefa. Primeiramente, vamos entender a composição de
sistemas especialistas, ressaltando informações sobre componentes
ainda não comentados nas unidades anteriores. Em seguida, vere-
mos as etapas do processo de desenvolvimento desses sistemas
e a relação dessas com o especialista no domínio, o engenheiro
de conhecimento e o usuário. Por fim, estudaremos algumas das
ferramentas que possibilitam a geração automática de sistemas
especialistas. Com esse conhecimento, você entenderá melhor como
construir e aplicar esses sistemas inteligentes.
UNICESUMAR

O Estado Brasileiro se baseia na tripartição de poderes, sendo um deles o Poder Judiciário. Este é
composto por diversos órgãos, em diferentes instâncias, estando o Supremo Tribunal Federal (STF)
no topo, o qual zela pela aplicação da constituição. Há órgãos que atuam na União, nos Estados e no
Distrito Federal. No geral, os processos se originam na primeira instância e mediante recursos podem
seguir para segunda instância ou até para o STF.
Porém, no geral, os processos e ações judiciais demoram para ser efetivados. Isso ocorre por
diversos motivos, como problemas na estrutura, burocracia excessiva, qualidade de serviços pres-
tados, presença de várias instâncias e vários poderes, desvios ou erros de encaminhamento, entre
outros fatores. Isso tem resultado na descredibilidade do poder judiciário, com as pessoas perdendo
a confiança em seus processos judiciais.
Com isso, tem-se pesquisado a implementação da inteligência artificial como uma forma de auxiliar
na execução de serviços judiciários, o que promoveria uma maior garantia de acesso e satisfação pelos
cidadãos, além de aumento de produtividade do setor. Essa pesquisa de aplicação de inteligência artifi-
cial no judiciário teve início com o desenvolvimento de um robô nomeado Ross, nos Estados Unidos,
em 2017. Ele foi considerado o primeiro advogado artificialmente inteligente desenvolvido no mundo.
Contudo, a aplicação da inteligência artificial não para por aí. Essa utilização possibilita, ainda, uma
maior automatização dos serviços, principalmente aqueles repetitivos, promovendo maior agilidade
e precisão na resolução e julgamento de processos e, dessa forma, maior eficiência e efetividade do
setor público (mas não se limitando a isso, podendo também ser aplicado em escritórios privados).

138
UNIDADE 6

Um exemplo de aplicação brasileira foi o programa de inteli-


gência artificial chamado Victor, desenvolvido pela Universidade
de Brasília (UnB) para ser aplicado no âmbito do STF. Ele tem o
objetivo de promover uma maior agilidade e eficiência na avalia-
ção de recursos extraordinários que foram submetidos.
Quando se utiliza um servidor humano para avaliação dos
recursos extraordinários submetidos ao STF, o que é feito por
meio do processo judicial eletrônico, é utilizado um tempo
aproximado de 30 minutos para que o funcionário identifique
e conclua a avaliação das peças contidas no processo. Quando
se aplica o sistema de inteligência artificial Victor, a mesma
tarefa é executada em 5 minutos.
Sabendo deste cenário, você consegue imaginar como um sis-
tema especialista poderia ser aplicado no setor judiciário? Como
poderia ser desenvolvido? Quais os benefícios dessa aplicação?
Já entendemos a importância dos sistemas especialistas nas
unidades anteriores, que promovem a resolução de problemas
mediante à simulação do comportamento inteligente de humanos
especialistas em domínios específicos. Mas qual a importância
de entender sua composição e seu processo de desenvolvimento?
Além disso, qual a importância de utilizar ferramentas no desen-
volvimento desses sistemas?
Para serem bem desenvolvidos e atender a necessidade a
que se aplicam, é importante conhecer a forma e composição
de um sistema especialista. Sua efetividade só é possível porque
tem um conjunto de componentes inter-relacionados – uns
obtendo e manipulando o conhecimento do especialista, outros
codificando, outros promovendo as decisões e resoluções de
saída etc. E esses componentes são relacionados mediante o
processo de desenvolvimento do sistema, que tem que ser muito
bem documentado e analisado. O uso de ferramentas para o
desenvolvimento de sistemas especialistas facilitam esse proces-
so, uma vez que o torna automatizado. Com isso, podemos, de
forma mais simples e prática, desenvolver sistemas especialistas
para diversas áreas e necessidades.
Para entender como a aplicação da inteligência artificial no
direito pode ocorrer, vamos assistir o vídeo Inteligência Arti-
ficial no Direito, que cita exemplos de inteligência artificial e
automação em diferentes setores do judiciário e do direito. Ago-
ra é com você! Pesquise na internet algumas das inteligências

139
UNICESUMAR

artificiais ou automações do direito comentadas no vídeo, procurando entender sua aplicação e impor-
tância. Nesta unidade, entenderemos como podemos desenvolver sistemas especialistas como esses.
Agora imagine que você trabalha em uma empresa do setor judiciário e precisa desenvolver um
sistema especialista para auxiliar ou amparar o juiz em suas decisões, primeiramente diante de pro-
cessos simples. Responda as seguintes reflexões:

• Quais pessoas seriam necessárias para o desenvolvimento desse sistema especialista?


• Quais os componentes do sistema especialista que deveriam ser desenvolvidos?
• Como se daria esse processo de desenvolvimento do sistema?
• Quais os benefícios de sua aplicação?

Avalie os questionamentos e anote seus resultados no seu Diário de Bordo.

140
UNIDADE 6

Caro(a) aluno(a), você conheceu, em unidades anteriores, o que são sistemas especialistas, que são
aqueles programas computacionais que empregam um conhecimento específico para resolver um
problema como um especialista naquela área, utilizando o conhecimento de especialistas. Vimos
também que esses sistemas possuem dois componentes principais, que são a base de conhecimento
e o motor de inferência. Eles podem ser desenvolvidos tanto com linguagem de programação con-
vencional, como o Fortran, como com aquelas que estudamos na unidade anterior, que são aplicadas
à inteligência artificial – Lisp e Prolog. Contudo, para que este sistema seja desenvolvido e funcione
adequadamente, utiliza ferramentas que podem ser shells ou ambientes de programação, as quais
conheceremos nesta unidade.
Primeiro, vamos rever brevemente algumas informações sobre sistemas especialistas. Merritt
(1989, p. 1) afirma:



Os sistemas especialistas são aplicativos de computador que incorporam algum conhe-
cimento não algorítmico para resolver certos tipos de problemas. Por exemplo, sistemas
especialistas são usados em aplicações de diagnóstico atendendo pessoas e máquinas.
Eles também jogam xadrez, tomam decisões de planejamento financeiro, configuram
computadores, monitoram sistemas em tempo real, subscrevem apólices de seguro e
executam muitos outros serviços que antes exigiam experiência humana.

141
UNICESUMAR

Como já sabemos, sistemas especialistas são baseados em conhecimento que permitem a resolução de
problemas complexos em uma área de atuação específica. Consiste em um programa de computador
que possibilita simular a capacidade de tomada de decisão de humanos. Para isso, utiliza um mecanismo
de inferência para captar dados implementados na base de conhecimento e manipulá-los para obter
soluções de um determinado problema.
Como podemos observar, os sistemas especialistas são compostos por alguns componentes:

• Base de conhecimento: representa regras e conhecimentos em um domínio específico, e com


isso permite aplicar essas regras para formar procedimentos e resolver problemas naquele
domínio. O conhecimento é obtido por meio de fatos, experiências e informações no geral.
Nela, algoritmos manipulam o conhecimento representado para possibilitar a elaboração de
respostas, soluções e deduções.

• Motor de inferência: também chamado mecanismo de inferência, obtém dados a partir da base
de conhecimento e os interpreta para encontrar uma solução para o problema. Eles também
possuem capacidade de explicação e depuração.

142
UNIDADE 6

• Módulo de aquisição e aprendizagem de conhecimento: permite que o sistema especialista


adquira conhecimento utilizando qualquer fonte e armazene-o na base de conhecimento.

• Interface do usuário: possibilita o acesso ao sistema especialista por pessoas não especialistas.
Baseia-se em um código que promove o diálogo entre o usuário e o programa.

• Módulo de explicação: permite compreender as decisões e ações definidas pelo sistema es-
pecialista por aquele que está utilizando.

A inteligência artificial presente em sistemas especialistas utiliza mecanismos de inferência para


verificar quais são as soluções possíveis para um problema específico e selecionar aquela que se apre-
sente como mais adequada. É o motor de inferência que, a partir de uma interface ou componente
de processamento, permite obter informações a partir de dados e fatos coletados, e as manipula para
produzir soluções e deduzir outras informações.

143
UNICESUMAR

No geral, os motores de inferência funcionam de dois modos ou estratégias: encadeamento dianteiro


e encadeamento para trás. O processo de encadeamento dianteiro (ou avançado) parte de dados e
informações já conhecidas, verificando em cada ação o que pode ser executado em seguida. Com isso, o
sistema obtém o resultado depois de analisar todos os fatos e regras. Já o processo de encadeamento para
trás (ou retrógrado) começa a partir do objetivo ou da saída desejada. Vai verificar e tentar responder
como se chegou a solução e quais fatos foram utilizados para isso. Dessa forma, com o encadeamento
avançado, conseguimos obter novos conhecimentos, e com o encadeamento retrógrado, obtemos os
fatos que permitem alcançar determinada solução ou objetivo.

Motor de inferência

Encadeamento para frente


Encadeamento para trás
Encadeamento dianteiro
Encadeamento retrógrado
Encadeamento avançado

Inicia a partir de informações iniciais de en- Começa a partir do objetivo, indicando os


trada, avaliando cada ação. fatos necessários para se chegar a ele.

Quadro 1 - Motor de inferência parte 1 / Fonte: a autora.

Esse motor de inferência pode ser baseado em regras de produção, como estudado em unidades
anteriores, ou utilizar uma outra forma para executar sua tarefa. Nesse sentido, temos o motor de
inferência difuso presente na modelagem difusa, ou modelagem fuzzy, que é um sistema de inferên-
cia utilizado quando precisamos de um resultado preciso a partir de dados imprecisos de entrada. É
possível utilizar diferentes motores de inferência difusos, como por exemplo o motor de inferência
max-min e o motor de inferência do produto máximo. Além disso, também encontramos motores
de inferência em redes neurais, um outro segmento presente na inteligência artificial, assim como a
modelagem fuzzy. Com isso, conseguimos adicionar novas camadas e modificar as existentes na rede
neural, entre outras manipulações.
Na ciência de dados, também aplicamos mecanismos de inferência para conseguir extrair informa-
ções de dados disponíveis, e tem sido muito aplicado em marketing e negócios, permitindo localizar
clientes, verificar preferências de produtos e serviços, entre outras aplicações.

Alguns tipos de mecanismos de inferência

Regras de produção

Lógica Fuzzy

Redes neurais

Quadro 2 - Motor de inferência parte 2 / Fonte: a autora.

144
UNIDADE 6

As pessoas envolvidas no desenvolvimento e construção de um sistema especialista, no geral, são o


engenheiro de conhecimento, o especialista no domínio e o usuário. Luger (2013) afirma que
o engenheiro de conhecimento é o especialista em linguagem dentro da inteligência artificial e em
representação de conhecimento, que vai selecionar as ferramentas de software e hardware para o
desenvolvimento do sistema e implementar o conhecimento obtido a partir do especialista em uma
base de conhecimento. O especialista no domínio, segundo o mesmo autor, é aquele que fornece o
conhecimento específico da área do problema a ser solucionado para o engenheiro de conhecimento.
Podemos também ter um conjunto de especialistas nesse processo. O usuário final determina as res-
trições de projeto, e o sistema deve satisfazer suas necessidades (LUGER, 2013).
A Figura 1 ilustra os componentes e pessoas envolvidas no desenvolvimento de um sistema espe-
cialista. Podemos observar nela como os componentes se organizam e relacionam entre eles e com
as pessoas envolvidas. Sintetizando, temos que o especialista no domínio fornece sua expertise (ou
experiência) ao engenheiro de conhecimento, que codifica essas informações e as fornece para um
banco de conhecimento. O motor de inferência manipula a base de conhecimento juntamente com
a memória de trabalho, para conseguir entender a necessidade do usuário e solucionar problemas
naquele domínio específico.

145
UNICESUMAR

Especialista Usuário
no domínio

Interface
Experiência e de usuário
conhecimento

Engenheiro
Engenheiro de de sistemas
Motor de
conhecimento inferência

Base de Memória
conhecimento de trabalho

Figura 1 - Componentes e pessoal necessários para o desenvolvimento de um sistema especialista


Fonte: adaptado de Merritt (1989).

Descrição da Imagem: a imagem apresenta infográfico que se inicia no topo, da esquerda para a direita e de cima para baixo, com
símbolos em azul. Começa com um emoticon (rosto sorrindo) azul com a palavra ao lado esquerdo “Especialista no domínio”, interligado
por uma seta para baixo, escrita ao lado esquerdo "Experiência e conhecimento”, conectada a outro emoticon, com a palavra ao lado
esquerdo "Engenheiro de conhecimento". Este último está interligado por uma seta para baixo e à direita há um retângulo azul escrito
"Base de conhecimento" dentro, que está interligado com uma seta para cima e à direita com o retângulo “Motor de inferência”. Retor-
nando ao topo, no centro, outro emoticon "usuário", interligado por duas setas, uma para cima e outra para baixo, com um retângulo
"Interface de usuário". Este está interligado com uma seta para cima e baixo com o retângulo "Motor de inferência". Abaixo e à direita
de “Motor de Inferência” está o retângulo “Memória do Trabalho”, conectado à cima e à esquerda com “Motor de Inferência. Ao lado
direito do infográfico está um emoticon “Engenheiro de sistemas”, interligado por três setas, uma acima e à esquerda há "interface de
usuário", outra à esquerda há "motor de inferência", e outra à esquerda e abaixo com "memória de trabalho".

Uma interface de usuário permite a comunicação entre o sistema especialista e o usuário. Esse é o
componente que, frequentemente, leva maior tempo para ser elaborado pelo projetista do sistema es-
pecialista. Essa interação permite que o usuário informe qual o problema ou seu objetivo ao sistema, e
que o sistema explore a base de conhecimento mediante o uso do motor de inferência para solucionar
esse problema ou alcançar esse objetivo. A interface pode assumir formatos variados, de acordo com
a forma como é implementado o sistema especialista.
A inteligência artificial e os designers de experiência de usuário (chamados designers de Ux) po-
dem apresentar funções semelhantes em alguns momentos. Os dois trabalham com dados coletados,
analisando as necessidades e interações de usuários, e prevendo o comportamento humano. Chatbots,
carros autônomos, drones de entrega, Google Translate, Alexa e Siri são exemplos de inteligência artifi-
cial que utilizam dados históricos para otimizar seus serviços. Com o desenvolvimento da inteligência
artificial, foi possível também o desenvolvimento de experiências de usuários.

146
UNIDADE 6

O UX Designer é um profissional responsável pelo designer de produtos e softwares. Ele é de suma


importância para garantir que o usuário entenda o funcionamento de modo fácil. O User Experience
Design (UXD ou UED) é um processo de design cujo único objetivo é projetar um sistema que ofereça
uma grande experiência aos seus usuários. Assim, o UXD adota as teorias de uma série de discipli-
nas, como design de interface de usuário, usabilidade, acessibilidade, arquitetura de informações
e Interação com Computador Humano.
Então, um designer de UX pode tornar um produto acessível, atraente e com acessibilidade – ou
seja, incorpora esses princípios no processo de design de um sistema, para que um usuário que
está interagindo com ele o considere de uso fácil. Uma boa arquitetura da informação é uma base
de experiência eficiente do usuário, por isso a habilidade de IA é essencial para os designers. A IA
eficaz torna o produto fácil de usar, mas apenas unido ao design pensando que o produto tem a
poderosa experiência do usuário.
Fonte: adaptado de Dove et al. (2017).

Como comentado, esse desenvolvimento da interface


pode ser demorado, mas com a utilização de inteli-
gência artificial, conseguimos automatizar também
esse processo. Algumas das ferramentas de desen-
volvimento que permitem utilizar a IA para UI/UX
são Uizard, Mockplus e InVision, por exemplo. A
ferramenta Uizard promove o entendimento de in-
terfaces gráficas de usuário a máquinas. Usando IA,
permite desenvolver aplicativos a partir de esboços,
automatizando o processo de design e geração de
código. Da mesma forma, temos o Mockplus e o In-
Vision, que automatizam o processo de design. A
interface com o usuário tem o objetivo de tornar
possível e facilitar a comunicação do usuário com o
sistema, eliminando as complexidades.
A aplicação da inteligência artificial nesse seg-
mento de desenvolvimento de interface de usuário
permite reunir e analisar métricas que auxiliam no
entendimento de produtos pelas equipes e como cada
usuário interage com os elementos da interface. Quan-
to melhor essa compreensão, mais pode ser realizada
a otimização e entrega de produtos melhores de Ux.

147
UNICESUMAR

KBES (Expert Based System) é um programa de computador que imita um especialista humano em
um domínio especializado. A seleção de ferramentas KBES para representação do conhecimento é
baseado em regras e orientado a objetos (linguagens tradicionais, paradigmas únicos, paradigmas
híbridos). A abordagem tradicional do KBES envolve o uso de conhecimentos de ponta para interagir
com o especialista, a fim de extrair e codificar o conhecimento.
Nele, o usuário inicia o diálogo descrevendo o problema e o sistema especialista fornece soluções ou
recomendações, guiando o usuário em um processo de respostas a perguntas de acordo com o nível
de estágio. Com a crescente importância da gestão de recursos humanos e o aumento do tamanho
das organizações, a manutenção dos dados de funcionários e a geração de relatórios adequados
são aspectos cruciais de qualquer organização. Os KBES são essenciais para, por exemplo, proces-
sos seletivos virtuais, onde o candidato responde vários estágios e fases, e no final é entrevistado
pelo responsável do setor de recrutamento, que já tem um relatório do desempenho do candidato.
Fonte: Valdati (2020, p. 67-68).

Entre a interface de usuário e o mecanismo de inferência há o mecanismo de explicação, que também


deve ser acessível ao usuário. Isso permite que, quando o usuário requeira, consiga entender como o
sistema atingiu aquele resultado. O sistema executa uma procura no caminho percorrido e apresenta os
argumentos que levaram àquela solução. Essa etapa é importante para que o usuário consiga, além de
entender como se chegou naquele resultado, julgar se é confiável e se atende ou não a sua necessidade.

148
UNIDADE 6

Para o desenvolvimento de um sistema especialista, não seguimos uma sequência de fases bem
ordenadas e distintas como em outros sistemas tradicionais. No geral, esse desenvolvimento acontece
com uma sobreposição de fases juntamente com um processo iterativo, permitindo a evolução do
aprendizado sobre o problema analisado e baseado em prototipação e incrementação de código. A
Figura 2 fornece uma ideia geral sobre as fases de desenvolvimento de um sistema especialista.

Fase 1
Avaliação do Problema

Requisitos

Fase 2
Aquisição de Investigação
conhecimento

Conhecimento

Fase 3 Refinamento
Projeto

Estrutura

Fase 4
Teste

Validação

Fase 5
Documentação

Produto

Fase 6
Refinamento Manutenção

Figura 2 - Etapas de desenvolvimento de um sistema especialista / Fonte: a autora.

Descrição da Imagem: a imagem apresenta um infográfico de sentido de cima para baixo, com seis retângulos azuis. O primeiro
retângulo tem o texto "Fase 1 - Avaliação de problema” e é interligado, por uma seta com sentido para baixo e a palavra “Requisitos”
ao lado; e outro retângulo com o texto "Fase 2 - aquisição de conhecimento". Este está interligado por seta abaixo "Conhecimento" ao
retângulo "Fase 3 Projeto". Abaixo deste, tem uma seta para baixo "Estrutura", interligando com o retângulo "Fase 4 Teste”. Este está
sendo interligado abaixo por uma seta "Validação" com o retângulo "Fase 5 Documentação”, e à direita seta que sobe e retorna para
os retângulos "Fase 3 Projeto" com a palavra “Refinamento” e "Fase 2 - aquisição de conhecimento" com a palavra “Investigação”. O
retângulo "Fase 5 Documentação” está interligado por uma seta que contém a palavra "Produto" ao último retângulo "Fase 6 Manu-
tenção". Este possui uma seta à esquerda, que sobe e retorna ao retângulo "Fase 1 - Avaliação de problema”, nomeada “Refinamento”.

149
UNICESUMAR

Inicialmente, é realizada uma avaliação do problema pelo engenheiro de conhecimento, buscando uma
maior familiaridade com aquele domínio. Posteriormente, ocorre a etapa de aquisição de conhecimen-
to com o engenheiro de conhecimento e o especialista no domínio trabalhando em conjunto. Essa
aquisição pode ocorrer por meio de entrevistas, observação do especialista em serviço, fornecimento
de amostras de problemas ao especialista e obtenção de soluções e explicações dele.
Em seguida, o projeto do sistema, em que é selecionada uma forma de representação de conheci-
mento (que pode ser aquelas que estudamos, como regras de produção ou frames), é definido uma
estratégia de busca (conforme as que estudamos, por profundidade, largura, bidirecional etc.) e desen-
volvido a interface do usuário. Com isso, um protótipo é obtido (LUGER, 2013).
Com esse protótipo, são realizados testes e refinamento de conhecimento, fornecendo problemas
geralmente envolvendo uma pequena área do domínio e aplicando correções quando apresenta defeitos.
A medida que vai apresentando soluções corretas, esse protótipo é desenvolvido de forma incremental
até se tornar um sistema final. A respeito disso, Luger (2013, p. 235) afirma: “Os sistemas especialistas são
construídos por aproximações sucessivas, com os erros do programa levando a correções ou acréscimos
à base de conhecimento. Nesse sentido, a base de conhecimento á “acrescida” em vez de construída”.

150
UNIDADE 6

Os robôs de segurança são vantajosos, pois podem ser usados livremente em lugares perigosos e
evitar colocar a vida humana em risco. Eles são basicamente usados em locais de difícil acesso ou
onde existem riscos à saúde e acidentes. Por exemplo, é perigoso para os seres humanos examinar
uma área onde minas terrestres são plantadas; no entanto, se o mesmo lugar é pesquisado com a
ajuda de um robô sem vida, é relativamente mais fácil e confortável. Você consegue imaginar outros
locais perigosos onde os robôs poderiam ajudar o ser humano?

151
UNICESUMAR

Por fim, temos as etapas de documentação e manutenção. A documentação se refere ao registro que
deve ser feito desde o início do desenvolvimento do projeto, tendo em vista que a quantidade de da-
dos nesse processo aumenta à medida que o sistema se desenvolve. Essa documentação deve permitir
que novos conhecimentos sejam inseridos, e que os já existentes possam ser facilmente acessados,
modificados, copiados e relatados. A etapa de manutenção se refere à disseminação pelos usuários
do sistema especializado na área em que foi desenvolvido para atuar, e qualquer defeito reconhecido
deve ser tratado com as devidas modificações. Nesse sentido, Luger (2013) afirma que o programa
nunca será considerado acabado, pois, naturalmente, será necessário acrescentar novas informações
e promover modificações para solucionar defeitos que possam surgir.
Agora, vamos estudar melhor as ferramentas que podemos utilizar para a construção de sistemas
especialistas. Essas ferramentas auxiliam na elaboração e busca de informações para esses sistemas,
na introdução dessas informações no desenvolvimento e na tomada de decisão. São variadas as ferra-
mentas utilizadas para o desenvolvimento de sistemas especialistas. Seu estudo geralmente se divide
em dois grupos: os ambientes de programação, onde aplicamos linguagens de programação, e as
shells (que em tradução livre do inglês significa conchas). Essas ferramentas, como uma tecnologia
de sistemas especialistas, promovem a redução do esforço e custo envolvidos no projeto e desenvol-
vimento desses sistemas.

Ferramentas de desenvolvimento de sistemas especialistas

Ambientes de programação Shells

Quadro 3 - Ferramentas de desenvolvimento de sistemas especialistas / Fonte: a autora.

Os ambientes de programação consistem em ferramentas que, utilizando computadores, geralmente de


grande porte, e aplicando uma determinada linguagem de programação, permitem o desenvolvimento
do conhecimento humano e a solução de problemas. São voltadas para aplicações em inteligência
artificial. Um exemplo dessa ferramenta é a Arity Prolog. Esses ambientes possuem um conjunto
de recursos de hardware, como estações de trabalho e microcomputadores, grande base de dados e
linguagens de programação simbólica de alto nível, como a Lisp e a Prolog.

Você já imaginou resolver alguma pendência jurídica com um juiz robô?


Ou mesmo ter autorizações liberadas por softwares com Inteligência Ar-
tificial e talvez um parecer emitido por um avatar com IA? Nosso papo vai
ser sobre os aspectos jurídicos que serão cada vez mais automatizados
por meio da IA, aproveita e dá um play.

152
UNIDADE 6

As shells permitem resolver um tipo restrito de problema, utilizando, geralmente, computadores de


relativo pequeno porte. Baseiam-se em alguma forma de representação de conhecimento para pro-
mover a construção do sistema especialista, com o objetivo de simplificar a construção e manutenção
da base de conhecimento. São exemplos dessa o Expert SINTA e o SPIRIT. Muitos sistemas são
desenvolvidos com essa ferramenta. Sobre ela, Merritt (1989, p. 2) destaca:


O shell é um software que contém a interface do usuário, um formato para conhecimen-
to declarativo na base de conhecimento e um mecanismo de inferência. O engenheiro
do conhecimento usa o shell para construir um sistema para um domínio de problema
específico. Os sistemas especialistas também são construídos com shells desenvolvidos
de forma personalizada para aplicações específicas.

Quando se opta pela personalização, é necessário, além das pessoas envolvidas mencionadas acima,
um engenheiro de sistema. Esse profissional promove a construção da interface do usuário, configura
o formato da base de conhecimento, e implementa o motor de inferência. A personalização de shells
permite atender problemas mais específicos. Sobre esse assunto, Merritt (1989) afirma que, dependendo
do tamanho do sistema projetado, o engenheiro de conhecimento e o engenheiro de sistemas podem
ser uma só pessoa. Nos sistemas personalizados, o formato da base de conhecimento e a codificação
desse conteúdo tem relação direta.
O principal gargalo no desenvolvimento de sistemas especialistas é a construção da base de co-
nhecimento. E quanto mais próximas forem essas estruturas, mais diminuímos esse gargalo. Com um
sistema personalizado, conseguimos atingir essa característica mais facilmente, estando a representação
do especialista do domínio e da base de conhecimento mais compatíveis semanticamente.
Outras ferramentas existem ou podem ser desenvolvidas para atender a necessidades específicas. Você
estudará, ainda nesta unidade, com mais detalhes, os exemplos dados: Arity Prolog, Expert SINTA e SPIRIT.

Título: Better Than Us


Ano: 2018
Sinopse: uma família em desintegração adquire uma robô de alta tecnolo-
gia, que é desejada por uma corporação, por investigadores de homicídio
e por terroristas.
Comentário: é uma série de ficção científica de produção russa. Sua histó-
ria começa com um mundo futuro onde os robôs fazem parte da sociedade
em diversos aspectos, e uma das empresas que detém o mercado destes
robôs compra uma humanoide (robô com características humanas), que tem um comportamento
bem diferente, capaz de identificar e compreender emoções humanas.

153
UNICESUMAR

Como vimos na unidade anterior, Prolog vem do termo


“Programação em lógica” (PROgramming in LOGic, no
inglês). Consiste em uma linguagem de programação de-
clarativa, que utiliza regras que relacionam objetos e con-
dições lógicas para definir a solução que deve ser satisfeita
para determinado problema. Algumas das características
presentes nessa linguagem favorecem sua aplicação em
sistemas especialistas, como o formalismo, a capacidade
de interpretação, abstração e dedução, recursos para ma-
nipulação de listas e portabilidade.
Em síntese, os sistemas especialistas desenvolvidos com
Prolog tem três características principais (MERRITT, 1989):

• Programação baseada em regras.


• Correspondência de padrões embutida.
• Encadeamento para trás.

Sobre essa ferramenta, Merritt (1989, p. 9) ressalta:


As regras do Prolog são usadas para
a representação do conhecimento, e
o motor de inferência Prolog é usado
para derivar conclusões. Outras partes
do sistema, como a interface do usuário,
devem ser codificadas usando Prolog
como linguagem de programação. (...)
Não há incerteza associada aos resulta-
dos. Essa estrutura de regras e estratégia
de inferência é adequada para muitas
aplicações de sistemas especialistas. Ape-
nas o diálogo com o usuário precisa ser
melhorado para criar um sistema espe-
cialista simples.

A aprendizagem é proporcionada pelo projetista, utilizando


o conhecimento adquirido pelo especialista e implemen-
tando no programa por meio de regras e fatos. Utilizando
a lógica de predicados do Prolog, conseguimos representar
mais facilmente os fatos e regras, e a base de conhecimento
se apresenta mais consistente. Contudo, a explicação não

154
UNIDADE 6

é diretamente dada pelo sistema com Prolog e, para isso, é necessário utilizar rotinas específicas para
possibilitar o acompanhamento e entendimento do processo de inferência. É nisso que se baseia o
desenvolvimento do Arity Prolog.
O Expert Sinta é um software gratuito desenvolvido no Ceará pelo grupo SINTA (Sistemas INTe-
ligentes Aplicados). Consiste em um conjunto de ferramentas computacionais que utilizam técnicas
da área de inteligência artificial para criar, automaticamente, sistemas especialistas. Esse software é
um shell com um ambiente de programação orientado a objetos. A Figura 3 ilustra a arquitetura de
sistemas especialistas desenvolvidos pelo Expert SINTA.

Base de Base de Base de


conhecimento 1 conhecimento 2 conhecimento 3

Editor de bases

Máquina de inferência

Banco de dados global

Figura 3 - Bases de conhecimento modulares no Expert SINTA / Fonte: a autora.

Descrição da Imagem: A imagem se trata de um infográfico de sentido de cima para baixo. Começa com três retângulos azuis um ao
lado do outro, com os textos na sequência da esquerda para direita “Base de conhecimento 1”, “Base de conhecimento 2”, “Base de
conhecimento 3”. Estes se interligam ao retângulo abaixo “Editor de bases”, com setas de duplo sentido, que se interliga com a seta
de duplo sentido ao retângulo com o texto “Máquina de inferência”. Por último, este está interligado com seta de duplo sentido ao
retângulo com o texto “Banco de dados global”.

Como pode ser observado na Figura 3, o uso do Expert SINTA permite que sejam geradas bases de
dados modulares. Além disso, apresenta interface de fácil manipulação e ferramentas que possibilitam
realizar a depuração, sem ser necessário um conhecimento adicional sobre informática. A shell é res-
ponsável por interpretar e executar o conhecimento representado, que se encontra na forma de regras
de produção. A utilização de regras de produção apresenta a vantagem de permitir a elaboração da

155
UNICESUMAR

base de conhecimento por etapas, realizando testes com cada subconjunto de regras implementadas.
Utilizando essa ferramenta, o desenvolvedor do sistema especialista não precisa dedicar tempo e esforço
na interpretação e execução do conhecimento, sendo necessário apenas a aquisição das informações
com o especialista e a representação destas.
Esse shell utiliza encadeamento para trás, em que o projetista define o objetivo a ser encontrado e
o motor de inferência verifica a forma desse objetivo ser atingido. Contudo, também é possível con-
figurar para realizar o encadeamento para frente. Com a utilização da análise de probabilidades, o
Expert SINTA utiliza fatores de confiança. Além da apresentação do resultado, essa ferramenta permite
avaliar como se chegou naquela situação. Outra característica é que permite a construção automática
de menus e telas.
Em síntese, as características gerais do Expert SINTA são:

• Ferramenta nacional.
• Utilização de bases de conhecimento em módulo.
• Fácil manipulação.
• Utilização de regras de produção.
• Encadeamento para trás.
• Construção automática de menus e telas.
• Justificativa de solução.

Título: Player One: Jogador 1


Ano: 2018
Sinopse: num futuro distópico, em 2044, Wade Watts, como o resto da
humanidade, prefere a realidade virtual do jogo OASIS ao mundo real.
Quando o criador do jogo, o excêntrico James Halliday, morre, os jogadores
têm como missão descobrir a chave de um quebra-cabeça para conquistar
sua fortuna inestimável.
Comentário: o diretor Steven Spielberg nos faz lembrar antigos jogos de
consoles, como Atari e seus gráficos, até chegarmos a jogos com maior tecnologia. Temos também
muita ação e “charadas” até chegar ao final do filme.

Uma outra ferramenta que pode ser aplicada para gerar automaticamente sistemas especialistas é a
SPIRIT (Symmetrical Probabilistic Intentional Reasoning Inference network Transition, que em por-
tuguês é conhecido como Gerador de Sistemas Especialistas Probabilísticos), um software alemão. Os
termos que compõem a sigla SPIRIT em inglês apresentam as principais características dessa ferramenta:

156
UNIDADE 6

• Symmetrical (simétrico): o mecanismo de inferência pode funcionar tanto com encadeamento


dianteiro quanto com encadeamento para trás, ou seja, das informações e dados iniciais até o
resultado ou do objetivo até as entradas, respectivamente.
• Probabilistic (probabilístico): a análise é baseada em inferência probabilística.
• Intentional (intencional): conseguimos promover a aprendizagem e modificação de regras e
probabilidades com base em observações do problema real.
• Reasoning (raciocínio): utiliza raciocínio lógico para a inferência.
• Inference Networks (redes de inferência): utiliza de árvores de decisão para realizar a inferência.
• Transition (transição): as variáveis são continuamente mutáveis, assim como suas relações.

Com essa ferramenta, é possível representar o conhecimento mesmo diante da incerteza dos dados.
Outras características são:

• Base em lógica e inferência probabilística.


• Utilização de linguagem C++.
• Adaptado para linguagem portuguesa.
• Análise probabilística de regras.
• Permite representar e interpretar relações complexas e incertas.

Devido à sua interface e facilidade de uso e manipulação, é muito aplicado em sistemas que realizam
diagnósticos e previsões, além de situações com relações causa e efeito e no reconhecimento de padrões,
promovendo a realização dessas atividades de forma prática e simples.
O mecanismo de inferência pode atuar tanto para frente quanto para trás. É possível fazer o acom-
panhamento e justificativa dessas inferências em cada etapa. O Quadro 4 apresenta as principais
características das ferramentas de sistemas especialistas aqui mencionadas.

157
UNICESUMAR

Aspectos PROLOG Expert SINTA SPIRIT

Janelas com
Grafo de
Interface de usuário Editor DOS perguntas, interface
dependências
Windows

Interface de Editor de regras e Editor de regras e


Formato DOS
desenvolvimento variáveis variáveis

Encadeamento para Encadeamento para Encadeamento para


Método de raciocínio
trás trás frente e para trás

Representação da Não apresenta


Fator de confiança Análise probabilística
incerteza tratamento

Representação do
Lógica de predicados Regras de produção Regras de produção
conhecimento

Quadro 4 - Principais características e diferenciações de ferramentas de sistemas especialistas / Fonte: a autora.

Para finalizar, é importante saber que a qualidade de um software ou sistema deve atender à norma ISO/
IEC 9126 (LODI; CORDENZONI, 2002), que vai especificar os parâmetros que devem ser atendidos
para proporcionar a garantia de qualidade e a padronização de softwares. Nesse sentido, os sistemas
especialistas devem apresentar conformidade com o que é determinado na norma.
Os sistemas especialistas são úteis para diversas áreas de aplicação. Vimos, como exemplo, a aplicação
desses e da inteligência artificial no geral, no judiciário e no direito. Além do robô Victor mencionado
nesta unidade, o vídeo que assistimos no início da unidade cita outros exemplos nesse sentido. Temos
alguns exemplos de inteligência artificial, como a Clara – que lê documentos, recomenda tarefas e
decisões –, e outros exemplos de automação, como o Jerimum – que é responsável por categorizar e
rotular os processos. Seja de qual tipo for a inteligência artificial, ela traz benefícios, tais como a pro-
dutividade, agilidade e redução de custos.
No caso de aplicação de sistemas especialistas no setor judiciário, como este poderia ser desen-
volvido? Precisamos de um especialista na área para repassar todo seu conhecimento e experiência,
na forma de entrevistas, observação ou outros métodos, para o engenheiro de conhecimento. Já este
último deve adquirir esse conhecimento especializado, codificar e fornecer ao sistema, alimentando
sua base de conhecimento.
É preciso, então, a aplicação de um mecanismo de inferência para que, manipulando a base de conhe-
cimento e a memória de trabalho, consiga resolver um problema ou tomar uma decisão submetida pelo
usuário. Por exemplo, um sistema em que o usuário fornece a ele o tipo de crime e as condicionantes,
o sistema, com base no conhecimento adquirido por especialistas na área, iria sugerir a penalização
adequada. Os benefícios, como já podemos perceber, são muitos. Isso possibilita tornar os processos
judiciais mais ágeis, precisos e seguros.

158
UNIDADE 6

A automação do sistema judiciário possibilita tornar o poder mais eficiente e responsável, tra-
zendo benefícios para o cidadão que necessita de seus serviços. Contudo, além disso, traz também
benefícios para o profissional da área, seja juiz, servidor público, administrativo ou advogado, pois
estes terão mais tempo para dedicar a casos mais complexos, uma vez que os triviais podem ser
avaliados pelo sistema especialista.
A decisão e posicionamento de juízes e advogados é feita com base em seu próprio conhecimento
pessoal e profissional. Isso pode tornar as análises fora da realidade geral, superficial ou parcial. Como
o sistema especialista se baseia no conhecimento geral da área, principalmente nas informações mais
importantes, apresentam soluções sem parcialidade, com a necessária precisão e agilidade, podendo
ser utilizados para embasar ou apoiar as decisões e posicionamentos desses profissionais. Isso garante,
inclusive, a segurança jurídica.
De qualquer forma, seja como for a aplicação do sistema especialista – desde atividades buro-
cráticas processuais ou até tomada de decisão em tribunais – este deve sempre ser implementado
seguindo os princípios éticos, de forma justa e transparente. Caso isso não seja assegurado, a tec-
nologia pode ecoar o comportamento parcial e impreciso dos humanos, resultando em impactos e
consequências negativas para todos.

159
Agora que você estudou sobre as ferramentas para desenvolvimento de sistemas especialistas, elab-
ore um Mapa Mental de acordo com seu aprendizado neste capítulo, sintetizando quais são as infor-
mações principais. Você pode utilizar a ferramenta gratuita https://www.goconqr.com/.

DESENVOLVIMENTO DE
SISTEMAS ESPECIALISTAS

Pessoas
envolvidas
Componentes
Módulo de aquisição
de conhecimento
Módulo de Possibilitam a geração de
explicação sistemas especialistas

Interface
do usuário
Engenheiro de Arity Prolog, Expert Sinta,
conhecimento SPIRIT
Motor de inferência

160
1. Para que funcione adequadamente, os sistemas especialistas devem ser compostos por alguns
componentes, como a base de conhecimento, o motor de inferência, o módulo de aquisição,
a interface do usuário e o módulo de explicação. Sobre esse assunto, avalie as afirmativas a
seguir:

I) A base de conhecimento é o que permite que o sistema adquira conhecimento utilizando


qualquer fonte. É o módulo que permite essa aquisição.
II) O motor de inferência representa regras e conhecimentos em determinado domínio, permi-
tindo a aplicação destes para resolver problemas. Essas informações são obtidas a partir de
um especialista no domínio.
III) A interface de usuário permite a comunicação entre o usuário e o programa, possibilitando
o acesso ao sistema. Por meio dela, é possível o usuário submeter restrições e o problema
que ele quer solucionar ou analisar, além de tornar possível a observação da justificativa para
aquela decisão mediante o módulo de explicação.

Marque a alternativa que indica apenas afirmativas corretas:

a) I e II, apenas.
b) II e III, apenas.
c) I e III, apenas.
d) Apenas III.
e) Todas as alternativas.

2. O desenvolvimento de sistemas especialistas precisa de pessoas que entendam como funcio-


nam e como gerar os componentes necessários. As pessoas envolvidas no desenvolvimento
e construção de um sistema especialista, no geral, são o engenheiro de conhecimento, o
especialista no domínio e o usuário. Além desses, quando se opta pela personalização, é ne-
cessário um engenheiro de sistema. Com relação ao engenheiro de conhecimento, marque a
alternativa que indique corretamente a sua função no desenvolvimento do sistema especialista.

a) Aquele que fornece o conhecimento específico na área do problema a ser solucionado. Pode
também ser um conjunto deles, para repassar toda expertise que vai ser útil para a funda-
mentação da solução do problema analisado com o sistema especialista.
b) Aquele que tem conhecimentos em linguagem de programação na inteligência artificial e re-
presentação de conhecimento, que vai selecionar as ferramentas necessárias e implementar
o conhecimento na base de conhecimento.
c) Aquele que determina as restrições de projeto e que deve ter suas necessidades atendidas
pelo sistema.
d) Aquele que promove a personalização do sistema especialista, quando for necessária para o
atendimento de determinada demanda.
e) Nenhuma das alternativas anteriores.

161
3. Os sistemas especialistas são aplicativos de computador que incorporam algum conhecimento
não algorítmico para resolver certos tipos de problemas. São aplicados nas mais diversas áreas,
como saúde, judiciário, negócios, finanças, gestão, automação, entre outras. Disserte, entre
8 a 10 linhas, quais os impactos e como podem ser aplicados e desenvolvidos os sistemas
especialistas na automação industrial.

162
7
Aprendizagem de
Máquina (AM)
Me. Larissa Torres Ferreira

Olá, seja bem-vindo(a) à Unidade 7 de seu livro. Neste capítulo, você


estudará sobre a aprendizagem de máquinas, uma das áreas mais
promissoras dentro da inteligência artificial. É a área de estudo de
desenvolvimento de sistemas que, de forma automática, aprende
com base em dados, reconhece padrões e toma decisões basea-
das nesse aprendizado. Nesta unidade, você vai entender o que
é a aprendizagem de máquina, sua composição e suas diferentes
classificações. Por fim, veremos vários tipos de aplicação dessa
ferramenta, tanto na indústria quanto em funcionalidades do nosso
dia a dia. Isso permitirá entender como a aprendizagem de máquina
funciona e é útil, e ainda visualizar sua aplicação em necessidades
dentro da automação.
UNICESUMAR

Com o desenvolvimento tecnológico observado nas últimas décadas, vários setores da economia ne-
cessitam lidar com uma grande quantidade de dados gerados e disponíveis em diferentes formatos para
continuar a sua evolução. O Big Data, como é chamada essa enorme quantidade de dados, está cada vez
mais disponível e acessível por meio do próprio progresso da tecnologia, com o desenvolvimento de
recursos avançados de armazenamento em nuvem e em ciência da computação, por exemplo. Muitas
empresas e governos já estão aproveitando essas informações, obtendo insights a partir desses dados
para tomar decisões com relação aos investimentos e negócios.
Os dados presentes no Big Data são não estruturados, ou seja, não possuem relação direta e definida
entre si. Podem ser, por exemplo, posts em redes sociais, imagens, vídeos e outros formatos variados.
Por apresentar essa configuração e variabilidade, além da grande quantidade, não é possível a análise
desses dados por humanos ou ferramentas comuns. Contudo, como é possível coletar, acessar, mani-
pular e fazer uso dessa enorme quantidade de dados? Como as empresas e governos podem fazer uso
desses dados e verificar padrões a partir deles?
Podemos fazer isso utilizando a aprendizagem de máquina, método presente na inteligência artificial.
A aprendizagem de máquina pode apresentar várias aplicações e faz uso de algoritmos complexos ou
códigos fonte incorporados no computador ou máquina. Com isso, um modelo é criado para identificar
esses dados e observar padrões presentes neles, de modo a elaborar previsões e embasar tomadas de deci-
são. Quando outros dados surgem, o algoritmo automaticamente analisa as mudanças e padrões desses.

164
UNIDADE 7

Assim, podemos observar uma relação em dois sentidos entre


Big Data e aprendizagem de máquina. Enquanto a aprendizagem
de máquina utiliza dos dados presentes no Big Data para, com
isso, possibilitar o aprendizado de sistemas e máquinas, o Big
Data requer um processamento robusto como o encontrado
na aprendizagem de máquinas, para lidar com o volume e velo-
cidade de seus dados.
A aprendizagem de máquina, em inglês conhecida como
Machine Learning, consiste em uma tecnologia que permite que
máquinas e computadores adquiram a capacidade de aprender
através do processamento de dados disponíveis. Assim, permite
que o programa lide com novas situações e informações de modo
automático, sem a necessidade de intervenção no algoritmo.
O aprendizado de máquina é usado em diferentes setores por
várias razões. Os sistemas de negociação podem ser calibrados
para identificar novas oportunidades de investimento. As plata-
formas de marketing e e-commerce podem ser sintonizadas para
fornecer recomendações precisas e personalizadas aos seus usuá-
rios, com base no histórico de pesquisa na Internet dos usuários
ou transações anteriores. As instituições de empréstimos podem
incorporar aprendizado de máquina para prever empréstimos
ruins e construir um modelo de risco de crédito. Os centros de
informação podem usar aprendizado de máquina para cobrir
enormes quantidades de notícias de todos os cantos do mundo.
Os bancos podem criar ferramentas de detecção de fraudes a
partir de técnicas de aprendizado de máquina. A perspectiva
é que a utilização da aprendizagem de máquina aumenta cada
vez mais nessa era digital, de modo a aproveitar cada vez mais
os benefícios que o Big Data apresenta.
Para entender a importância da aprendizagem de máquina
e utilização do Big Data, faça uma pesquisa sobre o significado
desses termos. Esse debate está em voga, e você pode adquirir
essas informações em vários lugares, como por exemplo ao as-
sistir o vídeo Big Data e inteligência artificial - YouTube, que
conceitua o Big Data e a aquisição e processamento desses dados,
além de dar alguns exemplos. Agora é com você! Você conse-
gue entender como o Big Data e a aprendizagem de máquina
estão relacionados e por que não são a mesma coisa? Faça uma
pesquisa no google e anote informações do vídeo assistido para
compilar a diferença e relação entre esses termos.

165
UNICESUMAR

Vamos imaginar que você é o diretor de uma empresa que trabalha com venda de livros e precisa
decidir quais serão os próximos investimentos que a empresa fará, quais segmentos literários investir
e em qual quantidade.
Com base nas informações que obteve até agora e com a atividade proposta na experimentação,
tente responder:

• Como o Big Data pode ser útil para essa tomada de decisão?
• Como a aprendizagem de máquina pode ser útil nesse caso?
• Você consegue imaginar como um sistema automático poderia ser desenvolvido com esse
propósito de facilitar e orientar a tomada de decisão?

Anote seus resultados no seu Diário de Bordo.

166
UNIDADE 7

Caro(a) aluno(a), nas unidades anteriores, entendemos no que consiste o estudo de aprendizagem de
máquinas. É aquele que procura desenvolver e implementar a capacidade de aprendizado em com-
putadores e máquinas, fazendo com que estes melhorem seu desempenho com o tempo. Com isso,
busca simular a capacidade de humanos de aprender com experiências e apresentar o comportamento
inteligente. Nesta unidade, vamos entender um pouco mais sobre alguns dos aspectos desse estudo.
Você pode estar se perguntando: “por que promover a aprendizagem em uma máquina, se podemos
simplesmente melhorar seu projeto através da programação, programar as melhorias?”. A aprendiza-
gem de máquinas é útil porque o projetista do sistema não consegue visualizar previamente todas as
possíveis situações que o sistema pode se deparar, nem todas as mudanças ao longo do tempo. Além
disso, alguns problemas só podem ser resolvidos com algoritmos de aprendizagem, devido a limitações
técnicas e humanas que os programadores encontram.
Sobre a aprendizagem de máquinas, Luger (2013, p. 321 e 322) afirma que:



(...) seria os programas começarem com uma quantidade mínima de conhecimento e
aprenderem a partir de exemplos, de aconselhamentos de alto nível ou, ainda, de suas
próprias explorações do domínio. (...) O aprendizado envolve a generalização a partir da
experiência: o desempenho deve melhorar não apenas na “repetição da mesma tarefa”,
mas também em tarefas semelhantes no domínio.

167
UNICESUMAR

Os sistemas desenvolvidos com aprendizagem de máquina devem apresentar a capacidade de se mo-


dificar ao longo do tempo mediante as interações com o mundo, com a experiência de seus estados
e de seus processos internos. De acordo com Norvig e Russell (2013), qualquer componente pode
ser melhorado utilizando aprendizagem baseada em dados, e as melhorias e técnicas aplicadas para
construir esses sistemas depende, principalmente, de quatro fatores:

• Qual o componente que deve ser melhorado.


• O conhecimento anterior que o agente apresenta.
• Qual a representação do conhecimento utilizada para os dados e para o componente.
• Qual o feedback disponível para o processo de aprendizagem, que está relacionado
com a realimentação do sistema para avaliar e melhorar o resultado.

A aprendizagem de máquina, mais conhecida por seu termo em inglês Machine Learning (ML), tem
tido aplicação crescente em diversos setores, seja na mineração de dados (processo usado pelas empresas
para transformar dados brutos em informações úteis), no processamento de linguagem natural (linguagem
que favorece a máquina entender humanos desde a fala até a escrita) ou em sistemas especializados, por
exemplo. É uma técnica que apresenta papel fundamental na área de inteligência artificial, permitindo o
desenvolvimento de soluções para diversas necessidades da sociedade, inclusive na automação.
Dessa forma, o aprendizado de máquina está associado com a capacidade de um programa de
computador de aprender e se adaptar a novos e mutáveis dados, sem que seja necessária a intervenção
humana para isso. Assim, é implementado um algoritmo ou código que permite que a máquina utilize
dados para aprender com eles e, com isso, fornecer previsões de saída e tomadas de decisão.

A indústria da saúde é uma das muitas indústrias onde a Inteligên-


cia Artificial pode encontrar seu uso. Construir e manter o progresso
bem-sucedido no setor de saúde depende, em grande parte, de seguir
os últimos avanços tecnológicos. As novas tendências tecnológicas no
campo da Inteligência Artificial têm tido um impacto positivo significativo
na detecção de inúmeras condições médicas e doenças. Dê um play e
ouça mais sobre estas tecnologias!

168
UNIDADE 7

Podemos encontrar diferentes classificações para a aprendizagem de máquinas, observando diferen-


tes aspectos dos sistemas gerados. Primeiramente, podemos diferenciar a aprendizagem indutiva e
dedutiva. A aprendizagem indutiva ocorre quando é realizada a aprendizagem de uma função geral
ou regra baseada em determinados pares de entrada-saída. Já quando a aprendizagem ocorre a partir
de uma regra geral conhecida para uma nova regra derivada logicamente, temos a aprendizagem
dedutiva ou analítica.
Com relação ao tipo de feedback, encontramos uma outra classificação. Assim, conforme Norvig
e Russell (2013), temos:

• Aprendizagem não supervisionada.


• Aprendizagem por reforço.
• Aprendizagem supervisionada.
• Aprendizagem semissupervisionada.

A aprendizagem não supervisionada é aquela em que não é fornecido explicitamente um feedback,


o programa aprende utilizando padrões de entrada, podendo detectar grupos de exemplos com esses
dados de entrada que podem ser úteis em sua execução. A aprendizagem por reforço ocorre quando a
aprendizagem do programa é promovida com o fornecimento de reforços, que podem ser recompensas
ou punições, para determinadas ações executadas. Na aprendizagem supervisionada, a aprendizagem
é promovida em função do mapeamento feito entre pares de entrada e saída. Já na aprendizagem
semissupervisionada são utilizados alguns exemplos rotulados para o processo de aprendizagem,
para que o programa, com isso, possa utilizar um grande número de exemplos não rotulados. Mais à
frente, falaremos um pouco sobre esses tipos de aprendizagem.
Associados ao estudo de aprendizagem de máquinas, temos alguns questionamentos filosóficos e
éticos. Um problema chamado generalização é um exemplo, em que se questiona: como um programa
ou máquina pode se ajustar e promover soluções com dados novos, tendo como base padrões encon-
trados em dados fornecidos previamente? Além disso, tem a questão do viés indutivo, que, ao mesmo
tempo que possibilita o aprendizado, o limita, e está relacionado com a forma como os projetistas do
sistema utilizam a própria intuição e heurísticas para desenvolver representações, modelos e algoritmos
que vão possibilitar a aprendizagem. Temos também o dilema do empírico, que é a dúvida de como
identificar se algo foi aprendido e se esse aprendizado é útil (NORVIG; RUSSELL, 2013).
Além das classificações anteriormente representadas, temos ainda aquela que divide o aprendizado
de máquina em (LUGER, 2013):

169
UNICESUMAR

• Método simbólico.
• Método conexionista.
• Método genético.
• Método estocástico.

O aprendizado de máquina pelo método simbólico utiliza um conjunto de símbolos para inferir
generalizações novas e úteis, sendo esses símbolos representações de entidades e relações dentro do
domínio do problema. O método conexionista é baseado na arquitetura de cérebros de animais, em
que o aprendizado ocorre por meio de modificações em sua estrutura de acordo com os dados de
treinamento, reconhecendo padrões de atividades em dados e representando-os na sua estrutura. O
método genético se baseia na teoria da evolução de Darwin, onde são observadas possíveis soluções
para o problema, sendo estas avaliadas e aquelas consideradas mais apropriadas, são selecionadas para
sobreviver e combinar entre si para produzir uma nova geração de soluções possíveis. Por fim, o método
estocástico se baseia no princípio que a experiência em situações anteriores em determinado domínio
permite interpretar novos dados desse domínio e de outros. Um exemplo deste é a aprendizagem por
reforço comentada anteriormente.

170
UNIDADE 7

Algoritmos de Deep Learning, ou aprendizagem profunda, são


algoritmos de aprendizagem de máquina (Machine Learning)
que apresentam um maior grau de evolução e complexidade
matemática. Tem sido um campo de estudo bastante pesquisa-
do e desenvolvido nos últimos anos, que tem influenciado signi-
ficativamente na forma como as máquinas atuam e interagem.
O Deep Learning descreve algoritmos que buscam ensinar as
máquinas a se comportar e interpretar dados de forma seme-
lhante como a forma que um humano tira conclusões. Para isso,
utiliza Redes Neurais Artificiais (RNA), que é uma estrutura de
algoritmos em camadas, em que a arquitetura é inspirada em
uma rede neural biológica de um cérebro humano, promovendo
um aprendizado que, no geral, apresenta melhor desempenho
do que os algoritmos padrões de aprendizagem de máquina.
Pode compreender informações variadas, como imagens,
sons, exemplos de comportamento, sem que seja necessária
a atuação de um humano para isso. A aplicação deste tipo de
algoritmo pode ocorrer tanto em aprendizado supervisionado
quanto em não supervisionado.
Fonte: Valdati (2020).

Podemos encontrar alguns exemplos de aplicação práticas de apren-


dizagem de máquinas. No geral, todos os sistemas de reconheci-
mento de fala ou voz se baseiam em algum tipo de aprendizagem
de máquina, de forma a ser possível reconhecer fonemas, palavras
e vocabulários. O desenvolvimento de veículos autônomos tem
sido possível por meio da aprendizagem de máquinas, em que os
veículos controlados por programas são treinados para dirigir em
variadas estradas e na presença de outros carros. A NASA (National
Aeronautics and Space Administration, que em português significa
Administração Nacional da Aeronáutica e Espaço) tem aplicado
sistemas baseados em aprendizagem de máquinas para descobrir
e classificar objetos celestes, além de ser possível encontrar outras
pesquisas espaciais – por exemplo, analisando a radiação solar em
astronautas no espaço. Vários jogos de computador também apre-
sentam algum tipo de aprendizado de máquina.

171
UNICESUMAR

De acordo com Mitchell (1997), para definir adequadamente um problema de aprendizagem, no geral,
precisamos identificar três características: a classe de tarefas, qual a medida de desempenho a ser
melhorada e qual a fonte de experiência. Por exemplo, segundo o autor, considerando um problema
de aprendizagem na condução de automóveis autônomos:

• Tarefa: dirigir em estradas públicas com quatro pistas, utilizando sensores de visão.
• Medida de desempenho: medida de distância percorrida até a ocorrência de um erro, avaliada
por um supervisor humano.
• Fonte de experiência: observação de um motorista humano e utilização de uma sequência de
imagens e comandos utilizados por ele.

Quando vamos desenvolver um sistema baseado em aprendizagem de máquinas, a primeira etapa é


decidir a fonte de experiência e o tipo de treinamento pelo qual o sistema irá aprender. É importante
verificar se a experiência de treinamento fornece feedback direto ou indireto ao sistema, qual a sequência
de exemplos de treinamento e o quanto a experiência de treinamento é representativa da distribuição
de exemplos sobre qual o desempenho é medido.
Em seguida, devemos determinar qual o tipo de conhecimento vai ser aprendido e como isso vai
ser aplicado ao funcionamento do sistema. É utilizado um programa, ou uma função, que vai avaliar
as possíveis ações e definir qual a melhor ação a ser executada com base no conhecimento disponível.
Enquanto as três características citadas anteriormente especificam a tarefa de aprendizagem, esses

172
UNIDADE 7

dois últimos passos comentados são escolhas de projeto para a implementação do mecanismo de
aprendizagem no sistema.
Para finalizar o projeto do sistema, temos o desenvolvimento de quatro módulos componentes do
sistema de aprendizado.

• Módulo de desempenho: módulo que, a cada entrada, produz um caminho para solu-
ção, utilizando o programa ou função para avaliar e definir a ação a ser executada com
base no conhecimento, com perspectiva de melhora à medida que a função apresenta
maior precisão.
• Módulo crítico: tem como entrada o histórico de ações e apresenta um conjunto de
exemplos de treinamento na saída.
• Módulo generalizador: tem como entrada os exemplos de treinamento, generalizando
a partir desses, e apresenta uma estimativa de função alvo na saída baseado nestes.
• Módulo gerador de experimentos: tem como entrada a função aprendida mais atual, e
apresenta como saída um novo problema ou estado inicial para o módulo de desem-
penho avaliar, fazendo com que o aprendizado da máquina seja maximizado.

173
UNICESUMAR

A aprendizagem de máquina trabalha com uma busca dentro das possíveis hipóteses válidas para, com
base nos dados e conhecimento prévio do sistema, determinar qual é a melhor. A melhor alternativa
será aquela mais consistente com os exemplos de treinamento que foram disponibilizados. Para isso,
contamos com diferentes tipos de algoritmos que executam essa busca e seleção de hipóteses de dife-
rentes formas (MITCHELL, 1997).
Um exemplo é o algoritmo LMS (Least Mean Square, ou, em português, algoritmo de mínimos quadra-
dos), que avalia resultados ajustando pesos de seus filtros de forma iterativa até que ocorra a convergência,
quando encontra um resultado válido e próximo da solução esperada. Assim, é um algoritmo adaptativo
e apresenta curvas de aprendizado úteis para a aplicação em aprendizagem de máquinas.
Vamos conhecer um pouco mais sobre os tipos de aprendizagem conforme os tipos de algoritmos
utilizados. A aprendizagem supervisionada utiliza como treinamento um conjunto de exemplos de
relações entre entrada e saída previamente classificados por um professor ou outro método. Busca-se
descobrir a hipótese que mais se aproxima da função verdadeira que apresenta uma relação apropriada
entre a entrada e a saída, a qual é fornecida pelo supervisor. A aprendizagem ocorre por meio de busca
no espaço de possíveis hipóteses, que são funções de mapeamento para gerar dados de saída com dados
de entrada, selecionando aquela que apresenta melhor desempenho, mesmo diante de novas situações.
Para avaliar a precisão da hipótese, é utilizado um conjunto de testes. Pode apresentar problemas de
classificação ou regressão (NORVIG; RUSSELL, 2013).
Podemos citar como exemplo de aplicação desse tipo de aprendizagem a assistente virtual inteligente
da Microsoft, Cortana, que permite a interação entre sistema e usuário por meio de voz. Para isso, treina
com sua voz e utiliza dados previamente fornecidos e externos, atuando com base nessas informações.

É importante entender a diferença entre os assistentes virtuais e os cha-


tbots, pois ambos têm como base a inteligência artificial, mas exercem
papéis diferentes.
Os chatbots são softwares que promovem a interação com o usuário por
meio de chat, ou seja, por mensagens de texto. São muito utilizados para
suporte em vendas e atendimento ao cliente, executando suas ações de
forma automática, conforme a interação com o usuário. Os clientes conse-
guem tirar dúvidas sobre produtos e obter outras informações por meio
da interação com o chatbot.
Os assistentes virtuais atuam por voz, mas também podem atuar por texto, agindo de acordo
com a necessidade do usuário, podendo, para isso, realizar pesquisas na internet ou indicar vídeos
no Youtube. Podem auxiliar no agendamento de atividades, gerenciar tarefas e executar outras ati-
vidades variadas, como cronometrar tempo e ativar o despertador. Tudo isso utilizando interfaces
de conversação. São exemplos de assistente virtual, além da Cortana, Siri, Assistente Google e Alexa.
Fonte: adaptado de Padrão e Yuge (2021, on-line).

174
UNIDADE 7

Um outro exemplo prático que aplica a aprendizagem supervisionada são as ferramentas de reconhe-
cimento de dígitos escritos à mão, muito útil para reconhecimento e classificação de correspondência
em agências automatizadas de correios e leitura automática de cheques em agências bancárias. A fer-
ramenta OCR (Optical Character Recognition, que em português significa reconhecimento óptico de
caracteres) atua aproximadamente nesse sentido. Esse software permite a conversão de documentos
em formatos diversos em dados editáveis com o uso de um computador ou celular. É utilizado para
extrair informações de documentos e permitir a armazenagem e pesquisa. Esses documentos podem
ser comprovantes, notas fiscais, contratos, atestados, ordem de compra, entre outros. Sua utilização
permite otimizar processos e garantir a precisão e qualidade dos dados extraídos e armazenados.
São exemplos de algoritmos que fazem parte do grupo de aprendizado supervisionado:

• Árvores de decisão.
• Regressão logística.
• Naive Bayes.
• Regressão linear.
• KNN (K Nearest Neighbor).
• Regressão polinomial.

175
UNICESUMAR

Um algoritmo tradicional de aprendizagem de máquina pode ser algo tão simples quanto a regressão
linear. Você consegue imaginar como seria sua utilização em algum exemplo? Tal como, imagine que você
quer prever sua renda, dado seus anos de ensino superior. Em um primeiro passo, você tem que definir
uma função, por exemplo, renda = y + x * anos de educação. Então, dê ao seu algoritmo um conjunto de
dados de treinamento – que pode ser uma tabela simples com dados sobre os anos de ensino superior de
algumas pessoas e sua renda associada. Em seguida, deixe seu algoritmo desenhar a linha, por exemplo,
através de uma regressão ordinária de quadrados mínimos. Agora, você pode dar ao algoritmo alguns
dados de teste, por exemplo, seus anos pessoais de ensino superior e deixá-lo prever sua renda.
O aprendizado semissupervisionado, como já comentado, apresenta-se semelhante ao supervi-
sionado em alguns aspectos. Este lida com alguns exemplos rotulados para promover a aprendizagem
e, com isso, o programa consegue lidar com outros muitos exemplos não rotulados.
A aprendizagem por reforço, por sua vez, utiliza algoritmos computacionais que aplicam uma forma
de recompensa em ações com base em situações do mundo. Tentam simular a forma como ocorre o
nosso aprendizado, que é com a interação que temos com o mundo. Isso promove a realimentação das
nossas ações, nem sempre de forma imediata e direta, a partir do resultado de nossas ações prévias. O

176
UNIDADE 7

sistema que utiliza esse princípio não sabe qual ação executar e vai analisar isso avaliando qual ação
irá oferecer a maior recompensa.
Conforme afirma Luger (2013, p. 366):


As ações do agente afetam não apenas a recompensa imediata, mas também têm impacto
sobre ações e eventuais recompensas subsequentes. Essas duas características, busca por
tentativa e erro e reforço atrasado, são as mais importantes do aprendizado por reforço.
Consequentemente, o aprendizado por reforço é uma metodologia mais geral [comparada
a aprendizagem supervisionada] (...).

A diferença essencial entre a aprendizagem por reforço do supervisionado é que no supervisionado


o professor ou método utilizado treina o sistema por meio de exemplos de treinamento, que mostram
relações entre os dados de entrada e saída. Já no aprendizado por reforço, o próprio sistema aprende
para alcançar o resultado almejado, com base na tentativa e erro e na realimentação (LUGER, 2013).

177
UNICESUMAR

Para que o algoritmo de aprendizagem por reforço funcione adequadamente, este deve explorar
todas as opções de ações, já conhecidas ou não, e selecionar as que aparentam ser as melhores. A pró-
pria exploração faz com que o programa realize melhores seleções posteriormente. Um exemplo de
aplicação dessa abordagem é o sistema de recomendação de vídeos do Youtube. A plataforma indica
vídeos semelhantes aos que você assistiu anteriormente, uma vez que acredita que são as melhores
opções e as mais prováveis de você gostar. Porém, quando você não assiste aquele vídeo recomendado
até o fim, o programa vai explorar outras ações, indicando outro tipo de vídeo nas próximas vezes.
Também pode ser útil no setor industrial e automação. A aprendizagem por meio de reforço pode
proporcionar a otimização de processos analisando a interação de máquinas e realimentando o siste-
ma de acordo com os resultados. Podem, inclusive, ser aplicados a chatbots como uma forma de criar
diálogos mais convincentes e chegar a resultados mais precisos.

Título: Chappie
Ano: 2015
Sinopse: em um futuro próximo, a África do Sul decidiu substituir os seus
policiais humanos por uma frota de robôs ultra resistentes e dotados de in-
teligência artificial. O criador destes modelos, o brilhante cientista Deon (Dev
Patel), sonha em embutir emoções nos robôs, mas a diretora da empresa de
segurança (Sigourney Weaver) desaprova a ideia. Um dia, ele rouba um mo-
delo defeituoso e faz experiências nele, até conseguir criar Chappie (Sharlto
Copley), um robô capaz de pensar e aprender por conta própria. Mas Chappie é roubado por um
grupo de ladrões que precisa de ajuda para um assalto a banco. Quando Vincent (Hugh Jackman), um
engenheiro rival de Deon, decide sabotar as experiências do colega de trabalho, a segurança do país
e o futuro de Chappie correm riscos.
Comentário: o filme Chappie ilustra o desafio de promover emoções em robôs dotados de inteligência
artificial. Na trama, são desenvolvidos policiais robôs para substituir os humanos, e eles realizam um
bom trabalho e atuam em situações perigosas. Porém, o cientista e criador desses robôs desenvolve
uma variação nomeada Chappie, que pensa por si só e apresenta emoções. Esse robô age, inicialmente,
como uma criança e precisa aprender e se desenvolver. Porém, cai em mãos de bandidos que tentam
se aproveitar da sua “inocência”. A obra traz boas reflexões a respeito do uso da inteligência artificial.

Por fim, temos o aprendizado não supervisionado. Nele, o sistema analisa e aprende sozinho com
base em dados aleatórios e na identificação de padrões dentro desses dados. Não é feito um monito-
ramento dos resultados obtidos, até porque os resultados finais não são conhecidos, então não temos

178
UNIDADE 7

exemplos para fornecer ao sistema para a realização de treinamento. Este é o menos aplicado em
empresas, uma vez que é mais demorado.
Para promover o aprendizado dessa forma, utiliza algumas técnicas com base em regras de associação
e clusterização (agrupamento), que permitem um processamento inicial, também chamado minera-
ção de dados. Com isso, podem ser encontradas os outliers, como são denominadas as anomalias de
dados. O sistema vai buscar semelhanças nesses dados e reagir de acordo com elas.
Uma aplicação prática desse tipo de aprendizado podemos encontrar na inteligência por trás dos
matchs (combinações de casais) do Tinder, sugestões de conexões no Linkedin, sistemas de reco-
mendação de vídeos e músicas, entre outras aplicações que são baseadas em observações de dados
de entrada. Um exemplo na indústria pode ser o desenvolvimento de um sistema para separar peças
fabricadas, utilizando técnicas de associação e agrupamento com base em semelhanças encontradas
em características físicas delas.
Em síntese, podemos destacar algumas diferenças entre cada um desses tipos de aprendizado,
explanadas no Quadro 1 a seguir.

Aprendizado supervisionado Aprendizado por reforço Aprendizado não supervisionado

• Utiliza dados rotulados. • Utiliza um sistema de • Utiliza dados não


• Aprendizado a partir recompensas. rotulados.
de modelos fornecidos • O sistema analisa a • Associação de dados.
previamente. melhor ação a ser • Clusterização de dados.
• Treinamento do sistema. tomada com base na
• Sistema aprende sozinho.
maior recompensa.
• Análise de erro dos • Explora dados
resultados. • Sequência de
desconhecidos.
ações aprendida
• Feedback.
iterativamente.
• Aprendizado com
base na experiência
de erros anteriores
encontrados pelo
sistema.

Quadro 1 - Aprendizagem de máquina (Machine Learning) / Fonte: a autora.

É importante avaliar o desempenho de sistemas que aplicam a aprendizagem de máquinas, para ga-
rantir que ele atenderá a necessidade para a qual foi desenvolvido. No aprendizado supervisionado,
conseguimos avaliar facilmente o desempenho do sistema, verificando os resultados e comparando com
aquele esperado. Nestes, quanto maior a quantidade de dados de treinamento, melhor a aprendizagem
apresentada pelo sistema. Para definir a quantidade de exemplos necessária para determinado problema,
é utilizada a teoria da aprendizagem computacional, que, conforme Norvig e Russell (2013, p. 828):

179
UNICESUMAR



(…) fica no cruzamento entre IA, estatística e ciência da computação teórica. O princípio
subjacente é que qualquer hipótese que esteja seriamente errada será quase certamente
“descoberta” com alta probabilidade depois de um pequeno número de exemplos, porque
vai fazer uma previsão incorreta. Assim, qualquer hipótese que seja consistente com um
conjunto suficientemente grande de exemplos de conjunto de treinamento é improvável
de estar seriamente errada, ou seja, deve estar provavelmente aproximadamente correta.

Com o aprendizado não supervisionado, não conseguimos avaliar de forma tão objetiva quanto o an-
terior. Isso porque o resultado de referência, que seria utilizado para comparar com aquele obtido pelo
sistema, não existe. A análise de desempenho, portanto, fica restrita ao profissional por trás do sistema,
que avalia se o resultado obtido apresenta coerência e se é útil para aquela determinada aplicação.

Título: Archive
Ano: 2020
Sinopse: 2038: George Almore está trabalhando em uma verdadeira IA equi-
valente a humanos. Seu último protótipo está quase pronto. Essa fase sensível
também é a mais arriscada. Especialmente porque ele tem um objetivo que
deve estar oculto a todo custo: reunir-se com sua esposa morta.
Comentário: o filme Archive relata a história de um cientista chamado George
Almore, que vive em uma instalação isolada e secreta e trabalha em um projeto
de desenvolvimento de uma inteligência artificial humanoide para uma empresa. Porém, este esconde
da empresa que seu objetivo real é utilizar essa tecnologia para implementar a memória arquivada
de sua esposa, que faleceu em um acidente. Ao longo de todo o filme, somos induzidos a questiona-
mentos e apresentados a reviravoltas.

A aprendizagem de máquina apresenta grande potencial de aplicabilidade no setor industrial e na


automação no geral. A aplicação de equipamentos dotados de técnicas de inteligência artificial e apren-
dizagem de máquina é útil em empresas que trabalham com a produção enxuta, por exemplo, uma
vez que o processo de aprendizagem pode auxiliar no melhor controle de qualidade e identificação
de falhas em processos produtivos. Isso resulta em maior agilidade na execução de serviços e fabrica-
ção e maior precisão quanto às características finais daquele produto ou processo. Da mesma forma,
apresenta boa perspectiva em empresas que trabalham com produção sob demanda.
Assim, a aprendizagem de máquina pode promover uma maior facilidade de resolução de problemas
complexos encontrados na indústria, contribuindo para uma maior produtividade, precisão e agilidade
de execução. Na verdade, a inteligência artificial e a aprendizagem de máquinas já são realidade para

180
UNIDADE 7

muitos tipos de indústria. Os algoritmos desenvolvidos para isso procuram o aprendizado contínuo
e apresentam resultados ótimos para diversas situações e aplicações.
Alguns dos benefícios que podemos encontrar em indústrias que aplicam a aprendizagem de
máquina são:

• Produção enxuta com qualidade e agilidade.


• Produção sob medida e customizada com melhor desempenho.
• Desenvolvimento de fábricas inteligentes, com processos produtivos automatizados.
• Bom controle e monitoramento dos processos produtivos.
• Máquinas interativas, que se relacionam com humanos, outros sistemas e até com a internet.
• Obtenção e armazenamento de dados utilizando redes digitalizadas.
• Produção inteligente mediante à capacidade de promover adaptações durante o pro-
cesso e realizar medidas preventivas.
• Processos de inspeção e supervisão automatizados.
• Entre outros.

181
UNICESUMAR

Para ser mais específico e conseguir visualizar os benefícios de aplicação dessa tecnologia, vamos
considerar uma empresa de investimentos que quer empregar aprendizado de máquina na gestão de
ativos, de forma que o sistema desenvolvido consiga realizar pesquisa e analisar investimentos. Supondo
que o gestor de ativos deseja investir em ações de mineração, o sistema pode, por meio de pesquisa na
web e coleta de dados, verificar notícias de empresas, indústrias e países relacionadas com o tema e,
tendo posse desse conjunto de dados, indicar a melhor decisão a ser tomada. Uma pessoa ou conjunto
de pessoas não conseguiriam realizar esse tipo de pesquisa tão ampla e obter a mesma quantidade de
informações que o sistema que utiliza aprendizagem de máquina conectado a web.
Por exemplo, considerando que uma determinada mineradora descobriu uma mina de diamantes
em uma cidade específica, o sistema dotado de aprendizagem de máquina conseguiria identificar esse
evento como relevante para seu processo de tomada de decisão. Com isso e com outras informações
e dados adquiridos, forneceria previsões sobre o setor de mineração para determinado período que
auxiliariam o gestor de investimento para tomar a decisão sobre como agir com relação a sua carteira de
investimentos, porém sem qualquer intervenção neste processo, ou seja, o próprio código desenvolvido
identificaria mudanças relevantes no setor de análise, sem ser necessário qualquer ajuste.

182
UNIDADE 7

Podemos verificar outras aplicações da aprendizagem de máquina em empresas no geral:

• Detecção de fraudes: por exemplo, quando alguém tenta realizar uma compra aleatória com
um cartão de crédito clonado, a empresa responsável pelo cartão pode utilizar uma máquina
com aprendizagem para identificar comportamentos diferentes do padrão e, assim, bloquear
nesses casos, evitando prejuízos.
• Liberação de crédito: a aprendizagem de máquina pode ser adotada no sistema de cadastro de
clientes que solicitam crédito para, com base no perfil, avaliar se tem risco de inadimplência.
• Previsão de falhas em equipamentos: o sistema, através da aprendizagem, identifica sinais que
indicam que o equipamento vai falhar, permitindo a intervenção prévia para se evitar a parada
e danos à produção.
• Economia de energia: o sistema pode aprender os horários em que se tem uma maior ou menor
demanda, e com base nesses padrões regular e otimizar o sistema de consumo de energia.
• Oferta de produtos: o sistema indica produtos a clientes com base em compras que eles fizeram
anteriormente.
• Análise de currículos: o sistema aprenderia o perfil desejado e selecionaria, dentre os currículos
cadastrados, aquele que mais se aproximasse do padrão.

Esses são somente alguns exemplos para auxiliar na visualização da capacidade de utilização dessa
ferramenta de inteligência artificial em empresas. Outras aplicações possíveis são:

• Filtragem de phishing.
• Resultados de pesquisa na internet.
• Seleção de anúncios em tempo real.
• Análise de sentimento baseada em texto.
• Detecção de invasão em redes ou sistemas.
• Reconhecimento de imagens ou facial.
• Filtro de spam no e-mail.

Mas será que a aprendizagem é útil apenas para empresas e grandes aplicações? Será que está
também em utilidades do nosso dia a dia? Em que dispositivos do nosso dia a dia podemos encon-
trar essa tecnologia? Será que no nosso celular ou os sites da internet que utilizamos, apresentam
alguma aprendizagem de máquinas?

183
UNICESUMAR

Quando utilizamos aplicativos de transporte e geolocalização, como Waze e Uber, eles utilizam a
aprendizagem de máquina para definir o preço da viagem, selecionar o caminho de forma a diminuir
o tempo de percurso, selecionar um carro para transporte de forma mais rápida para o cliente que
solicitou, entre outras funcionalidades. Isso é possível com base em dados fornecidos ao sistema, tanto
de corridas anteriores quanto de padrões em tempo real de outros usuários. Essa tecnologia também
já está sendo aplicada em carros autônomos.
Outro exemplo bastante presente no nosso dia a dia são as sugestões de respostas que surgem
quando estamos escrevendo um e-mail. É utilizada a aprendizagem de máquinas e, com base em
dados de e-mails enviados e termos utilizados anteriormente, a ferramenta sugere respostas auto-
máticas e, ainda, personalizadas.
Da mesma forma ocorre nas sugestões de compra em sites como a Amazon ou de vídeos como o
Youtube. Assim, o sistema consegue descobrir, cientificamente, quais produtos ou vídeos apresentam
uma maior probabilidade de interesse. Sites de busca como o Google ou Bing também utilizam essa
ferramenta para otimizar suas indicações e resultados. Inclusive, as propagandas que chegam até nós
no Google, Facebook e Instagram são produto da aprendizagem de máquina, que indicam aqueles
anúncios que podem atrair maior atenção do usuário.
O Google Tradutor é um outro exemplo. A precisão da tradução realizada por essa plataforma
foi obtida por meio da aprendizagem de máquina, sendo possível em diversos idiomas. O aprendi-
zado foi promovido pela própria utilização por usuários. Enfim, temos inúmeras outras aplicações
presentes em nosso cotidiano.
Como vimos, a aprendizagem de máquinas é baseada, essencialmente, em dados fornecidos para
a identificação de padrões. Isso foi comum em todos os exemplos acima citados, sejam em indústria,
empresas ou no dia a dia. O desenvolvimento de ferramentas de aprendizagem só foi possível com o Big
Data, que consiste em uma grande quantidade de dados que continuam a surgir de maneira muito rápida.
Esse significativo volume de dados pode ser utilizado para solucionar problemas nas mais diversas áreas.

184
UNIDADE 7

Como vimos nesta unidade, a aprendizagem de máquina consiste em dotar uma máquina de um
mecanismo de aprendizagem automática, e a partir de dados fornecidos, esse mecanismo identifica
padrões e, com isso, consegue tomar decisões, sem a necessidade de intervenção no seu código ou
algoritmo. O Big Data pode ser utilizado aliado a um mecanismo de aprendizagem de máquina, para
que este utilize essa grande quantidade de dados para seu aprendizado. Assim, Big Data e aprendizagem
não são a mesma coisa, mas podem estar relacionados.
Big Data é o conjunto de dados criados pelas diversas atividades dos mais variados setores da so-
ciedade, que surgiu mediante o progresso da tecnologia. Esses dados podem ter formatos variados e,
devido ao seu grande volume e velocidade de geração, não podem ser tratados somente por humanos
ou ferramentas comuns, como o Excel.
Nesse sentido, a aprendizagem de máquina pode fazer uso do Big Data para promover o processo de
aprendizagem, mas também pode auxiliar o Big Data no processamento de todos esses dados de uma
maneira viável. Assim, a aprendizagem de máquina pode capturar, classificar, processar e utilizar seus
dados para que máquinas consigam utilizá-los e, com isso, embasar suas tomadas de decisão inteligentes.
Se quiséssemos aplicar isso em uma empresa de venda de livros, poderíamos aplicar no sistema
de registro de compras e pedidos a aprendizagem de máquina. A inteligência artificial poderia, com
isso, identificar qual é o perfil de clientes daquela empresa, qual o gênero de livro que mais preferem,
a frequência de compra ou o período que mais compras são efetuadas, entre outras análises locais.
Contudo, também pode utilizar o Big Data, e identificar tendências globais de compras de livros, ana-
lisar qual o título tem maiores expectativas de lançamento, entre outras análises, levando em conta os
dados gerados pelos diversos setores e na internet sobre essa área.
Com um padrão identificado nesse conjunto de dados, a aprendizagem de máquinas poderia ser
utilizada para tomar decisões e dar embasamento para as próximas ações da empresa, em qual segmen-
to investir e como se promover de uma forma mais adequada, com maior probabilidade de sucesso.

185
Agora que você estudou sobre a aprendizagem de máquina, elabore um
Mapa Mental de acordo com seu aprendizado, destacando as característi-
cas principais da aprendizagem de máquina, componentes principais e sua
classificação. Caso precise de ajuda na elaboração, utilize o modelo a seguir,
completando as informações. Você pode preencher os dados aqui ou utilizar
a ferramenta gratuita.

Aprendizado automático

Capacidade de um programa de Aprendizado a partir de


computador de aprender e se adaptar a exemplos, de aconselhamentos
novos e mutáveis dados, sem que seja de alto nível ou de suas
necessária a intervenção humana para isso próprias explorações do domínio

APRENDIZAGEM DE MÁQUINA

Aprendizagem supervisionada
Componentes Módulo crítico

Módulo gerador de experimentos

186
1. A aprendizagem de máquinas procura desenvolver e implementar a capacidade de aprendi-
zado em computadores e máquinas, fazendo com que estes melhorem seu desempenho com
o tempo. Com isso, busca simular a capacidade de humanos de aprender com experiências
e, assim, apresentar o comportamento inteligente. Sobre esse assunto, julgue as afirmativas
a seguir em verdadeiras ou falsas e marque a alternativa que indica apenas as verdadeiras.

I) Os sistemas desenvolvidos com aprendizagem de máquina devem apresentar a capacidade


de se modificar ao longo do tempo mediante as interações com o mundo, com a experiência
de seus estados e de seus processos internos.
II) O aprendizado de máquina está associado com a capacidade de um programa de computador
de aprender e se adaptar a novos e mutáveis dados, sem que seja necessária a intervenção
humana para isso.
III) A utilização da aprendizagem de máquina frequentemente é dispensável, uma vez que é
possível, por meio da programação, programar melhorias em vez de submeter o programa
a um processo de aprendizagem.

Assinale a alternativa correta:

a) Os itens I e II são corretos.


b) Somente o item II é correto.
c) Somente o item III é correto.
d) Somente o item I é correto.
e) Os itens I e III são corretos.

2. “Utiliza como treinamento um conjunto de exemplos de relações entre entrada e saída pre-
viamente classificados por um professor ou outro método. Busca-se, com ele, descobrir a
hipótese que mais se aproxima da função verdadeira que apresenta uma relação apropriada
entre a entrada e a saída, a qual é fornecida pelo supervisor”.

Marque a alternativa que corresponde a definição acima:

a) Aprendizagem supervisionada.
b) Aprendizagem por reforço.
c) Aprendizagem não supervisionada.
d) Qualquer tipo de aprendizagem de máquina.
e) Nenhuma das alternativas anteriores.

3. A aprendizagem de máquinas é um ramo de estudo da inteligência artificial que pode ser


muito útil para automação. Isso permite que equipamentos variados consigam, com base em
dados fornecidos (que são informações do processo com o qual lidam), identificar padrões
e melhorar seu desempenho ao longo do tempo. Vimos vários exemplos de aplicação dessa
técnica na nossa unidade. Disserte entre 8 a 10 linhas como a aprendizagem de máquina pode
ser útil para carros autônomos.

187
188
8
Redes Neurais
Me. Larissa Torres Ferreira

Olá, seja bem-vindo(a) à Unidade 8 de seu livro. Neste capítulo, você


estudará um modelo de aprendizagem que se baseia no cérebro
humano: as redes neurais artificiais, modelos computacionais que
permitem que computadores e máquinas consigam aprender por
meio da identificação de padrões e treinamento. Inicialmente, fa-
larei o que são as redes neurais e suas similaridades com as redes
neurais biológicas. Em seguida, você conhecerá a composição do
modelo e outras características na execução. Por fim, veremos al-
gumas aplicações das redes neurais artificiais na automação. Com
isso, será possível compreender as tendências e oportunidades de
uso desse tipo de aprendizagem em diversas aplicações.
UNICESUMAR

A interface de voz tem se desenvolvido e disseminado nas últimas décadas, com grande parte da popu-
lação fazendo uso de algum tipo de reconhecimento de voz para realizar tarefas ou buscar informações.
A tecnologia de reconhecimento de voz consiste em captar a fala de uma pessoa e transformar, por
meio de algoritmos, essa fala em uma forma escrita para que seja compreendida por um computador,
permitindo que este execute a tarefa que foi falada. Isto é, com base no padrão de fala, a tecnologia cria
hipóteses do que foi falado e converte isso em texto. Para isso, os softwares nessa tecnologia utilizam
a linguagem natural de processamento.
Estes softwares passaram por aprimoramento nos últimos anos, para apresentar precisão mesmo
diante da variação da entonação, das diferenças regionais da fala, do humor e forma de pronúncia.
Porém, o desenvolvimento do processo de aprendizagem continua, pois essas tecnologias, no geral,
ainda apresentam erros em algumas situações, não identificando certas solicitações.
Assim como nós, humanos, que quando crianças aprendemos a nos comunicar por meio da obser-
vação dos adultos quando emitem sons, as máquinas e computadores com essa especialidade assimilam
os sons emitidos pelas pessoas e aprendem a identificar esses sons. Assim, foram desenvolvidas diversas
ferramentas de reconhecimento de voz, como Siri, Alexa e Cortana. Elas interpretam a voz e executam
a tarefa solicitada, que pode ser ativar um despertador, colocar uma música ou vídeo para tocar, ativar
lembretes, saber do clima, entre outras solicitações.

190
UNIDADE 8

O funcionamento desses softwares de reconhecimento de voz se deve à aplicação


de redes neurais artificiais e inteligência artificial. Mediante uma rede de neurônios
artificiais, o programa consegue captar as falas das pessoas e processá-las, submetendo
a um processo de aprendizagem. Assim, como as redes neurais artificiais funcionam,
de forma a permitir esse tipo de aplicação? Como os assistentes de reconhecimento
de voz podem ser aprimorados mediante o desenvolvimento das redes neurais arti-
ficiais e inteligência artificial?
A rede neural artificial é um método de aprendizagem de máquina que tem sido
bastante aplicado, promovendo e acompanhando o desenvolvimento da tecnologia. A
aprendizagem de máquina permite que máquinas e computadores adquiram a capacidade
de aprender com base em dados disponíveis sobre aquela tarefa ou assunto, podendo lidar
com novas situações sem a necessidade de modificação direta no algoritmo.
Nesse caso, o processo de aprendizagem se dá com os pesos sinápticos, responsáveis
pela força de relação entre os neurônios artificiais. O algoritmo de aprendizado atua nos
pesos sinápticos para fazer com que o programa entregue corretamente aquilo que foi
solicitado. Com essa forma de processamento, que permite modelar as relações entre as
entradas e saídas mesmo quando complexas e não lineares, as redes neurais artificiais
têm sido aplicadas com sucesso para resolução de problemas complexos. Conseguem,
inclusive, lidar com dados altamente voláteis e prever eventos raros, sendo aplicado na
detecção de fraudes com cartões de crédito, previsões financeiras de diversos segmentos,
diagnósticos médicos, reconhecimento de voz, entre outras aplicações.
Além disso, os equipamentos com redes neurais artificiais também têm o potencial
de serem aplicados em situações que é interessante substituir o humano, como aquelas
que envolvem segurança e precisão. Com o conhecimento que o sistema adquire com
o tempo através do treinamento, tem a capacidade de atuar e se adaptar às diferentes
situações a qual é submetido. Isso é interessante, por exemplo, na execução de tarefas
perigosas envolvendo reatores nucleares ou até mesmo atividades rotineiras cansativas,
eliminando a possibilidade de erros humanos durante a execução.
Por outro lado, o desenvolvimento das redes neurais e da inteligência artificial, assim
como qualquer tecnologia, pode ser desviada de seu propósito de auxiliar a sociedade,
sendo utilizada para executar tarefas fraudulentas. Um exemplo é o desenvolvimento do
deepfake (falsidade profunda) analogia a deep learning, que utiliza a aprendizagem de
máquinas para criar vídeos e falas falsas, muito utilizadas nas fake news (notícias falsas
que se espalham de forma muito rápida na internet, influenciando bastante as pessoas).
Portanto, o conhecimento das redes neurais artificiais, é importante, tanto para
garantir o aprimoramento da tecnologia, para aplicar em soluções de problemas reais
na sociedade, quanto para impedir ou inibir seu uso inadequado. As redes neurais
artificiais são uma ferramenta poderosa de aprendizagem de máquina, e a perspectiva
é que seu uso seja cada vez maior.

191
UNICESUMAR

Para entender as aplicações das redes neurais artificiais, vamos


assistir ao vídeo Inteligência Artificial CLONA sua voz em apenas
5 segundos (QR Code), que trata da aplicação das redes neurais
artificiais para copiar vozes de pessoas, com base em áudios forne-
cidos. Agora é com você! Localize no google ou no youtube outros
exemplos de aplicação que utilizam as redes neurais artificiais.
Escolha um deles, e faça uma lista com as principais características
do programa para essa aplicação, e o benefício da utilização das
redes neurais artificiais para aprendizagem de máquina nesse caso.
Imagine, agora, após sua pesquisa, que você foi contratado por uma empresa de e-commerce que
detém produtos de alto valor agregado – portanto, além do login e senha, os clientes devem ser reco-
nhecidos pela voz para serem atendidos. Em particular, ocorre uma situação onde você foi solicitado
a sugerir uma aplicação do reconhecimento de voz no atendimento ao cliente de uma empresa. Com
base nas informações que teve até agora e no vídeo anterior, agora chegou sua vez de analisar o seguinte:

• Como o reconhecimento de voz pode ser aplicado no atendimento ao cliente?


• Como o aprimoramento das redes neurais artificiais podem otimizar essa aplicação?
• Quais são as oportunidades e os desafios diante da utilização de reconhecimento de voz no
atendimento ao cliente?

Considerando tudo isso, anote seus resultados no seu Diário de Bordo.

192
UNIDADE 8

Caro(a) aluno(a), como vimos no decorrer das unidades, a inteligência artificial busca simular o
comportamento inteligente de um humano utilizando variadas técnicas. As redes neurais artificiais
(RNA), também chamadas apenas de redes neurais, é uma dessas técnicas, que se baseia na forma como
o cérebro humano processa informações. Nosso cérebro funciona como um computador, porém dos
mais potentes: apresenta a capacidade de atuar sobre os neurônios, que são seus constituintes estrutu-
rais, realizando certos processamentos de forma muito rápida. Já um computador digital convencional
levaria dias para realizar o mesmo tipo de processamento.
O cérebro humano se desenvolve basicamente por meio da aprendizagem e experiência. Todas as
capacidades presentes em humanos, como a motora e cognitiva, são decorrentes de neurônios, que
são redes de células cerebrais que compõem o sistema nervoso. Os neurônios transmitem impulsos
nervosos e informações entre si através do corpo, para que este responda a estímulos externos. A
transferência de informações entre neurônios é chamada sinapse.
Sendo assim, a partir do desenvolvimento da neurociência, baseado na ideia que a atividade cerebral
ocorre devido a atividades eletroquímicas em neurônios, foi desenvolvida a área de inteligência artificial
denominada redes neurais artificiais, também chamadas de redes conexionistas, neurocomputadores,
processadores paralelamente distribuídos, entre outras nomeações.
Assim, uma rede neural é um programa projetado para simular a forma como o cérebro processa
informações, que pode ser implementado em um computador ou máquina para executar determi-
nada tarefa. É um assunto presente dentro da aprendizagem de máquinas que estudamos na unidade
anterior, ou seja, consiste em um método para promover a aprendizagem em uma máquina a partir

193
UNICESUMAR

de exemplos ou da experiência, fazendo com que seu desempenho para executar determinada tarefa
seja melhorado com o tempo.
De acordo com Haykin (2007, p. 28), podemos definir a rede neural da seguinte forma:

Uma rede neural é um processador maciçamente paralelamente distribuído constituído


de unidades de processamento simples, que têm a propensão natural para armazenar
conhecimento experimental e torná-lo disponível para o uso. Ela se assemelha ao cérebro
em dois aspectos:
1. O conhecimento é adquirido pela rede a partir de seu ambiente através de um
processo de aprendizagem.
2. Forças de conexão entre neurônios, conhecidas como pesos sinápticos, são utiliza-
das para armazenar o conhecimento adquirido.

Conforme Norvig e Russel (2013), os estudos da neurociência computacional tiveram seu maior de-
senvolvimento a partir de 1943, com a elaboração de modelos mais detalhados e realistas de neurônios
e de sistemas cerebrais. A pesquisa de IA acelerou rapidamente, com Kunihiko Fukushima desenvol-
vendo efetivamente a primeira rede neural multicamadas em 1975.
O objetivo inicial do estudo da rede neural era desenvolver um sistema computacional que pudesse
resolver problemas simulando um cérebro humano. Porém, o foco foi mudando ao longo dos anos, e
para os pesquisadores de inteligência artificial, o interesse principal do assunto passou a ser sobre suas
características abstratas, como a aprendizagem. Assim, as pesquisas têm estudado como estimular a
aprendizagem, o reconhecimento de padrões, execução de tarefas e a tomada de decisão nesses siste-
mas de redes de unidades conectadas e treinadas. Isso inclui abordagens como visão computacional,
tradução automática, reconhecimento de fala e face, filtragem de redes sociais, desenvolvimento de
jogos e diagnóstico médico.
Uma rede neural, portanto, é um programa com nós conectados que funcionam de forma semelhante
ao cérebro humano com seus neurônios e, assim, depende dos neurônios e da forma como ocorre a
ligação entre eles. O processo de aprendizagem nessa estrutura ocorre utilizando um algoritmo
de aprendizagem, que atua sobre as sinapses da rede para executar determinada tarefa ou objetivo.
Dessa forma, possibilita uma melhor relação das interfaces entre homem e máquina, viabilizando a
aprendizagem de máquina (machine learning) e permitindo o desenvolvimento de novas tecnologias
adaptativas e inteligentes.
A aprendizagem com RNA responde bem a erros nos dados de treinamento e estão sendo ampla-
mente aplicados com sucesso na interpretação de imagens, reconhecimento de fala ou facial, e controle
e aprendizagem de robôs no geral. Esta última, principalmente, em situações em que é necessário
aprender e interpretar dados complexos obtidos por sensores do mundo real (MITCHELL, 1997).

194
UNIDADE 8

Título: Sunspring
Ano: 2016
Sinopse: Sunspring é um curta-metragem sobre três pessoas vivendo em um
futuro estranho, possivelmente em uma estação espacial, provavelmente em
um triângulo amoroso. Você sabe que é o futuro porque H (interpretado com
gravidade neurótica por Thomas Middleditch do Vale do Silício) está vestindo
uma jaqueta dourada brilhante, H2 (Elisabeth Gray) está brincando com com-
putadores e C (Humphrey Ker) anuncia que ele tem que “ir para o caveira” antes de enfiar o rosto em
um monte de luzes verdes. Parece um típico filme B de ficção científica, completo com um enredo
incoerente. Exceto que Sunspring não é produto de Hollywood – foi escrito inteiramente por uma IA.
Para ser específico, ele foi criado por uma rede neural recorrente chamada memória de longo prazo
ou LSTM para abreviar. Pelo menos, é assim que chamamos. A IA se autodenominou Benjamin.
Comentário: apesar de o roteiro não ser dos melhores, o curta traz o diferencial de ser uma obra
escrita por uma inteligência artificial, sendo o primeiro nesse sentido. Foi desenvolvido através de uma
parceria entre o pesquisador da Universidade de Nova York, Ross Goodwin, e o cineasta Oscar Sharp.
O pesquisador alimentou a inteligência artificial, baseada na técnica de redes neurais artificiais, com
roteiros de outros filmes de ação e ficção, e executou a programação para geração de um roteiro
dentro do que era solicitado para o Festival de Curtas-Metragens de Ficção Científica de Londres.

A analogia que fazemos das redes neurais artificiais com as biológicas é grosseira, uma vez que não
temos correspondência completa entre esses dois sistemas. Existem características complexas dos
sistemas neurais biológicos ainda não compreendidas e não implementadas em RNAs e, por outro
lado, as redes neurais artificiais apresentam algumas características incompatíveis com as biológicas.
Enquanto as redes neurais artificiais são compostas por um conjunto de unidades simples conecta-
das, em que cada unidade recebe um número de entradas e produz uma saída, que pode ser a entrada
de outras unidades, os neurônios biológicos produzem como saída uma série temporal complexa de
picos (MITCHELL, 1997).
Além disso, apesar dos tempos de comutação de neurônios serem mais lentos na análise biológica
do que na computação, os humanos apresentam uma capacidade de tomada de decisão rápida mesmo
para problemas complexos. Em nossas cabeças, temos um supercomputador, produto de uma evo-
lução que ocorreu ao longo de centenas de milhões de anos, e que foi extremamente adaptado para
compreensão do mundo visual. Nem todas as tarefas que executamos são fáceis, mas somos surpreen-
dentemente bons em entender o ambiente que nossa visão e outros sentidos nos mostram. Todo esse
processamento simultâneo é feito inconscientemente e, por isso, muitas vezes não nos damos conta
do quão difícil é o problema que nossos sistemas visuais e de outros sentidos resolvem. De acordo
com Mitchell (1997, p. 82):

195
UNICESUMAR



Essa observação levou muitos a especular que as capacidades de processamento de in-
formação dos sistemas neurais biológicos devem seguir processos altamente paralelos
operando em representações que são distribuídas por muitos neurônios. Uma motivação
para sistemas RNA é capturar esse tipo de computação altamente paralela baseada em
representações distribuídas.

Por esse motivo, esse tipo de técnica de aprendizagem também é chamado de processadores parale-
lamente distribuídos. Os programas desenvolvidos com RNA tentam emular processos distribuídos
em um conjunto ou camada de neurônios. Isso quer dizer que os neurônios em um mesmo conjunto
ou camada processam as entradas de forma simultânea e independente. Por meio da aprendizagem,
as conexões entre essas unidades são ajustadas. Para isso, utilizam algoritmos específicos e, em alguns
casos, até hardwares específicos para aplicação de redes neurais artificiais.
À medida que os tamanhos de dados estruturados e não estruturados aumentavam para os níveis
de Big Data (“grandes dados” em tradução literal), os pesquisadores desenvolveram sistemas de
aprendizagem profunda, mais conhecida pelo seu termo em inglês Deep Learning. O Deep Learning
consiste, essencialmente, em redes neurais com muitas camadas, com uma estrutura mais complexa,
e que permite lidar com grandes quantidades de dados.
Por meio de sua estrutura, os algoritmos de aprendizado com RNA conseguem assimilar infor-
mações do mundo e promover a aprendizagem de máquina, mesmo lidando com dados diferentes e
desconhecidos daqueles programados. A técnica de aprendizagem com base nas redes neurais artificiais
são aplicáveis com bom desempenho em atividades de (LUGER, 2013):

196
UNIDADE 8

• Classificação: decide a classificação a que pertence um valor de entrada.


• Reconhecimento de padrões: identifica padrões nos dados.
• Evocação de memória: inclui o problema de memória endereçável de acordo com o conteúdo.
• Predição: identifica causas a partir de consequências.
• Otimização: encontra a melhor organização de restrições.
• Filtragem de ruído: retira o ruído de fundo de um sinal.

As redes neurais artificiais, daqui em diante chamadas apenas de redes neurais, têm uma estrutura
composta por nós, ou unidades, que são ligadas. Para construção da rede, o projetista deve utilizar
um meio para codificar padrões do mundo em quantidades numéricas de rede. As conexões entre os
componentes também são dadas por valores numéricos. O sistema, então, é treinado utilizando um
algoritmo de aprendizagem. A base de projeto desses sistemas são os neurônios, que são unidades de
processamento de informação.
Existem três componentes principais: uma entrada posterior, uma camada de processamento
e uma camada de saída. Os insumos podem ser ponderados com base em vários critérios. Dentro da
camada de processamento, que está escondida da vista, há nós e conexões entre esses nós, destinados
a ser análogos aos neurônios e sinapses em um cérebro animal.
A camada mais à esquerda na rede é chamada de camada de entrada, onde estão os neurônios de
entrada. A camada mais à direita ou final é a camada de saída, onde se encontra um único neurônio de
saída. No intermédio entre elas, temos as camadas ocultas, podendo ser uma ou várias, e os neurônios
nessa camada não são entradas nem saída da rede neural.

197
UNICESUMAR

Os elementos básicos da rede neural são (Figura 1):

• Sinais de entrada: geralmente valores discretos do intervalo {0,1} ou {-1,1} ou número


reais, e podem vir do ambiente ou da ativação de outros neurônios.
• Sinapses: conexões que apresentam um peso, wkj, que pode ser negativo ou positivo,
representando a força de ligação.
• Somador: soma os sinais de entrada com a ponderação dada pela sinapse para cada
neurônio. Indica o nível de ativação do neurônio, ou seja, a força acumulada de seus
sinais de entrada.
• Função de ativação: define a saída de um neurônio, limitando o sinal de saída a um
valor finito, fazendo com que fique dentro da amplitude [0,1] ou [-1,1].
• Bias: aumenta ou diminui a entrada líquida da função de ativação, dependendo ser
positivo ou negativo, respectivamente.

198
UNIDADE 8

Entrada1 Peso 1 Bias

Sinais de Junção Função de


Entrada2 Peso 2 aditiva Saída
entrada ativação

Entrada M Peso M

Pesos sinápticos

Figura 1 - Modelo não linear de um neurônio / Fonte: adaptada de Haykin (2007).

Descrição da Imagem: a imagem apresenta um infográfico, com textos, círculos azuis e um quadrado azul, que começa da esquerda
para direita. Inicia-se com o texto "Sinais de entrada", interligado por uma chave à direita. Dentro desta chave, de cima para baixo, estão
os textos "entrada 1", "entrada 2", e "entrada m". Ao lado direito de “entrada 1” está uma seta direcional à direita, interligando com um
círculo com a palavra “Peso 1”; ao lado de “entrada 2”, uma seta interligando um círculo com a palavra “Peso 2”; e, por último, ao lado da
“entrada m” uma seta que interliga o círculo “Peso m”. Todos os círculos possuem setas à direita, que interligam a um novo círculo com a
palavra “Junção aditiva”. Acima desta, está o texto “Bias”, que possui uma seta direcional para “Junção aditiva”. Ao lado direito do círculo
“Junção aditiva”, uma seta que interliga a um retângulo com o texto “Função de ativação”, e deste uma seta interligando a palavra “saída”.

Cada sinal de entrada x com sinapse j conectada a um neurônio k é multiplicado por um peso wkj . Os
sinais de entrada x são somados pelo combinador linear apresentado na Equação 1.

m
uk   wkj x j (equação 1)
j 1

Em que:
uk é o combinador linear.
wkj é o peso.
x j é o sinal de entrada.
j é cada sinapse.
k é cada neurônio.
m é o número total de sinapses.

O bias bk é submetido externamente e, em seguida, a função de ativação ϕ é aplicada para obter a


saída yk , conforme Equação 2.

199
UNICESUMAR

yk   (uk  bk ) (equação 2)

Em que:
yk é a o valor de saída.
ϕ é a função de ativação.
uk é o combinador linea.
bk é o bias.

Temos vários tipos de função de ativação ϕ e selecionamos de acordo com o tipo de problema que se
quer resolver. A título de informação, essa pode ser uma função de limiar (também chamada de função
de Heaviside ou perceptron), uma função linear por partes ou função sigmoide (também chamada de
função logística ou perceptron sigmoide) (NORVIG; RUSSEL, 2013; HAYKIN, 2007).
Definidas as características dos neurônios individuais, iremos conectar eles em redes, denominadas
redes neurais. Nesse aspecto, temos de avaliar outras propriedades:

• Topologia da rede: padrão como os neurônios individuais são conectados.


• Algoritmo de aprendizado: existem vários tipos de algoritmos, deve ser selecionado o ade-
quado para determinada aplicação.
• Esquema de codificação: como os dados são fornecidos à rede e como se obter informações
a partir da saída de seu processamento.

De acordo com Norvig e Russel (2013, p. 843):



Grosseiramente falando, ele “dispara” quando uma combinação linear de suas entradas
excede algum limiar (rígido ou suave), ou seja, ele implementa um classificador linear
do tipo descrito na seção anterior. Uma rede neural é apenas uma coleção de unidades
conectadas; as propriedades da rede são determinadas pela sua topologia e pelas pro-
priedades dos “neurônios”.

As conexões entre nós formam uma rede neural. Um formato simples dessa rede possui uma camada de
entrada e uma camada de saída, podendo possuir, entre elas, uma camada oculta. Os nós são ativados
quando temos estímulos ou entradas suficientes, assim como acontece com os neurônios biológicos.
Essas informações requisitadas se dissipam pela rede, gerando respostas aos estímulos, que é a saída.
As sinapses permitem a conexão e transferência de informação entre unidades.
Quando a rede é implementada em uma aplicação, para solucionar algum problema ou executar
uma ação, os neurônios executam cálculos para identificar a relevância das informações de entrada,
que devem ser repassadas para o próximo neurônio. Isto é, eles leem todos os dados e descobrem onde
existem as relações mais fortes. No tipo mais simples de rede, os dados recebidos são adicionados, e se
a soma for mais do que um determinado valor de limite, o neurônio “dispara” e ativa os neurônios aos
quais está conectado. Esse disparo é o papel desempenhado pela função de ativação do nó, que vai definir

200
UNIDADE 8

quanto de um sinal deve prosseguir pela rede e influenciar na saída final. Como já vimos, quando o
número de camadas ocultas dentro de uma rede neural aumenta, formamos redes neurais profundas.
Podemos ressaltar algumas diferenças entre as redes neurais denominadas “rasas” e o deep learning:

Redes neurais Deep learning (aprendizagem profunda)

Ausência ou poucas camadas ocultas Muitas camadas ocultas

Ajuste de pesos e bias de cada neurônio Maior quantidade de cálculos e ajuste de pesos e bias

A rede cresce exponencialmente com a


Muitas possibilidades de ajustes
complexidade da tarefa

Pode ocasionar o overfitting (super adaptação aos


dados de treinamento)

Utiliza uma maior quantidade de dados

Quadro 1 - Diferenças entre redes neurais e deep learning / Fonte: Medeiros (2018).

Para entender melhor, vamos considerar o exemplo dado por Mitchell (1997), que utiliza o aprendizado
promovido por redes neurais artificiais para promover a movimentação de um veículo autônomo, em
vias públicas com velocidades normais.

201
UNICESUMAR

Enquanto a entrada da rede neural é fornecida por câmeras direcionadas para frente do veículo, a
saída é a direção que o veículo deve seguir. O aprendizado do programa para realização dessa movi-
mentação de forma adequada é promovido por treinamento, com base em observações de um humano
dirigindo o veículo. Com o sistema desenvolvido, foi possível atingir velocidades de até 110 km/h, e
percorrer 140 km em vias públicas, conseguindo identificar faixas e a presença de outros veículos.
Podemos observar, na Figura 2, a representação da rede neural gerada nesse exemplo. Você percebe,
na figura, a entrada de dados na rede a partir das câmeras, que alimenta quatro nós em uma camada
oculta – chamada assim porque a saída desses nós só está disponível para dentro da rede, alimentando
os nós da camada seguinte. Cada um desses nós calcula um valor de saída com base na ponderação de
suas entradas. As saídas da camada oculta são as entradas para a segunda camada, com 30 nós. Cada
nó nessa camada representa uma saída, indicando um movimento que deve ser feito pelo veículo. As
linhas que entram no nó por baixo são as entradas.
Dobrar à Seguir em Dobrar à
esquerda frente esquerda

20 unidades
de saída

4 unidades
ocultas

DIRIJA COM
CAUTELA

Sensor de
entrada

Figura 2 - Rede neural de aprendizagem para um veículo autônomo / Fonte: adaptada de Haykin (2007).

Descrição da Imagem: a imagem apresenta um infográfico que começa na direção de cima para baixo. No topo esquerdo superior, está
o texto "Dobrar a direita", com uma seta indicando para baixo até um círculo cinza. Ao lado deste círculo, temos mais quatro círculos,
e acima do último o texto "Seguir em frente", conectado com uma seta para baixo ao círculo. Com reticências ao lado direito do último
círculo, temos mais dois círculos, sendo o segundo conectado por seta com o texto acima "Dobrar a esquerda". Ao lado do infográfico,
temos o texto "30 unidades de saída". Abaixo de todos os círculos, temos interligações baseadas nas ações com setas a outros quatro
círculos abaixo. Os quatro círculos possuem o texto ao lado direito “4 unidades ocultas”. Abaixo dos círculos, conectados a eles, temos
uma imagem da visão do interior de um carro, da posição de um motorista. Vemos que o motorista está com os braços cobertos por
longas mangas azuis, e está com ambas as mãos no volante, o qual está conectado ao painel preto do carro. Ele está dirigindo por uma
rua de sentido duplo, com um carro branco à frente dele, as sombras de carros na distância à esquerda e à frente, e o panorama dos
prédios da cidade ao fundo contrastando contra o céu azul. Do lado direito da estrada, está um painel eletrônico de estrada, preto,
escrito “Dirija com cautela” em laranja. Por fim, ao lado direito desta imagem do infográfico, está o texto “Sensor de entrada”.

202
UNIDADE 8

Os algoritmos de reconhecimento facial possuem alta precisão de classificação, mas esses resultados
não são universais. Diversas pesquisas expõem taxas de erro divergentes entre grupos demográficos,
caligrafias ou ordens e comandos. Desse modo, existem muitos aspectos a serem melhorados nas
aplicabilidades do IA. Por isso que ainda existem muitos testes em automóveis autônomos antes
deles serem comercializados no mercado, por exemplo.

As redes neurais também podem ser aplicadas em situações que necessitamos de saídas múltiplas.
A estrutura de uma rede neural pode ser desenvolvida com grafos (expressão gráfica das conexões
feitas por um conjunto de objetos na rede neural) com vários formatos, podendo ser cíclicas ou ací-
clicas, direcionadas ou não direcionadas. Nessas estruturas, podemos aplicar diferentes algoritmos de
aprendizagem para treinar a rede. Temos duas formas mais comuns de representação dessa estrutura.
A primeira consiste em uma rede de alimentação para frente, com conexões em apenas uma direção
formando um grafo acíclico dirigido. Nesse caso, cada nó recebe informações de uma camada de nós
anterior e cede a saída para os nós da próxima camada, não apresentando laços.

Você já imaginou como, atualmente, os trens estão funcionando? Você


já imaginou que algumas viagens simplesmente o condutor não dirige,
e sim uma inteligência artificial? Pois ouça nosso podcast e dá um play.

A outra forma de estruturação é com redes recorrentes, que alimentam as saídas de volta às entradas, com
a resposta dependendo do estado inicial das entradas anteriores. Assim, são cíclicas e apresentam maior
complexidade, tendo pelo menos um laço de realimentação. As redes neurais recorrentes (RNNs) são
muito aplicadas na previsão e em séries temporais, análise de sentimentos, aplicativos de texto, entre outras.
Outros tipos de redes neurais são:

• Redes neurais convolucionais (CNNs): possui cinco tipos de camadas e cada uma com um
propósito específico, que são entrada, convolução, agrupamento, conexão total e saída. Elas se
popularizaram na classificação de imagens, detecção de objetos e previsão da linguagem natural.

203
UNICESUMAR

• Redes neurais de autoencodificador: utili-


zadas para criar abstrações denominadas codi-
ficadores, geradas a partir de um conjunto de
entradas. É considerado um método não super-
visionado desenvolvido com o objetivo de sensi-
bilizar o relevante e dessensibilizar o irrelevante.

O projeto de um sistema utilizando redes neurais é


desenvolvido com base direta nos dados do mundo
real, fazendo com que o conjunto de dados fale por
si só. A rede neural fornece tanto o modelo implícito
do ambiente no qual ela está inserida como também
realiza o processamento da informação de interesse.
Isso é possível por meio de treinamentos utilizando
um conjunto de exemplos com informações sobre o
ambiente de interesse e o problema a que se aplica.
Para o projeto, primeiro é selecionada uma arquite-
tura de rede apropriada para o problema. Em seguida,
um conjunto de exemplos, que são pares entrada e
saída (resposta desejada), é utilizado para treinamento
mediante um algoritmo de aprendizagem apropria-
do. Alguns testes são realizados com o fornecimento
REALIDADE
de dados não conhecidos e o desempenho da rede é
AUMENTADA
avaliado. Assim, podemos dividir a tarefa de projeto
da rede neural em duas etapas: aprendizagem e gene-
ralização (HAYKIN, 2007). Em síntese, o projeto de
um sistema com redes neurais tem as seguintes etapas:

• Seleção da arquitetura de rede apropriada.


• Treinamento utilizando exemplos e um algoritmo de
aprendizado, para aprendizagem.
• Realização de testes com dados desconhecidos.
• Avaliação de desempenho da rede para generalização.
• Otimização da rede.

Caro(a) aluno(a), você consegue imaginar


como é o funcionamento de uma rede
neural? Como se dá o funcionamento
dos neurônios, as conexões e decisões
da rede neural em cada uma de suas eta- Perceptron é o nome dado a um tipo simples de rede
pas, enquanto a inteligência artificial pi- neural, em que todas as entradas são conectadas di-
lota um carro sobre uma pista? Veja essa
imagem para entender melhor! retamente com as saídas, apresentando apenas uma

204
UNIDADE 8

camada de neurônios. Com ela, os valores de entrada são alimentados à rede, em seguida, é calculada
uma combinação linear dessas entradas e então uma saída é gerada.
O perceptron é uma forma de aprendizado supervisionado, que se baseia na modificação dos pesos
quando ocorre um erro na resolução de um problema fornecido a ele. Essa modificação é feita depois
que um professor fornece o resultado correto e tem o objetivo de reduzir o erro do conjunto de treina-
mento (LUGER, 2013). Uma rede perceptron com n saídas possui n redes separadas, onde cada saída é
afetada por cada peso. Assim, é necessário realizar n processos de treinamentos separados. Além disso,
o processo de treinamento depende do tipo de função de ativação utilizada (NORVIG; RUSSEL, 2013).
Esse modelo foi desenvolvido entre as décadas de 50 e 60 por Rank Rosenblatt. Atualmente, ele
funciona apenas como uma introdução ao estudo e desenvolvimento de redes neurais, uma vez que,
para a aplicação prática, tem sido preferido outros tipos de redes. Este é limitado pelas classificações
que podem realizar. Por causa dessa e de outras limitações que o modelo apresenta, no geral, tem se
preferido redes multicamadas para resolução de problemas mais difíceis.
Por exemplo, se quiséssemos aplicar uma rede neural para fazer a leitura de uma imagem com o
número 9 manuscrito, mas a rede estava classificando de forma errada como um 8. Os pesos seriam
ajustados para que a rede consiga se aproximar da resposta correta. Esse processo pode ser repetido
várias vezes, com variação dos pesos em cada uma para gerar uma resposta melhor.

205
UNICESUMAR

O sistema, com isso, estaria aprendendo, mas não é assim que ocorre com perceptrons. Uma pe-
quena mudança nos pesos de qualquer perceptron único na rede pode fazer com que a saída inverta
completamente. Assim, poderia classificar corretamente o 9 após esse processo de aprendizagem, mas o
comportamento da rede em todas as outras imagens provavelmente passaria por uma mudança signi-
ficativa e difícil de controlar. Podemos ter um melhor desempenho utilizando o neurônio sigmoide, ou
perceptron sigmoide, que é um perceptron modificado de forma que mudanças em seus pesos causem
uma pequena mudança no resultado, promovendo uma melhor forma de aprendizado. Assim como o
perceptron, a unidade sigmoide recebe as entradas, calcula uma combinação linear e aplica um limite
ao resultado, mas a saída da unidade sigmoide se apresenta como uma função contínua de sua entrada.
Um processo importante no uso de redes neurais é a escolha da melhor estrutura de rede. Se for
utilizada uma rede muito grande, ela vai apresentar uma tabela grande de pesquisa e será capaz de
armazenar todos os exemplos. Por outro lado, a generalização apresentada será comprometida quando
for alimentada com entradas desconhecidas. É o efeito chamado superadaptação, e também ocorre
quando são oferecidos poucos parâmetros.

206
UNIDADE 8

Outra definição que deve ser realizada para aplicação de redes neurais é o tamanho da
rede, ou seja, definir qual o número de camadas ocultas necessária para obter melhor
precisão no resultado. Normalmente, o que é feito é o teste de vários tipos de arquitetura,
selecionando aquelas que se apresentam melhores.
Há, ainda, alguns tipos de rede que apresentam certa adaptação quanto às cone-
xões de rede. É chamado algoritmo de dano cerebral ótimo, em que temos uma rede
completamente conectada, mas que vai removendo as conexões que não são necessá-
rias. Esse processo é repetido, eliminando as unidades que não contribuem para uma
melhor precisão do resultado.
Um algoritmo bastante utilizado na aplicação de redes neurais é o Backpropaga-
tion, ou retropropagação. A utilização desse algoritmo para o aprendizado de redes
com múltiplas camadas apresenta uma grande variedade de decisões não lineares.
Considerando uma rede multicamadas com um conjunto específico de unidades
e conexões, esse algoritmo aprende os pesos, buscando minimizar o erro entre os
valores de saída e os valores alvo.
Dessa forma, o algoritmo Backpropagation consiste em um algoritmo de treinamento
de aprendizado supervisionado, ou seja, define como a rede é treinada. Ao aplicá-lo, quan-
do um padrão é submetido juntamente com um resultado esperado para esse padrão, o
algoritmo regula os pesos para chegar o mais próximo possível desse resultado. Assim,
quando um padrão que não se sabe o resultado é submetido, ele vai entregar o resultado o
mais próximo possível do resultado real devido ao processo de aprendizagem que passou.
Esse algoritmo, em síntese, divide-se em duas etapas:

• forward pass: significa passo para frente, mas também é conhecida como fase de
propagação, quando é feita a alimentação de entradas e estas são passadas através
da rede, gerando previsões de saída.

• backward pass: ou passo para trás e também denominado retropropagação, em


que é feita uma atualização de pesos de acordo com o erro apresentado na saída.

Dessa forma, para cada exemplo de treinamento, o algoritmo aplica a rede ao exemplo,
verifica o erro na saída, calcula o ajuste em cima desse erro e atualiza os pesos na rede. Isso
é feito repetidas vezes até que a rede apresente um desempenho aceitável. O problema que
pode ser encontrado com esse método é que ele executa uma busca em um grande espaço
de hipóteses para estabelecer os valores de peso possíveis para todas as unidades da rede.
Seja qual for o algoritmo utilizado, o treinamento geralmente exige um longo período de
tempo. O tempo de treinamento varia de acordo com o número de pesos na rede, o número
de exemplos de treinamento disponíveis e aplicados e das configurações dos parâmetros
do próprio algoritmo de aprendizado.

207
UNICESUMAR

Título: Coded Bias


Ano: 2020
Sinopse: esse documentário investiga o viés nos algoritmos depois que a
pesquisadora Joy Buolamwini, do MIT, descobriu falhas na tecnologia de
reconhecimento facial.
Comentário: o documentário demonstra que, por trás dos avanços tecno-
lógicos proporcionados pela aprendizagem de máquinas, temos também
algumas consequências preocupantes, como a propagação de um viés
racista e machista da inteligência artificial. Isso porque o aprendizado de programas, como os
desenvolvidos para reconhecimento facial, é promovido com um treinamento para reconhecer
padrões baseado em dados que, no geral, são de homens brancos. Com isso, os algoritmos pa-
recem não reconhecer com precisão mulheres e negras. Esse impacto pode ser sentido também
quando a aprendizagem de máquinas é aplicada para seleção de currículos, por exemplo.

208
UNIDADE 8

Agora que conhecemos as características e composição das redes neurais artificiais, vamos ver alguns
exemplos de aplicação. Elas são amplamente utilizadas em diversos setores da sociedade, apresentando
um diferencial estratégico para muitas indústrias e linhas de negócios. Podemos encontrar soluções
utilizando RNA para realização de operações financeiras, planejamento, análises de negócios, possi-
bilitando, por exemplo, a previsão de produção e avaliação de riscos.
Isso é possível porque a rede neural utiliza os dados do passado da empresa ou setor, de forma a iden-
tificar padrões e prever oportunidades e tomadas de decisões interessantes para o futuro da empresa.
As redes neurais podem ser aplicadas para prever e definir diagnósticos médicos e monitoramento
de saúde pelas organizações do ramo da saúde. As indústrias de fabricação podem utilizar as redes
neurais para automatizar a realização de tarefas, realizar diagnóstico de equipamentos e detectar de-
feitos em peças produzidas. Bancos utilizam RNA para detectar fraudes, analisar crédito para clientes
e automatizar outros serviços de consultoria nesse setor. Os próprios governos podem fazer uso dessa
metodologia para desenvolver cidades inteligentes e seguras, aplicando a capacidade de reconhecimento
facial, por exemplo. O uso de redes neurais em chatbots e em outras formas de atendimento ao cliente
também pode ser interessante, independentemente do segmento da empresa.

209
UNICESUMAR

Na indústria, encontramos diversas possibilidades de utilização das redes neurais como forma de
automatizar processos produtivos. Como as RNAs se baseiam em uma grande quantidade de dados,
e apresentam uma grande capacidade de processamento desses, os dados gerados pelo próprio pro-
cesso produtivo e aqueles encontrados no Big Data podem ser úteis no processo de treinamento do
algoritmo, promovendo processos mais precisos e eficientes.
Algumas das possibilidades nesse sentido, são:

• Tomada de decisão e insights para soluções na fábrica.


• Alinhamento da produção com a demanda, possibilitando a redução de estoques e a previsão
de resultados nos processos industriais.
• Otimização de processos na fábrica, deixando mais rápidos e precisos.
• Utilização de reconhecimento de voz para ativar e desativar de forma prática equipamentos
utilizados nos processos da indústria.
• Reconhecimento de imagens, que pode apresentar inúmeras formas de aplicação, como detecção
de defeitos, controle de qualidade, prevenção de falhas e reconhecimento de peças produzidas.
• Previsão do comportamento do cliente, por meio da análise de padrões contida em dados
fornecidos ao sistema, adaptando e melhorando os produtos de acordo com as necessidades e
tipo de público predominante.

210
UNIDADE 8

Além das utilizações mencionadas, podemos encontrar as redes neurais artificiais, sendo aplicadas nas
ferramentas de reconhecimento de voz, em robôs que desativam bombas, reconhecimento de texto
em imagem, avaliadores de spam em e-mails, entre outras aplicações mais complexas.
Entre as vantagens de aplicação de RNA, podemos citar:

• Boa qualidade de desempenho, quando comparado a outros métodos de aprendizagem.


• Competitividade de empresas que a utilizam.
• Autoaprendizado, não precisando de um especialista para fornecer o conhecimento.
• Capacidade de generalização.
• Resistência a ruído nos dados.
• Adaptabilidade.

Já entendemos que as redes neurais têm uma enorme aplicabilidade e importância em vários seg-
mentos da sociedade. Mas quais são os desafios? E será que há alguma desvantagem na utilização?

Sim, as redes neurais artificiais são bastante aplicadas, como já vimos, Mas não quer dizer que seja
fácil promover essa aplicação. Treinar e desenvolver uma rede neural não é simples, é necessária uma
grande quantidade de dados e o desenvolvimento de uma arquitetura que pode ter múltiplas camadas
de neurônios. Além disso, é necessário um bom conhecimento e experiência prática do cientista ou
engenheiro de IA, para optar pela configuração adequada para determinada aplicação.
Além disso, também é necessário bastante conhecimento para compreender o funcionamento de
uma rede neural. Quando se trata das camadas ocultas, não é possível interpretar sua influência, então,
é importante que as avaliações sejam feitas adequadamente, considerando a rede como um todo. É
importante também o contínuo desenvolvimento do estudo, para que esse método consiga acompanhar
e continuar solucionando as necessidades da sociedade.
Quanto às desvantagens, do mesmo jeito que as redes neurais e a aprendizagem de máquinas po-
dem ser bastante úteis para o atendimento de necessidades dos humanos, podem também ter seu uso
desviado. As redes neurais têm sido bastante aplicadas para detecção de fake news, o que é bom, mas
do mesmo jeito tem ocorrido muita aplicação desse método para criação de fake news.

211
UNICESUMAR

Com as redes neurais artificiais, algumas pessoas têm desenvolvido áudios e vídeos falsos, que
copiam completamente a voz e o rosto das pessoas, para disseminar essa desinformação. E como a
internet é um ambiente bastante amplo, e em muitos países ainda sem muita regulamentação, esses
objetos falsos se disseminam e confundem as pessoas.
Além disso, os modelos que utilizam RNA são, geralmente, de grande proporção, para conseguir
realizar adequadamente a tarefa que se propõe, o que faz com que se consuma muita energia e recurso
computacional para colocá-la em prática. Outras desvantagens que podemos citar:

• Treinamento muitas vezes demorado.


• Impossível entender todos os motivos que levaram à determinada
decisão pela rede.
• Grande volume de dados.
• Necessário tratamento de dados.

Conforme Norvig e Russel (2013, p. 851):



Certamente as redes neurais são capazes de tarefas muito mais complexas de aprendizagem,
embora deva ser dito que é necessária certa quantidade de esforço para obter a estrutura
da rede correta e alcançar a convergência para algo próximo ao ótimo global no espaço
de peso. Há literalmente dezenas de milhares de aplicações publicadas de redes neurais.

De qualquer forma, as redes neurais artificiais têm promovido grandes avanços tecnológicos em nossa
sociedade, provando que é útil e ainda passível de evoluções e atendimento em outras aplicações.
Como vimos, o desenvolvimento e utilização das redes neurais artificiais permitiu o aparecimento
de diferentes tipos de tecnologia, como o reconhecimento de voz. Os softwares de reconhecimento de
voz utilizam uma rede neural para captar os sons gerados por uma pessoa, converter essa informação
em texto e processar a informação, de modo a executar o que foi solicitado. Por exemplo, quando
alguém pede ao dispositivo com reconhecimento de voz “Me lembre que amanhã tenho que ir ao su-
permercado”, o programa precisa entender o que está sendo falado, converter isso em texto para que
seu algoritmo processe e, em seguida, o lembrete é gerado.
Consequentemente, à medida que melhoramos a rede neural e aumentamos nosso conhecimento sobre
esse assunto, mais os softwares com esse artifício também vão se desenvolver, e isso pode ser a resposta
para os ainda existentes erros de interpretação de fala que eles apresentam. Um avanço já percebido nesse
sentido é que o desempenho do software de reconhecimento de voz melhora quando aumentamos o
número de camadas na rede neural e aumentamos o número de dados disponíveis para o treinamento.
A vantagem principal da utilização de inteligência artificial e redes neurais no reconhecimento de
voz é permitir que tarefas sejam executadas de forma mais rápida e prática, podendo, inclusive, ser

212
UNIDADE 8

automatizadas. O recurso deixa livre as mãos das pessoas para que elas atuem em outras necessidades,
enquanto interage com o software por voz.
Por exemplo, retomando o exercício mental do início da unidade, ao aplicar esse recurso no
atendimento ao cliente, teríamos uma praticidade no direcionamento do cliente de acordo com sua
demanda de solicitação. De forma rápida, o cliente poderia esclarecer alguma dúvida ou executar
tarefas simples usando a voz para indicar, entre as opções sugeridas, qual aquela que mais se encaixa
com sua necessidade. A otimização da rede permitiria uma melhor compreensão da solicitação feita
pelo cliente, permitindo uma maior precisão no acionamento das opções. O desafio é compreender
as inúmeras possibilidades de solicitações que o cliente pode fazer, mas os avanços nessa tecnologia
têm mostrado que é possível compreender solicitações que nunca foram feitas antes por meio do
aprimoramento do aprendizado de máquina.

213
Entendendo, agora, sobre as redes neurais artificiais, elabore um Mapa Mental com as principais car-
acterísticas dessa abordagem, indicando a definição, composição e tipos. Caso precise de ajuda na
elaboração, utilize o modelo a seguir, completando as informações. Você pode preencher os dados
aqui ou utilizar a ferramenta gratuita https://www.goconqr.com/.

Mecanismo de aprendizagem Redes neutrais com


de máquina múltiplas camadas fazem
Estudo baseado na neurociência, parte do ______________
na forma como o cérebro humano
processa informações

REDES NEUTRAIS ARTIFICIAIS


Rede de alimentação
para frente
Sinais de
entrada

Redes neurais
Somador convolucionais

Bias

214
1. As redes neurais artificiais (RNA), também chamadas apenas de redes neurais, constituem um
programa projetado para simular a forma como o cérebro processa informações, que pode ser
implementado em um computador ou máquina para executar determinada tarefa. Sobre esse
assunto, avalie as afirmações:

I) Consiste em um método para promover a aprendizagem em uma máquina a partir de exem-


plos ou da experiência, fazendo com que seu desempenho para executar determinada tarefa
seja melhorado com o tempo, fazendo parte da aprendizagem de máquina.
II) Redes Neurais Artificiais são um sinônimo de Deep Learning, ambos retratando uma rede
neural com múltiplas camadas ocultas e com treinamentos baseados em uma grande quan-
tidade de dados.
III) Também é chamada de processadores paralelamente distribuídos, pois tentam emular pro-
cessos distribuídos em um conjunto ou camada de neurônios. Isso quer dizer que os neurô-
nios em um mesmo conjunto ou camada processam as entradas de forma simultânea e
independente. Por meio da aprendizagem, as conexões entre essas unidades são ajustadas.

Marque a alternativa correta sobre o algoritmo de busca:

a) Os itens I e II são corretos.


b) Somente o item II é correto.
c) Somente o item III é correto.
d) Somente o item I é correto.
e) Os itens I e III são corretos.

2. “Nome dado a um tipo simples de rede neural, em que todas as entradas são conectadas dire-
tamente com as saídas, apresentando apenas uma camada de neurônios. Com ela, os valores
de entrada são alimentados à rede, em seguida é calculada uma combinação linear dessas
entradas e então uma saída é gerada”. Marque a alternativa que corresponde a definição.

a) Deep Learning.
b) Perceptron.
c) Sigmoide.
d) Convolucionais.
e) Backpropagation.

3. As redes neurais artificiais permitiram significativos avanços na área de aprendizagem de máqui-


nas, possibilitando aplicações que há alguns anos parecia coisa de ficção científica. Vimos muitos
exemplos de aplicação em nossa unidade e pudemos, com isso, compreender a relevância dessa
abordagem. Disserte entre 8 a 10 linhas quais os impactos das redes neurais artificiais para o
desenvolvimento de tecnologias para o atendimento das necessidades da sociedade.

215
216
9
Tópicos Especiais em
Reconhecimento de
Padrões
Me. Larissa Torres Ferreira

Olá, seja bem-vindo(a) à Unidade 9 de seu livro. Aqui, você estuda-


rá sobre uma etapa importante na aprendizagem de máquinas: o
reconhecimento de padrões, que permite analisar e manipular os
dados utilizados para o processo de aprendizagem em inteligência
artificial, e é encontrado em várias aplicações práticas da área. Você
também vai entender do que se trata o reconhecimento de padrões,
suas características e composição. Em seguida, apresentarei as
aplicações, a importância e os problemas encontrados na aplicação
desse conhecimento. Com isso, será possível compreender como
funcionam muitas das aplicações práticas em inteligência artificial.
UNICESUMAR

A produção mundial de dados não para de aumentar. Tivemos 40 trilhões de gigabytes gerados só em
2020. Já vimos que essa grande quantidade de dados é chamada de Big Data, e que eles são decorrentes
das atividades humanas que, em sua grande parte, envolvem máquinas, computadores, celulares e apli-
cativos. Temos, nas redes sociais, a constante produção de dados, com as pessoas postando fotos; temos
os dados gerados por e-mails trocados – que inclusive substituíram consideravelmente o correio físico;
temos conferências realizadas no mundo todo a todo instante. Além desses, temos os dados gerados
em transações financeiras, monitoramento ambiental, análises clínicas e genéticas, entre outros. Tudo
isso resulta na produção de dados que compõem o Big Data. Você consegue imaginar a quantidade
de dados produzidos no mundo por minuto?
Muito mais importante que a quantidade de dados produzida, é saber como lidar com ela e como
ela pode ser útil. Esses dados têm diversos formatos (imagens, áudios, páginas web, textos, redes so-
ciais), que geram informações relevantes para empresas e sociedade – pois não basta ter informações,
mas tomar decisões com base nelas. Estes dados podem representar um objeto físico ou um conceito
abstrato, como a satisfação de clientes em uma loja de roupas. Tem sido um desafio para empresas
verificar evidências relevantes e estratégicas nos seus negócios por meio da análise de dados, porque a
produção de dados é superior ao desenvolvimento tecnológico necessário para executar essa atividade.

218
UNIDADE 9

Ainda assim, o avanço tecnológico que obtivemos até agora já nos permite tirar decisões a partir
da análise de dados. Foram desenvolvidos ferramentas e recursos para coletar e processar dados em
uma proporção e tempo satisfatórios. No Brasil, mais da metade das empresas orientaram seus negó-
cios em 2019 por meio da análise de dados. Nesse sentido, temos o estudo da ciência de dados, que
combina vários campos como estatística, inteligência artificial, métodos científicos e análise de dados
para possibilitar obter ideias a partir de dados, no tratamento destes dados, a preparação para análise
até a emissão e revisão de resultados.
Os dados coletados e armazenados por nossa atividade humana podem promover grandes trans-
formações em empresas e sociedades, mas é importante aplicar a ciência de dados para conseguir,
realmente, interpretar esses dados e informações e reconhecer tendências. Isso vai possibilitar identificar
riscos e oportunidades e validar hipóteses, permitindo que empresas apresentem vantagens compe-
titivas, menores custos, maior eficiência em investimentos e sofra menos fraudes. A aprendizagem de
máquina, inclusive, é melhor desenvolvida quando se baseia nesses dados, em vez de se basear apenas
no conhecimento transmitido por um especialista na área.
Mas tudo isso só é possível mediante o reconhecimento de padrões. É esse reconhecimento que
permite identificar semelhanças nos dados que podem ser úteis para as tomadas de decisão. Os pró-
prios algoritmos de aprendizagem de máquina nem sempre conseguem atuar diretamente sobre os
dados, sendo necessário um processamento para identificação de semelhanças entre eles. Como os
dados são produzidos a partir de diferentes e simultâneas fontes, em variados formatos, podem resultar
em incertezas e ambiguidades que é preciso avaliar. Outros problemas, como ruído, também podem
estar presentes. Você consegue imaginar como iríamos lidar adequadamente com o Big Data sem a
execução do reconhecimento de padrões?
Assim, o reconhecimento de padrões é a área de estudo que permite analisar e classificar dados e
informações, variando seu modo de execução de acordo com a aplicação. De qualquer forma, trata-se
de perceber esses dados, processar, verificar semelhanças, definir categorias e possibilitar a execução
de ações a partir disso.
Você consegue imaginar, por exemplo, como o reconhecimento de padrões pode ser útil para lidar
com dados gerados no setor de políticas públicas para educação superior? Isso permitiria que os pro-
gramas fossem desenvolvidos de acordo com as tendências do mercado, observados nos dados, que
poderiam favorecer aqueles cursos ou regiões que se mostraram promissores no futuro.
O reconhecimento de padrões é a base para a aprendizagem de máquina, campo importante dentro
da inteligência artificial. Tenta emular a capacidade de nós, humanos, de identificar semelhanças e
recorrências em informações. De fato, muito da evolução humana pela qual passamos se deve a essa
capacidade que temos de reconhecer padrões e tomar decisões a partir disso. Um exemplo de seu
uso por humanos é na análise de informações financeiras e observação de tendências para decisões
de compra e venda de ações.
Da mesma forma na computação, muitos problemas práticos nessa área necessitam do reconheci-
mento de padrões para encontrar soluções. Consiste na essência da sabedoria e inteligência promovida
em máquinas. Vai permitir classificar dados conhecidos e não conhecidos, fazer previsões em diversos

219
UNICESUMAR

setores, reconhecer objetos, faces, vozes, palavras, en-


tre outras atividades que são muito comuns hoje em
dia, com o uso da tecnologia.
O próprio desenvolvimento tecnológico da so-
ciedade é dependente dessa atividade de reconhecer
padrões. Ainda temos um potencial muito grande de
extração de informações úteis no Big Data, que só será
possível por meio do desenvolvimento e aprimora-
mento de formas de ler, interpretar e analisar dados.
O reconhecimento de padrões consiste, então, em
um conjunto de técnicas e conhecimentos aplicados
para desenvolver sistemas inteligentes que se baseiam
em dados. É o estudo aplicado à máquinas para que es-
tas consigam observar o ambiente, aprender e utilizar
esse conhecimento para ações e tomadas de decisão,
tudo isso de forma automatizada. Muitas ferramentas
que lidamos atualmente fazem uso disso. Está presen-
te, por exemplo, em várias funcionalidades do nosso
telefone celular, como por exemplo o reconhecimento
facial ou biométrico.
Para compreender melhor a introdução sobre o
reconhecimento de padrões, faça uma pesquisa sobre
esse conteúdo na internet. Por exemplo, você encon-
trará o vídeo (QR Code) Pensamento Computacional
- Reconhecimento de padrões, que introduz sobre
o tema, definindo alguns aspectos relacionados que
estudaremos nesta unidade. Agora é com você! Lo-
calize, no google ou no youtube, uma aplicação de
reconhecimento de padrões no seu dia a dia. Faça
uma lista, indicando as características gerais desse
uso, e os benefícios da aplicação. Nós vamos estudar
o que é o reconhecimento de padrões e como ele tem
sido aplicado em muitas tecnologias que conhecemos
e lidamos constantemente.
Hoje em dia, estamos continuamente ligados a
computadores, redes sociais, celulares etc. Todos esses
e outros dispositivos e sistemas fazem uso do reco-
nhecimento de padrões em maior ou menor grau, de
diferentes formas.

220
UNIDADE 9

Você já parou para pensar sobre isso, enquanto utiliza o celular? O dispositivo faz uso para garantir
que está sendo usado realmente por você e não outra pessoa, e para promover uma experiência satis-
fatória durante o uso. Diante disso, reflita:

• Quais funcionalidades presentes em nosso celular se baseiam no reconhecimento de padrões?


• Que vantagens esses e outros recursos trazem no nosso dia a dia?
• Que outros dispositivos ou máquinas se baseiam no mesmo tipo de comportamento?

Considerando tudo isso, anote seus resultados no seu Diário de Bordo.

Caro(a) aluno(a), você já parou para pensar como os humanos facilmente identificam se uma fruta
está madura analisando seu aspecto físico ou se há um problema no carro com base no barulho que
ele apresenta? Da mesma forma, facilmente reconhecemos um rosto e entendemos palavras faladas.
Isso acontece devido a nossa capacidade de reconhecer padrões.

221
UNICESUMAR

Padrão consiste em um conjunto de características que apresentam uma semelhança ou se repetem.


É uma entidade de interesse que precisamos reconhecer e identificar, fornecendo uma classificação.
São tendências repetidas em formatos variados. Pode ser uma impressão digital, um rosto, uma letra
manuscrita. Ao identificar essa característica, estamos reconhecendo um padrão, e isso permite que
decisões sejam tomadas. Por exemplo, com o carro apresentando um barulho semelhante ao de proble-
mas que ocorreram anteriormente, podemos aplicar a mesma solução. Um padrão pode ser observado
fisicamente ou matematicamente por meio de algoritmos.
O reconhecimento de padrões faz parte da aprendizagem de máquina que estudamos anterior-
mente. Assim, a capacidade de aprendizado é obtida por meio da análise de dados fornecidos e no
reconhecimento de padrões nesses dados, que permitem que um programa ou máquina se ajuste ou
promova uma solução.
Um exemplo comum para esse estudo é o filtro antispam. O gerenciador de e-mails identifica
aqueles que são spam de acordo com o número de destinatários, configurações colocadas e outras
características, conseguindo separar aqueles que se assemelham ao padrão de spam. Da mesma
forma ocorre com softwares de reconhecimento facial, que busca por padrões, características faciais,
para identificar a pessoa. Seja qual for o caso, o reconhecimento de padrões trata de identificar
características que se repetem.
De acordo com, Hart, Stork e Duda (2000), o reconhecimento de padrões consiste no ato de coletar
dados brutos e, com base em uma característica identificada, tomar uma ação. Essa capacidade tem
sido essencial para nossa sobrevivência, fazendo com que nossos sistemas neurais e cognitivos se de-
senvolvessem consideravelmente para otimizar essa tarefa. De fato, a busca por padrões fez parte das
maiores descobertas da humanidade, como aquelas sobre o comportamento dos astros e leis da física.
Com relação a utilização em inteligência artificial, Bishop (2006, p. 1, traduzido) afirma:

222
UNIDADE 9


O campo de reconhecimento de padrões está preocupado com a descoberta automática
de regularidades nos dados através do uso de algoritmos de computador e com o uso
dessas regularidades para realizar ações como classificar os dados em diferentes categorias.

A inteligência artificial faz uso do reconhecimento de padrões para analisar o conjunto de treinamento,
composto pelos dados fornecidos, e organizar essas informações de acordo com características recor-
rentes ou padrões. A identificação dessas características é de acordo com o conhecimento prévio e o
obtido durante o próprio processamento. Com isso, são atribuídas classes para dados de entrada. No
caso do antispam, por exemplo, o programa com reconhecimento de padrão pode determinar entre
duas classes, se é spam ou se não é. O reconhecimento de padrões serve para apresentar uma resposta
adequada para possíveis entradas, por meio de uma correspondência provável que é observada entre
características nos dados.
Isto é, o reconhecimento de padrões é um método que permite analisar dados e identificar pa-
drões neles por meio de algoritmos de aprendizagem de máquina. Estuda como as máquinas podem
adquirir a capacidade de classificar objetos em categorias, de forma semelhante como nós classifica-
mos. Por exemplo, quando você está utilizando uma rede social, você passa por inúmeros posts até
que um post chame atenção, seja um rosto familiar ou a indicação de um produto. Da mesma forma,
o reconhecimento de padrões é uma tecnologia que possibilita que máquinas detectem arranjos de
características em dados, identificando regularidades dentro deles.
O desenvolvimento dessa técnica na inteligência artificial é diretamente influenciado pelo modo
como nós, humanos, resolvemos esse tipo de problema. Assim, são desenvolvidos dispositivos e pro-
gramas de reconhecimento de padrão, como os de reconhecimento de fala e facial, identificação de
sequência de DNA e de impressão digital, entre outros. O problema de reconhecimento de números

223
UNICESUMAR

manuscritos, por exemplo, só é possível devido a esse estudo. Nesse caso, um programa pode ser de-
senvolvido para receber uma imagem de entrada com um número manuscrito e indicar o dígito na
saída. Isso é realizado com base em padrões observados nos perfis de dados previamente fornecidos
de números manuscritos e o treinamento promovido com esses dados. Com isso, pode tornar possível
o reconhecimento mesmo diante de caligrafias diferentes e de novos exemplos. Isso ocorre devido à
capacidade de generalização adquirida com treinamento e testes, fazendo com que a generalização
seja o objetivo central no estudo de reconhecimento de padrões.
Porém, apesar de apresentar certas semelhanças, a tarefa de reconhecimento de padrões para nós, hu-
manos, é relativamente simples, em que, geralmente, coletamos informações e fazemos comparações para
atingir o resultado. Com as máquinas e dispositivos, essa tarefa é mais complexa, pois ainda não foi desen-
volvido um programa que consiga apresentar uma capacidade de reconhecimento semelhante à humana.
Mesmo assim, o reconhecimento de padrões por máquinas busca replicar o processo de reconhe-
cimento feito por humanos. Com relação à fruta que vimos como exemplo inicial, para saber se está
madura, um humano vai comparar com outras frutas conhecidas que apresentaram aquela caracte-
rística. O humano combina a entrada sensorial, como, por exemplo, a visão e tato, com as informações
obtidas com experiências anteriores. O sistema é programado da mesma forma, e para isso vai precisar
distinguir atributos físicos das frutas e representá-los, aprender de qual fruta em específico se trata a
análise, e comparar com dados conhecidos ou situações prévias semelhantes.
O processo de reconhecimento de padrões em inteligência artificial possui algumas etapas:

224
UNIDADE 9

• Aquisição de dados.
• Pré-processamento de dados.
• Extração de características.
• Classificação de dados.
• Pós-processamento.

Para aquisição de dados de entrada, geralmente, são utilizados sensores que vão captar observações,
para que sejam posteriormente classificadas. Assim, uma grande quantidade de dados pode entrar no
sistema por diferentes sensores. Esses dados brutos devem ser convertidos em um formato com que a
máquina consiga lidar. Em seguida, vem a etapa de pré-processamento, que transforma as variáveis
de entrada originais em um novo espaço de variáveis para facilitar o processo de reconhecimento de
padrões e reduzir o esforço computacional. Essa etapa reduz a variabilidade dos dados, facilitando
a classificação pelo algoritmo, sendo também chamada de extração de recursos. Tanto os dados de
treinamento quanto os de teste devem passar pelo pré-processamento.
Por exemplo, na utilização de um software de reconhecimento facial em tempo real, teremos como
entrada um fluxo de vídeo de alta resolução com uma grande quantidade de pixels por segundo. A
atividade de reconhecimento de padrões, neste caso, necessitaria de um algoritmo complexo que pro-
vavelmente seria inviável do ponto de vista computacional (BISHOP, 2006).

225
UNICESUMAR

O pré-processamento, então, pode ser utilizado para reduzir a quantidade


de detalhes, mas mantendo as informações discriminatórias úteis. Por exem-
plo, utilizando um valor médio de intensidade de imagem em uma sub-re-
gião retangular, sendo menor que o número de pixels que o algoritmo teria
que lidar inicialmente. Temos apenas que ter atenção para que, nessa etapa,
informações importantes não sejam descartadas, o que comprometeria a
precisão do programa (BISHOP, 2006). Assim, o pré-processamento permite
desprezar as informações desnecessárias, fazendo com que o algoritmo lide
apenas com objetos relevantes para o reconhecimento.
Faceli et al. (2011, p. 29) afirmam que o pré-processamento:



[…] pode facilitar o uso de técnicas de AM [aprendiza-
gem de máquina], levar à construção de modelos mais
fiéis à distribuição real dos dados, reduzindo sua com-
plexidade computacional, tornar mais fáceis e rápidos
o ajuste de parâmetros do modelo e seu posterior uso.
Isso pode, adicionalmente, facilitar a interpretação dos
padrões extraídos pelo modelo.

Em seguida, temos a extração das características, que é um mecanismo que


analisa os dados de entrada e extrai deles informações úteis para o processo
de reconhecimento de padrões. A finalidade dessa etapa, de acordo com Hart,
Stork e Duda (2000), é medir certas características ou propriedades, de modo
a identificar similaridades e, assim, reduzir os dados para a próxima etapa.
Em seguida, é realizada a classificação de dados, que categoriza os dados
da etapa anterior de acordo com os padrões, ou seja, é feita uma avaliação das
evidências apresentadas e é definido o pertencimento do objeto de análise a
uma determinada categoria, apresentando uma decisão final. De acordo com
as características observadas na etapa anterior, os dados são atribuídos a uma
classe ou valores previstos são calculados, esses últimos resultados quando se
utiliza algoritmos de regressão. Por fim, temos a etapa de pós-processamento,
em que o sistema executa ações de acordo com o resultado do reconhecimento.
Nesse processo, para que o reconhecimento de padrões tenha um desempe-
nho adequado, ele não pode nem generalizar demais, porque resultaria em
classificações vagas, nem ser específico demais.
A síntese do processo de reconhecimento facial é exemplificada, com a
denotação dessas etapas, na Figura 1. Inicialmente, a imagem da pessoa é
captada por uma câmera e os sinais são pré-processados. Em seguida, são
extraídas características desses dados e, então, são classificados, denotando
se aquela é a pessoa 1 ou pessoa 2, ou outras pessoas.

226
UNIDADE 9

PRÉ-PROCESSAMENTO

EXTRAÇÃO DAS CARACTERÍSTICAS

CLASSIFICAÇÃO DE DADOS

Pessoa 1 Pessoa 2
Figura 1 - Síntese do reconhecimento de padrão utilizado em dispositivos de reconhecimento facial / Fonte: a autora.

Descrição da Imagem: a imagem apresenta um infográfico que começa de cima para baixo, com uma imagem no topo, retângulos
azuis no centro e texto abaixo. No topo, temos uma imagem de um homem, branco, de cabelos escuros e curtos, usando óculos e
uma camisa de gola azul escuro, à direita. Ele está se inclinando e olhando para a esquerda, em direção a um dispositivo eletrônico
cinza-metálico fixado a uma parede metálica, e ao fundo vemos plantas verdes em potes bege. O dispositivo tem uma câmera que
está captando o rosto do homem de maneira frontal, demonstrado por uma tela no centro, para reconhecimento facial. Abaixo dessa
imagem, temos uma seta unidirecional para baixo interligando a um retângulo com o texto “pré-processamento”. Deste, uma seta
com uma interligação a um retângulo com o texto “extração de características”, e abaixo deste, interligado por uma seta, um retângulo
com o texto “classificação de dados”. Existem setas unidirecionais cinzas interligando também de baixo para cima, de “classificação de
dados” para “extração de características” e “pré-processamento”. Por fim, a partir de “classificação de dados”, abaixo surgem duas setas
escuras, uma interligada à esquerda ao texto “Pessoa 1” e outra interligada à direita com “Pessoa 2”.

Podemos perceber que o fluxo de informações, geralmente, vai da captação dos dados até a classi-
ficação, denotado com as setas pretas. Contudo, em alguns programas, podemos encontrar o fluxo
contrário, quando os níveis de processamento podem ser alterados com base em resultados de etapas
posteriores (setas em cinza).
Esse mesmo esquema pode ser aplicado a outros tipos de reconhecimento, seja facial, de imagem,
de voz, de digitais, entre outros. O que muda são os dados de entrada (o formato, quantidade e o modo
como são obtidos) e os dados de saída, ou seja, a resposta do sistema que será a identificação daquele
objeto a qual foi submetido o reconhecimento.

227
UNICESUMAR

É importante perceber que o processo de reconhecimento de padrão não se limita a essas etapas.
O objetivo principal de um sistema de reconhecimento, seja para aplicação facial ou qualquer outra, é
conseguir identificar novos padrões e sugerir ações a partir dessa percepção, assim, obter a capacidade
de generalização. O programa não deve ser exclusivamente desenvolvido para identificar os dados de
treinamento, aqueles conhecidos, e sim para identificar características recorrentes nos dados. Quanto
maior a quantidade de dados de treinamento, mais o programa reconhecerá essas características e
conseguirá generalizar. Porém, na prática, a quantidade de dados é geralmente limitada.
Precisamos, para estudar o reconhecimento de padrões, entender as diferenças entre classes e
atributos. Utilizamos o termo classe quando nos referimos a um conjunto de objetos que possuem
uma mesma característica ou um conjunto de atributos comuns. Já atributos é uma característica ou
propriedade que representa um objeto. A classe fruta, por exemplo, pode ser descrita com quais atri-
butos? A cor, a forma, o tamanho, o cheiro, o sabor, a textura, entre outros. Assim, cada objeto é uma
ocorrência dos dados e cada atributo é uma propriedade do objeto.

Atributo Classe Objeto

Conjunto de objetos com


Propriedade do objeto Ocorrência de dados
atributos comuns

Quadro 1 - Diferenças entre Atributo, Classe e Objeto / Fonte: LUGER, 2013.

228
UNIDADE 9

Como você estudou, temos diferentes formas de aprendizado que lidam diretamente com o proble-
ma de reconhecimento de padrões. Isso porque o aprendizado, seja qual tipo for, só é possível após a
identificação de padrões. Quando temos dados de treinamento que são exemplos de relações diretas
entre os dados de entrada e os de saída conhecidos, estamos falando do aprendizado supervisionado.
Esses conjuntos representativos de dados são fornecidos ao sistema para o treinamento, ilustrando os
padrões que o sistema deve aprender a reconhecer.
Em seguida, são fornecidos dados de teste, de formato semelhante, para verificar o desempenho do
sistema. Dentro deste, podemos ter problemas de classificação, quando trabalhamos com categorias
discretas, e problemas de regressão, quanto utilizamos variáveis contínuas (NORVIG; RUSSELL, 2013).
O reconhecimento de números manuscritos é um exemplo de classificação. Já a previsão do rendimento
de um processo de fabricação em produtos químicos, em que as entradas são as concentrações dos
reagentes, temperatura e pressão, é um exemplo de regressão (BISHOP, 2006).
Temos, também, o aprendizado não supervisionado, que é aquele em que os dados de treinamen-
to consistem em um valor de entrada, mas sem um valor de saída correspondente. Assim, o sistema
analisa e aprende sozinho baseado em dados aleatórios e na identificação de padrões nesses dados,
sem um rótulo preexistente. Ele vai buscar descobrir grupos de exemplos semelhantes ou determinar
a distribuição de dados (BISHOP, 2006). A interferência de componente humano e de padrões prede-
finidos é reduzida ao mínimo. Nesse caso, o reconhecimento de padrões é chamado agrupamento.

229
UNICESUMAR

Além desses, temos a aprendizagem por reforço, que utiliza algoritmos para fornecer recompen-
sas para determinadas ações executadas em determinada situação. Não são fornecidos exemplos de
saídas, mas o algoritmo deve ser capaz de descobri-los por meio da tentativa e erro (LUGER, 2013).
Temos também a aprendizagem profunda, que utiliza redes neurais artificiais de forma a simular
o funcionamento do cérebro ou redes neurais biológicas. Permite aplicações mais complexas, como
processamento de áudio, imagem e linguagem natural; mas, da mesma forma, lida com dados e ne-
cessita, para seu funcionamento, do reconhecimento de padrões.

Título: Precisamos falar sobre A.I.


Ano: 2020
Sinopse: um debate sobre o futuro da Inteligência Artificial, analisando
como ela pode impactar nossa sociedade nos próximos anos. Contando
com a opinião de diversos especialistas no assunto, o documentário levanta
questionamentos e alertas sobre este tipo de tecnologia.
Comentário: o documentário “Precisamos falar de A.I.” traz um conjunto
de reflexões e análises sobre o futuro da humanidade, com relação ao
desenvolvimento e aplicação da inteligência artificial. A abordagem se refere tanto a obras cine-
matográficas quanto especialistas na área, mostrando tanto o lado daqueles que consideram a
IA benéfica e essencial para o progresso quanto o outro lado, daqueles que avaliam como um
risco para o futuro da humanidade.

O reconhecimento de padrões consiste no processo de reconhecimento de características seme-


lhantes ou que se repetem através de um algoritmo de aprendizagem de máquina. A classificação final
nesse processo vai ser de acordo com os dados da base de conhecimento ou informações estatísticas
verificadas em padrões. O rótulo da classe vai ser definido no fim da classificação, feita com base em
uma abstração promovida mediante padrões de treinamento ou conhecimento de domínio.
Um conjunto de recursos deve estar presentes na tarefa de reconhecimento de padrões:

• Conseguir reconhecer características familiares de forma rápida e precisa.


• Conseguir reconhecer objetos desconhecidos e classificá-los.
• Conseguir reconhecer objetos em diferentes ângulos, com precisão.
• Conseguir reconhecer padrões de forma fácil e automática.

230
UNIDADE 9

Para que ocorra a aprendizagem de máquina, um conjunto de treinamentos e testes é necessário. Ini-
cialmente, temos a etapa de treinamento, em seguida, são os testes. Nesse sentido, podemos dividir
os dados em dados para treinamento do modelo e dados para testes do modelo, conforme Figura
2. A execução dessas etapas é o que vai permitir que o sistema se adapte e forneça resultados de forma
precisa. A qualidade da aprendizagem também depende do tipo de algoritmo utilizado.

Dados de Utilizados
treinamento para construir
o sistema

Conjunto
de dados

Utilizados para
Dados de verificar a precisão
teste do sistema

Figura 2 - Composição e função do conjunto de dados no processo de aprendizagem / Fonte: a autora.

Descrição da Imagem: a imagem apresenta um infográfico com retângulos azuis, que começa da esquerda para direita. O primeiro
retângulo contém o texto “Conjunto de dados”, e está interligado por setas unidirecionais aos próximos retângulos. A primeira seta,
para a direita e acima, conecta-se ao retângulo “Dados de treinamento”, que se conecta também por seta unidirecional, à direita, com o
retângulo “Utilizados para construir o sistema”. Retomando a segunda seta de “Conjunto de dados”, para a direita e abaixo, conecta-se
com o retângulo “Dados de teste”, e este por seta unidirecional à direta ao retângulo “Utilizados para verificar a precisão do sistema”.

O tipo de dados nos diz qual informação representa quantidade, sendo, nesse caso, o dado chamado de
quantitativo ou numérico, ou se é representado por categoria, sendo chamado de qualitativo, simbólico
ou categórico. Podemos extrair uma grande quantidade de informações de um conjunto de dados que
podem auxiliar na técnica de aprendizagem de máquina (FACELI et al., 2011).
Os dados de treinamento consistem na utilização de um conjunto de dados para a construção de
um modelo. Para isso, são utilizados algoritmos de treinamento que indicam como relacionar adequa-
damente dados de entrada com os de saída. Esses algoritmos são aplicados nos dados para que, por
meio disso, o programa consiga reconhecer características relevantes e indicar o resultado. A maior
parte do conjunto de dados é para o treinamento.
Já os dados de teste vão ser utilizados para testar o modelo, verificando se o sistema está indican-
do a resposta de saída correta depois de realizado o treinamento. Isso vai permitir que a precisão do
modelo seja avaliada e intervenções necessárias possam ser identificadas, para garantir que o ajuste
adequado seja feito de forma que o aprendizado realmente ocorra e o modelo indique a resposta mais
próxima possível daquela correta.

231
UNICESUMAR

Um padrão pode ser tanto um objeto físico quanto uma característica


abstrata. Quando falamos de animais, por exemplo, uma descrição de
um animal seria a observação de um padrão. Poderíamos descobrir que
um animal é um gato verificando as características da orelha, do foci-
nho e do pelo. Se analisamos vários tipos de bolas, a descrição da bola
consiste em uma observação de um padrão. Nesse caso, poderíamos
ter classes dizendo se a bola era de futebol, de tênis ou de golfe, e isso
seria definido com base em observações realizadas na cor, no tamanho,
no peso e outras características.
A escolha de atributos a serem avaliados e a representação de padrões são etapas essenciais para
a classificação desses padrões. Uma boa representação faz uso de atributos discriminantes, mas
também não deve consumir uma carga computacional maior que a viável nessa atividade.
A representação de um padrão será um vetor que contém um conjunto de elementos indicando
atributos do padrão. Por exemplo, representando um conjunto de bolas, poderíamos fazer na
forma (2, 30, 1) onde o primeiro elemento poderia indicar o peso da bola, o segundo o diâmetro
e terceiro a classe correspondente àquele tipo de bola.
Fonte: Nascimento (2003).

Como vimos, o reconhecimento de padrões é um processo complexo em que os dados de entrada


são analisados, a partir deles são identificados padrões que são comparados com outros padrões
para chegar a uma classificação, decisão ou ação. Para executar esse processo, um reconhecedor de
padrões necessita de um conjunto de funções para, além de identificar casos familiares, conseguir
aqueles que são desconhecidos.
São utilizadas três abordagens nos algoritmos de reconhecimento de padrões para executar a tarefa
de classificação (HART; STORK; DUDA, 2000):

• Estatística: baseada na teoria da decisão estatística, em que recursos quantitativos são extraídos
dos dados e é feita uma comparação. O foco é nas propriedades estatísticas dos padrões, geralmente
expressos em densidade de probabilidade.

• Estrutural: também chamada de sintática, que se aproxima mais do funcionamento do reconheci-


mento humano. Características morfológicas de uma amostra de dados são extraídas e analisadas,
verificando conexão e relação entre elas. Fazemos uso de um conjunto de regras lógicas nítidas que
descrevem a decisão.

232
UNIDADE 9

• Neural: são utilizadas redes neurais artificiais, possibilitando maior flexibilidade no aprendizado e
maior familiaridade com a inteligência natural. Abordagem mais flexível para execução de tarefas,
sendo relativamente autônomas em aprender e reconhecer padrões. Muitas tarefas só são possíveis
mediante o uso de redes neurais.

Uma boa representação de padrão é aquela que funciona, inclusive, com situações desconhecidas. Os
padrões podem ser representados por vetores de números reais, por listas de atributos ou descrições
de partes e relações, de acordo com o tipo de problema ou análise a ser desenvolvida. Outras caracte-
rísticas também podem ser buscadas na representação de padrões. Podemos preferir utilizar poucos
recursos, o que resulta em decisões mais simples e maior facilidade para treinamento, ou recursos mais
robustos, o que deixa o sistema mais resistente a ruídos ou erros. Pode ser necessário na prática que o
classificador seja executado de forma rápida, ou utilizando poucos componentes eletrônicos, memória
ou processamento (HART; STORK; DUDA, 2000).
A incerteza é um conceito importante dentro do estudo e aplicação do reconhecimento de pa-
drões. Ela surge devido ao ruído nas medições e o número finito de dados disponíveis. A teoria da
probabilidade fornece meios matemáticos para quantificar e manipular a incerteza, tornando possível
o processo de reconhecimento de padrões. Combinada com a teoria da decisão, vai possibilitar que
o sistema de reconhecimento tome decisões ótimas mesmo com dados incertos, desconhecidos ou
ambíguos (BISHOP, 2006).

233
UNICESUMAR

Podemos elencar vantagens e desvantagens no uso do reconhecimento de padrão. Entre as vantagens, temos:

Vantagens Desvantagens

• Resolver problemas de classificação. • Complexidade de implementação e processo


• Resolver problemas de detecção biométrica demorado, em algumas aplicações.
falsa. • Necessário maior conjunto de dados para
• Auxiliar na segurança e prevenção de roubos otimizar a precisão.
e fraudes. • Não explica porque um objeto específico é
• Reconhecer objetos em diferentes ângulos. reconhecido.

Quadro 2 - Vantagens e desvantagens do reconhecimento de padrão / Fonte: a autora.

O reconhecimento de padrões é muito utilizado em máquinas para o processamento de imagens,


sons e sinais no geral, como forma de promover inteligência de reconhecimento humano a elas.
Nesse sentido, temos algumas aplicações comuns. A visão computacional é uma delas.
Com o reconhecimento de padrões, conseguimos extrair recursos significativos a partir de amostras
de imagens ou vídeos, e é utilizada na visão computacional em várias aplicações. Como você pode
imaginar, a análise computacional de imagens e vídeos é complexa, sendo uma etapa da visão com-
putacional, que é uma área da inteligência artificial em que imagens do mundo real são processadas
por um computador. São estudadas formas de dar à máquina a capacidade de “enxergar” através de
interpretação de informações contidas em imagens. Assim, computadores e máquinas são treinados
para conseguir obter essa percepção do mundo visual.
A ideia por trás desse estudo é procurar pistas visuais nas imagens que possibilitem a resolução de
problemas. A visão computacional envolve tanto a captura de imagens, utilizando sensores, quanto o
processamento e análise dessas, de forma que a máquina compreenda a entrada de dados visual. Para
interpretação, a visão computacional depende do reconhecimento de padrões.
Por exemplo, atualmente, é comum que as câmeras digitais possuam algoritmos de detecção de rosto,
mas podemos encontrar outras aplicações da visão computacional. Pode ser utilizada para detectar
erros ou defeitos em processos de fabricação e peças produzidas, automatizar o atendimento em caixas
de lojas de varejo, entre outras.

Você já imaginou os aspectos de permissão do uso da imagem para fins


de reconhecimento facial? Ou mesmo quanto ainda precisa melhorar na
identificação das várias etnias quanto ao reconhecimento facial? Venha
e ouça o podcast, aproveite e dê um play.

234
UNIDADE 9

Mas será que visão computacional é a mesma coisa que reconhecimento de padrões? Ambos os termos
estão associados à inteligência artificial e aprendizado de máquina. Já sabemos que os algoritmos de
aprendizagem de máquina buscam, identificam e criam padrões. A visão computacional, portanto, é
um segmento da aprendizagem de máquinas que aplica o reconhecimento de padrões para extrair
informações de imagens. Contudo, o reconhecimento de padrões, como veremos, pode ser encontrado
em outros tipos de aplicações, lidando com outros formatos de entrada.
Enquanto o objeto da visão computacional é treinar uma máquina ou computador para interpretar
características de uma imagem, possibilitando a classificação de objetos e características que enxergam,
o objeto do recon hecimento de padrões é extrair informações de dados fornecidos, em qualquer for-
mato (imagens, textos, áudios, vídeos etc.), para permitir ações a partir desse reconhecimento.
A visão computacional foi umas das áreas de IA que mais têm sido aplicadas nos últimos anos. Isso se
dá devido a sua evolução tanto em questão de processamento quanto em memória e capacidade de arma-
zenamento. Isso contribui, inclusive, para uma maior precisão, de forma que cada vez mais as máquinas e
computadores conseguem identificar corretamente aspectos de imagens e vídeos (NASCIMENTO, 2003).
Podemos diferenciar, ainda, o reconhecimento de padrões em tipos de acordo com a aplicação a que
se destina. Lógica, números, som, imagem e padrões de palavras estão constantemente ao nosso redor.
Os padrões lógicos permitem que seja possível classificar objetos com determinadas semelhanças, pa-
drões numéricos possibilitam prever uma sequência e padrões de palavras permitem que a linguagem
seja compreendida. Nesse sentido, temos:

235
UNICESUMAR

• Reconhecimento de padrões em imagens: permite iden-


tificar objetos e características apresentados em imagens,
sendo parte da visão computacional que conhecemos an-
teriormente. É muito aplicado em reconhecimento facial,
pesquisa visual e reconhecimento óptico de caracteres.

• Reconhecimento de padrões em sons: utilizado para


identificar vários sons, analisando os sinais que o áudio
apresenta e rotulando conforme uma categoria. Aplicado
em alarmes de segurança de estabelecimentos, identifica-
ção de espécies de animais em matas, reconhecimento de
música ou melodia por dispositivos, entre outros.

• Reconhecimento de padrões em vozes: analisa sons de


voz humana para identificar quem está falando, verificando
características pessoais no padrão de fala. Utilizado para
identificação pessoal em serviços de segurança e na internet
das coisas. Esse reconhecimento é realizado primeiro digi-
talizando a fala que se quer reconhecer e, então, verificando
características como frequências na voz. O classificador vai
buscar um conjunto de características dentro dos dados
fonéticos, para categorizar aqueles dados.

• Reconhecimento de padrões em discursos: principal-


mente utilizado para capturar elementos de um som de
uma pessoa falando e associando com textos e imagens.
Aplicação em conversores de voz para texto ou vice-versa
e em assistentes virtuais.

• Reconhecimento de padrões em biometria: aplicado


para verificação biométrica de pessoas, aplicado em siste-
mas de segurança e acesso a locais.

• Reconhecimento de padrões em códigos de barras: a


leitura de código de barras por máquinas em embalagens
pelo atendente de um mercado é por meio da comparação
do código do produto com o de padrões de dados salvos
no banco de dados. Assim, o produto referente é indicado
na tela do monitor.

236
UNIDADE 9

Título: Free Guy: Assumindo o Controle


Ano: 2021
Sinopse: um caixa de banco, preso a uma entediante rotina, tem sua vida
virada de cabeça para baixo quando descobre que é um personagem em
um jogo interativo. Agora, ele precisa aceitar sua realidade e lidar com o
fato de que é o único que pode salvar o mundo.
Comentário: o filme se passa em um jogo onde o personagem principal,
Guy, foi previamente programado para ser um personagem não jogador.
Porém, ele foi desenvolvido por uma inteligência artificial, e começa a se desviar de sua progra-
mação para ajudar a outra personagem, Molotova, onde é controlado por Millie, a provar que os
códigos do jogo foram roubados.

A mineração de dados utiliza a representação de padrões para analisar dados relevantes em um ban-
co de dados de diferentes formatos, que podem contribuir para estratégias de negócios e pesquisas
científicas. Da mesma forma, a representação de padrões é essencial no processamento de linguagem
natural, como o que encontramos em corretores ortográficos e gramaticais, softwares de tradução,
detectores de spam, entre outros. Outros exemplos são:

• Análise sísmica, onde são observados registros sísmicos, podendo ser por meio de imagens
ou apontamentos de sinais, para reconhecer padrões e, assim, possibilitar a ação.
• Análise de sinal de radar, como aqueles utilizados em minas.
• Reconhecimento de fala, muito utilizado hoje em vários dispositivos, como celulares, com-
putadores, assistentes virtuais, entre outros.
• Identificação de impressão digital, também com diversas aplicações, como em celulares e
fechaduras inteligentes.

Um sistema de reconhecimento de padrões é de suma importância para identificar se a imagem se


trata de um rosto humano, por meio da análise de determinadas características, como dois olhos,
um nariz, uma boca, entre outras. Contudo, alguns sistemas têm ainda problemas em identificar
a cor da pele, visto que pessoas negras têm dificuldade de serem reconhecidas por este sistema.
Como poderíamos pensar na identificação de padrões de pele nesses sistemas?

237
UNICESUMAR

A representação de padrões, porém, deve lidar com alguns problemas que são comuns durante o
desenvolvimento e aplicação do sistema. Os problemas dependem do tipo de problema em que está
sendo aplicado. Entre eles, podemos citar:

• Dificuldades na extração de recursos.


• Ruído.
• Sobreajuste (overfitting).
• Limitação de conhecimento prévio.
• Segmentação.
• Invariâncias.
• Custo e risco.
• Complexidade computacional.

Temos que a extração de recursos deve ser bem desenvolvida para identificar as características do
domínio em específico do problema. Um extrator de recursos para reconhecimento facial não vai ser
viável para reconhecimento de voz, por exemplo.
Um outro problema é o ruído. Por exemplo, lidando com um reconhecedor de faces, as sombras
podem interferir, a mão do utilizador pode tremer, e tudo isso dificulta a análise das características
e diminui a confiabilidade da resposta. O ruído é um padrão detectado devido à aleatoriedade do
mundo ou dos sensores.
O sobreajuste, ou overfitting, acontece quando o programa lida bem com os dados de treinamento,
mas não com novos e desconhecidos dados. O desenvolvimento e seleção do modelo adequado para
a análise de cada problema é uma preocupação do projetista do sistema. Um mesmo reconhecedor
facial pode ser desenvolvido com diferentes modelos, avaliando diferentes características, e a seleção
daquela adequada é uma tarefa, muitas vezes, de tentativa e erro.

238
UNIDADE 9

O conhecimento prévio sobre aquele domínio do problema também influencia no melhor ou


pior desempenho de um reconhecedor de padrões. Porém, a incorporação desse conhecimento pré-
vio nem sempre é simples. Outro problema, denominado segmentação, está presente quando, por
exemplo, temos como entrada uma imagem que tem duas pessoas superpostas. Os padrões individuais,
nesse caso, precisam ser segmentados para permitir a análise. Da mesma forma com palavras, quando
determinados sotaques e pronúncias realçam determinadas letras em detrimento de outras, tendo o
sistema que segmentar para conseguir identificar a fala.
O problema de invariâncias também pode estar presente. Queremos um sistema que reconheça
o padrão mesmo diante das transformações complexas que o domínio pode envolver. Por exemplo,
podemos querer desenvolver leitores ópticos de manuscritos que reconheçam caracteres mesmo diante
da variação da espessura da linha da caneta, por exemplo.
Temos também que avaliar o custo e o risco do reconhecimento de padrões desenvolvido. De-
pendendo da aplicação, pode ser necessária uma precisão alta que deve ser avaliada antes de colocar
o sistema em prática, por exemplo, nos sistemas de reconhecimento de criminosos através da face. O
custo e o risco de sua utilização devem ser avaliados antes de ser colocado em prática, para que não
ocorra problemas com pessoas inocentes. Por fim, a complexidade computacional também deve ser
avaliada. Alguns problemas de reconhecimento de padrões resultam em algoritmos inviáveis.

239
UNICESUMAR

O reconhecimento de padrões é um estudo importante porque, como vimos, é a base para muitas apli-
cações tecnológicas, inclusive, as que encontramos no nosso dia a dia. Nossos celulares e computadores,
por exemplo, são repletos de algoritmos para reconhecimento de voz, facial, de rostos em fotografias,
entre outros. O reconhecimento facial em si já é bastante complexo, envolvendo uma grande quanti-
dade de dados e elementos visuais para tornar o rosto da pessoa único.
A verificação de identidade usada, não só em dispositivos, mas como por governos, já é uma reali-
dade, feita por faces ou biometria, por exemplo, trazendo uma enorme contribuição para a segurança
dos indivíduos. Da mesma forma, o uso do big data, seja aplicado aos negócios, diagnósticos médicos
ou qualquer outra aplicação, só é possível através da tecnologia de reconhecimento de padrões, per-
mitindo tirar conclusões significativas.
É importante ressaltar que o reconhecimento de padrões não é equivalente à aprendizagem de má-
quinas. Na verdade, a aprendizagem de máquina faz uso do reconhecimento de padrões para treinar
máquinas e aplicá-las em problemas práticos. O reconhecimento de padrões, portanto, é uma ferra-
menta que permite identificar e trabalhar com padrões, possibilitando a aprendizagem de máquina.
Você viu, nesta unidade, do que se trata o reconhecimento de padrões e várias aplicações em que esse
estudo é útil. Até mesmo no seu dia a dia, você lida com o reconhecimento de padrões de dispositivos
e, muitas vezes, não percebe. Os celulares possuem diversas funcionalidades que os aplicam: os mais
modernos são desbloqueados por meio do reconhecimento facial ou biométrico, que é desenvolvido
com base na análise e comparação de dados. Se alguma outra pessoa que não seja o dono tentar acessar
um celular que é bloqueado por reconhecimento facial, este vai analisar a imagem que está recebendo,
processar essa imagem e identificar características nela e comparar com o padrão que foi gravado no
celular. Como não vai corresponder ao padrão, o celular não será desbloqueado. Da mesma forma
ocorre o reconhecimento biométrico.
Mas, posso citar também o reconhecimento de voz, também presente em muitos celulares modernos.
O reconhecimento de voz permite interagir com o assistente virtual e solicitar ações. Assim, o sistema
vai receber o comando em voz de uma pessoa, processar aquele som e identificar sinais característicos,
comparar com o padrão gravado em sua memória e executar ações com base no resultado da comparação.
As redes sociais – que você opera com ajuda do celular também – utilizam o reconhecimento de
padrões para aprender sobre aqueles assuntos que mais interessam a você, que podem engajar mais
ou qual o produto indicar que tem potencial de compra, de acordo com o padrão identificado em suas
ações dentro da rede.
Esses são apenas alguns exemplos. Podemos encontrar vários outros, como reconhecimento de ima-
gem aplicado em carros autônomos, câmeras de segurança e acesso, assistentes virtuais, entre outros. O
reconhecimento de padrões, além de permitir a aprendizagem de máquina (porque a máquina vai usar
esses dados processados em seu processo de aprendizagem), permite que essa análise e identificação
de semelhanças em dados sejam analisados de forma rápida e prática, deixando as tarefas com essas
ferramentas mais objetivas e fáceis de manipular.

240
Elabore um mapa mental com o que aprendeu nesta unidade, principalmente destacando as carac-
terísticas e aplicações do reconhecimento de padrões. Caso precise de ajuda na elaboração, utilize
o modelo a seguir, completando as informações. Você pode preencher os dados aqui, ou utilizar a
ferramenta gratuita https://www.goconqr.com/.

Faz parte da ________________ de máquina

Características
Descoberta automática de
regularidades nos dados através do
RECONHECIMENTO uso de algoritmos de computador
DE PADRÕES
Etapas

Filtro de spam

Aquisição de dados; Estatística;


____________________; Estrutural;
Extração de características; ______________
Classificação de dados;
Reconhecimento _____________________
biométrico

241
1. O reconhecimento de padrões é um método que permite analisar dados e identificar seme-
lhanças e recorrências neles, utilizando algoritmos de aprendizagem de máquina. Com relação
a esse tema, analise as seguintes frases e determine se são verdadeiras ou falsas.

I) O campo de estudo de reconhecimento de padrões se preocupa com o fornecimento de


dados e informações por um especialista na área, para que isso promova a aprendizagem
de máquina.
II) A capacidade de aprendizado é obtida mediante o reconhecimento de padrões, uma vez que
ele permite a análise de dados fornecidos e a identificação de padrões nesses dados, que
permitem que um programa ou máquina se ajuste ou promova uma solução.
III) O reconhecimento de padrões serve para apresentar uma resposta adequada para possíveis
entradas, por meio de uma escolha aleatória nos dados.

Marque a alternativa correta sobre o algoritmo de busca.

a) Os itens I e II estão corretos.


b) Somente o item II é correto.
c) Somente o item III é correto.
d) Somente o item I é correto.
e) Os itens I e III estão corretos.

2. “Transforma as variáveis de entrada originais em um novo espaço de variáveis para facilitar o


processo de reconhecimento de padrões e reduzir o esforço computacional. Essa etapa reduz
a variabilidade dos dados facilitando a classificação pelo algoritmo, sendo também chamada
de extração de recursos. Tanto os dados de treinamento quanto os de teste devem passar por
essa etapa”. Marque a alternativa que corresponde à etapa do processo de reconhecimento
de padrão acima:

a) Pós-processamento.
b) Aquisição de dados.
c) Classificação de dados.
d) Pré-processamento.
e) Extração de características.

3. O reconhecimento de padrões é um campo de estudo importante dentro da aprendizagem


de máquina e inteligência artificial. Permite que sejam desenvolvidos sistemas que consigam
adquirir e processar dados para embasar ações e decisões. Podemos encontrar seu uso na
automação de máquinas industriais de diagnóstico de falhas ou defeitos, por exemplo. Disserte
entre 8 a 10 linhas as vantagens e desvantagens da aplicação do reconhecimento de padrão
por imagem, de forma automatizada, dentro da indústria.

242
243
UNIDADE 1

ALMEIDA, T. da S. et al. Inteligência artificial aplicada à navegação autônoma de robôs. 2012. Dis-
ponível em: https://ri.ufs.br/bitstream/riufs/701/1/Intelig%C3%AAnciaArtificalNavega%C3%A7%-
C3%A3o.pdf. Acesso em: 29 mar. 2022.

LUGER, G. F. Inteligência Artificial. Tradução de Daniel Vieira. 6. ed. São Paulo: Pearson Education
do Brasil, 2013.

NORVIG, P.; RUSSELL, S. Inteligência Artificial: uma abordagem moderna. 3. ed. Rio de Janeiro:
Elsevier, 2013.

UNIDADE 2

DICIO. Inteligência. [2022]. Disponível em: https://www.dicio.com.br/inteligencia/. Acesso em: 22


mar. 2022.

MITCHELL, T. Machine learning. Publisher: McGraw-Hill Education, 1997.

NORVIG, P.; RUSSELL, S. Inteligência Artificial: uma abordagem moderna. 3. ed. Rio de Janeiro:
Elsevier, 2013.

POWER PLATFORM. O que é um chatbot? [2022]. Disponível em: https://powervirtualagents.


microsoft.com/pt-br/what-is-a-chatbot/. Acesso em: 22 mar. 2022.

SILVA, M. L. D. da. Aprendizado de Máquina e Engenharia de Atributos em Predição de Vendas.


Monografia (Bacharel em Ciências) – Universidade Federal do Recôncavo da Bahia, Bahia, 2019.
Disponível em: https://www2.ufrb.edu.br/bcet/components/com_chronoforms5/chronoforms/
uploads/tcc/20190610202756_2018.2_TCC_Maxwell_Lincoln_Dantas_da_Silva_-_Aprendiza-
do_de_Mquina_e_Engenharia_de_Atributos_em_Predio_de_Vendas.pdf. Acesso em: 22 mar. 2022.

SIMON, H. A. Why should machines learn? In: MICHALSKI, R. S.; CARBONELL, J. G.; MITCHEL,
T. M. (Eds). Machine Learning. An Artificial Intelligence Approach, v.1. Palo Alto, CA: Tioga, 1983.

YOUTUBE. Árvore de decisão - Como funciona (Machine Learning). [2022]. 1 vídeo (51:32 min).
Publicado pelo canal Didática Tech. Disponível em: https://www.youtube.com/watch?v=W7Mf-
sE5av0c&ab_channel=Did%C3%A1ticaTech. Acesso em: 22 mar. 2022.

UNIDADE 3

BRACHMAN, R.J. The Future of Knowledge Representation. Proceedings Eighth National Con-
ference on Artificial Intelligence, Boston, v. 2, pp. 1082-1092, 1990.

BRASIL. Agência Nacional de Vigilância Sanitária. Microbiologia Clínica para o Controle de


Infecção Relacionada à Assistência à Saúde. Módulo 10 – Detecção dos Principais Mecanismos
de Resistência Bacteriana aos Antimicrobianos pelo Laboratório de Microbiologia Clínica/Agência

244
Nacional de Vigilância Sanitária. Brasília: Anvisa, 2020. Disponível em: https://www.gov.br/anvisa/
pt-br/centraisdeconteudo/publicacoes/servicosdesaude/publicacoes/modulo-10_manual-de-mi-
crobiologia.pdf. Acesso em: 22 mar. 2022.

LUGER, G. F. Inteligência Artificial. Tradução de Daniel Vieira. 6. ed. São Paulo: Pearson Education
do Brasil, 2013.

MINSKY, M. A Framework for Representing Knowledge. In: WINSTON, P. (Ed.). The Psychology
of Computer Vision. New York : McGraw-Hill. 1974. p. 211-277.

NORVIG, P.; RUSSELL, S. Inteligência Artificial: uma abordagem moderna. 3. ed. Rio de Janeiro:
Elsevier, 2013.

SOUTO, F. et al. Aplicação de sistemas especialistas para automatização do processo de seleção de


pessoal em uma organização. Anais do VIII SIMPROD, 2016.

UNIDADE 4

BASSO, D. E. Big Data. Curitiba: Contentus, 2020.

FERREIRA, R. P.; AFFONSO, C.; SASSI, R. J. A inteligência artificial para previsão do compor-
tamento do tráfego veicular urbano na cidade de São Paulo: uma proposta de melhoria na
distribuição física. On-line, [2022]. Disponível em: https://www.marinha.mil.br/spolm/sites/www.
marinha.mil.br.spolm/files/88356.pdf. Acesso em: 23 mar. 2022.

GOGONI, R. O que é Emulação. Meio Bit, 2020. Disponível em: https://tecnoblog.net/meiobi-


t/421444/o-que-e-emulacao/. Acesso em: 23 mar. 2022.

LUGER, G. F. Inteligência Artificial. Tradução de Daniel Vieira. 6. ed. São Paulo: Pearson Education
do Brasil, 2013.

NORVIG, P.; RUSSELL, S. Inteligência Artificial: uma abordagem moderna. 3. ed. Rio de Janeiro:
Elsevier, 2013.

TAURION, C. Big Data. Rio de Janeiro: Brasport, 2013.

WATERMAN, D. A. A guide to expert systems. Addison-Wesley Longman Publishing Co., Inc., 1985.

UNIDADE 5

GROOVER, M. Automação industrial e sistemas de manufatura. São Paulo: Pearson Prentice


Hall, 2011.

ISAACSON, W. Os inovadores - Como um grupo de hackers, gênios e geeks criaram a Revo-


lução Digital. São Paulo: Companhia das letras, 2014.

LUGER, G. F.; STUBBLEFIELD, W. A. AI algorithms, data structures, and idioms in Prolog,

245
Lisp, and Java. Pearson Addison-Wesley, 2009.

MEIDANIS, J. MC346 - Paradigmas de programação Lisp. 2014. Disponível em: https://www.


ic.unicamp.br/~meidanis/courses/mc346/2015s2/funcional/apostila-lisp.pdf. Acesso em: 25 mar.
2022.

NORVIG, P.; RUSSELL, S. Inteligência Artificial: uma abordagem moderna. 3. ed. Rio de Janeiro:
Elsevier, 2013.

PUGA, S. Banco de dados: implementação em SQL, PL/SQL e Oracle 11g. São Paulo: Peason Edu-
cacion do Brasil, 2013.

UNIDADE 6

DOVE, G. et al. UX Design Innovation: Challenges for Working with Machine Learning
as a Design Material. CHI ‘17: Proceedings of the 2017 CHI Conference on Human Factors
in Computing Systems. Online: 2017. Páginas 278–288. Disponível em: https://dl.acm.org/doi/
abs/10.1145/3025453.3025739. Acesso em: 25 mar. 2022.

LODI, S. CORDENZONI, W. Aplicação de produto do software utilizando a ISO/IEC 9126. Revista


Eletrônica Disciplinarum Scientia, v. 3, n. 1, 2002. Disponível em: https://periodicos.ufn.edu.br/
index.php/disciplinarumNT/article/view/1141/1082. Acesso em: 25 mar. 2022.

LUGER, G. F. Inteligência Artificial. Tradução de Daniel Vieira. 6. ed. São Paulo: Pearson Education
do Brasil, 2013.

MERRITT, D. Building Expert Systems in Prolog. Springer-Verlag, New York, 1989.

VALDATI, A. de B. Inteligência Artificial. Curitiba: Contentus, 2020.

UNIDADE 7

LUGER, G. F. Inteligência Artificial. Tradução de Daniel Vieira. 6. ed. São Paulo: Pearson Education
do Brasil, 2013.

MITCHELL, T. Machine learning. Publisher: McGraw-Hill Education, 1997.

NORVIG, P.; RUSSELL, S. Inteligência Artificial: uma abordagem moderna. 3. ed. Rio de Janeiro:
Elsevier, 2013.

PADRÃO, M.; YUGE, C. Chatbots e assistentes virtuais são iguais? Veja as principais questões. Ca-
nalTech, 2021. Disponível em: https://canaltech.com.br/inteligencia-artificial/chatbots-e-assisten-
te-virtual-diferenca-193303/. Acesso em: 26 mar. 2022.

VALDATI, A. de B. Inteligência Artificial. Curitiba: Contentus, 2020.

246
UNIDADE 8

HAYKIN, S. Redes neurais: princípios e prática. Bookman Editora, 2007.

LUGER, G. F. Inteligência Artificial. Tradução de Daniel Vieira. 6. ed. São Paulo: Pearson Education
do Brasil, 2013.

MEDEIROS, L. F. de. Inteligência artificial: uma abordagem introdutória. Curitiba: Intersaberes, 2018.

MITCHELL, T. Machine learning. Publisher: McGraw-Hill Education, 1997.

NORVIG, P.; RUSSELL, S. Inteligência Artificial: uma abordagem moderna. 3. ed. Rio de Janeiro:
Elsevier, 2013.

UNIDADE 9

BISHOP, C. M. Pattern recognition and machine learning. Springer, 2006. Disponível em: http://
users.isr.ist.utl.pt/~wurmd/Livros/school/Bishop%20-%20Pattern%20Recognition%20And%20
Machine%20Learning%20-%20Springer%20%202006.pdf. Acesso em: 29 mar. 2022.

FACELLI, K. et al. Inteligência artificial: uma abordagem de aprendizado de máquina. Rio de


Janeiro: LTC, 2011.

HART, P. E.; STORK, D. G.; DUDA, R. O. Pattern classification. Hoboken: Wiley, 2000.

LUGER, G. F. Inteligência Artificial. Tradução de Daniel Vieira. 6. ed. São Paulo: Pearson Education
do Brasil, 2013.

NASCIMENTO, J. P. R. do. Análise e Classificação de imagens baseadas em características de


textura utilizando matrizes de co-ocorrência. Dissertação apresentada como requisito parcial à
obtenção do grau de Mestre. Programa de Pós-Graduação em Informática, Setor de Ciências Exatas.
Universidade Federal do Paraná, Curitiba, 2003. Disponível em: https://acervodigital.ufpr.br/bits-
tream/handle/1884/25099/D%20-%20NASCIMENTO,%20JOAO%20PAULO%20RIBEIRO%20
DO.pdf?sequence=1 (ufpr.br). Acesso em: 29 mar. 2022.

NORVIG, P.; RUSSELL, S. Inteligência Artificial: uma abordagem moderna. 3. ed. Rio de Janeiro:
Elsevier, 2013.

247
UNIDADE 1

Técnicas da inteligência artificial


aplicadas a problemas de alta
complexidade

O que são:

Sequência as ações que permitem


chegar a solução do problema
ALGORITMOS DE PROCURA

Buscadores
de internet
APLICAÇÃO

TIPOS
Análise de ações IOT

Buscas exaustivas
Análise de dados
Buscas heurísticas Indústria

Verifica todos os nós


Indicaa forma como os seguindo uma sequencia
elementos são avaliados em
uma estrutura de dados

Nós mais promissores são


verificados primeiro

1. A.

I. Correto, pois a pesquisa linear ou sequencial permite a procura e localização de dados através da
avaliação de cada elemento em uma sequência, até que se encontre o elemento correspondente
ou que a lista de elementos seja totalmente percorrida.

II. Correto, pois os algoritmos consistem em uma série de instruções finitas para solucionar um
problema. Quando o problema é resolvido, o algoritmo pode ser reiniciado para atender a outro
objetivo e problema.

III. Incorreto, pois um algoritmo consiste em uma série de instruções ou operações, que informam
o que o programa ou sistema deve fazer, e que são estabelecidos com o objetivo de encontrar a
solução de um problema.

2. B. Está correta porque a pesquisa binária permite a procura e localização de dados realizada de
forma que os dados ordenados são divididos ao meio, e a busca acontece da metade para uma das
extremidades, conforme a metade em que a solução se encontre (por isso se baseia no princípio
dividir e conquistar). Assim, ele é mais eficiente que a pesquisa linear, uma vez que não precisará
percorrer todos os elementos – apenas percorre, no máximo, a metade deles. Por outro lado, para
que a pesquisa binária funcione, os dados devem estar ordenados.

3. Espera-se que o aluno explique que os algoritmos fazem parte da maioria dos equipamentos na

248
atualidade, desde robôs em casa ou mesmo em celulares. A importância crescente de algoritmos e
automação na coleta, composição e distribuição de produtos, bem como nas operações de limpeza
nas fábricas. Os algoritmos têm sido desenvolvidos e aperfeiçoados para possibilitar a execução de
tarefas e ações de forma autônoma por máquinas e equipamentos. Na indústria, isso possibilita usar
esses equipamentos em situações inseguras, perigosas, insalubres, além de auxiliar no conforto e
ergonomia dos trabalhadores. Também permite ganhos de produtividade e qualidade. Contudo,
tudo isso só é possível através da aplicação e análise de algoritmos bem desenvolvidos, para que
as máquinas façam exatamente o que precisa ser feito – empacotar, inspecionar, desativar equipa-
mentos, entre outras atividades. Nas residências, a automação também pode ser aplicada trazendo
conforto e agilidade na realização de atividades domésticas.

UNIDADE 2

Caro(a) aluno(a), o Mapa de Empatia deve ser preenchido com suas próprias experiências, mas,
caso lhe interesse, considere essas minhas experiências, que usei para preencher meu próprio
Mapa de Empatia. Nas próximas unidades, você saberá como preencher quaisquer eventuais
mapas de empatia!

O que você pensa e sente sobre a utilização das árvores de decisão no seu cotidiano?

As árvores de decisão estão presentes no nosso cotidiano, não só relacionadas à computação e


inteligência artificial. Quando precisamos decidir algo, mentalmente, trabalhamos com árvores de
decisão que nos dizem a ordem de tomada de decisão ou ações que iremos executar. Na unida-
de, vimos o exemplo quando o computador pessoal não responde. Qual saída vem a sua cabeça
primeiro, quando isso acontece? E se essa saída não funcionar, qual a segunda saída que imagina
para solucionar esse problema? E assim a árvore de decisão vai sendo construída mentalmente.

O que você ouviu falar sobre a Inteligência Artificial e que hoje você tem outro entendi-
mento?

Por muito tempo, a inteligência artificial era apenas apresentada como o desenvolvimento de
robôs humanoides, que tentavam imitar os humanos em suas ações e reações até com um tom
ameaçador, mas agora, entendemos que consiste em simular o comportamento inteligente dos
humanos nos mais diversos setores, como forma de auxiliar ou possibilitar a execução de tarefas
com maior precisão, segurança e agilidade. Em uma empresa, por exemplo, pode ser aplicada uma
inteligência artificial para que, a partir de dados do histórico de vendas e outras informações, possi-
bilite a tomada de decisões mais adequada sobre aspectos da atuação dela no futuro ou produtos
a serem priorizados. Na automação, a inteligência artificial pode ser aplicada para promover um
melhor funcionamento de um equipamento industrial ou eletrodoméstico, por exemplo otimizar a
realização de limpeza com aspiradores de pó robô.

O que você vê no uso da Inteligência Artificial no seu uso de decisões humanas?

Justamente porque a inteligência artificial busca imitar o comportamento inteligente humano.


Então, da mesma forma, ela vai analisar e decidir a sequência de ações ou decisões a se tomar em
determinados problemas ou análises.

O que a inteligência artificial faz para a sociedade?

249
A inteligência artificial tem auxiliado no desenvolvimento da sociedade em todos os aspectos. Ela
tem favorecido a otimização de processos produtivos e de atendimento ao cliente, promovendo
não só o atendimento das necessidades desta, mas também o conforto e a qualidade de vida.

Quais as dores, ou seja, as dificuldades para que empresas e instituições adquiram IA nos
seus processos?

O conhecimento na área ainda é uma barreira. Apenas nos últimos anos a inteligência artificial co-
meçou a ser efetivamente debatida e estudada com mais frequência. E nesse sentido, pelo menos
nacionalmente, ainda temos relativamente poucos profissionais aptos para desenvolver e manipular
sistemas utilizando a inteligência artificial. Além disso, muitas ferramentas dentro desse campo de
pesquisa ainda estão sendo estudadas e desenvolvidas, sem ainda aplicação prática efetiva.

Quais os objetivos da IA e da árvore de decisão?

O objetivo da inteligência artificial é simular artificialmente a inteligência de humanos em máquinas.


Assim, promover que eles consigam adquirir informações, utilizar essas informações para aprender
e fazer conexões que possibilitem tomar decisões. O objetivo é simular o comportamento inteligente
de humanos.

O objetivo da árvore de decisão é tornar possível a obtenção automática, por meio de um progra-
ma computacional, de uma decisão de saída que é baseada em regras aprendidas pela máquina e
dados informados previamente. Assim, tem o objetivo de promover a aprendizagem de máquina,
fazendo com que ela adquira novos conhecimentos e habilidades que podem ser aplicadas em
vários problemas ou situações semelhantes.

1. C.

I. Correto, pois as árvores de decisão são um recurso existente dentro da aprendizagem de má-
quinas, que possibilita, a partir de exemplos, que um algoritmo treine e consiga selecionar ações
e decisões através do aprendizado, melhorando seu desempenho à medida que vai executando.

II. Errado, pois as árvores de decisão fornecem um processo de tomada de decisão científica ba-
seado em fatos e valores, e não na intuição. Os dados de treinamento são fornecidos e com base
neles a tomada de decisão é realizada.

III. Correto, pois a árvore de decisão é realmente uma função que, a partir de um vetor de valores
de atributos de entrada, que podem ser contínuos ou discretos, e com dados de treinamento, pos-
sibilita a tomada de decisão, que é um valor de saída que também pode ser contínuo ou discreto.

2. C. A alternativa C está correta porque o algoritmo Iterative Dichotomiser 3 (ID3, que traduzido
significa dicotomia iterativa) é o sucessor do CLS, conforme abordado anteriormente na unidade.
Permite criar árvores de decisão com múltiplos ramos e cada “nó” é associado a uma característica
categórica que resultará no maior ganho de informação. Dessa forma, esse algoritmo tem o objetivo
de maximizar o ganho de informação enquanto minimiza a entropia, mediante testes estatísticos. O
processo é aplicado de forma recursiva, classificando os exemplos de treinamento para organizar
os atributos em “nós”.

3. A. A alternativa A está correta porque a entropia constitui uma função de avaliação que indica a
desordem dos dados. Quanto maior a entropia, maior a desordem e incerteza, ou seja, maior a
falta de conhecimento sobre os dados. Por outro lado, quanto menor a entropia, menor a incerteza

250
relacionada aos dados. Essa função de avaliação é aplicada progressivamente em cada nível para
organizar os atributos na árvore de decisão, e quanto menor a entropia, mais simples é o arranjo
dos estados. Os atributos são selecionados de acordo com o maior ganho de informação. A árvore
de decisão é desenvolvida ao estabelecer regras sobre as variáveis que retornam o maior ganho de
informação, que equivale a menor entropia e a ramos das árvores mais homogêneos. A entropia
indica a desordem dos dados, então o algoritmo busca sua diminuição, enquanto procura o aumento
do ganho de informação para selecionar os atributos da melhor forma.

4. Espera-se que o aluno explique que, assim como as características de um gato ou cachorro po-
dem ser utilizadas e testadas para verificação e classificação utilizando uma árvore de decisão, as
características faciais de humanos também. Assim, poderiam ser utilizadas características como
abertura dos olhos e da boca, altura da sobrancelha, presença de dentes ou não, se há lágrimas,
comprimento de lábios, aparecimento de rugas de expressão, entre outras, para que com essas
características consiga identificar se o humano está triste, feliz, surpreso, chorando, entre outras
emoções e expressões.

UNIDADE 3

Do inglês "Knowledge Base


(KB)", consiste em um grupo de
Base de conhecimento sentenças ou informações

Verdades sobre o mundo real


ou sobre o que representamos Comportamento relacionado com o
Desempenho conhecimento de como executar
Fatos as ações

Metaconhecimento CONHECIMENTO Eventos

É o conhecimento que sabemos


São ações executadas no nosso mundo
Objeto

Consiste na análise de fatos sobre objetos existentes

1. C. A alternativa c está correta porque é por meio da representação do conhecimento que forne-
cemos informações a um computador, para que ele as utilize para resolver problemas simulando
o comportamento inteligente de humanos. Para essa representação, utilizamos um conjunto de
símbolos formais para representar esse conhecimento na forma de uma série de proposições. En-
tão, o estudo envolve tanto o fato de fornecer e representar esse conhecimento em um programa
de computador como desenvolver métodos de raciocínio para que o programa consiga produzir
novas proposições com base naquelas previamente fornecidas. A representação e raciocínio do
conhecimento é a área de IA que se preocupa em como o conhecimento pode ser representado
simbolicamente e manipulado de forma automatizada por programas de raciocínio. Mais informal-
mente, é a parte da IA ​​que se preocupa com o pensamento e como ele contribui para o compor-
tamento inteligente. Na representação do conhecimento, as quatro abordagens que, no geral, são
aplicadas são: conhecimento relacional simples, em que os fatos sobre um conjunto de objetos são

251
relacionados em colunas; conhecimento herdável, no qual os dados são armazenados conforme
uma hierarquia de classes, e é aplicada a propriedade herança em que elementos herdam valores
de outros dentro de uma classe; conhecimento inferencial, em que o conhecimento é represen-
tado na forma de lógicas formais, permitindo obter mais fatos; e o conhecimento processual, no
qual programas e códigos são utilizados para descrever como fazer as coisas específicas e como
proceder. A regra SE-ENTÃO é utilizada nesse último caso.

2. E.

I - Correto. Os sistemas de produção operam segundo um ciclo composto por três passos: reco-
nhecer, que consiste em encontrar quais regras que as condições são satisfeitas pela memória
de trabalho atual, ou seja, aquelas que são aplicáveis; resolver conflito, etapa que vai verificar e
escolher dentre as regras encontradas no primeiro passo, que é denominado conjunto de conflito,
qual deve ter a chance de ser executada primeiro; e agir, que executa as ações consequentes das
regras selecionadas no passo anterior, modificando a memória de trabalho. Estes são repetidos
até que nenhuma regra consiga ser aplicada na memória.

II - Incorreto. Os sistemas de produção são baseados em regras, que são chamadas regras de pro-
dução. A estrutura de uma regra de produção possui duas partes: um conjunto de condições que
antecedem um conjunto de ações. São escritas no formato “SE condições ENTÃO ações”.

III - Incorreto. A memória de trabalho é volátil, pois muda constantemente conforme as regras são
executadas. A memória de trabalho contém a descrição do estado atual de resolução de problemas
e a regra pode escrever conhecimento para a memória de trabalho.

3. Espera-se que o aluno explique que a representação do conhecimento utilizando frames se aproxima
do comportamento humano inteligente porque permite desenvolver conexões implícitas em um
problema por meio de uma estrutura de dados explícita e organizada. O conhecimento humano
se apresenta na forma de quadros, ou frames, com uma estrutura organizada sobre objetos que
permite realizar previsões sobre eles, verificando a presença de certo objeto mediante percepções
ou deduzindo que este pertence à determinada categoria devido às propriedades que apresenta. É
uma combinação de métodos e ferramentas para descrever ações e atividades do cérebro humano.

252
UNIDADE 4

Possuem conhecimentos específicos


Emula a capacidade de raciocínio humano sobre um domínio problemático

Sistema baseado em conhecimento Atuam em problemas que não


apresentam solução
convencional de forma
algorítmica ou que a resposta
apresentada nesse caso é muito
demorada

SISTEMAS ESPECIALISTAS

Utiliza o domínio intelectual de


Simula o raciocínio e um especialista em um programa
comportamento inteligente computacional
de humanos

Possibilita a utilização de métodos


heurísticos para resolver o problema

1. C. Pois o item II descreve um sistema convencional, não baseado em conhecimento. Esses sistemas
convencionais são baseados em algoritmos que manipulam dados em processos repetitivos, emi-
tindo um resultado final correto e não fazendo inferências a partir de informações fornecidas pelo
usuário. Não é o que acontece com os sistemas especialistas, que são um tipo de sistema baseado
em conhecimento no qual é possível trabalhar com problemas que não apresentam solução con-
vencional, utilizando e representando o conhecimento e realizando o raciocínio e comportamento
inteligente semelhante ao de humanos.

2. D. Pois na segunda coluna, a primeira afirmativa trata de um sistema especialista neural, que se
baseia na equivalência entre neurônios e sinapses, para promover o aprendizado em máquinas. A
segunda diz respeito a sistema especialista baseado em frames, que apresentam a característica de
herança entre classes de dados, conforme uma hierarquia, em que os dados descendentes apre-
sentam características das classes na parte superior da hierarquia. A terceira trata de um sistema
baseado em regras, que lidam com regras se-então para manipular e inferir o conhecimento. A
seguinte trata de um sistema especialista neuro-fuzzy, que combina as características de um siste-
ma especialista neural com um fuzzy para promover e utilizar o conhecimento. E por fim, é feita a
definição de um sistema especialista fuzzy, que se baseia no modo vago e incerto de pensamento
humano, permitindo trabalhar com graduações de parâmetros para a formação do conhecimento.

3. Espera-se que o aluno explique que para o desenvolvimento de um sistema especialista voltado para
diagnosticar problemas em automóveis seria necessário ter contato com engenheiros e especialis-
tas na área, que tivessem conhecimento teórico e prático dentro dos diversos sistemas presentes
nos automóveis, como o de exaustão, de refrigeração, ar-condicionado, propulsão, alimentação de
combustível etc. Esse conhecimento deveria ser adquirido por meio desses especialistas e oferecido
a uma base de conhecimento de um programa. Em seguida, criar um motor de inferência para atuar
em conjunto com a base de conhecimento e uma interface de usuário, permitindo que, de acordo
com as condições de funcionamento apresentadas pelo automóvel, por exemplo, temperatura
do motor, quantidade de monóxido de carbono nos gases de exaustão ou taxa de consumo de
combustível, pudesse se identificar que há algum problema e com isso ativar as ações necessárias
para identificar e corrigir o problema. Poderia, inclusive, aplicar um sistema especialista baseado
em regras, semelhante ao exemplo dado para caldeiras no nosso conteúdo.

253
UNIDADE 5

Linguagem
funcional
LINGUAGENS DE PROGRAMAÇÃO
Programação lógica
Estrutura com predicados Processamento de lista
Prolog e argumentos
Lisp
Trabalha com expressões,
Utiliza fatos e listas e funções recursivas
regras lógicas
Revursão
Linguagem declarativa
Se baseia em estrutura de
Opera como um programa dados e programas em lista
de processamento de dados

Boa integração com


outros códigos
Unificação, backtracking,
recursão

1. B. Porque a linguagem de programação possibilita a criação de programas de computadores e ou-


tros equipamentos, mediante um conjunto de instruções que controlam o comportamento deles.
Temos várias linguagens de programação diferentes, com diferentes características e aplicações.
As linguagens Lisp e Prolog, por exemplo, são duas delas e têm características distintas. As lingua-
gens podem ser de alto ou baixo nível, sendo que as de alto nível apresentam uma maior facilidade
de compreensão e domínio pelas pessoas. O vocabulário básico de uma estrutura e projeto de
programação é composto por três princípios fundamentais: sintaxe, nomes e tipos e semântica, e
deles, a sintaxe vai nos dizer a gramática utilizada para escrever programas, ou seja, o conjunto de
palavras e símbolos utilizados para que este seja desenvolvido de forma correta.

2. C. Porque Prolog é uma linguagem de programação baseada em lógica e declarativa, direcionada


não para o que o computador deve fazer, mas nas condições que uma solução deve satisfazer.
Isto é, consiste em uma declaração das condições lógicas que uma solução de um problema deve
atender. Prolog trabalha com uma sequência lógica de inferências para seu processamento. Isso
possibilita que os programadores coloquem toda a atenção na solução do problema em vez de se
preocupar com os detalhes de escrita de instruções algorítmicas de baixo nível.

3. Espera-se que o aluno comente os exemplos apresentados na unidade que denotam aplicações da
linguagem Lisp na automação. Nós vimos o exemplo dos bancos digitais e AutoCAD, por exemplo,
que utilizam dialetos de Lisp para executar suas ações. Com isso, conseguimos realizar ações e ser-
viços diferentes e especializados, mediante as instruções estabelecidas em um programa construído
com essa linguagem. Além disso, o aluno pode pesquisar outras aplicações na internet, para citar
temos o Emacs, que é um editor de texto, mas que se assemelha com uma máquina Lisp virtual.

254
UNIDADE 6

DESENVOLVIMENTO DE
SISTEMAS ESPECIALISTAS

Pessoas
envolvidas
Componentes
Módulo de aquisição
de conhecimento
Módulo de Possibilitam a geração de
explicação sistemas especialistas

Interface
do usuário
Engenheiro de Arity Prolog, Expert Sinta,
conhecimento SPIRIT
Motor de inferência

1. D.

I. Incorreto, pois a base de conhecimento consiste no módulo onde o conhecimento obtido (por
meio de fatos, experiências e informações) é alocado e representado, para que por meio dele o
sistema possa elaborar soluções.

II. Incorreto, pois o motor de inferência manipula os dados da base de conhecimento e os interpreta
para encontrar a solução do problema.

III. Correto, é a interface de usuário que, com base em um código de programação, promove o
diálogo entre o usuário e o sistema.

2. B. O engenheiro de conhecimento é o profissional que vai capturar e codificar o conhecimento


obtido a partir do especialista no domínio, para que seja implementado no sistema e possibilite
que este encontre soluções de problemas embasadas no conhecimento. O especialista no domínio
é aquele que fornece o conhecimento específico da área ao engenheiro de conhecimento. Já o
usuário é aquele que vai acessar o sistema, fornecer restrições e o problema de entrada e vai obter
a solução como resposta. O engenheiro de sistemas é aquele que promoverá a personalização
quando for necessário.

3. Os sistemas especialistas podem ser aplicados na automação industrial em sistemas conhecidos


como supervisórios ou nos sistemas de diagnóstico de falhas, por exemplo. No primeiro caso, o
sistema especialista permitiria a integração de equipamentos e processos de forma adequada,
controlando e monitorando os diversos setpoints e atuadores. Para isso, o sistema deve ser alimen-
tado pelo conhecimento de um especialista, que indique todas as características dos processos.
No diagnóstico de falhas, permite que com o conhecimento fornecido de um especialista, consiga
automaticamente identificar problemas de manutenção ou execução dos processos produtivos.

255
UNIDADE 7

Aprendizado automático

Capacidade de um programa de computador Aprendizado a partir de exemplos,


de aprender e se adaptar a novos e mutáveis de aconselhamentos de alto nível
dados, sem que seja necessária a intervenção Características ou de suas próprias explorações
humana para isso do domínio

APRENDIZAGEM DE MÁQUINA
Módulo de desempenho

Aprendizagem supervisionada Módulo crítico


Componentes

Classificação Aprendizagem por reforço


Módulo generalizador

Aprendizagem não supervisionada


Módulo gerador de experimentos

1. A.

I. Correto, pois a aprendizagem de máquina se baseia justamente no aprendizado que o programa


é submetido ao longo do tempo, analisando e se adaptando a novos dados e interações com o
mundo e com a própria experiência na execução de suas atividades.

II. Correto, pois, na aprendizagem de máquina, é implementado um algoritmo ou código que per-
mite que a máquina utilize dados para aprender com eles e, com isso, fornecer previsões de saída
e tomadas de decisão. Com isso, o programa consegue aprender e se adaptar a dados sem que
seja necessária intervenção humana.

III. Incorreto, pois a aprendizagem de máquinas é útil em muitas situações em que o projetista não
consegue prever as situações com que o programa vai lidar para que consiga fazer essa alteração
na programação. Além disso, devido a limitações técnicas e humanas frequentemente encontradas
na área, alguns problemas só podem ser resolvidos com algoritmos de aprendizagem.

2. A. A alternativa “a” está correta porque a aprendizagem supervisionada utiliza um conjunto de exem-
plos de relações adequadas entre entradas e saídas como treinamento e busca entre as possíveis
hipóteses qual apresenta melhor desempenho, mesmo diante de novas situações, ou seja, qual
apresenta uma relação semelhante entre a entrada e a saída.

3. Espera-se que o aluno explique que, com a aprendizagem de máquinas, os carros autônomos
podem, através de reconhecimento de imagem e outras informações por exemplo da internet e
do GPS, reconhecer obstáculos e tomar decisões, orientando-se na estrada de maneira adequada.
Essa decisão deve ser feita rapidamente e deve levar em conta a combinação de todas as infor-
mações obtidas naquele momento. A Tesla, por exemplo, utiliza a aprendizagem de máquina para
desenvolver seus automóveis que, por enquanto, são denominados semiautônomos. Nestes, há
um conjunto de câmaras com visão computacional para captar informações ao redor do automóvel
e, com essas informações, permitir a adequada movimentação na estrada.

256
UNIDADE 8

Mecanismo de aprendizagem
Redes Neutrais Artificiais de máquina Redes neutrais com múltiplas
Estudo baseado na camadas fazem parte do deep
neurociência, na forma como learning
o cérebro humano processa
informações

REDES NEUTRAIS ARTIFICIAIS


Rede de alimentação
para frente
Sinais de entrada Tipos de estruturas
Redes recorrentes
Elementos básicos Sinapses

Somador Redes neurais convolucionais

Função de ativação Redes neurais de autoencodificador

Bias

1. E.

I. Correto, pois as redes neurais artificiais é uma abordagem contida dentro do estudo de aprendi-
zagem de máquinas, pois com ela é possível submeter um computador ou máquina ao processo
de aprendizagem a partir de exemplos ou da experiência, em um processo de treinamento em que
os pesos sinápticos são atualizados.

II. Incorreto, pois as redes neurais artificiais podem apresentar diferentes formas e estruturas de
redes, desde as simples, com poucas camadas de neurônios, até aquelas com muitas camadas de
neurônios, sendo apenas essas últimas presentes no estudo do Deep Learning.

III. Correto, as redes neurais artificiais têm diversas outras nomenclaturas como redes conexionistas,
neurocomputadores, processadores paralelamente distribuídos, entre outras nomeações. O termo
processadores paralelamente distribuídos busca emular as capacidades de processamento de
informação dos neurônios biológicos, que devem seguir processos altamente paralelos operando
em representações que são distribuídas por muitos neurônios.

2. B. Correta porque o perceptron consiste em uma rede neural simples, não possuindo camadas
ocultas, ou seja, todas as entradas da rede são conectadas diretamente a saídas, apresentando
apenas uma camada de neurônios. O ajuste de pesos é realizado quando a rede é submetida a
um problema. Uma rede perceptron com n saídas possui n redes separadas, onde cada saída é
afetada por cada peso.

3. Espera-se que o aluno explique que as redes neurais artificiais permitiram que se trabalhasse com
problemas complexos e uma grande quantidade de dados. E hoje em dia, a maior parte das possi-
bilidades de progresso tecnológico envolve essas características. Um exemplo que podemos citar
é o mecanismo de reconhecimento facial colocado em algumas cidades para garantir a segurança
dos indivíduos. Esse mecanismo tem que ser bem desenvolvido, porque vai se basear numa enor-
me quantidade de dados de cidadãos daquele local ou de pessoas suspeitas ou procuradas pela
justiça. Essas informações obtidas por imagens com câmeras devem ser convertidas em texto para
serem processadas em um algoritmo de aprendizagem com rede neural, de forma que, com esses
dados de entrada, o sistema treine e consiga identificar pessoas a partir de imagens. Isso precisa
ser bem desenvolvido para ser confiável e preciso, possibilitando a intervenção da polícia quando
necessário e evitando más-interpretações dessas imagens.

257
UNIDADE 9

Faz parte da aprendizagem de máquina

Características
Descoberta automática de
regularidades nos dados através do
uso de algoritmos de computador
RECONHECIMENTO
DE PADRÕES
Etapas

Abordagens
Aplicações Filtro de spam

Estatística;
Reconhecimento Aquisição de dados; Estrutural;
facial Pré-processamento de dados; Neural
Extração de características;
Classificação de dados;
Reconhecimento Pós-processamento
Reconhecimento biométrico
de voz

1. B.

I. Incorreto, pois o campo de estudo do reconhecimento de padrões se preocupa com a descoberta


automática de semelhanças e recorrências em dados utilizando algoritmos de computador, e é esse
processo que permite a aprendizagem de máquina.

II. Correto, pois o reconhecimento de padrões permite que uma máquina possa aprender, uma vez
que ela vai conseguir identificar e classificar características, reconhecendo semelhanças e diferenças,
e com base nessa análise de dados tomar decisões e ações.

III. Incorreto, pois o reconhecimento de padrões permite apresentar uma resposta adequada de
acordo com as entradas, por meio de uma correspondência provável que é observada entre carac-
terísticas nos dados. Isto é, análises de semelhanças por meio de comparação.

2. D. Pois é o pré-processamento que permite aplicar um processamento prévio nos dados que fo-
ram aquisitados na etapa anterior e, com isso, reduzir a quantidade de detalhes, mas mantendo
as informações discriminatórias úteis. Permite, assim, desprezar as informações desnecessárias,
fazendo com que o algoritmo lide apenas com objetos relevantes para o reconhecimento e, com
isso, reduz o esforço computacional.

3. Espera-se que o aluno explique que a utilização do reconhecimento de padrão em imagens na


indústria pode apresentar oportunidades e riscos. Entre as oportunidades, podemos destacar o
aumento de produtividade, uma vez que poderia automatizar tarefas que antes eram realizadas por
outras técnicas, como a manual. No exemplo de análise de defeitos, uma câmera poderia captar
imagens de peças produzidas, processar essas imagens e identificar se há características nelas que
se assemelham ao padrão de defeitos ou erros. Isso reduziria custos com mão de obra e tempo.
Contudo, precisamos reconhecer que um sistema desse tipo vai envolver um alto nível de comple-
xidade e custo computacional para garantir a precisão e confiabilidade. Então, é importante fazer
testes e conhecer o desempenho real do equipamento com essa funcionalidade de reconhecimento
de padrão, para verificar se não vai trazer riscos e custos devido a erros de identificação.

258

Você também pode gostar