Machine Learning Courses

Introduction to TensorFlow and Neural Networks

Python notebooks to get started with Tensorflow, Neural Neworks (NNs), Convolutional NNs, Word Embeddings and Recurrent Neural Networks. Most of the material is a personal wrap-up of all the material provided by Google's Deep Learning course on Udacity,so all credit goes to them. Additionally, I added one more notebook to practice with the CTC loss function in temporal models and a another two about Variational Inference with Neural Networks and Variational Autoencoders.

Python 3.X required!

  • Notebook 1: How to train a logistic-regressor and a 2-layer NN with L2-norm regularization using TensorFlow.

  • Notebook 2: Convolutional NNs and Dropout Regularization

  • Notebook 3: Word Embeddings and the wor2vec model

  • Notebook 4: Recurrent NNs and sequential character prediction

  • Notebook 5: Recurrent NNs and sequential character prediction from MCC features with Connectionist Temporal Classification

  • Notebook 6: Bi-directional LSTM RNN and sequential character prediction from MCC features with Connectionist Temporal Classification

  • Notebook 7: Amortized Variational Inference with Neural Networks and Variational Autoencoders

Note: since this is an introductory course, most of the steps to define the computation graph in TensorFlow are manually implemented, e.g. I do not make use of predefined tf.layers.

We have moved all files to this public Github repository.

Introduction to Data Science and Machine Learning

Teaching material for an introductory course on Data Science and Machine Learning. I have structured the course with 18 lessons organized as follows:

  • Introduction to Python Notebooks and Numpy

  • Introduction to Pandas

  • Linear regression with a single variable

  • Learning curves, regularization, and cross validation

  • Numerical optimization with gradient descend

  • Nonparametric regression

  • Introduction to binary classification and logistic regression

  • The kernel trick in logistic regression

  • Support Vector Machines

  • Multiclass classificaiton

  • Unsupervised Learning. Clustering with K-means

  • Clustering with Gaussian Mixture Models and the EM algorithm

  • Dimensionality Reduction with PCA. Probabilistic PCA.

  • Latent-Dirichelet Allocation. Finding similar documents in a corpus of documents.

  • Introduction to Neural Networks & Tensorflow

  • Building an image classifier with Convolutional Neural Networks

  • Word Embeddings

  • Recurrent Neural Networks for text prediction

Important note: this course is still under construction! We expect to have all lessons available by June 2018. Until then, a new lesson will weekly be uploaded. Currently, sessions 1 to 8 are available.

For every lesson, I provide a self-contained notebook with both models descriptions and theoretical description (using integrated LaTeX Markdown blocks) and practical examples.

We have moved all files to this public Github repository.

Course on Inference and Learning in discrete Bayesian Networks

Python library to perform Belief Propagation inference over discrete BN code, defined by the user by means of tabular Conditional Probability Distributions (CPDs). Four python notebooks are included: two to describe how to use the library and run BP inference, and two to show how to learn the BNs CPDs with hidden observations using EM. Slides are also provided.

Python 3.X required!

We have moved all files to this public Github repository.