caltech machine learning homework solutions