How to get the most from Machine Learning Books and Courses

There are a lot of machine learning books and courses available and a trend towards free university courses and ebooks. With so much excellent resources available it can feel overwhelming. So much so that it may prevent you from getting started or making progress.

In this post I want to share with you my tips for self study that allow me to touch a resource once, extract everything I think I can learn from that resource and integrate it into my own knowledge base so that I can make use of it going forward.

How to get the most from Machine Learning Books and CoursesPhoto by MIT OEIT, some rights reserved

The knowledge base strategy and tactics I use were developed at university while completing a myriad of degrees and higher degrees. Although useful in a formal setting, I think they are invaluable in self study environments where there is more pressure to be efficient with your time and resources.

Knowledge Base Strategy

Adopt a knowledge base strategy. A knowledge base is a corpus of material you have created that supports your memory. You don’t have to remember the details of everything you have studied, just what you studied and where your notes are located.

The knowledge base strategy requires that you create a directory on your computer or in the cloud. Under that directory you create a document for each course and book you complete or read that describes what you learned from that material and where to go to get more detail. For larger courses you may need to create a subdirectory and a document for each week or module of the course and each assignment. The specific breakdown of directory structure and documents is at your discretion.

The principle is that you touch each resource once and process it thoroughly so that you can make best use of it again in the future as you need to. This typically means reading or consuming it and taking clear notes.

Guide to Machine Learning Courses

Courses can have video, text, audio and in person components. You objective is to internalize the material you are exposed to from the course, associate it to knowledge you already posses and capture that understanding in summary form.

Courses can also have additional reading and resources, as well as exams, tests, tutorials, exercises and assignments. Within reason, these resources must also be processed in a similar manner. They are all just tools designed to help you absorb the material and must exploit them to your benefit by integrating the knowledge they expose into your knowledge base.

Below are five tips for getting the most from a machine learning course.

Regular Schedule

Design a routine so that you can complete the course work at a consistent and regular schedule. For example one hour a day every second day or 8 hours every Saturday. Block the time out in advance and make efficient use of the time.

Routine can get you a long way. When the scheduled time comes around you do not want to have to think about what you have to do in that time block. You must preallocate tasks in advance to avoid any overwhelm or over-thinking. At the end of each time block, allocate the tasks for the next time block so they are ready and waiting for you.

Your time estimates will be wrong by a factor of 2 or 4. Consider at least doubling the time you schedule or halving the workload you pre-allocate to those times.

Create Lecture Notes

Courses are partitioned into modules or weeks or some similar schedule. Each interval will have materials that you will be expected to internalize. It is very likely that the course will have a summary of the material in the form of notes or lecture slides.

Create your own summary of the material for the interval from scratch. This will require that you take notes from the material that you consume in the interval then break it down into a logical structure for summarization. This may be the same structure used to present the material to you, but is more often than not different. It can be different because you will have associated the material to knowledge you already have an can see a clearer way to present the material to your own mind than the way it was presented.

Aim for about a one page summary for each module or week of material. This will vary with the amount of content, but the objective is to summarize the material to the key concepts and a trail that links those concepts. Any detail you need on those concepts will be available in the original material such as lecture video or required reading.

Study Group

Form a study group of peers and advisors. You need people at your own level that are working through the material at the same pace as you so that you can discuss the content and ensure you understand it. Learning in groups can be more efficient than learning in isolation, especially if you can pair up with others that are more advanced or faster learners than yourself.

Your study group can also include people that have already completed the course that may not be studying the material with you in concert but have agreed to answer the odd question or discuss the odd concept over with you on Skype.

Use the group to test out your understandings. A tactics I liked to use was to volunteer to explain concepts even if I didn’t understand them well. I would also share all my notes with the group for comment and I would create practice tests from the material for the group and myself to complete. Think of creative ways of getting the most from the group environment while also giving back to help others.

Complete Assignments Early

Courses almost always have tools to assess your acquisition and internalization of the material. This is in the form of things like tests, exams, tutorials, assignments, essays and exercises.

It is especially important to take on assignments for self-study online and courses because there is typically less opportunity for your retention to be directly assessed.

Note these materials at the beginning of the course and schedule to complete them early and continually review your results often. For example, if there is a formal exam or test, locate sample exams or test from previous iterations of the course that you can practice on, even before you have been exposed to all of the material.

If there is an assignment, create a minimal version of your submission early and add to it as you learn more and are exposed to more of the content of the course. You may have to actively seek it or even ask for a previous years assignment from the institutor. Use this as an opportunity to get as much additional content as possible, they are all aids you can use to learn the material faster and more thoroughly.

This is a powerful technique because it will force you to seek out materials so answer questions and assignment details before you are ready. There is something about the pressure of this process that makes the things you discover really stick. When you are exposed to the material in the course your understandings will be filled out and refined beyond the point of a beginner.

I often used group assignments in university as an opportunity to push myself and complete the deliverables myself and then teach the material to the rest of the group or as a baseline for the group to extend themselves further.

Complete Additional Reading

There is almost always additional reading for you to complete. Tackle this with vigor and use the processes listed below for internalizing this material into your knowledge base.

Additional reading is typically in the form of book chapters, papers and websites. Consider investigating your own additional reading to supplement the material and follow the same processes to internalize the material.

Guide to Machine Learning Books

Machine learning books used to mean a collection of textbooks used for postgraduate research. The field has changed a lot in the last few years and there is now an excellent range of applied books for beginners that contain assignments and practical tips and projects.

I recommend starting with the applied books and moving into the textbooks as your understanding of the field matures and your thirst for a deeper understanding motivate you.

You can process books faster than you can course because they are discrete and generally involve less material. If you cannot process a book quickly is very likely a sign that you are not ready for it. Exploit this indicator and seek out resources to bridge the gap. For example, if you are lost on a mathematical treatment of a method for an extended period, it is very likely a sign that you need to process some materials on the general mathematical method before you tackle the specific treatment in the book.

You can use books for reference to tackle subject specific material just in time. The tactics in this section are not for this use case. Like the tactics for processing of a course above, the tactics in this section are for processing a book in a linear fashion from start to finish.

Below are five tactics for processing a machine learning book and incorporating the material into your knowledge base.

Photo by justgrimes, some rights reserved

Touch it Once

It is better to process each page, each chapter, and the overbook slower than you can read it naturally so that you can get the benefit of only touching it once.

Take your time and read the material carefully to ensure that you understand it and so that you can internalize it sufficiently that you do not have to reread it. This might mean stopping if you are feeling fatigued or waiting until a quiet time so that you can give the material an appropriate treatment.

Obviously you can touch the book again, but your future references to the material should be for fine grained detail and not the general principles, because those should already be in your knowledge base.

Active Reading

Active reading is separate from passive reading in that you are taking notes. You are an active participant in the material as it unfolds as opposed to passively consuming it without action.

Active reading is required to ensure you get the most from the book so that you only have to touch it once.

Chapter Summary

Create a one page summary of each chapter after you have finished reading it.

I typically take extensive notes while reading but only the highlights of those notes become part of the chapter summary. I like the idea of one-pagers, the constrained scope forces concise writing.

Book Summary

Once you have completed summaries of all chapters in the book, create a one page summary of the entire book. This must include a brief summary of the key material in the book, likely touching on each chapter.

I also like to include a line or two about the motivation of the authors to create the book, or the positioning. This helps me frame the book in my mind and in my knowledge base when I need to refer back to it.

Further Reading

Machine learning is a technical subject and almost all books will have references or further reading materials. Carefully review the references and note each that you would like to read in follow-up and a note about why.

Include this list with your processed materials for the book. They can be useful to review in the future if you are looking for something to read or when you are looking to dive deeper on a particular method or technique.

Extensions

The idea of keeping and maintaining a personal knowledge base is powerful if you are looking to accelerate your education in machine learning, or any technical field for that matter.

Below are some additional general tips that you may find useful:

Paper Archive: You will eventually end up locating and reading a lot of papers on machine learning. This includes conference articles, journal papers, dissertations and technical reports. Collect these materials, their details and links to these materials so that I can reference them again quickly. Process papers

Active Consumption: Use the active reading process to blog posts and research papers in the same way you would process the chapter of a book. If material is junk (more often than not they can be), stop reading and note this in your knowledge base.

Algorithm Descriptions: Maintain a corpus of algorithm descriptions. Use a template to formally describe an algorithm using a handful (5-10) key questions about the algorithm. Maintain the algorithms you have described using the template together. You will very quickly build up your own algorithm encyclopedia.

Summary

In this post we have reviewed a strategy for building up a knowledge base for efficient self education of the field of machine learning. We then reviewed 5 tactics that can be used to build up this knowledge base from completing online courses and reading books.

This is a full on process and much of these methods were developed for rapid learning as a consultant or as part of formal research programs where this is what I did all day. Pick and choose the elements of this knowledge base strategy you like and stick to them.

In a short amount of time you will quickly be able to tell a good book from bad or a good paper from bad. Also, you will intimately understudying your own learning style and your need for more formal training regimes will diminish as you will be able to design a training program your self to execute.

Which tip will use next time you take a course, watch a video or read book? Do you have a tactic you use that you think would fit into the knowledge base strategy? Leave a comment and share your experiences.

About Jason Brownlee

Jason Brownlee, PhD is a machine learning specialist who teaches developers how to get results with modern machine learning methods via hands-on tutorials.

I tend to write lots of notes and use a good amount of colors. It really helps me associate certain concepts with particular colors. For instance, if I am studying convolutional neural networks, I might use red to denote filter size, blue to denote strides and yellow to denote padding. It tends to make the process a bit slower but I found it really works!

This is some really good information about good information about machine learning. It is good to know that it would be smart to get good algorithm descriptions. That is a good thing to be aware of when you need to get a something start up.