Here, we cover the foundations of machine learning, and we learn how to leverage the structure of our expression representation to build our very own machine learning framework, which will be a replica-in-the-small of the PyTorch deep-learning framework. We will then see how to carry out ML training in the (real) PyTorch, and we will discuss convolutional nets, which are very commonly used for image processing and classification tasks.
There are really too many resources on ML to list them all here. If you are interested in ML, I encourage you to take one of the ML classes offered in the CSE department here at UCSC.