
Página da disciplina de Inteligência Artificial, Turma de 2010/02.
Semestres anteriores:
Ementa Original
Técnicas de inteligência artificial aplicadas à resolução de problemas. Representação de conhecimento. Sistemas baseados em conhecimento. Aprendizagem de máquina. Arquiteturas de sistemas de Inteligência Artificial.
Programa Proposto
- Introdução a linguagem Python
- O que é Python e como apresenta-se um programa em Python. Variáveis, expressões e comandos. Funções. Condicionais e Recursividade. Iteração. Strings. Listas. Tuplas. Dicionários. Classes e objetos. Classes e funções. Classes e métodos. Listas encadeadas. Pilhas. Filas. Árvores. Funções lambda.
- Prática: exercícios em laboratório e com data de entrega.
- OBJETIVO: INTRODUZIR O ALUNO À UMA LINGUAGEM DE PROGRAMAÇÃO, RELEMBRANDO CONCEITOS APRENDIDOS EM LPG{1, 2, 3}.
- Introdução e histórico da IA
- OBJETIVO: APRESENTAR A IA COMO UM TODO, VISLUMBRANDO AS PARTES ESPECÍFICAS QUE SERÃO ESTUDADAS DURANTE O SEMESTRE.
- Introdução a Inteligência Coletiva
- O que é Inteligência Coletiva (IC). Aprendizado de máquina. Limites. Exemplos reais. Usos alternativos para algoritmos com aprendizado. Caso de exemplo: filtragem colaborativa. Apresentar a dinâmica da disciplina durante o semestre.
- Prática: aplicação de recomendação de links extraídos do serviço del.icio.us.
- OBJETIVO: ESCLARECER O QUE É IC, SUAS ÁREAS PRINCIPAIS. MOTIVAR ATRAVÉS DE APLICAÇÃO REAL.
- Clusterização (Agrupamento) e Aprendizado de Máquina
- Aprendizado supervisionado e não-supervisionado. Vetores de palavras. Clusterização hierárquica. Dendogramas. Clusterização por colunas. Clusterização K-Means. Métricas de distâncias. Visualização de resultados. Outras coisas para agrupar.
- Prática: agrupamento de blogs e pessoas a partir de seus interesses.
- OBJETIVO: INTRODUZIR O CONCEITO DE CLUSTERIZAÇÃO DE DADOS (AGRUPAMENTO). MÉTODOS PARA DESCOBRIR E VISUALIZAR GRUPOS DE DADOS, PESSOAS, COISAS QUE ESTÃO INTIMAMENTE RELACIONADOS.
- Busca e Classificação
- Máquinas de busca. Crawling. Indexação em BD. Ranking baseado em conteúdo. O algoritmo Google PageRank. Redes neurais. Treinamento e teste de RN.
- Prática: buscas em bases textuais.
- OBJETIVO: APRESENTAR ALGORITMOS DE BUSCA EM BASES TEXTUAIS E COMO APRESENTAR TAIS RESULTADOS EM UM RANKING.
- Otimização
- Representação de soluções. Função de custo. Busca aleatória. Hill climbing. Simulated annealing. Algoritmos genéticos. Visualização de redes.
- Prática: buscas em bases de dados de vôos.
- OBJETIVO: COMO RESOLVER PROBLEMAS DE COLABORAÇÃO COM OTIMIZAÇÃO ESTOCÁSTICA. PROBLEMAS COM MÚLTIPLAS VARIÁVEIS.
- Filtragem de Documentos
- Filtrando Spam. Documentos e palavras. Treinando o classificador. Classificador Naïve. Introdução ao Teorema de Bayes. O método de Fischer. Filtrando feeds de blogs.
- OBJETIVO: COMO CLASSIFICAR DOCUMENTOS BASEANDO-SE EM SEUS CONTEÚDOS.
- Modelagem com Árvores de Decisão
- Árvores de decisão. Treinando árvores. Construção recursiva de árvores. Visualização de árvores. Classificação de novas observações.
- Prática: aplicações que modelem temas "quentes" (preços, cidades, esportes, ...)
- OBJETIVO: CONFRONTAR OS CLASSIFICADORES APRESENTADOS ATÉ ENTÃO (RN, BAYES, ...) COM OS BASEADOS EM ÁRVORES DE DECISÃO
- Criando modelos de preços
- K-Vizinhos. Função Gaussiana. Cross-validation.
- Classificação Avançada
- Métodos Kernel. Support-Vector Machines.
- Identificação de Características Independentes
- Programação Genética
Horários
| Horário | Segunda | Terça | Quarta | Quinta | Sexta |
|---|---|---|---|---|---|
| 07:30 ~ 08:20 | IA | ||||
| 08:20 ~ 09:10 | IA | IA | |||
| 09:20 ~ 10:10 | IA | IA |
Monitoria
Email do monitor Alan Fachini: alfakini <arroba> gmail <ponto> com
Aulas
- Aula 01 (26/07) - Apresentação da disciplina. Introdução à Python.
- Aula 02 (28/07) - Introdução à Python (continuação). Lista de Exercícios 01.
- Aula 03 (02/08) - Introdução à Python (Continuação). Entrega da Lista de Exercícios 01.
- Aula 04 (04/08) - Introdução à POO em Python. Lista de Exercícios 02.
- Aula 05 (09/08) - Lista de Exercícios 02.
- Aula 06 (11/08) - Lista de Exercícios 02.
- Aula 07 (16/08) - Lista de Exercícios 02.
- Aula 08 (18/08) - Introdução à IA.
- Aula 08 (23/08) - Lista de Exercícios 03.
- Aula 09 (25/08) - Lista de Exercícios 03.
- Aula 10 (30/08) - Lista de Exercícios 03. Entrega.
- Aula 11 - Introdução à Inteligência Coletiva
Para instalar a API pydelicious:
1. Faça o download da API em http://pydelicious.googlecode.com/files/pydelicious-0.5.0.zip
2. Descompacte o arquivo, entre no diretório e instale a biblioteca pydelicious:
unzip pydelicious-0.5.0.zip
cd pydelicious-0.5.0
sudo python setup.py install
3. Para utilizá-lo, basta importar o módulo pydelicious em seu programa Python:
import pydelicious
pydelicious.get_popular(tag='programming)
4. Consulte a documentação da API para conhecer outras funções.
ou simplesmente (dica do Alessandro):
sudo easy_install http://pydelicious.googlecode.com/files/pydelicious-0.5.0.zip
Arquivos/APIs/Softwares
- Interpretador interativo ***INCRÍVEL*** para Python
- Modo Emacs para editar Python
- Código-fonte dos exemplos do livro Practical Collective Intelligence
APIs
Todas as APIs dependem da instalação do pacote python-setuptools em Debian GNU/Linux. Portanto, antes de utilizar o easy_install, instale-o:
sudo aptitude install python-setuptools
Também é recomendada a instalação de iPython:
sudo aptitude install ipython
feedparser
Instalando...
sudo easy_install feedparser
ou...
sudo aptitude install python-feedparser
Testando...
ipython
>>> import feedparser
>>> feedparser.parse('http://automata.cc/index.php/feed/')
pydelicious
Instalando...
1. Faça o download da API em http://pydelicious.googlecode.com/files/pydelicious-0.5.0.zip 2. Descompacte o arquivo, entre no diretório e instale a biblioteca pydelicious: unzip pydelicious-0.5.0.zip cd pydelicious-0.5.0 sudo python setup.py install 3. Para utilizá-lo, basta importar o módulo pydelicious em seu programa Python: import pydelicious pydelicious.get_popular(tag='programming) 4. Consulte a documentação da API para conhecer outras funções. ou simplesmente (dica do Alessandro): sudo easy_install http://pydelicious.googlecode.com/files/pydelicious-0.5.0.zip
Testando...
ipython
>>> import pydelicious
>>> pydelicious.get_popular(tag='lisp')
pil
Instalando...
sudo easy_install pil
matplotlib
Instalando...
sudo aptitude install python-matplotlib
Usando...
ipython
>>> from pylab import *
Referências
IA
- SEGARAN, Toby. Programming Collective Intelligence. O'Reilly, 2007.
- RUSSEL, Stuart; NORVIG, Peter. Inteligência Artificial. Campus, São Paulo, 2004.
- NORVIG, Peter. Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp. Morgan Kaufmann, 1992.
- WINSTON, Patrick Henry. Artificial Intelligence. 3rd. Edition. Addison-Wesley. Reading, 1992.
Python
- Dive Into Python. Disponível Online.
- Aprenda Computação com Python. Disponível Online.
- ASCHER, David; LUTZ, Mark. Aprendendo Python. Bookman, 2007.
- MARTELLI, Alex. Python In A Nutshell. O'Reilly, 2003.
- BEAZLEY, David M. Python Essential Reference. Sams Publishing, 2006.
- Easy AI with Python.
- Aulas de Python na Google
Diversas
- Dicas de Emacs para programar em Python
- Python Brasil
- IDE Komodo (Suporte também a Python)