April 2019

Volume 34 Number 4

[Editor's Note]

Adapting to Machine Learning

By Michael Desmond | April 2019

Michael DesmondWhen Geoff Hulten, until recently a principal machine learning scientist at Microsoft, approached me about writing an article about machine learning principles and patterns, I was intrigued. MSDN Magazine is committed to providing code-level, how-to articles that help working developers improve and extend their skills. And while we’ve published dozens of articles that look at various aspects of machine learning over the years, we haven’t drilled into the higher-level, operational concepts that should guide decision making around machine learning.

Hulten’s feature, “Closed-Loop Intelligence: A Design Pattern for Machine Learning,” changes that. Instead of a tactical exploration of a thorny technical problem or new tool, this article digs into patterns and practices that can be critical to a successful machine learning project. The article delves into four key aspects of machine learning management: Connecting with users to enable closed-loop feedback, applying machine learning to the right objectives, building systems to support machine learning-based solutions, and understanding what goes into running a machine learning-based system.

I asked Hulten how important it is for developers to take the time to understand key principles and patterns as they embark on machine learning projects. He offered a comparison familiar to many developers.

“I remember going through my own personal transition from procedural to object-oriented programming. It was easy to fall into old habits and create an essentially procedural program with a few objects floating around. It was also easy to go into full-on, object-bizarre-o-land and create something where objects took over and turned the program into useless gibberish,” Hulten says. “I think machine learning is just as powerful and transformational as object-oriented programming: To get the most out of it you need to think about problems a bit differently; you also need to develop the wisdom and judgment to use the power of machine learning appropriately.”

Not surprisingly, with a significant paradigm shift, mistakes abound. I asked Hulten about common machine learning missteps, and he singled out the tendency of developers to treat machine learning as a “magical block box” that can be integrated into an application like a function call.

“This misses all the simple ways the application can support the machine learning and position it for the best impact,” he explains. “Presenting the predictions for success, reducing the costs of mistakes, shaping user interactions so they create the best training data, and so much more.”

Another common misconception: How to handle errors and mistakes in machine learning systems. Hulten says developers tend to treat machine learning errors as code defects, like bugs “to be burned down to zero.” But he emphasizes that machine learning, by design, makes mistakes. To leverage the power of machine learning, applications must “embrace those mistakes and help reduce the damage they cause,” he says.

Hulten also calls for developers to take a longer view and give thought to how their machine learning applications can evolve over time to yield improved impact and efficiency. It’s advice that calls back to the closed-loop pattern described in his article.

Says Hulten: “When you put machine learning in the right position, your application should improve every single time a user interacts with it.”

Michael Desmond is the Editor-in-Chief of MSDN Magazine.

Discuss this article in the MSDN Magazine forum