IN550 - Machine Learning - AA 2019-2020

Corso

Descrizione, Programma


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.