Machine Learning is Fascinating

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.

Programs that Learn from Data

Photo credited to Riebart, some rights reserved

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!

9 Responses to Machine Learning is Fascinating

  1. Avatar
    Anurag November 24, 2014 at 6:12 pm #

    It’s fascinating to think about all the extensive applications of machine learning. One of my favorite is how it can be used to learn programming from data sets of programs. Essentially we can build far better software through it in a few years than any other tool. That being said, what do you think would be the future of the existing software development process? I believe that we may reach a paradigm shift where we’d no longer require Software Developers. What we then need are Software Analysts instead. Do you have the same intuition?

    • Avatar
      Jason Brownlee November 24, 2014 at 7:23 pm #

      I think you’re right.

      Making high-quality software is hard and expensive. It’s also really damn hard to maintain that quality through maintenance.

      I think that as the human-computer interface changes (more vision+speech) that the programming interfaces will also change (less typing, more architecting high-level design).

      Maybe I’m dead wrong. Maybe it’s just hope and frustration.

      We are crawling up the abstraction pyramid, but it’s slow going. So slow that we may not be noticing it. Machine Learning methods are really just abstractions around stochastic data-driven processes. More pieces of the puzzle, not redefining the puzzle itself.

  2. Avatar
    Avinesh January 27, 2015 at 11:09 am #

    One thing that really fascinates me is that it can be applied to any domain from Natural language, Vision, Text, Speech etc. In one way probably it could be termed as a sixth sense which can be used to process the information collected from the five sense.

    Ultimately the rate at which the data is exploding in various fields looks like the only viable choice is Machine Learning.

  3. Avatar
    Jesús Martínez February 2, 2018 at 5:32 am #

    One of the most exciting aspects of recent algorithms such as Recurrent Neural Networks is that they can generate output similar to their inputs. For instance, translate a text or even generate code! What do you think are the problems AI will solve that otherwise would be impossible to tackle with traditional programming?

    • Avatar
      Jason Brownlee February 2, 2018 at 8:24 am #

      I thought that photo captioning could not be solved even with AI. I’m still so impressed with that example.

      • Avatar
        Jesús Martínez February 3, 2018 at 12:03 am #

        Yes! I agree. I’m still impressed with AlphaGo. To be able to play a game with practically an infinite state space and still DEFEAT human champions is no less than highly remarkable!

        • Avatar
          Jason Brownlee February 3, 2018 at 8:40 am #

          It is very impressive. We live in amazing times.

  4. Avatar
    Su March 6, 2019 at 10:11 pm #

    Have been following the step by step programs that you publish. Is it possible to get some codes for beginners to try and get a feel of these two perspectives.

Leave a Reply