Introdução à Inteligência Artificial

Base Knowledge

Programming Fundamentals.

Teaching Methodologies

The following teaching methodologies are used in this course:

1 – Expository method: explanatory method where theoretical foundations and concepts are presented by the teacher and discussed with the class, followed by demonstrative examples;

2 – Experimental method: active method where the student develops knowledge through problem solving, and via the development of individual or group laboratory projects.

Learning Results

At the end of the course the student should be able to:

1. Define Artificial Intelligence. Recognize the main historical milestones of its evolution. Classify the different existing paradigms in the context of Artificial Intelligence.

2. Identify and compare the various types of agents used in this technology.

3. Analyze adaptive agents. Explain the organization and functioning of a genetic algorithm. Recognize apprentice agents. Explain the constitution and functioning of neural networks.

4. Discuss data processing for its later use by different algorithms. Synthesize and demonstrate the attainment of the descriptive statistics measures. Select and use tests within the scope of inferential statistics.

5. Explain the meaning of Machine Learning. Classify the different types of systems in this scope. Select and justify the choice of a model.

6. Identify the main characteristics of supervised learning. Demonstrate the use of different types of models for this type of learning.

7. Analyze the main features of unsupervised learning. Demonstrate the use of different types of models for this type of learning.

8. Compare, choose and demonstrate the use of different Deep Learning models.

9. Design, create and modify software applications using Machine Learning and Deep Learning libraries and algorithms.

Program

1. Artificial Intelligence. Historical review. Computational/symbolic, connectionist and biological paradigms. Smart agents and the future of AI.

2. Agents. Types of agents: reactive agents, search agents, knowledge-based agents, adaptive agents, and learning agents.

3. Adaptive Agents. Genetic Algorithm. Architecture and operation of a genetic algorithm. Learning Agents. Neural networks. The perceptron. One-layer networks. Multilayered networks and learning.

4. Data Analysis. Data formatting and normalization. Descriptive Statistics. Measures of central tendency and variance. Inferential Statistics. Independence tests: X2, Fisher. Association tests: Pearson, Spearman. Parametric tests: t, ANOVA. Non-parametric tests: Wilcoxon, Mann-Whitney, Kruskal-Wallis.

5. Machine Learning. Types of systems: Supervised versus Unsupervised, Batch versus Online, Instance-Based versus Model-Based. Model choice. Overfitting and Underfitting. Testing and validation. Data visualization.

6. Supervised Learning. Regression: Linear and non-linear. Classification: K-Nearest Neighbors (KNN), Decision Trees, Logistic Regression, Support Vector Machines (SVM).

7. Unsupervised Learning. Clustering: K-means, Hierarchical Clustering, Density-Based Spatial Clustering of Applications with Noise (DBSCAN). Dimensionality Reduction: PCA, LDA.

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

9. Development of applications in Python language using Machine Learning and Deep Learning algorithms.

Curricular Unit Teachers

Grading Methods

Evaluation
  • - The evaluation is based on lecture reports (1 point per lecture), a written test (8-9 points) and one or more practical assignments that are worth the rest. - 100.0%

Internship(s)

NAO

Bibliography

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.