Learning Resources

Summary of Recommendations

Currently, my personal recommendation to learn more about machine learning would be to do the following:
    If you have never done any machine learning at all and are just trying to get the basic ideas of classical machine learning approaches:
    Read Part I of Hands-On Machine Learning with Scikit-Learn.
    Develop some classical ML model (e.g. kernel ridge regression with scikit-learn) to predict material properties from an  openly accessible dataset , such as the  Materials Project  (which has its own  API  to fetch the necessary data).
    For deep learning and modern AI techniques:
    For a high-level overview of what neural networks are and what they are doing:
    Watch DL1—DL4 of 3Blue1Brown's  video series on neural networks , which covers neural networks, gradient descent, and backpropagation.
    Watch Taylor Sparks' video on  convolutional neural networks .
    For a thorough yet accessible understanding of the theory behind deep learning:
    Refer to  Understanding Deep Learning . It is excellent, without being overly technical. Chapters 1-10 and 13 are particularly valuable within the context of our group.
    For a practical approach towards running and constructing deep learning models, simply pick a relevant model from  here  or from the recent literature and give it a spin! Alternatively, if you are unsure where to start:
    Try out the  CGCNN model  and the corresponding  Crystal Graph Convolutional Neural Network  paper.
    If you wish to get in the weeds a bit, go through the  PyTorch  documentation, which itself has several tutorials. Start tinkering with PyTorch. If you prefer a book, then check out Machine Learning with PyTorch and Scikit-Learn on our Dropbox.