Buscar

P2 IA 15 06 22

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Nome: Fabrício Lourenço Biscassi da Silva RA: 181190427
Nome: Gabriele Cristina Catapani RA: 181190621
Nome: Gabriela Onishi Cardoso RA: 161191461
Nome: Julia Fleuri Barbosa RA: 201191377
Nome: Wesley Prado Leão dos Santos RA: 201190338
Avaliação Somativa da disciplina Inteligência Artificial
1. Discorra sobre: O que é Inteligência Artificial, por meio dos tópicos:
a. Computadores automáticos: passíveis de programação;
R: A programação é a base para a inteligência artificial, pois é através dela que comandos são gerados e
a máquina realiza as operações designadas.
b. Computadores programados para usar uma linguagem: capacidade de manipular ‘palavras’ para
chegar num raciocínio lógico;
R: A inteligência artificial tem como base a lógica a qual pode ser expressa através de comandos de
computador. Que no nesse caso, a linguagem de programação utilizada é a responsável por criar uma
lógica para o computador.
c. Redes de neurônios: formação de conceitos a partir da organização de neurônios hipotéticos;
R: A inteligência artificial visa imitar a capacidade de intelecto humano, ou seja, o neurônio biológico.
Deste modo, criam-se “neurônios” artificiais (processos de aprendizado interligados), que visam realizar
as mesmas funções do neurônio biológico.
d. Tamanho de um cálculo: dado um problema bem definido como quantificar e explorar as possíveis
respostas de forma eficiente;
R: A partir de testes e dos diversos meios de busca. Utilizamos diversos “agentes” para encontrar a
função ótima e testamos essa estratégia diversas vezes, até encontrar a melhor solução possível.
e. Autoaperfeiçoamento: uma máquina inteligente provavelmente executará atividades com
autoaperfeiçoamento;
R: Um dos princípios da Inteligência Artificial é sempre buscar encontrar os melhores resultados
possíveis e, ao ver que ainda não foi encontrado o melhor resultado possível, uma IA é programada
para buscá-lo, por isso ela executa atividade de autoaperfeiçoamento.
f. Abstrações: métodos de máquinas para formar abstrações a partir de dados do mundo real;
R: Abstrações são a base de uma IA pois é a partir dela que são obtidos os dados para serem utilizados
em programas, ou seja, as abstrações é como se fosse a realidade criada computacionalmente ou uma
forma de representar a realidade através de dados.
g. Aleatoriedade e criatividade: a introdução de alguma aleatoriedade pode representar o
pensamento criativo durante o raciocínio lógico.
R: Isso ocorre dentro de uma IA através de alguns processos descritos em aula, por exemplo o crossing
over que através de uma mistura nos dados é gerado uma aleatoriedade e, com isso, pode ser
representado um pensamento criativo durante um raciocínio lógico.
2. Explique a técnica de busca local com abordagem gulosa (greedy). Dê exemplos (diferentes dos
slides).
R: É a busca pela melhor escolha. Utiliza-se uma função que calcula as distâncias de cada nó até o
ponto de melhor escolha (nó desejável). Ela avalia o ponto menos “custoso”, a partir da função
heurística (da reta). Exemplo: encontrar o caminho mais rápido até uma cidade (viagem).
Para exemplificar, trago um exemplo por imagem:
3. O que é uma busca local heurística em função do gráfico abaixo.
R: É uma busca por estratégias, que visa atingir a solução ótima, mas nem sempre ela trás o resultado
correto. Isto ocorre devido ao número de agentes, que muitas vezes encontram um ponto máximo
referente ao máximo local, sendo que a solução ótima seria o máximo global, como mostra o gráfico.
4. Explique , cada parte, do algoritmo Hill Climbing (subida de encosta), inclusive as necessidades das
funções de apoio.
R: Primeiro, é preciso importar algumas bibliotecas, como a math, numpy e pylab, que irão
proporcionar a realização de contas matemáticas (funções), a plotagem dos gráficos e formação de
vetores. As demais bibliotecas servem para mostrar o tempo atual e conversões de tempo (time),
aleatoriedade dos números (random).
A partir disso, é feita uma função dos agentes que irão circular sob o gráfico, em busca da solução
ótima. Em seguida, em “status prévio de otimização”, é realizada uma função para a plotagem dos
resultados obtidos, para uma visualização do processo de busca. Por fim, em “Hill Climbing”, é feita, de
fato, a busca pela solução ótima, que ocorre do seguinte modo:
1°: atribui-se como ponto inicial, o ponto corredor (aquele que estará buscando; o agente)
2°: coleta-se o tamanho desse ponto corredor
3°: atribui-se esse valor como sendo verdadeiro
4°: atribui-se um valor para o próximo ponto (nextState) que o corredor ocupará, como sendo a soma
do ponto atual (corredor) a uma “step” (um valor nominal que o ponto “andará”).
5°: coleta-se o tamanho deste novo ponto (nextState Eval)
6°: a partir de uma condição (if), verifica-se se o tamanho do próximo ponto (nextState) é menor do
que o tamanho do ponto atual (currState)
7°: caso o tamanho do próximo ponto seja menor que o do ponto atual, mantém-se o ponto atual, já
que ele é maior, logo, melhor.
8°: caso o próximo ponto seja maior, o próximo ponto vira o ponto atual, e é feito um novo cálculo para
determinar o ponto ótimo.
Desta forma, o processo ocorre até que a função ache um ponto de maior tamanho. Entretanto, muitas
vezes o ponto encontrado não será o melhor, pois como está sendo utilizado apenas um agente, ele
pode ficar “empacado” em um ponto máximo local. Para corrigir este erro, são necessários diversos
agentes e uma otimização da função Hill Climbing.
5. Qual a diferença entre a função Hill Climbing do exercício 4 para esta abaixo?
R: Diferentemente do código anterior, aqui temos uma otimização da função de busca Hill Climbing,
pois agora há a verificação de pontos anteriores e posteriores ao agente, tornando a função de busca
mais precisa.
Além disso, há dois agentes de busca, que são comparados; assim, podemos verificar se um deles
atingiu um ponto máximo maior que o ponto máximo de outro e, deste modo, recalcular, visando
atingir o ponto máximo global (solução ótima).
Sendo assim, temos que:
1°: atribui-se como ponto inicial, o ponto corredor (aquele que estará buscando; o agente)
2°: coleta-se o tamanho desse ponto corredor
3°: atribui-se esse valor como sendo verdadeiro
4°: caso o tamanho do próximo ponto seja menor do que o tamanho do ponto anterior a ele
(currState-step)
5°: atribui-se um valor para o próximo ponto (nextState) que o corredor ocupará, como sendo a
subtração de um “step” (um valor nominal que o ponto “andará”) do ponto atual (corredor).
6°: coleta-se o tamanho deste novo ponto (nextState Eval)
7°: caso o tamanho do próximo ponto seja maior do que o tamanho do ponto anterior a ele
(currState-step)
8°: atribui-se um valor para o próximo ponto (nextState) que o corredor ocupará, como sendo a soma
de um “step” (um valor nominal que o ponto “andará”) ao ponto atual (corredor).
9°: coleta-se o tamanho deste novo ponto (nextState Eval)
10°: caso o tamanho do próximo ponto seja menor que o do ponto atual, mantém-se o ponto atual, já
que ele é maior, logo, melhor.
11°: caso o próximo ponto seja maior, o próximo ponto vira o ponto atual, e é feito um novo cálculo
para determinar o ponto ótimo.
6. Aplique a técnica do Algoritmo Genético na seguinte configuração do jogo das 8 rainhas:
2 4 7 5 5 | 7 7 1 = 19
1 3 4 6 6 | 7 7 2 = 15
1 1 2 2 3 | 3 4 4 = 10
2 3 4 4 5 | 6 6 6 = 14
OS: para o crossover considere um corte em P(5)
R: Para a criação do algoritmo genético é necessário fazer a seleção dos códigos genéticos dos pais, que
foi o que já aconteceu acima, visto que, de uma infinidade de códigos disponíveis, foram selecionados
apenas 4.
Após isso, é feito o “Crossover”, que é uma técnica utilizada tanto em códigos genéticos na biologia
quanto na programação, que visa aleatorizar o sistema, fazendo com que os códigos genéticos dos pais
sejam misturados. Sendo assim, como solicitado, foi feito o corte dos códigos genéticos na posição p(5)
e, com isso,foi feita uma divisão neste código genético.
Com a divisão feita, a mistura dos códigos genéticos (Crossover) foi realizada através das duplas de pais
de fitness 19 com o de 10 e a dupla 15 com a 14, aleatorizando o sistema, assim como representado
abaixo:
Após isso, são feitas as mutações desses códigos, que é a alteração de um desses números do código
dos filhos e, na programação, essa mutação é feita escolhendo um ou mais números do código dos
filhos, alterando-os.
7. Explique o código do algoritmo genético abaixo:
Atribui-se um vetor geração, em que a geração zero é formada por zeros. Após isso, é calculado o
fitness para cada indivíduo do vetor e são selecionados os “pais”, a partir da função roulette.
Com os pais selecionados, ocorre o crossover (cruzamento) entre seus códigos genéticos.
Após o crossover, é feita uma mutação em seu código. Por fim, temos a formação dos filhos, que serão
os novos pais e uma nova geração.
É feita uma condição, ao final, para verificar se os filhos formados em cada geração são semelhantes.
Caso sejam semelhantes, chegamos à função ótima; caso contrário, é realizada uma nova seleção e
novos descendentes são formados.
a) Explique detalhadamente a função roulette
R: A função roulette tenta simular uma roleta, assim como a utilizada em aula; ou seja, essa
função tenta gerar números aleatórios para cada código genético, para a seleção dos “pais”.
Para isso, são impostas algumas condições onde estas podem ser por exemplo o tamanho do
código genético e, com isso, são gerados números para preencher esses códigos.
b) Explique detalhadamente o crossover
R: O Crossover é um procedimento que acontece em um código genético biológico e que, na
programação, tem um funcionamento semelhante, visto que o principal objetivo é fazer a
mistura do código genético, gerado anteriormente com a função roulette. Sendo assim, é feito
um corte nesse código, o qual é selecionado através dos critérios estabelecidos no código e,
após selecionado, são escolhidas duplas de pais para que o código genético dos dois seja
misturado através do crossover. Em outras palavras, é a mistura do código genético dos “pais”
selecionados na função roulette, para a formação dos descendentes, que se tornarão os novos
pais.
c) Explique detalhadamente o cálculo do fitness.
R: O cálculo fitness é um cálculo utilizado para encontrar o melhor resultado que, no caso do
código genético, seria um código dos filhos que se assemelha ao dos pais, porém que não seja
igual e que tenha sido gerado de forma aleatória. Ou seja, é um cálculo feito para saber se o
código obtido realmente é o melhor resultado encontrado, ou se há a possibilidade deste código
melhorar mais ainda. Lembrando que, ele assume seu valor ótimo quando os dessecantes são
semelhantes entre as gerações formadas.
8. Explique os símbolos associados à aprendizagem indutiva:
R: No método indutivo é considerado um número de casos suficientes para criar uma função, que é
representada por , e é a representação das características/elementos em comum que seℎ() 𝑥
encontram nesses casos. Logo a função representa a classificação que esta característica vaiℎ(𝑥)
receber com base na função, que é expressa por . A expressão representa um novo𝑦 𝑥^((𝑛 + 1))
elemento/ característica, e é a classificação deste novo elemento/característica.𝑦^((𝑛 + 1))
𝑦^((𝑛 + 1))
9. Diferencie, por meio de desenho e por texto explicativo, a aprendizagem de máquina
supervisionada e não supervisionada.
R: O aprendizado não supervisionado possui dados que não são previamente conhecidos e o algoritmo
deve tentar decifrar por conta própria, a partir de classificadores, como o K-means, que utiliza contas
matemáticas (médias) para agrupar os semelhantes entre si. Já no aprendizado supervisionado, é
pré-atribuída uma rotulagem aos dados, e o algoritmo mede sua precisão e compara os objetos de
acordo com estes rótulos, separando-os em clusters.
10. Explique como ocorre o 3-means por meio destes dados.
R: Neste gráfico, identificamos dados não supervisionados, onde a programação, através da função
K-means, deve definir os agrupamentos. Para isso, são calculados os centróides; o k-3 sugere que são 3
centróides e, após os cálculos, os pontos serão separados em 3 grupos, cujos pontos próximos aos
respectivos centróides, correspondem ao mesmo grupo. Assim, temos a divisão destes clusters. O
cálculo dos centróides é feito até que as médias não se modifiquem.
11. Explique como ocorre o k-NN por meio destes dados.
R: Neste gráfico, identificamos dados supervisionados, os quais já estão previamente separados por
categorias, e fica a cargo do programa caracterizá-las. O K-NN é um classificador que olha seus vizinhos;
assim, com os dados previamente rotulados, o classificador irá comparar os componentes, um a um, e
verificar se são semelhantes ou não, separando-os em clusters; aproxima os semelhantes e afasta os
diferentes.
12. Explique as partes marcadas no código abaixo.
R: Na primeira marcação, há a separação de 3 clusters (c1, c2 e c3) e atribuição de dois atributos 9a1 e
a2) a cada um, além dos valores de média e desvio padrão. Após a atribuição, é feita uma concatenação
dos valores (agrupamento) de cada atributo a1 e a2).
Na segunda marcação, atribui-se em quantos clusters os dados, plotados em gráfico, serão divididos
(número de K). Neste caso, foram divididos em 4 grupos.

Outros materiais