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
- - 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.