Introduzione
Il corso di IN550 - Machine Learning mira a fornire la conoscenza di base del problema
dell'apprendimento automatico ovvero a come istruire un calcolatore analizzando i dati a disposizione, senza essere
esplicitamente programmati.
Durante il corso verranno descritte i principali metodi di apprendimento automatico con o senza supervisore e
ne verranno discusse le proprietà ed i criteri di applicabilità.
Lo studente acquisirà la capacità di formulare correttamente il problema, di scegliere l'algoritmo opportuno,
e di condurre l'analisi sperimentale per valutare i risultati ottenuti.
Un altro obiettivo del corso riguarda la cura dell'aspetto pratico dell'implementazione dei metodi introdotti,
attraverso la presentazione di esempi di impiego in diversi scenari applicativi.
Programma finale del corso AA 2019-2020
Introduzione e generalita'; Cosa e' l'apprendimento automatico;
definizioni; apprendimentio supervisionato e non supervisionato; la
regressione ed il clustering;
Regressione lineare univariata; rappresentazione; la funzione ipotesi;
la scelta dei parametri della funzione ipotesi; la funzione costo;
l'algoritmo Gradient Descent; la scelta del parametro alpha;
Regressione lineare multivariata; notazione vettoriale della funzione
ipotesi e della funzione costo; algoritmo Gradient Descent per la
multivariata; notazione matriciale; feature scaling and normalization;
polynomial regression; la Normal Equation per la regressione
multivariata; note finali sul confronto dell'algoritmo Gradient
Descent e il calcolo della Normal Equation;
La Regressione Logistica; la classificazione binaria; rappresentazione
delle ipotesi; la funzione logistica; il decision boundary; la
funzione costo per la regressione logistica; l'algoritmo della discesa
del gradiente per la regressione logistica; derivazione analitica del
gradiente della funzione costo per la regressione logistica; note
sulla implementazione in Octave della funzione costo e dell'algoritno
della discesa del gradiente nel caso della regressione logistica;
considerazioni sui metodi di ottimizzazione avanzati; classificazione
multi-classe; il metodo one-vs-all;
La regolarizzazione; il problema dell'overfitting/underfitting (ovvero
high variance/high bias); modifica della funzione costo; il parametro
di regolarizzazione; regolarizzazione della regressione lineare;
l'agoritmo della discesa del gradiente con la regolarizzazione; la
normal equation regolarizzata; la regressione logistica con la
regolarizzazione; Neural networks history; AI e connessionismo; il
percettrone; la regola di apprendimento di Rosenblatt; apprendimento
di funzioni booleane; i limiti del percettrone;
Neural networks; motivazioni; i neuroni; la neuroplasticita' e la
one-learning-algorithm hypothesis; model representation; il neurone
come logistic unit; la matrice dei pesi; il bias; la funzione di
attivazione; il forward propagation; versione vettoriale; le NN come
estensione della logistic regression; calcolo delle funzioni booleane
AND, OR, NOT, XNOR; multiclass classification con Neural Networks;
Neural Network Learning; funzione costo di un Multi Layer Perceptron;
l'algoritmo di Backpropagation; Intuizione e formalizzazione;
Neural Network learning; Error BackPropagation Algorithm (versione
scalare, versione vettoriale); Note sull'implementazione; rolling e
unrolling dei parametri per il passaggio della matrice dei pesi in
Octave; Gradient checking mediante il calcolo del gradiente
approssimato numerico; inizializzazione dei pesi e symmetry breaking;
La rete ALVINN (an autonomous driving system);
Machine Learning Diagnostic; Evaluating a Learning Algorithm; The test
set error; Model selection + training, validation and test set; The
concept of Bias and variance; Regularization and Bias/Variance;
Choosing the regularization parameter; Putting all together:
diagnostic method; Learning curves; Machine Learning system design;
Debugging a learning algorithm; Diagnosing Neural Networks ; Model
selection; Error analysis; The importance of numerical evaluation;
Error Metrics for Skewed Classes; Precision/Recall and Accuracy;
Trading Off Precision and Recall; The F1 score; Data for Machine
Learning; Designing a high accuracy learning system; Rationale for
large data;
Support Vector Machines; SVM Cost function; SVM come Large margin
Classifiers; i Kernels; scelta dei landmarks; scelta dei parametri C e
sigma; Multi-class Classification con SVM confronto tra Logistic
Regression e SVM e tra NN vs. SVM;
Clustering; l'algoritmo K-means; cluster assignment step; move
centroids step; optimization objective; choosing the number of
clusters, the elbow method; Dimensionality Reduction; Principal
Component Analysis; Motivation I: Data compression; Motivation II:
data visualization - Problem Formulation; Goal of PCA; Il ruolo della
Singular Value Decomposition nell'algoritmo PCA; Reconstruction from
compressed representation; Algorithm for choosing k; Advice for
Applying PCA; The most common use of PCA; Misuse of PCA;
Anomaly Detection; Problem motivation; Density estimation; Gaussian
distribution; Anomaly Detection; Gaussian distribution; Parameter
estimation; The Anomaly Detection Algorithm; Anomaly Detection
vs. Supervised Learning; Multivariate Gaussian Distribution;
Recommender Systems; Collaborative Filtering; Motivation; Problem
Formulation; Content Based Recommendations; Notation; Optimization
objective; Gradient descent update; Low Rank Matrix Factorization;
Learning with large datasets; Online learning; Stochastic gradient
descent; Mini-batch gradient descent; Checking for convergence; Map
reduce and data parallelism;
Machine Learning pipeline; the OCR systeml ceiling analysis;
Laboratorio: esercizio relativo a Recommender Systems;
Esercitazioni
Generalita' sul software Octave; L'ambiente di programmazione Octave;
operazioni vettoriali; funzioni; Lettura e scrittura di file; plotting
dei dati; funzioni vettoriali; esecuzione di funzioni annidate;
implementazione di un algoritmo per la normalizazione delle features
da usare per la linear regression;
Univariate Linear Regression con Octave su un data set dato; lettura e
visualizzazione del data set; Calcolo della funzione costo in versione
scalare e in versione vettoriale; Implementazione dell'algoritmo Batch
Gradient Descent in versione scalare ed in versione vettoriale;
Multivariate Linear Regression in Octave su un data set dato;
implemetazione della Feature Normalization; Calcolo della funzione
costo (per multivariate lin regression) in versione scalare ed in
versione vettoriale;
Implementazione dell'Algoritmo della Discesa del Gradiente (per
multivariate linear regression) in versione scalare e vettoriale;
Implementazione della Normal Equation in forma vettoriale;
Logistic Regression in Octave; Calcolo della funzione sigmoidale;
Calcolo della funzione costo per multivariate linear regression
(versione scalare e versione vettoriale); Utilizzo della funzione di
libreria fminunc per ottimizzare i parametri theta; uso dei parametri
per effettuare predizioni circa il problema affrontato;
Regularized Logistic Regression; Calcolo della funzione costo con
Regolarizzazione (versione vettoriale); Uso della funzione di libreria
Octave fminunc per calcolare i parametri ottimali della regolarizzata
dato un training set con due features; Uso della ipotesi regolarizzata
per fare una predizione; Calcolo della accuracy sul training set;
Implementazione dell'Algoritmo di Error Back Propagation per il
training di un Multi-Layer Perceptron; definizione di una 3-layers NN;
input del training set e visualizzazione; input dei parametri
pre-stimati e unrolling dei parametri in un vettore;
Implementazione della funzione costo per la NN; implementazione del
forward prop e del backward prop per il calcolo del gradiente della
funzione costo;
Implementazione in Octave/MATLAB dell'algoritmo K-means;
Implementazione in Octave/MATLAB dell'algoritmo per la Principal
Components Analysis.