Introdução à Inteligência Artificial

Conhecimentos de Base Recomendados

Recomenda-se a conclusão prévia da seguinte unidade curricular:

  • 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 estudantes 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 estudante é 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 estudantes. 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 estudante 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. Comparar os vários tipos de agentes. 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.

3. Discutir a análise e tratamento dos dados. Demonstrar a obtenção das principais medidas de estatística descritiva. Exemplificar a utilização de testes no âmbito da estatística inferencial. Explicar as técnicas de pré-processamento de dados.

4. Explicar em que consiste Machine Learning. Classificar os diferentes tipos de algoritmos neste âmbito. Justificar a escolha de um modelo.

5. Discutir as características da aprendizagem supervisionada. Demonstrar a utilização de vários tipos de modelos existentes neste tipo de aprendizagem.

6. Analisar as propriedades da aprendizagem não supervisionada. Exemplificar a utilização de vários tipos de modelos existentes neste tipo de aprendizagem.

7. Definir Deep Learning. Discutir as características dos diferentes modelos e plataformas de Deep Learning. Avaliar a sua aplicação prática na resolução de problemas.

8. Projetar, criar e modificar aplicações de software. Analisar a utilização de 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. Agentes Adaptativos. Algoritmo genético. Arquitectura e funcionamento de um algoritmo genético. Agentes Aprendizes. Redes neuronais. O perceptrão. Redes de uma camada e várias camadas.

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

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

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

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

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

8. Desenvolvimento de aplicações. Linguagem Python. Algoritmos e plataformas de Machine Learning e Deep Learning.

Docente(s) responsável(eis)

Luís Alberto Morais Veloso

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.

Cisco. (2022). Python Essentials. Retrieved September 4, 2024, from https://www.netacad.com/

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.

Ekman, M. (2022). Learning Deep Learning. Addison-Wesley.

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.