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 professor e discutidos com a turma, seguidos de exemplos demonstrativos;

2 – Método experimental: método activo onde o aluno desenvolve o conhecimento através da resolução problemas, e do desenvolvimento de projectos laboratoriais individuais ou em dinâmica de grupo.

Resultados de Aprendizagem

No final da unidade curricular o aluno deverá 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.