https://medium.com/@monocosmo77/revisiting-gaussian-processes-for-machine-learning-part1-1de5313fcb7f