TRABALHO ACADÊMICO
DISCIPLINA INTELIGÊNCIA ARTIFICIAL
NOME DO ALUNO: Lucas Augusto Barbosa Viveiros
TURMA: 852
TEMA 1: INTRODUÇÃO À INTELIGÊNCIA ARTIFICIAL
Questão 1 (0,5 pontos) - Defina Inteligência Artificial.
R: É o estudo de como fazer os computadores realizarem tarefas em que, no momento
as pessoas são melhores.
Questão 2 (0,5 pontos) – Qual a relação entre Conhecimento e Inteligência Artificial?
R: Um sistema de Inteligência Artificial é capaz de adquirir, representar e manipular o
conhecimento. Tal manipulação inclui a capacidade de deduzir ou inferir novos
conhecimentos a partir do conhecimento existente.
Questão 3 (0,5 pontos) – O que caracteriza a Inteligência Artificial como uma área de
estudo multidisciplinar?
R: O fato de ser uma área de estudo que conta com o apoio de profissionais de diversas
áreas (com formações acadêmicas diferentes e que trabalham em prol de um único
objetivo) como por exemplo especialistas nas áreas biológicas, neurológicas,
psicológicas, de engenharia e matemática.
Questão 4 (0,5 pontos) - Em que consiste o Teste de Turing? Você concorda que uma
máquina aprovada no teste seja considerada inteligente e que aquelas reprovadas não
sejam assim consideradas?
R: O teste se baseia no seguinte argumento: Não sabemos definir precisamente o que é
inteligência, logo não podemos definir o que é inteligência artificial. Embora não
saibamos definir o que é inteligência, podemos assumir que o ser humano é inteligente.
Portanto, se uma máquina fosse capaz de se comportar de tal maneira que não
pudéssemos distingui-la de um ser humano, esta máquina estaria demonstrando algum
tipo de inteligência e que nessas circunstancias, só poderia ser inteligência artificial.
O teste consiste em que por meio de um terminal, um ser humano deve entrevistar
alguém num local remoto; se, após um determinado tempo, ele não fosse capaz de
perceber que esse alguém era uma máquina, então a hipótese da existência de
inteligência artificial estaria confirmada.
De acordo com o critério de avaliação do teste, concordo.
Questão 5 (0,5 pontos) - Comente sucintamente as quatro categorias que definem a IA:
“sistemas que pensam como os humanos”, “sistemas que agem como os humanos”,
“sistemas que pensam racionalmente” e “sistemas que agem racionalmente”.
R: As categorias ‘sistemas que pensam como humanos’ e ‘sistema que agem como
humanos’ são, essencialmente, empíricas e envolvem formulação de hipóteses e
confirmação experimental, enquanto as categorias ‘sistemas que pensam racionalmente’
e ‘sistemas que agem racionalmente’ são teóricas e envolvem matemática e engenharia.
TEMA 2: APRENDIZADO DE MÁQUINA
Questão 6 (0,5 pontos) – Considerando os conceitos de Aprendizado de Máquina, o
que consiste no Aprendizado de Máquina Supervisionado, Não Supervisionado, Semi-
Supervisionado e Aprendizado por Reforço. Exemplifique
R: O aprendizado supervisionado requer um programador ou “professor” que ofereça exemplos
de quais entradas se alinham com os resultados. Por exemplo, se você quisesse usar a
aprendizagem supervisionada para ensinar um computador a reconhecer fotos de girassóis, você
forneceria um conjunto de imagens, algumas que foram rotuladas como “girassóis” e algumas
que foram rotuladas como “não girassóis”. Os algoritmos de aprendizagem de máquina
ajudariam o sistema a aprender a generalizar os conceitos para que ele pudesse identificar
girassóis em imagens que não havia encontrado antes, ou seja, em novos conjuntos de dados.
A aprendizagem não supervisionada exige que o sistema desenvolva suas próprias conclusões a
partir de um determinado conjunto de dados. Por exemplo, se você tivesse um grande conjunto
de dados de vendas on-line, você poderia usar a aprendizagem sem supervisão para encontrar
clusters ou associações entre esses dados que poderiam ajudá-lo a melhorar seu marketing.
A aprendizagem semi-supervisionada é uma combinação de aprendizado supervisionado e não
supervisionado. Voltando ao exemplo do girassol, imagine que você tenha um grande número
de imagens, algumas das quais foram rotuladas como “girassol” e “não girassol” e algumas
outras imagens sem rótulos. Um sistema de aprendizagem semisupervisionado usaria as
imagens rotuladas para fazer inferências sobre qual das imagens não marcadas incluem
girassóis. As melhores suposições seriam então devolvidas ao sistema para ajudá-lo a melhorar
suas capacidades e o ciclo continuaria.
Já o aprendizado por reforço envolve um sistema que recebe feedback análogo a punições e
recompensas. Um exemplo clássico de aprendizagem de reforço é um agente aprendendo a
jogar um game. O objetivo é vencer o game e o agente vai sendo recompensado ou punido de
acordo com seus erros e acertos, até atingir seu objetivo.
Questão 7 (0,5 pontos) - Temos um problema de reconhecimento de placas a partir de
imagens. Descreva uma solução para esse problema utilizando as técnicas aprendidas.
Leve em consideração que o sistema deve ser rápido durante a fase de testes (quando
em operação no dia-a-dia).
R: Creio que como melhor solução para este problema, fazer o uso de um aprendizado
não-supervisionado, fornecendo um conjunto de dados acerca de modelos de placas de
carro seria o ideal, fazendo com que o sistema possa encontrar por conta própria as
devidas associações referentes aos modelos diferentes de placas sem a necessidade de
monitoramento.
TEMA 3: MINERAÇÃO DE DADOS
Questão 8 (0,5 pontos) – A mineração de dados consiste na transformação de grandes
quantidades de dados em padrões e regras significativos, e esse processo é realizado em
etapas. Cite as etapas do processo de Mineração e explique cada uma delas.
R: -Seleção: Selecionar ou segmentar dados de acordo com critérios definidos;
-Pré-processamento: Estágio de limpeza dos dados, onde informações julgadas
desnecessárias são removidas;
-Transformação: Transformam-se os dados em formatos utilizáveis. Esta depende da
técnica data mining usada. Disponibilizar os dados de maneira usável e navegável;
-Data mining (aprendizado): É a verdadeira extração dos padrões de comportamento dos
dados (exemplos);
- Interpretação e Avaliação: Identificado os padrões pelo sistema, estes são interpretados
em conhecimentos, os quais darão suporte a tomada de decisões humanas.
Questão 9 (0,5 pontos) - De acordo com Fayyad (1996, apud Macedo e Matos, 2010)
“KDD é um processo, de várias etapas, não trivial, interativo e iterativo, para
identificação de padrões compreensíveis, válidos, novos e potencialmente úteis a partir
de grandes conjuntos de dados”. Para entender melhor o conceito de KDD é necessário
entender as diferenças entre dado, informação e conhecimento.
Sendo assim, defina e exemplifique Dado, Informação e Conhecimento.
R: Dados são os registros soltos, aleatórios, sem quaisquer análise. São códigos que
constituem a matéria prima da informação, ou seja, é a informação não tratada que ainda
não apresenta relevância. Eles representam um ou mais significados de um sistema que
isoladamente não pode transmitir uma mensagem ou representar algum conhecimento.
A informação seria qualquer estruturação ou organização desses dados.
Informação é, portanto, o material de que é feito o conhecimento, após posicionamento
crítico do indivíduo. Além disso, a informação é derivada dos dados que, sem um
sentido ou contexto, significam muito pouco.
O conhecimento é a informação processada e transformada em experiência pelo
indivíduo. O conhecimento é a capacidade que, o processamento da informação
adicionado ao repertório individual, nos dá, de agir e prever o resultado dessa ação.
TEMA 4: REDES NEURAIS ARTIFICIAIS
Questão 10 (0,5 pontos) – Sobre os Neurônios Artificial, o modelo mais bem aceito foi
proposto por Warren McCulloch e Walter Pitts em 1943, o qual implementa de maneira
simplificada os componentes e o funcionamento de um neurônio biológico. Em termos
simples, um neurônio matemático de uma rede neural artificial é um componente que
calcula a soma ponderada de vários inputs, aplica uma função e passa o resultado
adiante:
Diante do exposto, cite os componentes de um Neurônio Artificial identificados na
figura pelas letras x, w, Ɵ, Ʃ, µ, g() e y.
R: x – Sinais de entrada, w – Pesos sinápticos, Ɵ - limiar de ativação, Ʃ – combinador
linear ou função agregadora, µ - potencial de ativação, g() – função de ativação e y –
sinal de saída.
TEMA 5: FERRAMENTA WEKA
Questão 11 (2 pontos) – Atividade Prática - Detecção de Spam com Aprendizagem de
Máquina usando o Weka.
Parte 1 - Árvores de Decisão
Nesta parte, o objetivo é aprender uma árvore de decisão. Para executar o algoritmo de
árvore de decisão no Weka, abaixo de 'Classifier' clique em 'Choose' e escolha 'trees >
J48'. Não esqueça de marcar o 'Test Options' como sendo 'Percentage Split' (66%).
1. Execute o algoritmo com as opções padrão. Qual é o tamanho da árvore obtida? Qual
é a sua taxa de acerto?
R: Tamanho da árvore: 207. A taxa de acerto é de 92.1995%.
2. Agora, clicando com o botão esquerdo na caixa de texto ao lado do botão 'Choose',
abra a janela de opções. Modifique a opção 'reducedErrorPruning' para 'True'. Essa
opção faz uma poda na árvore até reduzir o erro em uma amostra de validação. Execute
o algoritmo e reporte o tamanho da árvore e a taxa de acerto obtida com essa opção. A
mudança foi significativa? Por que isso aconteceu?
R: Após a alteração realizada, o tamanho da árvore passou para 161 e a taxa de acerto
passou para 92.4552%. Sim, pois ao utilizar métodos de poda (pruning) o objetivo é
melhorar a taxa de acerto do modelo para novos exemplos, os quais não foram
utilizados no conjunto de treinamento.
Parte 2 – Naive Bayes (Bayes Ingênuo)
Nesta parte, o objetivo é aprender um modelo bayesiano simples. Para executar o
algoritmo bayesiano simples no Weka, abaixo de 'Classifier' clique em 'Choose' e
escolha 'bayes > Naive Bayes'. Não esqueça de marcar o 'Test Options' como sendo
'Percentage Split' (66%).
1. Execute o algoritmo com as opções padrão. Qual foi a taxa de acerto obtida?
R: A taxa de acerto foi de 78.0051%.
2. Agora, clicando com o botão esquerdo na caixa de texto ao lado do botão 'Choose',
abra a janela de opções. Modifique a opção 'UseSupervisedDiscretization' para 'true'.
Nessa opção, em vez de tratar cada atributo como uma variável real gaussiana, o
algoritmo primeiro discretiza os atributos e depois utiliza contagens para estimar
probabilidades. Execute o algoritmo e reporte a taxa de acerto obtida com essa opção. A
mudança foi significativa? Por que isso aconteceu?
R: A taxa de acerto passou para 90.3453%. Sim, foi significativa e isso acontece, pois,
alguns algoritmos manipulam apenas com atributos com valores nominais, para usá-los
com bases de dados gerais, os atributos numéricos têm que ser, primeiro,
‘discretizados’.
Parte 3 - Redes Neurais
Nesta parte, o objetivo é aprender uma rede neural com uma camada de entrada, uma
camada interna e uma camada de saída. Para executar o algoritmo de redes neurais no
Weka, abaixo de 'Classifier'clique em 'Choose' e escolha 'functions >
MultiLayerPerceptron'. Não esqueça de marcar o 'Test Options' como sendo 'Percentage
Split' (66%).
1. Clicando com o botão esquerdo na caixa de texto ao lado do botão 'Choose', abra a
janela de opções. Coloque o valor de 'Reset' como sendo 'false' e de 'Training Time'
como sendo 100. Treine 6 redes neurais diferentes considerando todas as combinações
dos seguintes valores para as opções 'learning rate': 0.1 e 0.3, e 'hidden layers' (número
de unidades na camada oculta): 5, 10 e 20.
[Link] cada execução, qual foi o tempo para treinar a rede e qual a sua taxa de acerto?
R:
Learning Hidden
Tempo de execução Taxa de acerto
Rate Layers
0.1 5 2.68s 89.3223%
0.1 10 4.8s 88.2353%
0.1 20 9.08s 88.8107%
0.3 5 2.63s 88.1074%
0.3 10 4.81s 87.2762%
0.3 20 8.82s 88.8107%
[Link] rede teve a melhor taxa de acerto? Qual seria uma explicação plausível para
isso?
R: A primeira, com Learning Rate = 0.1 e Hidden Layers = 5. Obtém-se o melhor
resultado devido ao valor dos parâmetros serem os menores da relação.
2. Mude o parâmetro 'Training Time' para 300 e o 'hidden layers' para 10. Treine duas
redes neurais usando como 'learning rate': 0.1 e 0.3.
[Link] cada execução, qual foi o tempo para treinar a rede e qual a sua taxa de acerto?
R: Learning Rate 0.1 : Tempo 9.08s e Acerto 88.8107%
Learning Rate 0.3 : Tempo 14.42s e Acerto 88.9386%.
[Link] os resultados com os da pergunta 1(a) com 10 unidades na camada interna.
Aumentar o tempo de treinamento melhorou a taxa de acerto? Isso sempre acontecerá?
R: Sim, melhorou. Alterei o parâmetro Training Time para 400, 600 e 900. A taxa
aumentou gradativamente conforme o Training Time foi incrementado.
[Link] outra rede com 'Training Time'=300, 'hidden layers'=5 e 'learning rate'=0.3.
Compare esse resultado com o resultado análogo em 1(a). A taxa de acerto foi melhor
ou pior?
R: A taxa de acerto foi melhor, sendo de 90.7928% contra 88.1074%.
3. Faça seus próprios experimentos variando 'Training Time', 'hidden layers' e 'learning
rate'. Varie um parâmetro de cada vez, mantendo os outros constantes. A variação na
taxa de acerto ocorre conforme você esperava?
R: O parâmetro que encontrei variação dentro do esperado foi ao reduzir Hidden layers
apenas. Não encontrei consistência ao alterar Training Time e Learning Rate.