Inteligência Artificial Aplicada
Created @November 22, 2021 6:38 AM
Tags
A inteligência artificial surge como uma das áreas de conquistas mais importantes
alcançadas pela humanidade.
Surgimento da AI
Meados da década de 1950
Havia uma grande expectativa de que em pouco tempo chegaríamos a máquinas que
teriam o mesmo patamar de inteligência da humanidade.
Fracassos e decepções
Subestimação dos processos inteligentes que acontecem no nosso cérebro, mas
surgiram uma série de subprodutos que fizeram outros campos da CC evoluírem.
Ápice da história da tecnologia
O homem exterioriza as ferramentas a partir do seu intelecto como forma de
adaptar-se melhor ao ambiente ou mesmo alterá-lo.
Simulação de processos inteligente
Reconhecimento de padrões
Tomada de decisão
Planejamento e previsão
Execução de tarefas repetitivas
Definições:
Inteligência Artificial Aplicada 1
Inteligência artificial forte: pensar e agir como ser humano
Inteligência artificial fraca: pensar e agir racionalmente
Linhas de pesquisa da AI
O problema cérebro-mente:
Inteligência Artificial Aplicada 2
Não temos total conhecimento como a partir dos neurônios surgem nossos
pensamentos de símbolos, e isso dificulta o avanço das AIs.
Linhas de pesquisa:
Simbólica
Segue a tradição lógica, por meio da manipulação de símbolos de um grande
número de fatos especializados sobre um domínio restrito.
Sistemas baseados em conhecimento
Sistemas especialistas
Programação em lógica
Raciocínio baseado em casos
Conexionista
Inteligência Artificial Aplicada 3
Visa à modelagem da inteligência humana por meio da simulação dos
componentes do cérebro (neurônios) e das suas interligações (sinapses).
Redes neurais artificiais
Sistemas imunológicos artificiais
Sistemas híbridos neuro-fuzzy
Evolucionária
Baseia-se na forma como se processa a evolução biológica sobre o planeta e
busca simular tais processos evolucionários em sistemas de computador para
a resolução de problemas.
Algoritmos genéticos
Programação evolucionária
Estratégias evolucionárias
Vida artificial
Breve histórico da AI
Surgimento da AI:
Nascimento oficial: Conferência de Dartmouth, USA, 1956
Eras da linha simbólica
Era Clássica (1956 - 1970)
Objetivo: simular a mente humana.
Métodos: sistemas de solução geral de problemas.
Motivo do fracasso: subestimação da complexidade computacional dos
problemas.
Era Romântica (1970 - 1980)
Objetivo: simular a inteligência humana em situações pré-
determinadas.
Inteligência Artificial Aplicada 4
Métodos: formalismos de representação de conhecimento adaptados
ao tipo de problema.
Fracasso: subestimação da quantidade de conhecimento necessário
para tratar mesmo o mais banal problema do senso comum.
Era Moderna (1980 - Atual)
Objetivo: simular comportamento de um especialista humano ao
resolver problemas em um domínio específico.
Métodos: sistemas de regras, representação da incerteza,
conexionismo.
Fracasso: subestimação do problema de aquisição de conhecimento.
Cronologia das linhas de pesquisas
Inteligência Artificial Aplicada 5
Inteligência Artificial Aplicada 6
Inteligência Artificial Aplicada 7
Agentes Inteligentes
Podemos definir um agente como um artefato equipado com sensores com capacidade
de perceber o ambiente e capazes de ação sobre o ambiente por meio de atuadores.
Se compararmos com um ser humano, os sensores podem ser os olhos, ouvidos, nariz
e aqueles que permitem o tato. Quanto aos atuadores, podemos relacionar as mãos,
pernas e a boca, bem como outras partes. Hoje em dia os robôs são construídos tendo
sensores, tais como câmeras, dispositivos de infravermelho, de som e ultrassom, de
gás, de temperatura e de umidade, dentre outros. Como atuadores, podemos
relacionar os servomotores, motores de passo, pistões hidráulicos e relês. Mas um
Inteligência Artificial Aplicada 8
agente precisa também processar os sinais provenientes dos sensores para efetuar
alguma ação que seja caracterizada como inteligente sobre seu ambiente.
Racionalidade do agente
O agente racional é o agente que, com base em suas ações, obterá o maior sucesso.
Assim, é necessário algum método para quantificar o sucesso de um agente. Por meio
de medidas de desempenho, pode-se verificar se um agente teve sucesso na execução
da sua tarefa. A medida de desempenho precisa ser uma medida objetiva, que seja
planejada pelo projetista na construção do robô. Nem sempre a definição de uma
medida de desempenho é uma tarefa fácil. Por exemplo, uma medida para o robô
aspirador poderia ser o número de ações, ou o tempo consumido para executar a
tarefa, ou a qualidade de limpeza em relação ao tempo consumido.
Natureza dos agentes
A caracterização do ambiente onde o agente irá atuar determinará o sucesso da sua
execução. Quando um agente é caracterizado como um agente racional, é necessário
especificar a medida de desempenho, o ambiente onde o agente irá atuar e os
sensores e atuadores que farão parte do agente. Na modelagem de um agente
racional, precisamos definir de maneira tão completa e precisa possível o ambiente de
tarefa.
O ambiente de tarefa pode ser definido por meio do PEAS (performance, environment,
actuators and sensors – desempenho, ambiente, atuadores e sensores).
Inteligência Artificial Aplicada 9
Propriedades dos ambientes de tarefas
Em IA, a variedade de ambientes para atender a diferentes tipos de problemas é muito
grande. Por isso, é interessante classificar os ambientes de tarefas conforme
categorias que influenciam na definição dos parâmetros dos projetos. A classificação
leva em consideração vários critérios:
Ambiente completamente observável x Parcialmente observável
Se os sensores do agente acessam de forma completa os estados do ambiente
em cada instante, o ambiente é completamente observável. Se houver ruído,
sensoriamento impreciso ou lacunas os estados, é parcialmente observável.
Ambiente Determinístico x Estocástico
Se o próximo estado é completamente determinado pelo estado atual + ação
executada pelo agente, o ambiente é determinístico, caso isso não seja
verdade, ele é estocástico.
O ambiente estratégico é quando o sistema é determinístico, mas apresenta
elementos estocásticos.
Inteligência Artificial Aplicada 10
Ambiente Episódico x Sequencial
Num ambiente episódico, o agente experimenta os eventos de maneira
atômica/isolada, com os episódios começando com a percepção do agente e
na execução de uma única ação.
Num ambiente sequencial, há a dependência dos estados atuais com os
anteriores.
Ambiente Estático x Dinâmico
Caso o ambiente se altere enquanto o agente executa a tarefa, o ambiente é
dinâmico.
Se o ambiente não se modifica ao longo da execução, é estático.
Semidinâmicos se for parcialmente dinâmico e parcialmente estático.
Ambiente Discreto x Contínuo
Essa classificação se refere ao tempo modo como o tempo é considerado e
também o estado do ambiente e das percepções e ações.
Uma sequência de estados discretos tem uma mudança brusca de um estado
para outro.
Uma sequência contínua muda de forma suave.
Agente individual no ambiente x Sistema multiagente
Se no ambiente existe apenas um agente atuando para resolver o problema ou
se o sistema considerado é multiagente no caso de ter mais de um agente.
Inteligência Artificial Aplicada 11
Estrutura dos agentes
O estudo da natureza do ambiente de tarefa e das suas propriedades envolveu apenas
as questões de comportamento, ou seja, as ações que são executadas para uma
sequência de percepções determinada. A partir de agora, é necessário estudar o
funcionamento interno dos agentes.
Os agentes podem ser classificados em quatro tipos:
Agentes Reativos Simples
Selecionam as ações a serem executadas com base na percepção atual,
desconsiderando o histórico de percepções.
Inteligência Artificial Aplicada 12
Agentes Reativos Baseados em Modelo
Mantém estados internos que sejam dependentes da sequência de
percepções, isso pode ser mais efetivo na resolução do problema. Ele guarda
como o mundo evolui e o que as ações dele fazem nesse mundo. Ele possui
uma memória e melhora baseado com o histórico de percepções.
Inteligência Artificial Aplicada 13
Agentes Baseados em Objetivos
Além de saber o estado atual, é necessário alguma informação em relação aos
objetivos relacionados a situações ou cenários desejáveis.
Inteligência Artificial Aplicada 14
Agentes Baseados na Utilidade
Uma função de utilidade permite quantificar o mapeamento de um estado ou
uma sequência de estados em um número (grau de "felicidade" alcançado).
Agentes com aprendizagem
O agente é dotado de mecanismos para que possa aprender na experiência
com o ambiente.
Inteligência Artificial Aplicada 15
Nestes casos, o agente tem embutida no seu programa a sequência de ações que
deverá executar. Podemos caracterizar também a estrutura de um agente com
aprendizagem. O agente com aprendizagem permite ir além do conhecimento prévio na
construção do agente, dotando-o de mecanismos para que possa aprender na
experiência com o ambiente, tornando-se mais competente ao longo da sua operação.
Basicamente, no agente podemos implementar a ação em função de percepções do
que vão acontecendo através das regras "se-então". Com isso a partir de um
determinado conjunto de percepções ele executa uma ação.
Resolução de Problemas
Resolução de problemas de busca
Os agentes inteligentes mais simples, os reativos, conferem suas ações ao
mapeamento direto dos estados. Em ambientes nos quais tal mapeamento seja grande
demais, tanto em termos de memória ou tempo de processamento, os agentes não
seriam eficientes. Os agentes de resolução de problemas tomam decisões sobre os
próximos passos, encontrando as sequências de ações que resultam nos estados
Inteligência Artificial Aplicada 16
desejáveis. Por exemplo, um dos problemas presentes em várias situações é o de
roteirização. Este problema está presente na área de logística e turismo, dentre outras.
Quando se tem um conjunto de locais que precisam ser visitados considerando a
existência de rotas definidas para estes locais, um dos problemas típicos é como
percorrer todos os locais considerando um custo mínimo ótimo.
Agentes de resolução de problemas tomam decisões sobre os próximos passos
encontrando as sequências de ações que resultam nos estados desejáveis.
Problema do viajante: um dos problemas típicos é como percorrer todos os locais com
custo mínimo ótimo. Exemplo menor caminho para percorrer todas as cidades pelo
menos uma vez.
Formulação de problemas: passo essencial, pois é o processo de decidir quais estados
deverão ser considerados na abordagem do problema, dado um determinado objetivo.
Algoritmo de busca:
Recebe na sua entrada um problema e apresenta na sua saída uma solução,
descrita sob a forma de uma sequência de ações definidas.
O processo de procurar essa sequência é denominado de busca.
Componentes de um problema de busca
Quando a sequência se completa, ele formula outro objetivo e então recomeça. É
importante observar que, na execução da sequência, o agente não leva em conta as
percepções, na suposição de que a solução que encontrou na busca sempre irá
funcionar. Um problema pode ser definido de maneira formal em quatro componentes:
Um estado inicial
O estado no qual o agente começa.
No exemplo do viajante o estado inicial seria a cidade origem.
Uma função sucessor
A qual retorna um conjunto de pares ordenados <ação, sucessor> em que
cada ação é uma das ações válidas no estado x e cada sucessor pode ser
alcançado partindo-se de x.
O teste de objetivo
Inteligência Artificial Aplicada 17
Determina se um estado é um estado objetivo/desejado.
O objetivo nesse exemplo seria a chegada à cidade origem.
Função de custo
A qual atribui um custo numérico a cada caminho.
O agente irá escolher, portanto, uma função de custo que irá significar a própria
medida de desempenho.
Soluções para o problema de busca
Uma solução para um problema é um caminho que leva o agente desde o estado inicial
até o estado objetivo.
Uma solução ótima é aquela que apresenta o menor custo dentre todas as soluções
possíveis.
Exemplos de problemas de busca
Para efeito de estudo, os problemas podem ser classificados em miniproblemas e
problemas do mundo real. Um miniproblema destina-se a ilustrar ou praticar métodos
de resolução de problemas, podendo ter descrições concisas e exatas. Pode também
ser utilizado por diversos métodos para comparação de desempenho. Já problemas do
mundo real são aqueles que não tendem a ter uma descrição concisa e exata,
abstraída de situações da realidade. Em geral são problemas complexos, que podem
ser divididos em problemas simples que possuem um método de solução conhecida.
Esta estratégia é denominada de “dividir para conquistar”.
Miniproblemas
Destinam-se a ilustrar ou praticar métodos de resolução de problemas,
podendo ter descrições concisas e exatas.
Podem ser utilizados por diversos métodos para comparação de desempenho.
Problemas do mundo real
São aqueles que não tendem a ter uma descrição concisa e exata, abstraídos
de situações da realidade.
Dividir para conquistar.
Inteligência Artificial Aplicada 18
Estratégia de busca
O propósito da busca é fazer a expansão de forma contínua, avaliando os nós
gerados, escolhendo um e verificando se o nó é um estado objetivo ou não.
Estratégias de busca sem informação
As estratégias de busca sem informação são denominadas também de buscas cegas,
pois seguem a forma como a visitação dos nós expandidos de determinado problema é
feita.
Há seis estratégias de busca sem informação:
Busca em extensão ou amplitude
Busca em profundidade
Busca de custo uniforme
Busca em profundidade limitada
Busca de aprofundamento iterativo
Busca bidirecional
De maneira geral as seis estratégias são variantes das duas primeiras formas básicas:
a busca em extensão ou amplitude, na qual o nó raiz é expandido inicialmente, depois
Inteligência Artificial Aplicada 19
os sucessores do nó raiz, depois os sucessores dos sucessores do nó raiz e assim por
diante. E a estratégia de busca em profundidade, que expande sempre o nó mais
profundo na borda atual da árvore de busca.
Árvores de busca:
Geradas a partir do estado inicial e pela função sucessor, configurando assim o
espaço de estados.
Um nó de busca é a raiz da árvore, relativa ao estado inicial, expandindo nos
estados possíveis a partir da função sucessor, gerando um novo ramo ou conjunto
de estados.
Inteligência Artificial Aplicada 20
Tipos de estratégia de busca sem informação:
Extensão ou amplitude
Sempre extendendo/ampliando o próximo nível
Custo uniforme
Utilizamos a que nos dará o menor custo. Fazer as expansão de nós cpm
custos menores.
Profundidade
A partir do nó procura expandir todos os nós até chegar no último nível, daí
volta pra raíz e faz novamente em outros.
Profundidade limitada
A de profundidade é realizada até x nó
Aprofundamento interativo
Busca em profundidade combinando com extensão
Bidirecional
É quando utilizamos também o nó de chegada e fazemos o processo de busca
ao contrário, a partir do nó de chegada também expandimos o nó de saída,
inicial, e o final.
Inteligência Artificial Aplicada 21
Estratégias de busca com informação
As estratégias de busca sem informação tendem a ser ineficientes na maioria dos
casos. Estratégias de busca que utilizam algum conhecimento específico do sistema
pode ser uma opção mais eficiente. As estratégias neste caso apresentam uma
abordagem denominada de busca pela melhor escolha. Esta busca considera um
algoritmo que é uma especialização do algoritmo geral da busca em árvore, em que um
nó é selecionado para expansão com base em uma função de avaliação f(n). Na
verdade não há de fato uma melhor escolha, mas a escolha que parece ser a melhor,
conforme a função de avaliação. Há uma outra família de algoritmos com funções de
avaliação diferentes, em que um componente fundamental desta avaliação é uma
função heurística h(n). Por meio das funções heurísticas, podemos aplicar o
conhecimento relativo ao problema no algoritmo de busca. A função heurística pode
ser, por exemplo a distância que o nó final possui de todos os outros nós.
Tipos de estratégia de busca com informação:
Busca gulosa
Se baseia apenas na função heurística
Busca A*
Se baseia na função heurística e na de custo, tem um pouco mais de vantagem
sobre a busca gulosa
Inteligência Artificial Aplicada 22
Sistemas Especialistas
Dentro da linha de pesquisa simbólica da IA, os sistemas especialistas (SE), são
programas de computador que imitam o comportamento de especialistas humanos
dentro de um domínio específico de conhecimento. Os sistemas especialistas podem
ser classificados quanto às definições da IA no quadrante “agir como humanos”.
Consiste assim numa ferramenta que possui a capacidade de entender o conhecimento
sobre um problema específico e usar este conhecimento de maneira inteligente para
sugerir alternativas de ação. Podemos afirmar que SE é uma técnica da IA
desenvolvida para resolver problemas em determinado domínio, cujo conhecimento
utilizado é obtido de pessoas que são especialistas naquele domínio.
Primeiros sistemas
Dendral (1965)
SE para inferir estruturas moleculares a partir da informação espectrográfica de
massa.
Mycin (1970)
Inteligência Artificial Aplicada 23
SE para diagnóstico e tratamento de doenças infecciosas do sangue utilizando
450 regras que permitiam o diagnóstico e a prescrição de tratamentos.
Componentes de um sistema especialista
Um sistema especialista pode ser dividido em três módulos
Base de conhecimento
Local onde fica armazenado o conhecimento obtido do domínio em que atua o
SE, traduzido na forma de regras.
Quadro-negro
Local onde as informações são alimentadas ao sistema com relação às
variáveis que são lidas do ambiente.
Mecanismo de inferência (também chamado de motor de inferência)
Responsável pelo encadeamento e teste das regras, fornecendo um resultado
em função dos fatos alimentados ao sistema especialista.
Seleção das regras através dos dados de entrada
A resolução de conflitos indicando quais regras serão efetivamente executadas
(priorização e ordenação)
A ação propriamente dita
A base de conhecimento contém as condições expressas nas regras que se referem às
perguntas. Estas perguntas envolvem variáveis que precisam ser instanciadas e passar
logo após por um processo de inferência. O motor de inferência controla, portanto, a
atividade do sistema especialista, selecionando as regras, solucionando conflitos e a
ação propriamente dita.
Inteligência Artificial Aplicada 24
Etapas para construção de um SE:
Identificação e definição do problema
Aquisição do conhecimento
Entrevista com especialista na área
Organização e representação do conhecimento
Fatos são usados para descrever relacionamentos entre estruturas de
conhecimento mais complexas e controlar o uso destas durante a resolução de
problemas
Implementação do SE
Testes e validação
Proposição:
Em IA e SE, um fato é às vezes referenciado como uma proposição
Uma proposição é uma declaração que pode ser verdadeira ou falsa
Inteligência Artificial Aplicada 25
Exemplo:
Proposição:
"A cor da bola é vermelha"
Mundo:
A bola é azul na verdade
Valor da proposição:
Falso
Notação O-A-V
"A cor da bola é vermelha"
Objeto: Bola
Atributo: Cor
Valor: Vermelha
Regras
Sequências lógicas compostas por premissas (antecedentes) e conclusões
(consequentes)
É comum o uso da expressão condicional "se-então" para representar regras
dentro de um SE
Inteligência Artificial Aplicada 26
Exemplo de um sistema especialista
O exemplo a seguir refere-se a uma análise de perfil financeiro para concessão de
crédito. Este tipo de sistema pode ser entendido como uma regra de negócio de uma
empresa financeira, podendo ser estendido para outros domínios, tais como
companhias de seguro e planos de saúde.
O sistema especialista tem como objetivo a concessão de crédito que irá depender de
uma série de variáveis que precisam ser informadas ao sistema. A modelagem do SE é
feita levando em consideração as variáveis do problema e as regras que precisam ser
explicitadas. É necessária a definição de uma variável objetivo que orientará o
raciocínio do SE. Este exemplo de SE pode ser implementado em linguagem de
programação utilizando classes ou de maneira mais simples utilizando chamadas de
função.
Programação em lógica (PROLOG)
Uma das principais ideias subjacentes da programação em lógica é de que um
algoritmo é constituído por dois elementos disjuntos: a lógica e o controle. O
Inteligência Artificial Aplicada 27
componente lógico corresponde à definição do que deve ser solucionado. O
componente de controle estabelece como a solução pode ser obtida. Quando
programando em PROLOG, o programador precisa somente descrever o componente
lógico de um algoritmo, deixando o controle da execução para ser exercido pelo
sistema de programação em lógica utilizado. A atividade do programador passa a ser
simplesmente a especificação do problema que deve ser solucionado. Assim, um
programa em lógica é a representação de um problema expresso por meio de um
conjunto finito de um tipo especial de sentenças lógicas denominadas de cláusulas. O
programador simplesmente especifica o problema que deve ser solucionado. O
controle fica a cargo do sistema de programação em lógica utilizado.
Cláusulas em PROLOG
Um programa em lógica pode ser visto alternativamente como uma base de dados.
Uma cláusula em PROLOG pode ser de três tipos:
Fatos
Denotam uma verdade incondicional
Regras
Definem as condições que devem ser satisfeitas para que uma declaração seja
considerada verdadeira
Consulta
Interrogação ao programa para verificar a verdade do conhecimento nele
contido
Uma cláusula é dividida nos ainda seguintes componentes:
Corpo
É uma lista de objetivos separados por vírgulas, que devem ser interpretadas
por conjunções.
Cabeça
Contém o resultado do corpo, inferido com base nos objetivos.
Um fato contém apenas “cabeça”. A consulta só possui o “corpo”. Uma regra contém
tanto “cabeça” quanto “corpo”.
Inteligência Artificial Aplicada 28
Redes Neurais Artificiais (RNA)
Uma RNA pode ser considerada como um processador maciça e 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.
Algumas RNAs envolvem tarefas como a definição do número de camadas, a
quantidade de neurônios por camada, o tipo de função de transferência e o método de
treinamento.
Uma rede neural artificial tem também como elemento básico o neurônio. Os neurônios
são as unidades fundamentais dos tecidos do sistema nervoso, incluindo o cérebro.
Cada neurônio consiste de um corpo celular, também designado como soma, o qual
contém um núcleo. Partindo do corpo da célula, existem um número de filamentos
denominados dendritos e um filamento mais longo, que é denominado de axônio. Os
dendritos ligam-se ao redor da célula a outras células e o axônio faz uma conexão mais
longa. A estas conexões dá-se o nome de sinapses. Uma rede neural biológica pode,
dessa forma, ser abstraída para simular seu comportamento.
Uma rede neural artificial tem uma
série de propriedades:
Não linearidade
Mapeamento entrada-saída
Adaptabilidade
Resposta a evidências
Informação contextual
Tolerância a falhas
Construção de uma RNA
As RNA possuem pelo menos uma camada de entrada, de onde recebe os sinais ou
características das amostras, e uma camada de saída que apresenta os padrões ou
classes mapeados para os conjuntos de treinamento. Também podem possuir uma ou
mais camadas ocultas. A quantidade de neurônios irá depender da natureza do
Inteligência Artificial Aplicada 29
problema sendo abordado. A camada de entrada terá tantos neurônios conforme as
características das amostras do conjunto de treinamento. A camada de saída terá os
neurônios referentes às classes a que pertencem as amostras do conjunto de
treinamento. A função de transferência define a ativação do neurônio, podendo ser
utilizadas funções discretas ou funções contínuas. Dentre os métodos mais utilizados
está o algoritmo de retropropagação (backpropagation), que utiliza a informação do
erro na atualização dos pesos.
Aprendizagem de uma RNA
Por correção de erros
Baseada em memória
Hebbiana (associativa)
Competitiva
Boltzmann
Tipos de treinamento
Supervisionada
Não supervisionada
Tarefas de uma RNA
Associação de padrões
Reconhecimento de funções
Aproximação de funções
Controle
Filtragem
Perceptron simples
O perceptron foi um dispositivo eletrônico inventado em 1957 por Frank Rosenblatt. Foi
construído de acordo com princípios biológicos e que mostrava capacidade de
aprendizado. O perceptron obtém os sinais do ambiente por meio das entradas, em
que são apresentados os valores correspondentes aos padrões que queremos
Inteligência Artificial Aplicada 30
classificar, como valores de pixels de imagem ou características de um produto.
Fazendo parte da estrutura interna do perceptron, temos os pesos ou sinapses. O
aprendizado da rede ficará armazenado nos pesos e seus valores são obtidos
mediante um processo de treinamento.
O perceptron simples permite classificar dois conjuntos de forma linear, ou seja, se
tivermos condições de passar uma reta dividindo duas regiões de classes diferentes, o
perceptron irá classificar essas duas regiões corretamente.
Inteligência Artificial Aplicada 31