Machine Learning: Back to Basics

You hear about it, read about it, and dream about it. The topic of Machine Learning is quickly becoming the new frontier in more than just the tech world. But for any layman readers out there (you know who you are), what is machine learning after all?

Arthur Samuel, a pioneer of artificial intelligence and machine learning, put it best as “giving computers the ability to learn without being explicitly programmed." It is a heuristic type of programming that is enabling computers to become increasingly self-sufficient.

And yet, we needed more. John Lambert is a student currently on hiatus from Stanford where he’s pursuing an M.S. in Computer Science. He has been working for an artificial intelligence company in the off-season, so one might argue that he qualifies to weigh in on the subject. He was gracious enough to entertain a few questions below.

What was his first experience with Machine Learning or AI?

It all started in a college class where he was doing computer vision involving convolutional neural networks (CNN). He and his classmates were given an assignment to build an image captioning system, i.e. training a model to create sentences to describe an image.

He’s had a lot of experience in training models with data sets- how might he explain that intricate process to someone?

He starts off the process by visualizing the data required, along with the correct input. His aim is to get up close to the data set, understand it well, and then consider what he might achieve with it. He’ll typically start with a goal revolving around a certain task that is interesting to him. He then selects a data set based on whether it will help him achieve his task. Data sets usually contain “labels”, or manually-annotated correct outputs. (Another term for this is ground-truth.)

“The overall objective is to go from the input to the correct output, and learning the function that makes it all possible.”

What are some roadblocks that he faces in his programming?

Since commenting on one’s code is vital within any development-related role, John says it can be pretty detrimental when any engineer neglects to do so.

“It can take a high degree of effort to obtain the data that you want to feed into your model, and I want to be confident that the data is correct. Sometimes I’ll attempt to rewrite others’ code that was originally written in a different framework or language within my own framework, and if their approach is poorly documented or code uncommented, that can be pretty difficult,” he laments.

What sources does he use to educate himself outside of work?

Above all, he prefers to read scientific papers, which he can access for free on Arxiv. He says it’s a convenient way to get up-to-date on the most current work in the machine learning community. In addition, people who have legitimately validated their methods will almost always post the code used in their research to GitHub. By reading through others’ code, he gets ideas and inspiration for some of his own projects.

What are his thoughts on the eventual transition from supervised to unsupervised learning?

He explained that supervised learning is the task of feeding inputs and desired outputs into an algorithm, essentially leading it by the hand to learn to infer the correct output from an input. Unsupervised (often called self-supervised) learning involves teaching a model to learn independently without the need for annotated, ground-truth labels. Transfer learning involves distilling the knowledge learned on another data set into your own model. For example, one might pretrain a convolutional neural network on a on a very large dataset and then use it as an initialization for one’s own model weights, or alternatively as a fixed “feature extractor” to pull out the most useful traits of the input data for the task you’re interested in solving.

“Unsupervised learning is really useful when you lack ground truth-labels. We can use other pre-trained models to initialize our model. Many use models pre-trained on ImageNet, a data set with up to 1.2 million images, each labeled with the correct output for 1000 various categories. Unsupervised learning is most useful for domains like radiology and medical image understanding, where we lack sufficient training data because of the high cost of manual annotation by physicians. Unsupervised learning is also very useful for video understanding, because videos are just a series of images, but the time dimension adds orders of magnitude more examples to manually label,” he says.

John expressed a bit of excitement about the implications of this process, while noting that sifting through heaps of images for individual labeling is an arduous task for anyone to take on.

What are some things he and others hope to accomplish with ML?

John says he hopes to eventually become comfortable with the low-level implementation of PyTorch, a framework made by Facebook for ML.

Seems like engineers have a pretty wide range of music tastes; what are some of his?

“I’m into things like AVICII, Sia, Otto Knows, Chainsmokers, The Weekend, Daft Punk, Zedd, as well as Train.”