Introdução à Inteligência Artificial

Base Knowledge

Programming Fundamentals.

Teaching Methodologies

The following teaching methodologies are used in this course unit:

1. Expository method: explanatory method where theoretical foundations and concepts are presented by the teacher and discussed with the class. Concepts and information will be presented to students through, for example, slide presentations or oral discussions. It will be used in classes to structure and outline the information.

2. Demonstrative method: based on the example given by the teacher of a technical or practical operation that one wishes to be learned. It focuses on how a given operation is carried out, highlighting the most appropriate techniques, tools and equipment. It will be used, for example, in practical and laboratory classes.

3. Interrogative method: process based on verbal interactions, under the direction of the teacher, adopting the format of questions and answers. It allows for greater dynamics in the classroom and consolidates learning. It will be used, for example, to remember elements of previous classes and in revisions of the lectured content.

4. Active methods: pedagogical techniques will be used in which the student is the center of the learning process, being an active participant and involved in his own training. The teacher assumes the role of facilitator, stimulating critical thinking, collaboration, creativity and student autonomy. They will be applied in classes to achieve a dynamic and more lasting learning environment.

Learning Results

At the end of the course unit the student will 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.