Machine Learning

Contents

Introduction

Traditional software development requires programmers to specify precise instructions to a computer, via a programming language. However in Machine Learning, a programmer provides a template (more formally termed as model) to a computer for a given task. A computer attempts to learn precise instructions (compliant with the provided model) automatically, via pre-processed data (Supervised Learning, Unsupervised Learning) or interaction with a environment (Reinforcement Learning).

Machine Learning has recently received a lot of media attention due to its recent success. Machine Learning is playing an increasingly important role in our lives, and many popular tech companies utilize a Machine Learning arsenal to improve their products. To get you interested, here is a list of exciting breakthroughs in Machine Learning -

Various kinds of ML Models

There's actually more to the story: The above training paradigm where we use 'labelled' examples(this is a tree; that is not a tree) to train our algorithm is called Supervised Learning.

The paradigm that has been garnering the greatest attention of late is called Reinforcement Learning, finding use in training AlphaGo and other game-playing and behavioural AI. Exciting ideas like Genetic and Evolutionary algorithms are subsumed by this paradigm. Check out this video where a bot learns to play Super Mario. The idea is to reinforce correct behaviour and deter incorrect behaviour, often via a stochastic reward mechanism. More technically, the algorithm must minimise a cost function in a learning environment. Lots of fascinating math comes into play and this field sees the direct application of Game Theory and Markov Decision Processes.

The last broad flavor of ML is called Unsupervised Learning. The algorithm is not given any input or reinforcement at all. Only data. It must draw it's own conclusions or observations. This is extremely challenging due to the open ended nature of the problem and largely lies unsolved. Most of the work in this field has been based on Pattern Finding and Clustering.


Basic Regressor-Classifier Models

Decision Trees & Random Forests

Unsupervised Models

Deep Learning

Neural Networks (Feedforward)

Convolutional Neural Networks

Recurrent Neural Networks

Finally, the most awesome kind of networks which make use of memory and feedback. First up, a blog to boost your spirits - RNN Effectiveness.

Learning Machine Learning

There are tons of resources online. Here are our recommendations for deep learning -

Machine Learning Platforms

Machine learning today is powered by very efficient libraries that run on GPUs. Some of the exciting libraries to look at are,

  • TensorFlow - The tool powering all your favourite Google products - Gmail, Google Translate, Google Search, Google Speech etc. TensorFlow was recently made open source on Github. TensorFlow has a python API making machine learning easier and efficient. Have a look at our TensorFlow tutorial to find a list of TensorFlow resources.
  • Keras
  • Torch - Have a look at our Torch guide.
  • Theano
  • scikit-learn

Tips for applying ML

  • Use pickle to save trained model as objects, which can be called easily, even after the kernel has been stopped.


Reading Material from CS419 Introduction to ML course

Courtesy for compilation: Prof. Preethi Jyothi, CSE Dept., IIT Bombay

0. Basics of probability for ML

       Reading: http://www.deeplearningbook.org/contents/prob.html, Sections 3.1-3.8, 3.10, 3.11, 3.13

1. Linear regression (incl. regularization)

       Reading:  http://www.stat.cmu.edu/~cshalizi/mreg/15/lectures/03/lecture-03.pdf, Sections 2 & 3
       Reading:  http://www.stat.cmu.edu/~cshalizi/mreg/15/lectures/04/lecture-04.pdf, Sections 1.2, 1.3 and 2
       Reading:  https://web.stanford.edu/~hastie/ElemStatLearn/, Chapter 3.4 (everything before Eqn 3.45)

2. Naive Bayes & Logistic regression classifiers

       Reading: https://www.cs.cmu.edu/~tom/mlbook/NBayesLogReg.pdf, Entire chapter

3. Decision Trees

       Reading: https://www.cse.iitb.ac.in/~pjyothi/cs419/dtrees.pdf, Entire chapter

4. Perceptron Algorithm

       Reading: https://www.cs.cmu.edu/~avrim/ML10/lect0125.pdf

5. Basics of statistical learning theory/Bias-Variance tradeoff

       Reading: http://cs229.stanford.edu/notes/cs229-notes4.pdf
       Reading: http://www.cs.huji.ac.il/~shashua/papers/class11-PAC2.pdf, Section 11.1 on VC dimension

6. MLE vs MAP estimation

       Reading: http://www.mi.fu-berlin.de/wiki/pub/ABI/Genomics12/MLvsMAP.pdf, Slides 1 to 35

7. SVMs + kernel methods

       Reading: http://svms.org/tutorials/Moore2001.pdf, Technical details about QP/lagrangian optimization are not important
       Reading: https://www.cise.ufl.edu/class/cis4930sp11dtm/notes/intro_svm_new.pdf, Slides 1 to 32

8. k-means clustering + Gaussian mixture models

       Reading: Chapter 9 from the book "Pattern Recognition and Machine Learning" by Chris Bishop, Entire chapter

9. PCA

       Reading: https://arxiv.org/pdf/1404.1100.pdf, Sections I to V

10. Feedforward neural networks + backpropagation

       Reading: http://ufldl.stanford.edu/tutorial/supervised/MultiLayerNeuralNetworks/

11. Ensemble learning (Boosting/Bagging)

       Reading: Chapter 14 from the book "Pattern Recognition and Machine Learning" by Chris Bishop, Sections 14.3, 14.3.1
       Reading: http://jessica2.msri.org/attachments/10778/10778-boost.pdf, Slides 1 to 27

12. Fundamentals of hidden Markov Models

       Reading: https://web.stanford.edu/~jurafsky/slp3/9.pdf

See Also