Source: https://www.iro.umontreal.ca/~slacoste/teaching/apprentissage-fall2014/notes/cours1.pdf