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