## Learning objectives

The objective of this module is to provide students with the theoretical basis and practical knowledge of some relevant machine-learning and evolutionary computation algorithms, aimed at classifying data and optimizing classification and data analytics methods.

The methods described in the course will allow students to:

- learn and use inductive-learning algorithms

- learn and use neural nets and other algorithm classes for the supervised classification of data

- learn and use the main supervised and unsupervised clustering algorithms

- learn and use evolutionary computation and swarm intelligence algorithms

## Prerequisites

Entry-level courses in linear algebra and probability theory, such as those normally offered in the corresponding 3-year Laurea course, are necessary pre-requisites for this course.

## Course unit content

Classes:

- Machine Learning Principles

- Supervised Learning

Decision Trees

Neural Networks

Deep Learning

- Unsupervised Learning

Clustering

Neural Networks

- Evolutionary Computation

Genetic Algorithms

Genetic Programming

Swarm Intelligence

Labs:

- Decision Trees / kNN

- Clustering

- Multi-layer Perceptrons

- Unsupervised Neural Nets

- Convolutional Networks

- Genetic Algorithms

- Genetic Programming

- Particle Swarm Optimization

## Full programme

Part 1: Introduction

Lesson 1: How to set up a machine learning experiment

Lesson 2: Learning-based classification

Lesson 3: Classification quality assessment

Part 2: Clustering

Lesson 4: Clustering basics and unsupervised clustering: K-means / Isodata

Lesson 5: Supervised clustering

Part 3: Neural Networks

Lesson 6: Introduction to neural networks

Lesson 7: Supervised learning algorithms: the Backpropagation algorithm

Lesson 8: Deep Learning

Lesson 9: Kohonen's self-organizing maps (SOM)

Lesson 10: Learning Vector Quantization

Part 4: Evolutionary Computation

Lesson 11: Basics

Lesson 12: Genetic Algorithms

Lesson 13: Genetic Programming

Lesson 14: Open research issues

Part 5: Swarm Intelligence

Lesson 15: Basics and Particle Swarm Optimization

Lesson 16: Ant algorithms

Part 6: Other learning-based classifiers

Lesson 17: Support Vector Machines

Labs:

Lab 1: Decision Tress / kNN

Lab 2: Clustering

Lab 3: Supervised Neural Nets

Lab 4: Unsupervised Neural Nets

Lab 5: Convolutional Neural Nets

Lab 6: Genetic algorithms

Lab 7: Genetic Programming

Lab 8: Particle Swarm Optimization

## Bibliography

[1] C. W. Therrien, "Decision, estimation and classification" Wiley, 1989

[2] C. M. Bishop "Pattern Recognition and Machine Learning", Springer, 2006.

[3] R O Duda, P, E. Hart, D. G. Stork, "Pattern classification", 2nd Ed., Wiley, 2001

[4] A. Eiben, J. Smith "Introduction to Evolutionary Computing", 2nd ed., Springer, 2015.

[5] A.P. Engelbrecht "Computational Intelligence: An Introduction", 2nd. Edition, Wiley, 2007

## Teaching methods

Classroom teaching, 32 hours.

Labs, 16 hours.

Homework regularly assigned.

## Assessment methods and criteria

Discussion of the homework assignment, collected in a single report.

After discussing the homework, a practical project will be assigned, consisting in the development of an application using the methods taught during the course, whose results will be presented and discussed by the student both as a written report and as an oral presentation.

## Other information

Office Hours

By appointment (Scientific Complex, Building 1, floor 2, email stefano.cagnoni[AT]unipr.it).