In order to fully appreciate the profound impact of machine learning we first have to look at software without machine learning. That‘s the world of programs that follow a fixed set of rules built into the system by hand. These systems are good at automating static workflows and they in general run deterministically.
Machine learning on the other hand allows us to move away from specific rules. We show a lot of inputs and expected outputs to the software and it finds the set of rules that lead to these outputs by itself. It builds a model of reality. We can then use this model to predict outputs for combinations of inputs it and we may have never seen before.
So instead of programming the business logic for every possible combination of circumstances we train an algorithm on thousands of examples and let it figure out the logic itself. When we do our job well, it finds the underlying relationship.
Robotic Car ebook
Our step-by-step guide to building a self-driving model car that can navigate your home. Learn all the algorithms and build a real robotic car using a Raspberry Pi.
Sign up now to get exclusive early access and a 50% discount.
Why can’t we tell a machine to solve world hunger? After all we’ve just said machine learning software doesn’t follow strict rules but figures them out on its own.
There are several reasons:
A machine can’t reason (yet) so the problem needs to be limited in scope.
Both inputs and outputs have to be numbers. (Or can be transformed into numbers)
We need data to train the model in the first place.
Instead of asking a broad question like that we could ask ourselves how to optimize food production and would arrive at the more specific question "what are the parameters that lead to the highest yield on a given area of land?"
Our input data for let’s say a square-meter could look like this:
several numbers describing soil composition
average size of plants (measured via a camera)
expected sun-hours over the next 8 weeks
expected precipitation over the next 8 weeks
And the output would give us the amount of fertilizer that should be applied on that square-meter.
After acquiring example data we train a system that applies the right kind and amount of fertilizer depending on these parameters it either measures in real time or looks up in a database.
Feedback and Change Over Time
By using this system to apply fertilizer we collect data we can use to further train the system. Next season we can use the collected data from the first season and utilize our resources even more efficiently. Basing the operation of our software on data allows us to react to changes immediately. Machine learning bakes the handling of change right into the tools.
Machine learning is important for three reasons: Complexity, scale and adapting to change.
By letting an algorithm build a model from data we can build software that acts on much more complex relationships than we can build by hand. In a way machine learning automates some aspects of deciding on business logic.
Every calculation can be done on a large scale for every single individual or in the above example not only once for an entire field but for every square-meter. This is more an advantage of software in general but it’s a nice side-effect.
A system that is continuously trained on new data automatically adapts to change. As new data comes in the software changes it’s decisions. Simply put machine learning allows software to change over time.
Learn about the fundamental concepts and the most important machine learning lingo in the next article in the concepts-series. Or sign up for the newsletter below to get an email when we publish a new article.
Email me the next article!
Be the first to get an email when we publish another high-quality article.