Você está na página 1de 29

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/221875658

Elementos de inteligência artificial para análise de sistemas e sistemas de


informação

Chapter · March 2013

CITATIONS READS

0 490

1 author:

Wagner Arbex
Brazilian Agricultural Research Corporation (EMBRAPA)
62 PUBLICATIONS   31 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Modelos computacionais para estabelecimento de meios e procedimentos metodológicos para análise de dados em bioinformática - MCBio
View project

Estratégias de melhoramento genético para as raças Gir Leiteiro, Guzerá, Sindi e Girolando em sistemas sustentáveis de produção de leite
View project

All content following this page was uploaded by Wagner Arbex on 15 May 2014.

The user has requested enhancement of the downloaded file.


Elementos de Inteligência Artificial para
Análise de Sistemas e Sistemas de Informação

Universidade Salgado de Oliveira


Análise de Sistemas
Inteligência Artificial

Wagner Arbex
arbex AT jf.universo.edu.br
arbex AT arbex.pro.br

Versão 11.1
Sumário

Apresentação p. 4

1 Introdução p. 5

1.1 Histórico: o Teorema de Pitágoras e o Último Teorema de Fermat . . p. 5

1.1.1 Exercícios ou questões importantes . . . . . . . . . . . . . . . . p. 5

1.2 Primeiros trabalhos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 5

1.2.1 Alan Mathison Turing: o teste de Turing, a máquina de Tu-


ring, o Problema da Parada e a prova de teoremas . . . . . p. 5

1.2.2 Computing Machinery and Intelligence (TURING, 1950) . . . . p. 5

1.2.3 Marvin Minsk e Dean Edmond . . . . . . . . . . . . . . . . . . . p. 6

1.2.4 Linguística moderna + IA = processamento de linguagem


natural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 6

1.2.5 Exercícios ou questões importantes . . . . . . . . . . . . . . . . p. 6

2 Abordagem da IA por meio de agentes p. 7

2.1 Agentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 7

2.2 Aplicação de agentes na Teoria dos Jogos . . . . . . . . . . . . . . . p. 8

2.2.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 8

2.2.2 O problema do Dilema do Prisioneiro . . . . . . . . . . . . . . . p. 8

2.2.3 O problema do “Truelo” . . . . . . . . . . . . . . . . . . . . . . . p. 10

2.2.4 Exercícios ou questões importantes . . . . . . . . . . . . . . . . p. 11

2.3 Estrutura e tipos de agentes . . . . . . . . . . . . . . . . . . . . . . . . p. 11

2.3.1 Agentes reativos simples . . . . . . . . . . . . . . . . . . . . . . p. 12

2.3.2 Agentes reativos baseados em modelos . . . . . . . . . . . . p. 13


2.3.3 Agentes baseados em objetivos . . . . . . . . . . . . . . . . . p. 14

2.3.4 Agentes baseados em utilidade . . . . . . . . . . . . . . . . . p. 15

2.3.5 Agentes com aprendizado ou agentes com aprendizagem p. 16

2.3.6 Exercícios ou questões importantes . . . . . . . . . . . . . . . . p. 17

3 Descoberta de conhecimento em bases de dados p. 18

3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 18

3.2 Aprendizado de máquina e mineração de dados . . . . . . . . . . . p. 21

3.3 Técnicas e tarefas de mineração de dados . . . . . . . . . . . . . . . p. 23

3.4 Exercícios ou questões importantes . . . . . . . . . . . . . . . . . . . . p. 23

Referências p. 24

Anexo A -- Os grandes mestres e o crescimento global (ROGOFF, 2010) p. 26


4

Apresentação

O presente texto introduz a disciplina Inteligência Artificial (IA), apresentando


seu histórico, seus fundamentos e algumas aplicações no cenário da informática
e da computação. O conteúdo aqui apresentado foi elaborado a partir dos
trabalhos citados ao longo do texto, bem como, de outras referências relacio-
nadas ao final. Sua abordagem e principais referências seguem Russel e Norvig
(2004, 2009).

Ao ler este texto, lembre-se:

esse texto é somente uma referência e, obrigatoriamente, deve ser


acompanhado de estudo complementar

e... bom proveito.


5

1 Introdução

1.1 Histórico: o Teorema de Pitágoras e o Último Teo-


rema de Fermat

Discutido em sala a partir de Singh (1998) e sem distribuição de material im-


presso.

1.1.1 Exercícios ou questões importantes

1. Segundo Carvalho (2005), como surgiu e como se define IA?

2. Por que IA ainda é uma área de pesquisa “aberta”?

1.2 Primeiros trabalhos

1.2.1 Alan Mathison Turing: o teste de Turing, a máquina de Turing,


o Problema da Parada e a prova de teoremas

Discutido em sala e sem distribuição de material impresso.

1.2.2 Computing Machinery and Intelligence (TURING, 1950)

Primeiro trabalho com uma visão completa de IA, abordando aprendizado


de máquina, algoritmos genéticos e aprendizagem por reforço (RUSSEL; NORVIG,
2004).
6

1.2.3 Marvin Minsk e Dean Edmond

Construíram o primeiro computador de rede neuronal1 , em 1951, na Universi-


dade de Princeton, enquanto eram alunos do curso de matemática.

1.2.4 Linguística moderna + IA = processamento de linguagem na-


tural

O problema da compreensão da linguagem mostrou-se mais complexo do


que se imaginava, estreitando os caminhos da linguística com a IA, principal-
mente a partir de Chomsky (1957), e, então, estabelecendo um novo campo de
estudo conhecido como processamento de linguagem natural (PNL) ou linguís-
tica computacional.

1.2.5 Exercícios ou questões importantes

1. Quais são as principais “linhas” de estudo a IA?

2. Quais surgiram e como são definidas essas “linhas” de estudo?

3. Quais são as semelhanças e as diferenças das propostas dessas “linhas” de


estudo?

4. Kenneth Rogoff é professor de Economia e Política Pública da Universidade


de Harvard e foi chefe da equipe de economistas do Fundo Monetário In-
ternacional. Em 8/1/2010, seu texto “Os grandes mestres e o crescimento
global” (ROGOFF, 2010), publicado no site ESTADÃO.COM.BR e que foi repro-
duzido no Anexo A, prevê grandes avanços para a sociedade, baseados
em IA. Entretanto, em determinado ponto, Rogoff afirma: “Somente uma
máquina pode dizer o que outro computador deve fazer em determinada
posição”. Leia o texto em questão e elabore uma justificativa se essa afir-
mativa, no contexto proposto, contraria, ou não, o Problema da Parada.

1
O termo neural networks, em inglês, refere-se indistintamente ao sistema nervoso como um
todo ou a um neurônio individualizado. Entretanto, em português, diferencia-se “neural”, ao
tratar-se do sistema nervoso no sentido amplo, de “neuronal”, ao tratar-se de neurônios e, assim,
uma rede de neurônios deve ser chamada de “rede neuronal”. Apesar disso, em 1994, a Socie-
dade Brasileira de Redes Neurais, adotou o termo “rede neural”, o que torna correto o seu uso.
Contudo, o a complementação desses termos com a palavra “artificial” - p. ex., rede neuronal
artificial ou rede neural artificial - não foi oficializada (CARVALHO, 2005).
7

2 Abordagem da IA por meio de


agentes

Esse texto trata de IA conforme a proposta de Russel e Norvig (2004, 2009),


que se baseia em agentes e suas implementações, os programas agentes, para
a execução de ações “inteligentes”1 . A partir do conhecimento dos tipos e fun-
cionamento dos agentes, estes serão associados possíveis aplicações.

2.1 Agentes

IA é o estudo de agentes que recebem percepções de um ambiente, ou


seja, são capazes de “perceber” o ambiente em que se encontram e executam
ações, mediante ao que percebem (Figura 1). São chamados de agentes inteli-
gentes, agentes racionais2 ou, simplesmente, agentes e, resumidamente, pode-
se dizer que são sistemas que decidem o que fazer e fazem.

Segundo Russel e Norvig (2004), “é tudo que pode ser considerado capaz de
perceber seu ambiente por meio de sensores e de agir sobre esse ambiente por
meio de atuadores”.

Agentes são, frequentemente, descritos por seus “ambientes de atuação”3


que são determinados por quatro atributos chamados de PEAS, isto é, desem-
penho, ambiente, atuadores e sensores, do inglês, performance, environment,
actuactors e sensors.
1
Esse texto não discute a capacidade ou possibilidade de sistemas de computação possuírem
ou adquirirem inteligência e, para os propósitos do mesmo, deve ser considerado que um sistema
de computação adquire e utiliza conhecimento de forma inteligente, caso seja capaz de utilizar-
se de informações prévias, primárias ou derivadas dessas, para inferir novos resultados ou novas
informações (ARBEX, 2009)
2
Agentes inteligentes são aqueles capazes de executarem uma tarefa, mas a ideia de que
alguns agentes podem se comportar melhor do que outros, ou seja, podem resolver melhor a
tarefa do outros agentes, estabelece a ideia de agentes racionais.
3
Ou “ambiente de ação” que são traduções livres de task environment.
8

Agent Sensors
Percepts

Environment
?

Actions
Actuators

Figura 1: Interação agente-ambiente (RUSSEL; NORVIG, 2009).

2.2 Aplicação de agentes na Teoria dos Jogos

2.2.1 Introdução

A Teoria dos Jogos (TJ) (NEUMANN; MORGENSTERN, 1944) é uma forma de se mo-
delar problemas que envolvem dois ou mais “tomadores de decisões” e, por-
tanto, não se trata de regras ou formas de como se deve jogar um determinado
jogo, mas de um mecanismo de análise de conflitos de interesses. Como, para a
IA, segundo Russel e Norvig (2004), os tomadores de decisão são agentes, então,
a TJ visualiza qualquer ambiente multiagente como um jogo e o que os agentes
fazem é escolherem diferentes ações para melhorarem seu retorno.

Os agentes que podem ter diferentes formas de relação entre si, p. ex., suas
decisões podem ser tomadas em separado, sem necessariamente estarem “co-
operando”, como no caso do Dilema do Prisioneiro (ver 2.2.2), ou exatamente o
contrário, quando a decisão de um agente pode influenciar na decisão do ou-
tro agente, isto é, a ação ou atuação de um agente pode ser mais um elemento
de percepção de outro agente e, portanto, pode influenciar na ação desse se-
gundo agente, como no caso do Truelo (ver 2.2.3). Entretanto, em qualquer um
dos casos, o “resultado do jogo” vai considerar a ação dos agentes envolvidos.

Em IA a TJ é utilizada, entre outras, como técnica de tomada de decisão e


de aprendizado de máquina.

2.2.2 O problema do Dilema do Prisioneiro

Dois assaltantes Alice (A) e Bob (B) são presos na cena do crime e são in-
terrogados separadamente. Para cada um deles é feita a mesma proposta de
9

testemunharem contra seu comparsa, mediante à redução da pena a qual po-


dem ser condenados (Tabela 1).
A: Testemunha A: Não testemunha
B: Testemunha A e B são setenciados a 1 ano A é sentenciado a 10 anos e B é solto
B: Não testemunha A é solto e B é sentenciado a 10 anos A e B são setenciados a cinco anos

Tabela 1: Aplicação da setença de prisão de acordo com a ação dos prisionei-


ros.

O que deve ser avaliado nesse “jogo” são as seguintes questões:

1. Qual a melhor situação para Alice?

2. Qual a melhor situação para Bob?

3. Qual a melhor situação para ambos, isto é, para todo o grupo?

A melhor situação para todo o grupo é conhecida como Equilíbrio de Nash4


que determina o valor “ótimo local” para a situação e também pode ser cha-
mado de “equilíbrio da estratégia dominante” ou “equilíbrio da dinâmica gover-
nante”.

Porém, existem algumas situações em que encontra-se o Equilíbrio de Nash,


mas não a estratégia dominante. P. ex., suponha que uma fabrica de jogos (J)
e outra de console para jogos (C) estejam decidindo se devem lançar, ou não,
seus próximos produtos em DVD ou blu-ray. O que elas podem saber é que toma-
rem as mesma decisão devem aumentar suas fatias de mercado, mas se toma-
rem decisões diferentes, perderão parte dessas fatias, conforme Tabela 2 (RUSSEL;
NORVIG, 2009).

J: DVD J: blu-ray
C: DVD J e C ganham mercado J e C perdem mercado
C: blu-ray J e C perdem mercado J e C ganham mercado

Tabela 2: Matriz de possibilidades de acordo com a ação das empresas.

Nesse caso, percebe-se o equilíbrio em duas diferentes situações, mas não


existem dados para otimizar a solução, isso é, para que se determine um ótimo
local para o resultado do jogo.
4
Segundo sua biografia na Wikipedia, John Fordes Nash Jr. é um matemático americano, nas-
cido em 1928, em Bluefild, West Virginia, que recebeu o Prêmio Nobel de Economia em 1994.
Além disso, sua tese, Non-cooperative Games, publicada em 1951, provou que existe, pelo me-
nos, um ponto de equilíbrio, denominado Equilíbrio de Nash, em jogos de estratégia para múl-
tiplos jogadores. No Equilíbrio de Nash nenhum jogador pode melhorar sua situação, de forma
individual, dada a estratégia seguida pelo jogador adversário.
10

2.2.3 O problema do “Truelo”

Um “truelo” é um “duelo para três pessoas” e, nesse caso, temos uma situ-
ação de multiagentes competitivos, isto é, que de alguma forma “cooperam”5
entre si, pois a ação ou atuação de cada agente é considerada pelo agente
seguinte na sua decisão e, como consequência, esse agente, pode ser influen-
ciado pela ação do agente anterior.

A situação do truelo é um desafio entre três cavalheiros, os Srs. White (W),


Gray (G) e Black (B), armados de revólveres e todos sabem que: B é um exímio
atirador e nunca erra seu alvo; em geral, W acerta seu alvo uma vez a cada três
disparos; em média, G acerta seu alvo uma vez a cada dois disparos. Em função
dessa diferença de habilidades, a ordem dos disparos foi combinada entre os
cavalheiros como sendo W, G e B, e, nessa ordem, cada atirador, se estiver vivo,
deve escolher quem pretende alvejar em seu disparo.

Sob tais condições, a pergunta ser respondida é: em qual situação existe


maior chance do Sr. White sobreviver? A resposta a essa pergunta encontra-se
na análise a seguir:

1. as chances de cada atirador acertar o seu alvo são: W, 1/3 (≈ 33,33%); G,


1/2 (50%); B, 1/1 (100%);

2. supondo que W erre seu alvo de forma proposital, ou seja, W não tentou
acertar ninguém. Nesse caso, certamente G tentará alvejar B, com 50% de
chance de sucesso, então, são possíveis dois casos:

(a) G atinge e elimina B. Nesse caso, W terá cerca de 33,33% de chance


de acertá-lo. Isso determina que a probabilidade desses eventos acon-
tecerem em conjunto é de 1/2 × 1/3 = 1/6 (≈ 16, 66%);

(b) G não elimina B, então, com certeza, B eliminará G e W terá cerca de


33,33% de chance de acertá-lo. Isso determina que a probabilidade
desses eventos acontecerem em conjunto é de 1/2 × 1/1 × 1/3 = 1/6 (≈
16, 66%).
5
A cooperação não é vista no sentido de ajuda entre os agentes, mas, é vista no sentido
de que um agente produz dados de entrada para outro agente, mas, no “jogo” eles podem
competir entre si.
11

2.2.4 Exercícios ou questões importantes

1. Faça novamente a análise do truelo (ver 2.2.3), considerando:

(a) que as chances de cada atirador acertar o seu alvo são: W, 1/3; G, 2/3;
B, 1/1 e que W, novamente, deve errar seu alvo de forma proposital;

(b) que as chances de cada atirador acertar o seu alvo são: W, 1/3; G, 2/3;
B, 1/1 e que W tente acertar G;

(c) que as chances de cada atirador acertar o seu alvo são: W, 1/3; G, 2/3;
B, 1/1 e que W tente acertar B.

2. Em termos de PEAS, qual seria a descrição de um agente para o truelo?

3. O problema do truelo modela situações em que o mais fraco pode ter mais
chances de vencer, caso tenha o benefício da “primeira jogada”, existem
problemas reais que podem ser modelados dessa forma? Qual(is) seria(m)
a(s) dificuldade(s) de se utilizar esse modelo em problemas reais?

2.3 Estrutura e tipos de agentes

Como visto, um agente pode ser descrito em função do PEAS, isto é, sua
atuação frente a um dada sequência de percepções, entretanto, na “prática”,
como pode ser descrita a “estrutura dos agentes”? Agentes são implementados
por “programas agentes”, ou seja, os programas agentes são as implementações
de suas descrições PEAS, para executarem a “função de agente”, que é mapear
percepções em ações.

Por definição, para estudos de IA, programas agentes devem ser executados
em diversos dispositivos de computação com sensores e atuadores, que definem
a “arquitetura” onde os agentes são executados, assim:

agente = arquitetura + programa

O Algoritmo 1 exemplifica um programa agente baseado em uma tabela


que relaciona a percepção com a ação. A linguagem do pseucódigo utili-
zada no algoritmo é uma variação do pseudocódigo definido em Russel e Norvig
(2009).
12

função AGENTE_TABELA(percept) retorna action


início
persistent
percepts // Uma sequ^encia, inicialmente vazia;
table // Uma tabela de aç~
oes preenchida e indexada pela
// sequ^
encia percepts;

append percept // Adiciona percept no fim da lista percepts;


action LOOKUP(percepts, table)
retorna action
fim
Algoritmo 1: Exemplo de um programa agente (RUSSEL; NORVIG, 2009).

2.3.1 Agentes reativos simples

São o tipo mais simples de agentes, pois selecionam a ação com base na
percepeção corrente, ignorando, caso exista, o histórico de percepções.

O Algoritmo 2 mostra a implementação do problema do aspirador de pó de


dois estados (RUSSEL; NORVIG, 2004, 2009) e o Algoritmo 3 traz a forma geral para
implementação de programas agentes reativos simples, do inglês, simple reflex
agents.

função AGENTE_ASPIRADOR(location,status) retorna action


início
se status = dirty então
retorna suck
fim
senão se location = A então
retorna right
fim
senão se location = B então
retorna left
fim
fim
Algoritmo 2: Programa do agente reativo para o aspirador de pó de dois esta-
dos (RUSSEL; NORVIG, 2009).

No Algoritmo 3, a função INTERPRET_INPUT mapeia um estado a partir da per-


cepção do ambiente e a função RULE_MATCH retorna a primeira regra do conjunto
de regras que está relacionada com a condição do estado.

A descrição do funcionamento do Algoritmo 3 é conceitual, visto que sua


implementação pode ser uma simples coleção de expressões condicionais - p.
13

função AGENTE_REATIVO(percept) retorna action


início
persistent
rules // Um conjunto de regras que relacionam condiç~
ao e aç~
ao;

state ← INTERPRET_INPUT(percept)
rule ← RULE_MATCH(state, rules)
action ← rule.ACTION
retorna action
fim
Algoritmo 3: Programa agente reativo simples (RUSSEL; NORVIG, 2009).

ex., if-then-else como no Algoritmo 2 - ou de portas lógicas que implementam


um circuito booleano. A Figura 2 representa o diagrama geral de tais agentes.

Agent Sensors

What the world


is like now

Environment
Condition-action rules What action I
should do now

Actuators

Figura 2: Modelo de um agente reativo simples (RUSSEL; NORVIG, 2009).

2.3.2 Agentes reativos baseados em modelos

Esses modelos são amplamente utilizados quando existe a “observação”, por


parte do agente, de parte do que vem acontecendo no ambiente. Ou seja, o
agente pode manter algum “estado interno” sobre o histórico das percepções
e as ações executadas a partir dessas (reação), de alguns aspectos que não
podem ser observados no estado corrente. A Figura 3 representa o diagrama
geral dos agentes reativos baseados em modelos, do inglês, model-based reflex
agents.
14

Sensors
State
How the world evolves What the world
is like now

Environment
What my actions do

Condition-action rules What action I


should do now

Agent Actuators

Figura 3: Agente reativo baseado em modelos (RUSSEL; NORVIG, 2009).

O Algoritmo 4 representa um programa agente reativo baseado em mo-


delo com estado interno e mostra como a percepção corrente deve ser combi-
nada com o estado interno, que é o estado antigo, para atualizar a descrição
do estado corrente, baseada no “entendimento” do agente, isto é, baseado
em como o agente modela o “funcionamento do mundo”, independente das
ações do agente.

função MODELO_BASEADO_AGENTE_REATIVO(percept) retorna action


início
persistent
state // Concepç~
ao corrente do estado do ambiente (mundo);
model // Uma descriç~
ao de como o próximo estado depende da
// aç~
ao e do estado corrente;
rules // Um conjunto de regras que relacionam condiç~ao e aç~
ao;
action // A aç~
ao mais recente, sendo que no estado inicial é
nenhuma;

state ← UPDATE_STATE(state, action, percept, model)


rule ← RULE_MATCH(state, rules)
action ← rule.ACTION
retorna action
fim
Algoritmo 4: Programa agente reativo baseado em modelo (RUSSEL; NORVIG,
2009).

2.3.3 Agentes baseados em objetivos

Em alguns casos, conhecer parte do estado corrente do ambiente não é


o suficiente para o agente decidir o que fazer. Suponha um agente que deve
determinar o caminho até um ponto específico. Se esse agente chegar a um
15

entroncamento onde pode tomar três caminhos, a correta decisão de qual ca-
minho tomar vai depender de algum tipo de informação objetiva, que descreva
a situação desejada, p. ex., as coordenadas do ponto destino e não somente a
descrição do estado atual.

Um programa agente baseado em objetivos - do inglês, goal-based agent -


pode combinar a função de agente reativo baseado em modelo com informa-
ções que descrevam a situação desejada para escolher ações que permitam
alcançar a meta prevista. A Figura 4 representa esse tipo de agente.

Sensors

State
What the world
How the world evolves is like now

Environment
What it will be like
What my actions do if I do action A

What action I
Goals should do now

Agent Actuators

Figura 4: Agente baseados em objetivos (RUSSEL; NORVIG, 2009).

2.3.4 Agentes baseados em utilidade

Os objetivos, sem outras informações, podem não ser o suficiente para es-
tabelecer comportamentos com alta qualidade em muitos ambientes. P. ex.,
tomando o mesmo exemplo anterior, um agente pode saber como sair de um
determinado ponto e chegar em outro, porém, ele poderia ser utilizado para
buscar o menor caminho ou, então, o melhor caminho, somente pela deter-
minação do objetivo? Não, pois sua utilização nesses dois casos, se daria por
diferentes comportamentos, com percepções e ações diferentes.

Para piorar a situação, pode-se exigir que o agente determine uma boa mé-
dia entre diferentes objetivos, p. ex., achar o caminho com o melhor resultado
médio entre o menor caminho e o melhor caminho. Assim, um agente baseado
em utilidade, do inglês, utility-based agent, (Figura 5) usa um modelo do mundo,
juntamente com uma função de utilidade que mede suas preferências entre es-
tados do mundo. Em seguida, ele escolhe a ação que leva à melhor utilidade
esperada, onde a utilidade esperada é calculada pela média de todos os esta-
dos resultado possível, ponderadas pela probabilidade do resultado
16

Sensors
State
What the world
How the world evolves is like now

Environment
What it will be like
What my actions do if I do action A

Utility How happy I will be


in such a state

What action I
should do now

Agent Actuators

Figura 5: Agente baseados em utilidade (RUSSEL; NORVIG, 2009).

2.3.5 Agentes com aprendizado ou agentes com aprendizagem

A ideia de programas agentes foi descrita por Turing (1950) que, na verdade,
considerou a programação em máquinas inteligentes, propondo a construção
de máquinas de aprendizagem e, em seguida, usar programas para ensiná-las.

Agentes com aprendizado, do inglês, learning agents, podem ser divididos


em quatro componentes conceituais, como mostrado na Figura 6, sendo impor-
tante distinguir entre os elementos de aprendizado e de performance (desem-
penho), uma vez que, os elementos de aprendizado são responsáveis pela rea-
lização de melhorias, enquanto os elementos de desempenho são responsáveis
pela seleção de ações externas.
Performance standard

Critic Sensors

feedback
Environment

changes
Learning Performance
element element
knowledge
learning
goals

Problem
generator

Actuators
Agent

Figura 6: Modelo padrão de um agente com aprendizado (RUSSEL; NORVIG, 2009).

O elemento de desempenho é o que está sendo considerado como o agente


em sua totalidade, pois é quem percebe o ambiente, a partir dos sensores, e
decide as ações. O elemento de aprendizagem utiliza o retorno feedback do
17

“crítico” de como o agente está fazendo e determina como o elemento de de-


sempenho deve ser modificado para fazer melhor no futuro. O crítico sinaliza
ao elemento de aprendizado o quanto o agente está atuando corretamente,
mediante a um padrão de desempenho. Essa crítica é necessária porque os
sensores de percepção não fornecem nenhuma indicação de sucesso, ou não,
do agente, mas, para isso, é preciso um padrão de comparação, o padrão de
desempenho, fixo e que não pode ser alterado pelo agente, uma vez que é
externo ao mesmo.

O último componente do agente com aprendizado é o gerador do pro-


blema, que é responsável por sugerir ações, sugerindo experiências novas e in-
formativas no contexto.

2.3.6 Exercícios ou questões importantes

1. O que são agentes racionais?

2. Diferencie os tipos de agentes.

3. Descreva o funcionamento da máquina de Turing.

4. A máquina de Turing pode ser descrita como um agente? Se afirmativo,


qual seria o tipo do agente? Explique sua resposta.

5. Descreva algum(uns) problema(s) que pode(m) ser tratado(s) por agentes


baseados em utilidade.
18

3 Descoberta de conhecimento
em bases de dados

A seção 3.1 é parte de Arbex (2009) e seu objetivo é o de conceituar mi-


neração de dados, aprendizado de máquina e descoberta de conhecimento,
mostrando a relação dos dois primeiros conceitos com a descoberta de conhe-
cimento.

3.1 Introdução

Atualmente, em diversas áreas do conhecimento, existe uma imensa quan-


tidade de dados que cresce de forma extremamente rápida, o que aumenta
a distância entre a capacidade de geração dos dados e o entendimento ou
a interpretação desses. Isso, sem levar em consideração as informações, rela-
ções e correlações que se encontram não explícitas em qualquer grande massa
de dados. Assim, nas ciências da informação e da computação são feitas pes-
quisas para o desenvolvimento de técnicas, ferramentas ou procedimentos que
buscam minimizar o problema da enorme quantidade de dados em contraposi-
ção à capacidade de interpretá-los e, no âmbito da ciência da computação,
muitas dessas descobertas foram agrupadas nas áreas de mineração de dados
e de aprendizado, ou aprendizagem, de máquina.

Mineração de dados é um nome estabelecido no “mundo dos negócios"


para aplicações de algoritmos de aprendizado de máquina em grande mas-
sas de dados e, na ciência da computação, é chamado de descoberta de
conhecimento em base de dados (knowledge discovery in databases - KDD)
(ALPAYDIN, 2004; CARVALHO, 2005). Entretanto, esses termos serão diferenciados na
compreensão de que aprendizado de máquina refere-se à disciplina na qual
são desenvolvidos e estudados os algoritmos, técnicas e ferramentas que permi-
tem o aprendizado. Por outro lado, a mineração de dados será vista como o
19

processo, em si, que aplica o aprendizado de máquina para a descoberta de


“conhecimento"1 .

Assim, mineração de dados é um conjunto de técnicas reunidas com o obje-


tivo de descobrir conhecimento novo em grandes massas de dados (CARVALHO,
2005) ou, sob outro aspecto, é um conjunto de processos, automáticos ou semi-
automáticos, de descobertas de padrões em grande quantidade de dados, mas
padrões realmente úteis, que sejam válidos e efetivos (WITTEN; FRANK, 2005).

O aprendizado de máquina é uma área da IA que busca a construção de sis-


temas computacionais que sejam capazes de adquirir conhecimento de forma
automática (REZENDE, 2005). A aquisição do conhecimento pode se dar, p. ex.,
por meio de experiência acumulada em soluções bem sucedidas de problemas
anteriores e os algoritmos de aprendizado de máquina frequentemente baseiam
suas estratégias na análise computacional de dados previamente coletados (JO-
NES; PEVZNER, 2004).

A mineração de dados ainda está associada à aprendizagem de máquina


sob o aspecto de que a identificação de padrões pode levar ao aprendizado,
que ocorre “quando se altera um comportamento de maneira que este seja me-
lhor executado no futuro"(WITTEN; FRANK, 2005), como conseqüência de conheci-
mento prévio. Nesse sentido, diz-se que (MITCHELL, 1997; SOUTO et al., 2003):

um programa de computador aprende a partir da experiência E, em


relação a uma classe de tarefas T, com medida de desempenho P, se
seu desempenho nas tarefas T, medida por P, melhora com a experi-
ência E.

Por conseguinte, modelos computacionais de aprendizado de máquina, ob-


viamente, são inerentes e complementares aos de mineração de dados, na
busca de relações complexas ou correlações “escondidas" em grandes massas
de dados (MATUKUMALLI et al., 2006). Ou seja, na descoberta de conhecimento, o
aprendizado de máquina relaciona-se por duas vias com a mineração de da-
dos: utilizando padrões descobertos para aprender e, como consequência, ge-
rando novas informações que possibilitem a descoberta de novos padrões.

Dentro do domínio do tema do aprendizado de máquina, percebe-se que a


construção de sistemas de computação capazes de aprender com a experiên-
1
É importante rever a observação sobre aquisição e utilização de inteligência e conhecimento
em Arbex (2011)
20

cia tem sido, há muito tempo, tema de estudo e debate, tanto do ponto de vista
técnico, quanto filosófico, sendo que a discussão técnica tomou grande impulso
a partir dos sistemas de computação modernos e com grande capacidade de
processamento (CRISTIANINI; SHAWE-TAYLOR, 2000). Entre as técnicas mais utilizadas
em mineração de dados estão as regras e árvores de decisão, algoritmos ge-
néticos, lógica difusa e, ainda, as redes neuronais, que, apesar de não gerarem
conhecimento explícito, são empregadas em várias tarefas de mineração de
dados (REZENDE, 2005).

Por este motivo, além do aprendizado de máquina ser aplicado diretamente


a partir da abordagem simbolista, p. ex., por meio de algoritmos de árvore de
decisão, também pode ser aplicado por técnicas conexionistas e, além dessas,
ainda existem outras técnicas, como a abordagem estatística, a lógica difusa
e os sistemas de inferência difusa, os métodos baseados em kernel e o modelo
evolucionário de aprendizado, entre outras, sendo, este último, a origem dos
algoritmos genéticos (REZENDE, 2005).

Em geral, as técnicas de aprendizado de máquina podem ser divididas em


aprendizado supervisionado e aprendizado não-supervisionado. Se, antes do
processo de aprendizado, o algoritmo indutor do aprendizado recebe um con-
junto de exemplos, cada exemplo sendo formado por um conjunto de atributos
de entrada e um conjunto de atributos de saída, então esse tipo de aprendizado
é chamado de supervisionado (REZENDE, 2005). Redes neuronais, máquinas de ve-
tores suporte, algoritmos genéticos e árvores de decisão são alguns exemplos de
algoritmos de aprendizado supervisionado.

Em contraste, o aprendizado não-supervisionado é realizado quando, para


cada exemplo, apenas os atributos de entrada estão disponíveis e, normalmente,
esse tipo de aprendizado é utilizado quando o objetivo é encontrar em um con-
junto de dados os padrões ou as tendências que permitam o agrupamento e
a interpretação desses dados. Exemplos de algoritmos de aprendizado não-
supervisionado podem ser os mapa auto-organizáveis, também baseados em
redes neuronais, e os algoritmos de agrupamento, como k-means. Em geral,
após a aplicação de técnicas não-supervisionadas, é necessária uma análise
para determinar o significado do resultado obtido, dentro do contexto do pro-
blema (REZENDE, 2005).
21

3.2 Aprendizado de máquina e mineração de dados

Definir aprendizado de máquina pode levar a questões filosóficas relaciona-


das a aquisição de conhecimento por máquinas e que não serão tratadas nesse
texto, até mesmo, porque já foi definido como a aquisição e a utilização da
inteligência e do conhecimento são vistas nesse contexto.

Assim, segundo o que foi apresentado na Seção 3.1 e Witten e Frank (2005),
resume-se mineração de dados como o processo operacional de descoberta
de padrões automatizados ou semi-automatizados, em grandes quantidades de
dados, que devem ser, obrigatoriamente, úteis. Da mesma forma, para apren-
dizado, define-se como a alteração do comportamento, sendo, nesse caso, o
comportamento de agentes, de forma que esses apresentem melhor desempe-
nho no futuro.

Existem textos que não fazem essa diferenciação entre mineração de dados
e aprendizado de máquina e, até mesmo, de descoberta de conhecimento
e, além disso, também não existem consensos para se definirem técnicas de
mineração de dados – que deve tratar dos métodos, técnicas e algoritmos de
aprendizado de máquina e que serão utilizados no problema em questão – e
a operacionalização das mesmas, que são as formas de utilização das técnicas
de mineração de dados, isto é, as tarefas de mineração em si, que trata da
relação entre a escolha da técnica de mineração de dados, ou técnicas, e as
tarefas, isto é, o trabalho de mineração de dados, que devem ser realizadas.
Para tratar das técnicas de mineração de dados e as tarefas de mineração de
dados, esse texto, baseia-se em Carvalho (2005) e Goldschmidt e Passos (2005)
e, com maiores detalhes serão vistas na Seção 3.3.

Apesar da abordagem prática que está sendo feita, alguns preceitos teóri-
cos que são necessários à preparação da mineração de dados, como, p. ex.,
o entendimento do problema que será submetido ao processo de descoberta
de conhecimento em base de dados (GOLDSCHMIDT; PASSOS, 2005). O entendi-
mento do problema exige, no mínimo, o conhecimento da base de dados a ser
minerada e o especialista – ou equipe – que deve deter o conhecimento pré-
vio (background knowledge) sobre o problema, sendo que esses dois elementos,
levam ao terceiro, que é definir o objetivo da aplição.

Com especial atenção ao conhecimento da base de dados, segundo Golds-


chmidt e Passos (2005), todo conjunto de dados pode ser observado sob os
22

aspectos intensional e extensional (DATE, 2000 apud GOLDSCHMIDT; PASSOS, 2005)


(ELMASRI; NAVATHE, 1989 apud GOLDSCHMIDT; PASSOS, 2005), sendo que o primeiro as-
pecto refere-se à estrutura ou ao esquema do conjunto de dados, onde se en-
contram as características ou atributos desse conjunto. Já o aspecto extensional,
trata dos “casos” ou registros que compõem o conjunto de dados, o que se re-
fere à localização física do mesmo, que pode estar, p. ex., distribuída e, assim,
não se encontra fisicamente organizada como uma estrutura em tabela, como,
em geral, imagina-se.

Portanto, o tratamento, a consolidação e a carga dos dados, sob as devi-


das técnicas, em ambientes de mineração de dados, pode ser particularmente
necessária e, assim, o aspecto extensional, sugere o desenvolvimento ou a apli-
cacão de procedimentos de ETL (extraction, transformation and load), em geral,
utilizados em data warehouse.

Esses aspectos das bases de dados, atualmente, são impecilhos para técni-
cas tradicionais de análise de dados onde, p. ex., a estatítica tradiconal baseia-
se em modelos “hipótese x teste”, onde, simplificdamente, estabebelece-se uma
hipótese e, a partir, de dados coletados, que foram especificados no modelo,
são feitos testes onde os resultados confirmarão ou refutarão a hipótese. Entre-
tanto, modelos como esse são eficazes para pequenos números de hipóteses,
não percebem informações “escondidas” e os dados podem ser gerados a par-
tir de uma amostragem “oportunista” e não aleatória, como deveriam ser.

Assim, a mineração de dados vem como uma ferramenta de apoio e com-


plementar às ferramentas tradiconais de análise, motivada pelos desafios (TAN;
STEINBACH; KUMAR, 2009) de tratar:

1. dados em grande escala, quando bases de dados da ordem de terabytes


são estão se tornando comuns;

2. conjuntos de dados de alta dimensão, onde o número de atributos chegam


a milhares ou centenas;

3. a complexidade e a heterogeneidade dos dados, onde são caraterísticos


conjuntos de dados descontínuos, não categorizados e não homogêneos;

4. conjuntos de dados distribuídos, quando as bases de dados são fisicamente


localizadas em ambientes geográficos distintos;
23

5. a exigência de análises mais complexas, vistoque, diante do que foi apre-


sentado, as tarefas atuais de análise de dados requerem a geração de de
modelos matemáticos e computacionais de análise de dados que possam,
p. ex., avaliar centenas de hipóteses e, ainda, possibilitar a autamatização
do processo de análise.

3.3 Técnicas e tarefas de mineração de dados

Em poucas palavras, sem nenhum ordem de importância e, ainda, mistu-


rando técnicas supervisionadas e não supervisionadas„ as técnicas de minera-
ção de dados tratam-se do conteúdo de IA, tais como, métodos, técnicas e
algoritmos de modelos probabilísticos e estatístico, redes neuronais, algoritmos
genéticos e outras técnicas de computação evolucionista, lógica difusa (fuzzy
logic) e sistemas difusos, árvores de decisão e máquinas de vetores suporte (sup-
port vectors machines - SVM).

3.4 Exercícios ou questões importantes

1. Diferencie aprendizado supervisionado de aprendizado não-supervisionado.

2. Descreva algumas técnicas de aprendizado supervisionado de aprendi-


zado não-supervisionado.

3. Descreva e explique, no mínimo, quatro tarefas de mineração de dados.


24

Referências

ALPAYDIN, E. Introduction to machine learning. Cambrige: MIT Press, 2004. 415 p.

ARBEX, W. Modelos computacionais para identificação de informação genômica


associada à resistência ao carrapato bovino. Tese (Doutorado em Engenharia
de Sistemas e Computação) — Universidade Federal do Rio de Janeiro, Rio de
Janeiro, Mar. 2009. Trabalho vencedor do prêmio SBIAgro 2009 - Categoria Tese
de Doutorado no VII Congresso da Sociedade Brasileira de Agroinformática.

ARBEX, W. Elementos de inteligência artificial para análise de sistemas e sistemas


de informação. Juiz de Fora, Fev. 2011. 24 p. Notas de aula de Inteligência
Artificial. Disponível em: http://www.arbex.pro.br/.

CARVALHO, L. A. V. de. Datamining: a mineração de dados no marketing,


medicina, economia, engenharia e administração. Rio de Janeiro: Ciência
Moderna, 2005.

CHOMSKY, N. Syntactic Structures. The Hague, Netherlands: Mouton, 1957.

CRISTIANINI, N.; SHAWE-TAYLOR, J. An introduction to support vector machines


and other kernel-based learning methodos. Cambridge: Cambridge University
Press, 2000.

DATE, C. J. Introdução aos sistemas de banco de dados. Rio de Janeiro: Campus,


2000. ISBN 8535212736.

ELMASRI, R.; NAVATHE, S. Fundamentals of database systems. 1. ed. San Francisco:


Benjamin Cummings, 1989. ISBN 0805301453.

GOLDSCHMIDT, R.; PASSOS, E. Data mining: um guia prático. Rio de Janeiro:


Elsevier, 2005. 261 p.

JONES, N. C.; PEVZNER, P. A. An introduction to bioinformatics algorithms.


Cambridge: MIT Press, 2004.

MATUKUMALLI, L. K. et al. Application of machine learning in SNP discovery. BMC


Bioinformatics, v. 7, n. 4, Jan. 2006.

MITCHELL, T. M. Machine learning. 1. ed. New York: McGraw Hill Higher Education,
1997. 432 p. ISBN 0070428077.

NEUMANN, J. V.; MORGENSTERN, O. Theory of Games and Economic Behavior.


Princeton University Press, 1944. Paperback. ISBN 0691003629. Disponível em:
http://www.worldcat.org/isbn/0691003629.

REZENDE, S. O. (Ed.). Sistemas inteligentes: fundamentos e aplicações. Barueri:


Manole, 2005.
25

ROGOFF, K. Os grandes mestres e o crescimento global. Jan. 2010. Disponível


em: http://www.estadao.com.br/estadaodehoje/20100108/not_imp492300,0.php.
Acesso em: 15 mar. 2011.

RUSSEL, S.; NORVIG, P. Inteligência artificial. Rio de Janeiro: Elsevier, 2004. 1056 p.

. Artificial intelligence: a modern approach. 3. ed. Prentice Hall, 2009. 1132 p.


AIMA Home <http://aima.cs.berkeley.edu/index.html/>. ISBN 9780136042594.
Disponível em: http://books.google.com/books?id=8jZBksh-bUMC.

SINGH, S. O último teorema de Fermat. Rio de Janeiro: Record, 1998. 328 p. ISBN
9788501050069.

SOUTO, M. C. P. de et al. Técnicas de aprendizado de máquina para problemas


de biologia molecular. Sociedade Brasileira de Computação, Campinas, v. 8, p.
103–152, 2003.

TAN, P.; STEINBACH, M.; KUMAR, V. Introdução ao datamining: mineração de


dados. Rio de Janeiro: Ciência Moderna, 2009. 900 p. ISBN 978-85-7393-761-9.

TURING, A. M. Computing Machinery and Intelligence. Mind, LIX, p. 433–460, Oct.


1950.

WITTEN, I. H.; FRANK, E. Data mining: pratical machine learning tools and
techniques. 2. ed. San Francisco: Morgan Kaufmann Publishers, 2005. 525 p. ISBN
0-12-088407-024884070.
26

ANEXO A -- Os grandes mestres e o


crescimento global (ROGOFF, 2010)

À medida que a economia global sai capengando da última década e in-


gressa em 2010, qual será a nova força que impulsionará o crescimento mundial?

Alguns apostam que a década que se inicia será aquela em que a inteligên-
cia artificial se desenvolverá a uma velocidade exponencial, e passará a ter um
impacto econômico paralelamente à emergência da Índia e da China.

Reconheço que minha perspectiva está profundamente influenciada pelo


universo do xadrez, um jogo em que atuei como profissional e que ainda acom-
panho de longe. Embora peculiar, o xadrez por computador nos proporciona
uma janela para acompanharmos a evolução do silício e, ao mesmo tempo, um
barômetro de como as pessoas se adaptarão a ele.

Um pouco de história ajudará. Em 1996 e 1997, o campeão mundial de xa-


drez, Gary Kasparov, jogou alguns matches contra um computador da IBM cha-
mado“Deep Blue”. Na época, Kasparov dominava o xadrez mundial, do mesmo
modo que Tiger Woods dominava o golfe, pelo menos até pouco tempo. No
match de 1996, Deep Blue deixou o campeão estupefato ao vencê-lo na pri-
meira partida. Mas logo Kasparov tratou de explorar o ponto fraco do com-
putador no planejamento estratégico a longo prazo, em que seu julgamento e
intuição aparentemente derrotaria o cálculo mecânico da máquina.

Infelizmente, a suprema confiança de Kasparov não levou suficientemente a


sério Deep Blue no match de retorno, em 1997. O campeão ficou consternado
quando o computador ganhou por 3,5 a 2,5. Muitos comentaristas definiram o
triunfo de Deep Blue como um dos acontecimentos mais importantes do século
20.

Talvez Kasparov conseguisse ganhar a revanche se pudesse ter continuado


por todas as 24 partidas (na época, era esta a duração dos matches nos cam-
27

peonatos mundiais). Mas, nos anos seguintes, enquanto o homem aprendia por
meio dos computadores, as máquinas foram evoluindo a uma velocidade muito
maior.

Com processadores cada vez mais poderosos, os jogadores de xadrez de silí-


cio desenvolveram a capacidade de calcular com tamanha antecipação que
a distinção entre os cálculos táticos a curto prazo e o planejamento estratégico
a longo prazo quase desapareceram. Ao mesmo tempo, os programas de com-
putação começaram a explorar enormes bancos de dados das partidas entre
os grandes mestres (o título mais alto no xadrez), utilizando os resultados de jo-
gos entre seres humanos para descobrir as jogadas com maiores chances de
sucesso. Em pouco tempo, ficou claro que até mesmo os melhores jogadores
humanos teriam poucas possibilidades de ir além de um empate ocasional.

Hoje, os programas de xadrez foram aperfeiçoados a tal ponto que os gran-


des mestres, às vezes, têm dificuldade para compreender a lógica que move
suas jogadas. Nas revistas de xadrez, é possível ler frequentemente comentários
de grandes jogadores como: “Meu amigo de silício diz que eu deveria ter mo-
vido o rei em lugar da rainha, mas ainda acho que eu fiz a melhor jogada que
um “ser humano” poderia fazer”.

E a coisa está ficando pior. Muitos programas de computador disponíveis no


mercado imitam os estilos dos maiores mestres de maneira surpreendente. De
fato, agora os programas de xadrez estão muito perto de superar o último teste
do matemático inglês, Alan Turing, da inteligência artificial: um ser humano que
conversa com a máquina poderá dizer que ela não é humana? Eu com certeza
não posso. Ironicamente, como as trapaças assistidas por computador estão
inundando os torneios de xadrez (em que as acusações chegam a níveis inespe-
rados), o principal aparelho usado para detectá-las exige o emprego de outro
computador. Somente uma máquina pode dizer o que outro computador deve
fazer em determinada posição. É possível que, se Turing estivesse vivo hoje, ele
definisse a inteligência artificial como a incapacidade de um computador de di-
zer se outra máquina é humana! Então, será que tudo isso colocou os jogadores
de xadrez de escanteio? Felizmente, a resposta é “ainda não”.

De certo modo, o xadrez hoje é tão popular e faz tanto sucesso quanto nas
décadas anteriores. Ele se presta muito bem a ser jogado na internet, e os fãs
podem acompanhar os torneios de altíssimo nível em tempo real, muitas vezes
com comentários. A tecnologia contribuiu para a total globalização do xadrez,
28

enquanto o indiano Vishy Anand, atualmente o primeiro asiático campeão mun-


dial, e o jovem norueguês, Magnus Carlsen, alcançaram a posição de astros do
rock. Homem e máquina aprenderam a coexistir, por enquanto.

Evidentemente, esse é um microcosmo das maiores transformações que po-


demos esperar. Os horríveis sistemas de secretária eletrônica computadorizada,
com os quais sofremos agora, poderão ser aperfeiçoados. Imaginem só, algum
dia, vocês poderão preferir operadores digitais a seres humanos.

Daqui a 50 anos, os computadores poderão fazer qualquer coisa, desde di-


rigir táxis a realizar intervenções cirúrgicas de rotina. Muito antes disso, a inteli-
gência artificial transformará o ensino superior, tornando a formação em univer-
sidades amplamente acessível, até mesmo nos países mais pobres. E, evidente-
mente, em toda parte há outros usos mais prosaicos, embora cruciais da inteli-
gência artificial, desde gerir a instalação eletrônica e elétrica nas nossas casas
até a disseminação de “grades inteligentes” para água e eletricidade, ajudando
a monitorar estes e outros sistemas para reduzir o desperdício.

Em suma, não concordo com a ideia de que, depois da Internet e do PC,


teremos de esperar muito tempo até a próxima inovação. A inteligência artificial
fornecerá o impulso que favorecerá a evolução nesta década.

Portanto, apesar de um início difícil depois da crise financeira (que ainda fre-
ará o crescimento global este ano e no próximo), não há nenhuma razão para
que a nova década tenha de ser um fiasco econômico. A não ser que ocorra
mais uma série de profundas crises financeiras, isso não acontecerá - desde que
os políticos não atrapalhem o novo modelo de comércio, tecnologia e inteligên-
cia artificial.

Esse documento foi editado com o TEXShop e processado pelo LATEX 2ε , utilizando a classe ABNTEX para o corpo do texto e para os formatos das citações e
referências bibliográficas. Encontra-se disponível para download em <http://www.arbex.pro.br/>.
Arquivo de impressão gerado em 7 de julho de 2011.

TEX3.1415926 (TEX Live 2010)

View publication stats