Curiosity is a powerful motivator that you can put to work for you.
A need to know more or to understand is a deep-seated human trait that we all have to varying degrees.
In this post I want to share with you three aspects of machine learning that drive my curiosity to know more.
Like me, you can use those aspects that fascinate you about machine learning as touchstones that you can revisit in order to reignite your passion and interest over the months and years you will spend learning about the field.
There is Nothing Like it
Machine learning is fascinating because there is nothing like it.
You cannot achieve the capabilities and results seen by machine learning methods with methods from other fields, and if you could, you would call them machine learning. There are two factors that make machine learning methods different from other methods:
- They are programs that learn from data
- They are programs that make programs that address problems
Programs that Learn from Data
Machine learning is fascinating because programs learn from examples.
From the data that you have collected, a machine learning method can automatically analyze and learn the structure already resident in that data in order to provide a solution to the problem you are trying to solve.
It is nothing short of amazing that you can write programs that learn. If you think about it, when you are programming you are learning how to solve a problem and the solution is crystallized in your finished program. Each method, even each conditional branch, represents a micro-problem from the larger whole. To think that you can employ methods that automate that process is exciting.
Think of the implications.
For example, when the problem changes, you don’t refactor your program, instead you collect more data and rerun the machine learning method. It’s a wholly different way of thinking about problem solving from traditional programming.
Your focus shifts to a clearer what as you automate the how.
Programs Making Programs
Machine learning is fascinating because you are writing programs that write programs.
You can think of the artifact or model that results from running a machine learning method as a program. Like a computer program that you write after learning about the problem and designing the solution, a machine learning model captures all of the micro-decisions needed to be performed to address the higher-order problem being solved. When you run a machine learning program on data you have collected, it creates a program or model for you that knows how to solve the problem. This is amazing.
Remember back to the spam filtering example. That was a very specific problem, that although is complex, really comes down to a decision a program has to make: is an email spam or not spam? Although we can think of machine learning methods as programs making programs, the resulting programs are super-focused on a specific decision problem that has been clearly defined. A decision problem that would be too onerous for you to manually write a program to solve.
This is important to keep in mind to both ground your expectations of the capabilities that machine learning methods offer, and to temper your enthusiasm later when selecting problems to address with machine learning methods. There is still an important place for traditional programming. Machine learning solves problems we cannot or don’t want to manually write programs to solve.
In this post you learned that machine learning is fascinating because there are no other fields of study like it. You learned two perspectives that can provoke curiosity into the field, which were:
- Machine learning is programs that learn from data
- Machine learning is programs that make programs that solve problems
What do you find fascinating about machine learning? Leave a comment, I’d love to hear!