Introdução à Inteligência Artificial

Conhecimentos de Base Recomendados

Fundamentos de Programação.

Métodos de Ensino

Nesta unidade curricular são utilizadas as seguintes metodologias de ensino:

1. Método expositivo: método explicativo onde fundamentos teóricos e conceitos são apresentados pelo docente e discutidos com a turma. Os conceitos e informações serão apresentados aos alunos através, por exemplo, de apresentações em slides ou discussões orais. Será utilizado nas aulas para a estruturação e esquematização da informação.

2. Método demonstrativo: baseia-se na exemplificação pelo docente de uma operação técnica ou prática que se deseja aprendida. Centra-se na forma como se executa uma dada operação, destacando as técnicas, as ferramentas e os equipamentos mais adequados. Será por exemplo utilizado em aulas práticas e laboratoriais.

3. Método interrogativo: processo que se fundamenta em interações verbais, sob a condução do docente, adotando o formato de questões e respostas. Permite obter maior dinâmica na aula e consolidar a aprendizagem. Será utilizado por exemplo para recordar elementos de aulas anteriores, e em revisões do conteúdo lecionado.

4. Métodos ativos: serão utilizadas técnicas pedagógicas em que o aluno é o centro do processo de aprendizagem, sendo um participante ativo e envolvido na sua própria formação. O docente assume o papel de facilitador, estimulando o pensamento crítico, a colaboração, a criatividade e a autonomia dos alunos. Serão aplicados nas aulas para alcançar um ambiente de aprendizagem dinâmico e mais duradouro.

Resultados de Aprendizagem

No final da unidade curricular o aluno ficará habilitado a:

1. Definir Inteligência Artificial. Reconhecer os principais marcos históricos da sua evolução. Classificar os diferentes paradigmas existentes no contexto da Inteligência Artificial.

2. Identificar e comparar os vários tipos de agentes utilizados nesta tecnologia.

3. Analisar os agentes adaptativos. Explicar a organização e funcionamento de um algoritmo genético. Reconhecer os agentes aprendizes. Explicar a constituição e funcionamento das redes neuronais.

4. Discutir o tratamento dos dados para posterior utilização por diferentes algoritmos. Sintetizar e demonstrar a obtenção das principais medidas da estatística descritiva. Selecionar e usar testes no âmbito da estatística inferencial.

5. Explicar em que consiste Machine Learning. Classificar os diferentes tipos de sistemas neste âmbito. Selecionar e justificar a escolha de um modelo.

6. Identificar as principais características da aprendizagem supervisionada. Demonstrar a utilização dos vários tipos de modelos deste tipo de aprendizagem.

7. Analisar as características mais importantes da aprendizagem não supervisionada. Demonstrar a utilização dos vários tipos de modelos deste tipo de aprendizagem.

8. Comparar, escolher e demonstrar a utilização de diferentes modelos de Deep Learning.

9. Projetar, criar e modificar aplicações de software recorrendo a bibliotecas e algoritmos de Machine Learning e Deep Learning.

Programa

1. Inteligência Artificial. Resenha histórica. Paradigmas computacional/simbólico, conexionista e biológico. Agentes inteligentes e o futuro da IA.

2. Agentes. Tipos de agentes: agentes reactivos, agentes de procura, agentes baseados em conhecimento, agentes adaptativos, e agentes aprendizes.

3. Agentes Adaptativos. Algoritmo genético. Arquitectura e funcionamento de um algoritmo genético. Agentes Aprendizes. Redes neuronais. O perceptrão. Redes de uma camada. Redes de várias camadas e aprendizagem.

4. Análise de Dados. Formatação e normalização de dados. Estatística Descritiva. Medidas de tendência central e de variância. Estatística Inferencial. Testes de Independência: X2, Fisher. Testes de Associação: Pearson, Spearman. Testes Paramétricos: t, ANOVA. Testes Não Paramétricos: Wilcoxon, Mann-Whitney, Kruskal-Wallis.

5. Machine Learning. Tipos de sistemas: Supervisionada versus Não Supervisionada, Batch versus Online, Instance-Based versus Model-Based. Escolha do modelo. Overfitting e Underfitting. Teste e validação. Visualização dos dados.

6. Aprendizagem supervisionada. Regressão: Linear e não Linear. Classificação: K-Nearest Neighbors (KNN), Árvores de Decisão, Regressão Logistica, Support Vector Machines (SVM). 

7. Aprendizagem não supervisionada. Clustering: K-means, Clustering Hierarquico, Density-Based Spatial Clustering of Applications with Noise (DBSCAN). Redução de Dimensionalidade: PCA, LDA.

8. Deep Learning: Restricted Boltzmann Machines, Deep Belief Networks (DBN), Convolutional Neural Networks (CNN), Recurrent Neural Networks (RNN).

9. Desenvolvimento de aplicações em linguagem Python recorrendo a algoritmos de Machine Learning e Deep Learning.

Docente(s) responsável(eis)

Métodos de Avaliação

Avaliação
  • - A avaliação é feita com base em relatórios das palestras (1 valor por palestra), uma prova escrita (8-9 valores) e um ou mais trabalhos práticos que valem o restante. - 100.0%

Estágio(s)

NAO

Bibliografia

Burkov, A. (2019). The hundred-page machine learning book. Andriy Burkov.

Costa, E. (2015). Programação em python: Fundamentos e resolução de problemas. FCA.

Costa, E., & Simões, A. (2008). Inteligência artificial: Fundamentos e aplicações. FCA.

Geron, A. (2019). Hands-on machine learning with scikit-learn, keras, and tensorflow. O’Reilly.

Mckinney, W. (2017). Python for data analysis: Data wrangling with pandas, numpy, and ipython. O’Reilly.

Raschka, S., & Mirjalili, V. (2019). Python machine learning: Machine learning and deep learning with python, scikit-learn, and tensorflow. Packt Publishing.

Russel, S., & Norvig, P. (2018). Artificial intelligence: A modern approach. Pearson Education Limited.