Welcome intrepid traveller! This is the start of Octavian’s Machine learning on Graphs course. Over the summer we’ll cover a wide range of different approaches to machine learning on graphs. To get the most out of the course, it’ll help to have a firm grounding in TensorFlow and Graphs. In this article I will list some skills it’ll be good to have, and helpful resources for learning them.
Some of these topics are optional bonus material, for enthusiastic/advanced students. I’ll call those out with a BONUS tag. I promise they’ll be interesting to learn for their own sake :)
Neural Networks basics
The course will assume you’re familiar with Neural Networks, how they work and why we use them:
- What is a neural network — Micheal Nielson
- Back-propagation training of parameters — Micheal Nielson, A year of AI
- BONUS: For a thorough technical introduction to machine learning, Ian Goodfellow’s free online book is excellent
We’ll talk a lot about graphs — and by graphs we mean connected data, as opposed to charts in PowerPoint slides.
- Wikipedia’s definition of a graph
- Neo4j’s Why Graph Databases?
- Example graphs from Neo4j
- Stanford’s large graph dataset collection
- Learn about graphs via the Neo4j graph database
You’ll want to be familiar with TensorFlow and how build models in it. TensorFlow themselves have published a lot of great learning materials for you to use.
- Get started with TensorFlow
- Basic classification
- Text classification using an embedding
- Convolutional models (we can use these with graph nodes)
- Using Estimators
- Using TensorBoard to visualize the training of a model (note that Estimators will save the TensorBoard summaries for you automatically)