LIÇÃO 1 – introduçÃo e agentes



Baixar 0.62 Mb.
Página1/13
Encontro07.08.2016
Tamanho0.62 Mb.
  1   2   3   4   5   6   7   8   9   ...   13
LIÇÃO 1 – INTRODUÇÃO E AGENTES

TÓPICOS A SABER:

Inteligência; Racionalidade; Agente; Tipo de Agente; Indicador de Desempenho; Ambiente; Actuadores; Sensores.
CAP: 1 – INTRODUÇÃO

Veremos o que é exactamente a AI e porque é bom estudá-la.

A AI tenta compreender as entidades inteligentes, até para aprendermos mais acerca de nós próprios. Tenta construir entidades inteligentes, úteis por direito próprio.

Já é claro que computadores com nível de inteligência dos humanos ou melhor desempenharão um papel importante no futuro.

Mas, tal como providenciar um veículo para criar entidades com IA, o computador provê uma ferramenta para testar as teorias da inteligência.

É na verdade um campo universal.


1.1. O QUE É A AI?

Há várias definições. Umas preocupam-se com o processo de pensar e raciocinar, enquanto outras com o comportamento. Dentro de cada, umas medem o sucesso em termos de perfomance dos humanos, outras contra um ideal conceito de inteligência, que iremos chamar de racionalidade.

Ao todo temos pois 4 possíveis metas.



“O excitante novo esforço para fazer os computadores pensar... máquinas com mentes, no seu sentido literal” (Haugeland, 1985)

“[A automatização de] actividades que associamos com o pensamento dos humanos, actividades como tomada de decisões, resolução de problemas, aprendizagem...”(Bellman, 1978)



“O estudo das faculdades mentais através de modelos computacionais” (Charniak and McDermott, 1985)

“O estudo das computações que tornam possível perceber, raciocinar e agir” (Winston, 1992)



A arte de criar máquinas que executam funções que requerem inteligência quando executadas por pessoas” (Kurzweil, 1991)

“O estudo de como fazer os computadores fazer coisas, as quais, no momento, as pessoas são melhores” (Rich & Knight, 1991)



“Um campo de estudo que procura explicar e emular o comportamento inteligente em termos de processos computacionais” (Schalkoff,1990)

“O salto da ciência dos computadores que se preocupa com a automação do comportamento inteligente” (Luger & Stubblefield,1993)



Sistemas que pensam como humanos

Sistemas que agem como humanos



Sistemas que pensam racionalmente

Sistemas que agem racionalmente




Agindo humanamente: A Abordagem do Teste de Turing

O computador precisa de possuir:

- Processamento de linguagem natural

- Representação do conhecimento

- Raciocínio automatizado

- Aprendizagem

O teste total de Turing, o computador precisa:

- Ter visão para perceber os objectos e

- Robótica, para os mover
Pensando Humanamente: A abordagem do Modelo Cognitivo

Uma vez que tenhamos uma teoria suficientemente precisa da mente, tornar-se-à possível expressar a teoria como um programa de computador.

Simplesmente notaremos que a AI e a ciência da cognição continuam a fertilizar-se uma à outra, especialmente em áreas da visão, linguagem natural e aprendizagem.
Pensar Racionalmente: A Abordagem das Leis do Pensamento

Estas leis do pensamento supostamente governam a operação da mente, e iniciam o campo da lógica.

Há 2 principais obstáculos a esta abordagem: Primeiro, não é fácil tomar conhecimento informal e passá-lo para formal. Segundo, há uma grande diferença entre ser capaz de resolver um problema “em princípio” e fazê-lo na prática.
Agindo Racionalmente: A Abordagem do Agente Racional

Agir racionalmente significa atingir certas metas, dadas certas crenças. Um agente é apenas algo que percebe e age.

Há 2 vantagens desta abordagem: Primeiro, é mais geral que as leis do pensamento, porque a inferência correcta é um mecanismo útil para atingir racionalidade, mas não é necessário. Segundo, é mais ameno o desenvolvimento científico do que abordagens baseadas no comportamento ou pensamento humanos, porque o standard de racionalidade é claramente definido e completamente geral.

Este livro, daqui para a frente, concentra-se nos princípios gerais dos agentes racionais, e em componentes para os construir.
1.2.AS FUNDAÇÕES DA INTELIGÊNCIA ARTIFICIAL

Filosofia (428 A.C. – Presente)

Foi desenvolvido um sistema informal de silogismos para raciocínio apropriado.

Um problema com a concepção puramente material da mente é que parece deixar pouco espaço para a liberdade de escolha (vontade).

Descartes foi também um proponente do dualismo.

Uma alternativa ao dualismo é o materialismo.

É também possível adoptar uma posição intermédia. Os processos mentais e a consciência são parte do mundo físico, mas inerentemente desconhecidas; estão para além da compreensão racional.



A filosofia estabeleceu então uma tradição, na qual a mente é concebida como um aparelho físico operando principalmente por raciocínio, a partir do conhecimento que contém. O próximo problema é então estabelecer a fonte do conhecimento. O movimento empírico “Nada está na compreensão que não estivesse antes nos sentidos”.

... Por outras palavras, perceber como o conhecimento pode ser adquirido a partir da experiência.

O elemento final da visão filosófica da mente é a conexão entre o conhecimento e a acção.

Aristóteles: Deliberamos não acerca dos fins, mas acerca dos meios. ... Até chegarmos à primeiras causa, a qual, na ordem da descoberta é a última... ... Mas se uma coisa parece possível, nós tentamo-la.

Isto foi implementado por newell e Simon no seu programa GPS, que incorpora a heurística da análise meios-fins.

A análise meios-fins é útil, mas não nos diz o que fazer quando várias acções conduzirão à meta, ou quando nenhuma acção a atinge na totalidade.


Matemática ( 800 – presente)

Uma ciência formal exige um nível de formalização matemática em 3 áreas principais: computação (...algoritmo), lógica e probabilidade.

George Boole (1815-1864) introduziu a sua linguagem formal para fazer inferências lógicas em 1847. Gottlob Frege (1848-1925) produziu a lógica de 1ª ordem.

Godel (1906-1978) mostrou que existe um procedimento efectivo para provar qualquer frase verdadeira na lógica de 1ª ordem. O seu teorema da incomplitude mostrou que em qualquer linguagem expressiva suficiente para descrever as propriedades dos números nmaturais, há frases verdadeiras que são indecidíveis. O que pode ser interpretado como: há algumas funções dos inteiros que não podem ser representadas por algoritmos – isto é, não podem ser computadas.

Turing também mostrou que há algumas funções que nenhuma máquina de Turing consegue computar.



A noção de intractabilidade ainda teve mais impacto na computação. Uma classe de problemas é considerado intratável se o tempo requerido para resolver instâncias da classe cresce pelo menos exponencialmente com o tamanho das instâncias.

O 2º importante conceito na teoria da complexidade é a redução.



Como se pode reconhecer um problema intratável? A teoria NP-completeza. Qualquer classe de problemas aos quais uma classe NP-completa pode ser reduzida, é intratável.

A teoria das probabilidades também é importante, sobretudo se quisermos introduzir o conceito de “grau de certeza” necessário a certos problemas. Bayes introduziu o raciocínio incerto nos sistemas de AI.



Tal como na lógica, é preciso fazer uma conexão entre o raciocínio probabílistico e a acção. A Teoria da Decisão, criada por John Von Neumann, combina a teoria das probabilidades com a teoria da utilidade, para dar a primeira teoria geral que pode distinguir boas acções de más. A teoria das Decisões é o sucessor matemático do utilitarismo, e provê a base teórica para muitos dos agentes deste livro.
Psicologia (1879-presente)

Wundt abriu o primeiro laboratório de psicologia experimental. Ele insistia e experiências cuidadosamente controladas, nas quais trabalhadores executariam uma tarefa perceptual ou associativa enquanto introspecção nos seus próprios processos de pensamento.

.... (pg.13)
CAP. 2 – AGENTES INTELIGENTES

2.1. INTRODUÇÃO



Um agente é algo que pode ser visto como percepcionando o seu ambiente através de sensores e agindo sobre esse ambiente através de actuadores. Um software agente codifica strings de bits como percepções e acções.
2.2. COMO DEVEM OS AGENTES AGIR

Um agente racional é um que faz a coisa certa.

Como avaliar, e quando, o sucesso do agente?

Usaremos o termo medida de perfomance para o como. Nós, como observadores externos estabelecemos um standard do que significa ter sucesso num ambiente e usaremos isso como medida da perfomance dos agentes.

O quando avaliar a perfomance também é importante. assim , nós queremos medir a perfomance num “longo prazo”.



É preciso distinguir entre racionalidade e omnisciência (saber o resultado das acções tomadas/atomar). Não sabemos se um vaso vai cair. O importante, no que à racionalidade toca é o resultado/sucesso esperado dado o que foi percebido.

Em suma, o que é racional num dado momento depende de 4 factores:

- A medida de perfomance que define o grau de sucesso

- Tudo o que o agente percebeu até aí (sequência de percepção)

- O que o agente sabe do ambiente

- As acções que o agente realiza

Isto conduz à definição de um agente racional ideal: Para cada sequência de percepção possível, um agente racional ideal deve fazer uma acção esperada para maximizar a sua medida de perfomance, na base da evidência providenciada pela sequência de percepção e no conhecimento criado que o agente tem.

É preciso ter cuidado com a definição. Por ex. não é racional atravessar uma estrada sem olhar. assim, fazer as acções em ordem a obter informação útil é uma parte importante da racionalidade.
O mapa Ideal Para Sequências de Percepção até Acções

Uma vez que percebemos que o comportamento de um agente depende exclusivamente da sua sequência de percepção até à data, então podemos descrever um qualquer agente particular, fazendo uma tabela da acção que ele toma em resposta a cada possível sequência de percepção.

Para muito é infinita, a menos que coloquemos fronteiras. Essa lista é chamada mapa da sequência para as acções. Devemos tentar todas e gravar as suas acções. Se usar algum tipo de randomização, devemos tirar uma média.

Especificando que acção um agente deve tomar em resposta a uma qualquer sequência dada provê um design para um agente ideal (mapa ideal).

É possível definir uma especificação do mapa, sem o enumerar exaustivamente. Ex: considere-se um agente simples: a função raiz quadrada de uma calculadora. A sequência são as teclas e a acção é o display do resultado. Não é preciso especificar a tabela ideal toda. Podemos usar um pequeno programa (Método de Newton) que implementa o mapa.

Isto mostra que é possível designar bonitos e compactos agentes que implementam o mapa ideal para muitas mais situações gerais (agentes que resolvem uma quantidade sem limite de tarefas numa quantidade sem limite de ambientes).

Um outro requisito necessário aos agentes inteligentes é:
Autonomia

É preciso também lidar com o conhecimento construído. Se o seu comportamento de baseia só nisso, sem precisar da sequência, dizemos que tem autonomia.

Um agente é autónomo se o seu comportamento é determinado apenas pela sua experiência.

Isto quer dizer que ao princípio deve actuar aleatoriamente, a menos que o designer dê alguma ajuda.

Assim ,tal como nos animais, deve-se dotar o agente com algum conhecimento inicial assim como habilidade para aprender. A carocha...

Um agente verdadeiramente inteligente, deve ser capaz de operar com sucesso numa variedade de ambientes, dado suficiente tempo para se adaptar.


2.3. estrutura dos agentes inteligentes

Como trabalha o interior.



O trabalho da AI é desnhar o programa agente: uma função que implementa o mapa do agente das percepções às acções. Assumimos que este programa corre nalgum computador, a que chamaremos a arquitectura.

agente = arquitectura + programa

Antes de desenharmos o programa agente, devemos ter uma boa ideia das possíveis percepções e acções, que metas e medida de perfomance o agente é suposto atingir, e em que tipo de ambiente ele operará.

A tabela seguinte mostra os elementos básicos para a selecção dos tipos de agente.



Tipo de Agente

Percepções

Acções

Metas

Ambiente

Sistema de diagnóstico médico

Sintomas, findings, respostas dos doentes

Questões, testes, tratamentos

Saúde do paciente, minimização de custos

Paciente, Hospital

Sistema de Análise de Imagens Satélite

variação da Intensidade dos Pixels, cor

Impressão duma categorização da cena

Categorização Correcta

Imagens do Satélite em órbita

Robot de Picking Peças

Pixels de intensidade variável

Pega em peçass e coloca-as em vasilhas

Colocar peças nas vasilhas correctas

Correia de fábrica com peças

Controlador de Refinaria

Temperatura, pressão (leituras)

Abre, fecha válvulas; ajusta a temperatura

maximizar a pureza, yeld, segurança

Refinaria

Tutor Intercativo de Inglês

Palavras escritas

Imprime Exercícios, sugestões, correcções

Maximiza a classificação do estudante nos testes

Conjunto para estudantes

Atenção que um agente pode operar num ambiente “real” e ser muito mais simples que um que actua num ambiente artificial (software agentes). O ambiente artificial mais célebre é o ambiente do teste de Turing.


Programas Agentes

Cada agente usa algumas estruturas de dados internos que serão actualizadas à medida que novas percepções chegarem. estas estruturas de dados são operadas pelos procedimentos de tomadas de decisão do agente, para gerar uma escolha de uma acção, que é depois passada para a arquitectura para ser executada.

Cada percepção é passada de cada vez e o agente constrói a sequência em memória, se quiser. Às vezes não é preciso, outras é impraticável.
function SKELETON-AGENT(percept) returns action

static: memory, the agent’s memory of the world
memory <-- UPDATE-MEMORY(memory, percept)

action <-- CHOOSE-BEST-ACTION (memory)

memory <-- UPDATE-MEMORY(memory, action)

return action
Porque Não Olhar Apenas Para as Respostas?

vamos olhar para a maneira mais simples de escrever o programa agente – uma tabela de lookup. O programa agente é:



function TABLE-DRIVEN-AGENT(percept) returns action

static: percepts, a sequence, initially empty

table, a table, indexed by percept sequences, initially fully specified
append percept to the end of percepts

action <-- LOOKUP(percepts, table)

return action

Ele opera mantendo em meória a sua total sequência de percepções, e usando-a para indexar a tabela, que contém a acção apropriada para todas as possíveis sequências.

Porque falha?

- A tabela precisa, para uma coisa tão simples como um agente que joga xadrez, cerca de 35100 entradas

- Demora muito tempo para o designer construir a tabela

- O agente não tem nenhuma autonomia.

- mesmo que lhe déssemos um mecanismo de aprendizagem, demoraria uma eternidade para usá-lo.

Mas funciona. Implementa o mapa. O ponto é que podemos ter um agente que raciocina e evita estas 4 desvantagens.


Um Exemplo

Consideremos um ambiente mais concreto: design um condutor de taxi automático.

A tarefa completa é muito aberta – não há limite de novas combinações de circunstâncias que podem aparecer (tabela não dá)

Tipo de Agent

Percepções

Acções

Metas

Ambiente

Taxi Driver

câmaras, Velocímetro, GPS, sonar, microfone

Abrandar, acelerar, travar, falar com o passageiro

Viagem segura, rápida, legal, confortável; maximização dos lucros

Estradas, outro tráfego, peões, clientes

Vamos considerar 4 tipos de programa agente:
1-AGENTES de REFLEXOS SIMPLES

A opção de construir uma tabela de lookup está fora de questão (muitos pixels...)

Contudo, podemos resumir porções da tabela notando certas ocorrências comuns de associações input/output (ex. se o carro da frente trava...) --> devemos usar uma conexão do tipo regra de acção-condição escrita como:

if car-in-front-is-braking then initiate-braking

function SIMPLE-REFLEX-AGENT(percept) returns action

static: rules, a set of condition-action rules
state <-- INTERPRET-INPUT(percept)

rule <-- RULE-MATCH(state, (rules)

action <-- RULE-ACTION[rule]

return action

Apesar destes agentes poderem ser implementados muito eficientemente, o seu espectro de aplicação é muito pequeno.


2-AGENTES QUE MANTÊM AS PISTAS DO MUNDO

O agente anterior trabalha apenas se a decisão correcta puder ser tomada com base na percepção corrente. Ex. carros antigos não dá.

Deve então manter um estado interno, em ordem a tomar uma acção. aqui o estado interno não precisa ser muito extenso (basta uma frame anterior).

Outro caso: em ordem a decidir uma mudança de faixa, o condutor precisa de saber se há lá outros ou não. O problema ilustrado aparece porque os sensores não provêm acesso ao estado completo do mundo. Nesses casos, o agente pode precisar de manter algum estado interno em ordem a distinguir entre estados do mundo que geram o mesmo percepção de entrada mas que são significativamente diferentes (acções apropriadas diferentes).

Actualizando a informação do estado interno à medida que o tempo passa requere 2 tipos de conhecimento a ser codificado pelo agente. Primeiro, precisamos de informação de como o mundo evolui independentemente do agente (ex. um carro estava perto dele há pouco). Segundo, precisamos de informação de como as acções do agente influenciam o mundo (ex. muda de faixa fica um gap na que estava).

function REFLEX-AGENT-WITH-STATE(percept) returns action

static: state, a description of the current world state

rules, a set of condition-action rules

state <-- UPDATE-STATE(state,percept)

rule <-- RULE-MATCH(state, rules)

action <-- RULE-ACTION[rule]

state <-- UPDATE-STATE(state, action)

return action
3-AGENTES BASEADOS EM METAS

Conhecer acerca do estado corrente do ambiente não é sempre suficiente para decidir o que fazer. Por ex., num cruzamento, o taxi pode virar à esquerda, à direita ou seguir em frente. A decisão correcta depende de onde ele está a tentar ir. Ou seja, para além do estado corrente ele precisa duma meta.

Search e Palnning (cap.11 a 13) são os subcampos da AI dedicados a encontrar sequências de acções que fazem o agente atingir os objectivos.

Apesar do agente baseado nas metas parecer menos eficiente, ele é mais flexível. Envolve considerações sobre o futuro. Por ex. se está a chover ele travará mais cedo. Os goals substituem as regras de condition-action no diagrama e prevê o que acontece se...


4-AGENTES BASEADOS NA UTILIDADE

Metas sozinhas não são suficientes para gerar comportamentos de alta-qualidade. Várias podem conduzir ao goal mas algumas serão mais rápidas, seguras, fiáveis, baratas. Então adopta-se a estratégia da utilidade. Utilidade é uma função que mapeia um estado num nº real, que descreve o grau associado de satisfação.
2.4. AMBIENTES

Vamos ver os diferentes tipos de ambientes e como eles afectam os agentes.



Propriedades dos Ambientes

- Acessível vs. Inacessível – Um ambiente é efectivamente acessível se os sensores detectam todos os aspectos relevantes para a escolha da acção. É conveniente pois assim o agente não precisa manter nenhum estado interno para seguir o mundo.

- Determinístico vs. Indeterminístico - Se o próximo estado do ambiente é completamente determinado pelo estado corrente e pelas acções dos agentes, é determinístico. Em princípio, o agente não precisa preocupar-se acerca da incerteza num ambiente determinista e acessível. Inacessível, para o agente, é como se fosse indeterminista.

- Episódico vs. não-episódico – A experiência do agente é dividida em episódios (perceber – actuar). Então a qualidade da acção depende só desse episódio pois os seguintes não dependem das acções que ocorreram em episódios anteriores. São mais simples pois não é preciso pensar em avanço.

- Estático vs. Dinâmico – O ambiente pode mudar enquanto o agente está a deliberar

- Discreto vs. Contínuo – Se há um nº limitado de distintos e claramente definidos percepções e acções é discreto.

Veremos que ambientes de diferentes tipos requerem programas agentes diferentes. O caso mais difícil é o inacessível, não-episódico, dinâmico e contínuo.

Exemplos de ambientes e suas características



Ambiente

Acessível

Determinista

Episódico

Estático

Discreto

Xadrez com relógio

Sim

Sim

Não

Semi

Sim

Xadrez sem relógio

Sim

Sim

Não

Sim

Sim

Poker

Não

Não

Não

Sim

Sim

Backgammon

Sim

Não

Não

Sim

Sim

Taxi Driving

Não

Não

Não

Não

Não

Sistema de diagnóstico médico

Não

Não

Não

Não

Não

Sistema de análise de imagens

Sim

Sim

Sim

Semi

Não

Robot pega peças

Não

Não

Sim

Não

Não

Controlador de Refinaria

Não

Não

Não

Não

Não

Tutor Interactivo de Inglês

Não

Não

Não

Não

Sim


Programas de Ambiente

O programa genérico de ambiente que se segue, ilustra as relações básicas entre agentes e ambientes. Neste livro, achámos conveniente para muitos exercícios e exemplos, usar um simulador de ambientes que segue a estrutura do programa. O simulador toma um ou mais agentes como entrada e dá a cada agente as percepções certas e recebe uma acção. O simulador actualiza então o ambiente, baseado nas acções, e outros processos dinâmicos possíveis que não são considerados agentes (chuva por ex). O ambiente é então definido pelo estado inicial e pela função de actualização. Claro que um agente que trabalha no simulador deve também trabalhar no mundo real que provê o mesmo tipo de percepções e aceita o mesmo tipo e acções.

pg. 48 – Programa simulador de ambiente básico

Programa simulador que mantém a medida de perfomance de cada agente.


LIÇÃO 2 – PROCURAS CEGAS

TÓPICOS A SABER:

Procura: Algoritmos; Definição do Espaço de Procura; Factor de Ramificação; Profundidade da Procura; Procura em Profundidade; Procura em Largfura; Procura em Profundidade Limitada/Iterativa
PART II – PROBLEM-SOLVING

Nesta parte vamos ver como um agente pode agir estabelecendo goals e considerando sequências de acções que podem atingir esses goals. Um goal e um conjunto de meios para o atingir chama-se problema, e o processo de explorar o que os meios podem fazer é chamada search.



  1   2   3   4   5   6   7   8   9   ...   13


©principo.org 2016
enviar mensagem

    Página principal