(Microsoft PowerPoint - Aula 01 - IA - Introdução)O que é
Inteligência Artificial?
• Área de pesquisa que tem como objetivo buscar métodos ou
dispositivos computacionais que possuam ou aumentem a capacidade
racional do ser humano de resolver problemas, “pensar”
ou, de forma geral, “ser inteligente”.
• O conceito de Inteligência Artificial é algo bem amplo e que
recebe tantas definições quanto os diversos significados da palavra
inteligência.
– 1 –
O que é Inteligência Artificial?
• [Winston, 1984]:
– "Inteligência artificial é o estudo das ideias que permitem aos
computadores serem inteligentes"
• [Schalkoff, 1990]:
– “É o campo de estudo que tenta explicar e simular o comportamento
inteligente em termos de processos computacionais”
• [Kurzweil, 1990]
– “A arte de criar máquinas que executam funções que requerem
inteligência quando executadas por pessoas”
– 2 – Prof. Luiz Alberto -Aula 1 - IA – Introdução
O que é Inteligência Artificial?
• “Inteligência” + “Artificial”
– “Inteligência”
• Se comportar da melhor maneira possível?
• Pensar?
• Agir?
– 3 –
O que é Inteligência Artificial?
• A Inteligência Artificial busca entender a mente humana
e imitar computacionalmente o seu funcionamento. – Como os seres
humanos extraem o conhecimento do mundo?
– Como a memória, os sentidos e a linguagem ajudam no
desenvolvimento da inteligência?
– Como surgem as ideias?
– Como a mente processa informações e tira conclusões decidindo por
uma coisa ao invés de outra?
• Essas são algumas perguntas que a IA precisa responder para
simular o raciocínio humano e implementar aspectos da
inteligência.
– 4 – Prof. Luiz Alberto -Aula 1 - IA – Introdução
História da Inteligência Artificial
• 2011 – Watson (IBM) derrota os dois maiores jogadores de Jeopardy
(Brad Rutter e Ken Jennings). – Baseado em tecnicas avançadas de
Processamento de Linguagem Natural,
Recuperação de Informação, Representação de Conhecimento,
Raciocínio e Aprendizado de Máquina.
– Processamento paralelo massivo.
• 90 clusters com um total de 2880 servidores com processadores de
3.5 GHz (8 núcleos e 4 threads por núcleo). 16 Terabytes de memória
RAM.
– 5 –
Abordagens para Inteligência Artificial
– Deduz consequências por métodos de raciocínio lógico.
– Exemplo: • ∀x∀y irmão(x, y) ⇒ parente(x, y)
• ∀x∀y∀z pai(z, x) ∧ pai(z, y) ⇒ irmão(x, y)
• pai(joão, maria).
• pai(joão, eduardo).
– É necessário: • Identificar o conhecimento do domínio (modelo do
problema).
• Representá-lo utilizando uma linguagem formal de
representação.
• Implementar um mecanismo de inferência para utilizar esse
conhecimento.
Maria e Eduardo são parentes.
– 6 – Prof. Luiz Alberto -Aula 1 - IA – Introdução
IA simbólica (ou GOFAI)
– 7 –
Abordagens para Inteligência Artificial
• Abordagem Não-Simbólica:
– Na abordagem Não-Simbólica, o conhecimento não é representado
explicitamente por meio de símbolos, e sim, construído a partir de
um processo de aprendizado, adaptação ou inferência.
– Exemplos: • Redes Neurais Artificiais, Computação Evolutiva,
Sistemas Nebulosos...
– 9 –
Aplicações da IA: Robótica
• Como obter navegação segura e eficiente, manipulação fina e
versátil, autonomia?
• E no caso de ambientes dinâmicos e imprevisíveis?
10 Prof. Luiz Alberto -Aula 1 - IA – Introdução
Aplicações da IA: Automação
de sistemas complexos
• Como modelar os componentes do sistema e dar-lhes autonomia? •
Como assegurar boa comunicação e coordenação entre esses
componentes?
11
Automação de Software Complexo
12 Prof. Luiz Alberto -Aula 1 - IA – Introdução
Aplicações da IA:
Sistemas de controle
• Como frear o carro sem as rodas deslizarem em função da
velocidade, atrito, ...?
• Como focar a câmera em função de luminosidade, distância...? •
Como ajustar a temperatura em da quantidade de roupa, fluxo
de
água, ...?
13
Aplicações da IA:
Simulações e jogos
• Como modelar o ambiente físico e o comportamento/personalidade
dos personagens?
• Como permitir interação interessante com o usuário?
14FIFA SoccerThe Sims Prof. Luiz Alberto -Aula 1 - IA –
Introdução
Aplicações da IA: Previsão
• Como prever o valor do dólar (ou o clima) amanhã?
• Que dados são relevantes? Há comportamentos recorrentes?
15
Aplicações da IA:
Sistemas de Recomendação
Como fazer recomendações personalizadas de produtos? Como modelar
os perfis dos compradores? Como recomendar experts capazes de
ajudar usuários a resolver
problemas?
Prof. Luiz Alberto -
Aplicações da IA:
Recuperação de informação
19
filtragem de spam
• Como saber se uma mensagem é lixo ou de fato interessa?
• Como detectar usuários suspeitos e como lidar com isto?
20 Prof. Luiz Alberto -Aula 1 - IA – Introdução
Aplicações da IA:
Interação Humano Máquina
Como dar ao usuário a ajuda de que ele precisa? Como interagir (e
até navegar na web) com celular sem ter de digitar
(hands-free)? Como adaptar a informação e funcionalidades ao
dispositivo e à
situação do usuário?
• Quantidades gigantescas de dados são coletados e armazenados em
empresas, corporações, etc – Dados de comércio eletrônico,
– Dados de navegação na internet
– Dados de compras de clientes em grandes lojas de departamentos,
supermercados,
– Dados de transações bancárias, ou de cartão de crédito
• Computadores mais baratos e mais potentes
• Pressão da Competição
O que é Data Mining ?
• Mineração de dados (descoberta de conhecimento em bases de
dados): – Extração de informação interessante (não-trivial,
implícita,
previamente desconhecida e potencialmente útil) dos dados
armazenados em grandes massas de dados
• Nomes alternativos: – Descoberta (mineração) de conhecimento em
banco de dados
(KDD), extração de conhecimento, análise de dados/padrões, business
intelligence, etc.
• O que não é data mining? – Processamento de consultas dedutivo. –
Sistemas especialistas ou pequenos programas estatísticos ou
de
aprendizado de máquina Prof. Luiz Alberto -Aula 1 - IA –
Introdução
Mineração de Textos – Text Mining
• Mineração de Textos – Text Mining – Descoberta de conhecimento em
textos (DCT) – Do inglês, knowledge discovery in texts (KDT) – é um
processo que visa descobrir padrões não explícitos
a partir de documentos textuais
• A Mineração de Textos é um processo semelhante à Mineração de
Dados – DM – Data Mining
27
• Áreas correlatas – recuperação de informação – extração de
informação – processamento de linguagem natural – aprendizagem de
máquina – mineração de dados
28
Prof. Luiz Alberto -Aula 1 - IA – Introdução
Mineração de Textos – Text Mining
29
• Bancos de dados...
• Mineração de textos – Os dados são não estruturados (texto livre)
ou
semiestruturados
O que é mineração de opinião?
O É o campo de estudo que analisa as opiniões, sentimentos,
avaliações, atitudes e emoções de pessoas direcionadas a produtos,
serviços, organizações, indivíduos, problemas, eventos, tópicos e
seus atributos.
O É o campo de estudo que analisa as opiniões de pessoas
direcionadas a entidades.
– 30 – Prof. Luiz Alberto -Aula 1 - IA – Introdução
• Aumento do compartilhamento de opinião;
• Analista de mídias sociais – característico das áreas de
jornalismo, publicidade ou relações públicas.
• Lentidão no atendimento Web;
• Surge a análise de sentimentos – estudo de opiniões, sentimento e
emoções expressas em textos;
• Realizada por meio de técnicas de Text Mining;
• Geralmente classifica opiniões em positivo, negativo ou
neutro.
O que é mineração de opinião?
– 31 –
Assistente Virtual (Chatbot)
• É um programa de computador que tenta simular um ser
humano na conversação e interação com as pessoas. O objetivo é
auxiliar os usuários em tarefas simples como respostas a dúvidas
frequentes, agendamentos, pesquisas, dentre outros, de tal forma
que consigam soluções rápidas, com a impressão de estarem
conversando com um atendente.
• Através da seleção de opções ou o envio de perguntas em linguagem
natural, o programa consulta uma base de conhecimento e em seguida
fornece uma resposta que tenta imitar o comportamento humano.
– 32 – Prof. Luiz Alberto -
Exemplos de Aplicação da IA
• Jogos: xadrez, damas, etc.
• Sistemas tutores: modelagem do aluno, escolha de estratégias
pedagógicas, etc.
• Robótica (software e hardware): manipulação, navegação,
monitoramento, etc.
• Sistemas especialistas: Atividades que exigem conhecimento
especializado e não formalizado
– 35 –
Inteligência Artificial
• Raciocínio • Planejamento • Aprendizagem • Sistemas
Multi-Agentes • Reconhecimento de Padrões
•Processamento de Linguagem Natural
Problemas • Jogos • Sistemas Especialistas
Aplicações
• Sociologia • Lingüística • Psicologia • Genética •
Neuro-fisiologia •Economia •Computação tradicional
Fundamentos
Introdução
• Infelizmente ainda não sabemos exatamente como fazer computadores
aprender de uma maneira similar a maneira como os humanos
aprendem.
• Entretanto, existem algoritmos que são eficientes em certos tipos
de tarefas de aprendizagem.
– 37 –
O que é Aprendizagem de Máquina?
• Aprender significa “mudar para fazer melhor” (de acordo com um
dado critério) quando uma situação similar acontecer.
• Aprendizagem, não é memorizar. Qualquer computador pode
memorizar, a dificuldade está em generalizar um comportamento para
uma nova situação.
– 38 – Prof. Luiz Alberto -Aula 1 - IA – Introdução
Importância do Aprendizado
• Por que é importante para um agente aprender?
– Os programadores não podem antecipar todas as situações que o
agente pode encontrar.
Exemplo: Um robô programado para andar em um único labirinto pode
não saber andar em outros.
– Os programadores não podem antecipar todas as mudanças que podem
acontecer com o passar do tempo.
Exemplo: Agente programado para prever as melhores opção de bolsa
para investir precisa se adapta quando o ambiente muda.
– Os programadores nem sempre sabem encontrar a solução dos
problemas diretamente.
Exemplo: Programar um sistema para reconhecer faces não é algo
trivial.
– 39 –
Como Aprender Algo?
• Exemplos: – Considerando um agente treinando para se tornar
um motorista de táxi. Toda vez que o instrutor gritar "freio!" o
agente pode aprender uma condição de quando ele deve frear.
– Ao ver várias imagens que contem ônibus, o agente pode aprender a
reconhecê-los.
– Ao tentar ações e observar os resultados. Por exemplo, ao frear
forte em uma estrada molhada pode aprender que isso não tem um
efeito bom.
– 40 – Prof. Luiz Alberto -Aula 1 - IA – Introdução
Formas de Aprendizado
Aprendizado Supervisionado
• Observa-se alguns pares de exemplos de entrada e saída, de forma
a aprender uma função que mapeia a entrada para a saída.
• Damos ao sistema a “resposta correta” durante o processo de
treinamento.
• É eficiente pois o sistema pode trabalhar diretamente com
informações corretas.
• Útil para classificação, regressão, estimação de probabilidade
condicional (qual é a probabilidade de um cliente com um
determinado perfil comprar um determinado produto?)
– 42 – Prof. Luiz Alberto -Aula 1 - IA – Introdução
Aprendizado Supervisionado
• Exemplo: – Considerando um agente treinando para ser se tornar um
motorista de táxi.
Toda vez que o instrutor gritar "freio!" o agente pode aprender uma
condição de quando ele deve frear.
– A entrada é formada pelos dados percebidos pelo agente através de
sensores. A saída é dada pelo instrutor que diz quando se deve
frear, virar a direita, virar a esquerda, etc.
– 43 –
Aprendizado Não Supervisionado
• O agente reconhece padrões nos dados de entrada, mesmo sem nenhum
feedback de saída.
• Por exemplo, um agente aprendendo a dirigir pode gradualmente
desenvolver um conceito de dias de bom trafego e dias de trafego
congestionado mesmo sem nunca ter recebido exemplos rotulados por
um professor.
– 44 – Prof. Luiz Alberto -Aula 1 - IA – Introdução
Aprendizado Por Reforço
• O agente recebe uma série de reforços, recompensas ou
punições.
• Por exemplo, a falta de uma gorjeta no final do percurso da ao
agente taxista uma indicação de que ele fez algo errado.
• Cabe ao agente reconhecer qual das ações antes do reforço foram
as maiores responsáveis por isso.
• Não damos a “resposta correta” para o sistema. O sistema faz uma
hipótese e determina se essa hipótese foi boa ou ruim.
– 45 –
Fases da Aprendizagem
– O sistema “aprende” a partir dos exemplos.
– O sistema modifica gradualmente os seus parâmetros para que a
saída se aproxime da saída desejada.
• Utilização – Novos exemplos jamais visto são apresentados ao
sistema.
– O sistema deve generalizar e reconhecê-los.
– 46 – Prof. Luiz Alberto -Aula 1 - IA – Introdução
Exemplos de Treinamento
– 47 –
Classificação de Exemplos
X1 0.22829 0.48713 0.00592 -0.010360 0.419731 -0.2845 ?
X2 0.21816 0.48729 0.00572 0.0045762 0.421444 -0.28484 ?
X3 0.23884 0.49824 0.01447 -0.003901 0.433145 -0.24956 ?
X4 0.23002 0.49013 0.02172 0.002992 0.412416 -0.28092 ?
X5 0.24575 0.49243 0.01029 -0.015341 0.430937 -0.28244 ?
– 48 – Prof. Luiz Alberto -Aula 1 - IA – Introdução
Generalizar é Difícil
– Boa resposta sobre os exemplos de treinamento somente.
– Fácil para um computador.
– Difícil para os humanos.
– Fundamentalmente mais difícil: diversas maneiras de
generalizar.
– Devemos extrair a essência, a estrutura dos dados e não somente
aprender a boa resposta para alguns casos.
– 49 –
RapidMiner
• RapidMiner é uma plataforma de software de ciência de dados
desenvolvida pela empresa de mesmo nome que fornece um ambiente
integrado para preparação de dados, aprendizado de máquina,
aprendizado profundo, mineração de texto e análise preditiva.
• É frequentemente citado em pesquisas sobre soluções utilizadas
para análise de dados.
– 51 –
WEKA
• O pacote de software Weka começou a ser escrito em 1993, usando
Java, na Universidade de Waikato, Nova Zelândia sendo adquirido
posteriormente por uma empresa no final de 2006. O Weka é um
software livre largamente utilizado para mineração de dados, e
oferece uma lista ampla de algoritmos para análise de dados,
podendo ser instalado em qualquer computador com Windows ou
Linux.
– 52 – Prof. Luiz Alberto -Aula 1 - IA – Introdução
Python
• Python foi considerada a linguagem de programação mais usada pela
comunidade de profissionais de Mineração de dados e Big data.
• Python tem inúmeras razões para ser escolhida e podemos citar
algumas como simplicidade, clareza e reusabilidade.
• A linguagem oferece uma sintaxe simples e objetiva permitindo o
programador se focar no problema a ser resolvido sem se preocupar
tanto com detalhes de implementações.
• Além da grande comunidade no mundo inteiro, Python possui um
vasto e variado conjunto de bibliotecas para se trabalhar com
diversas áreas, desde computação científica, redes, segurança e
claro análise de dados.
– 53 –
Bibliotecas Python
• Jupyter: Aplicação cliente-servidor que permite a edição e
execução de notebooks via browser. Notebooks são documentos que
contém código e elementos visuais como imagens, links, equações. A
principal vantagema utilização de notebooks é para a descrição de
análises e seus resultados de forma dinâmica e interativa.
• NumPy: Biblioteca Python para computação científica. Implementa
arrays multidimensionais e permite a fácil execução de operações
matemáticas e lógicas como ordenação, seleção, transformações,
operações estatísticas básicas etc.
• Matplotlib: Biblioteca Python 2D para a visualização e plotagem
de gráficos. Pode ser utilizada para gerar diversos tipos de
gráficos como histogramas, gráficos de barras, gráficos de pizza
tudo de forma fácil e rápida.
– 54 – Prof. Luiz Alberto -Aula 1 - IA – Introdução
Bibliotecas Python
• Pandas: Esta biblioteca talvez seja a mais utilizada para análise
de dados. Ela fornece ferramentas para manipulação de estruturas de
dados de forma extremamente simples. Operações complexas que
trabalham com matrizes e vetores podem ser facilmente realizadas
com uma ótima performance.
• Scikit-Learn: Biblioteca Python para trabalhar com Machine Learn
(Aprendizado de Máquina). Contém diversos algoritmos implementados,
métodos de análise e processamento de dados, métricas de avaliação
etc. Essa é uma biblioteca extremamente útil para o cientista de
dados.
• NLTK: é uma plataforma líder para a construção de programas
Python para trabalhar com dados de linguagem humana. Ele fornece
interfaces fáceis de usar para mais de 50 corpora e recursos
lexicais como o WordNet, juntamente com um conjunto de bibliotecas
de processamento de texto para classificação, tokenização,
stemming, tagging, análise e raciocínio semântico
• Scrapy: Biblioteca Python para a raspagem ou coleta de dados a
partir da Web. É possível coletar dados de sites, redes sociais,
fóruns e diversos outros canais utilizando uma linguagem simples e
objetiva. Extremamente útil para a geração de bases de dados.
– 55 –