Machine Learning and the Future of Programming
What if you could program a computer without using any coding? What if you could program it the way you might teach your dog to roll over? With a technology called machine learning this has become possible.
What is Machine Learning?
Machine learning was defined in 1959 by Arthur Samuel, creator of one of the world’s first self-learning programs, as a “field of study that gives computers the ability to learn without being explicitly programmed.” This means that instead of writing a specific code for the machine to do something or even recognize something, the machine could simply be shown something over and over again until it was able to “learn” for itself. For example, Google Photos is able to utilize machine learning in order to recognize faces. There is no code written for what the program should look for, Google simply showed the program thousands and thousands of pictures until it began to recognize faces.
Machines are becoming less code dependent and are acting more like a neural networks, similar to human brains. These networks have already begun to be a part of our daily lives though we may not have realized it. Facebook uses these networks to predict what you want to see on your feed. Several car companies are also using this new technology in their car systems in order to prevent accidents. You may have seen commercials advertising a car’s ability to stop itself before hitting something. This is all possible through machine neural networks.
What This Means for Programmers and Engineers
Before machine learning, programmers simply wrote code for a specific task they wanted the computer to perform. Now machine learning is demanding less and less code in order to function. Once a neural network is able to learn a function such as voice recognition, you can continue to “teach” it how to do more and more things. Coding, however, is not necessarily going extinct. Instead, it is becoming less of a final step and more of an initial step in the process.
Programmers and engineers still need to know how to code, but they will also need to learn how exactly to train a computer. In the near future programmers will no longer be able to simply put in code for the machine to work properly. They will have to understand the fundamentals of teaching, coaching, and training a human-like brain. This is both a huge step forward for humanity and somewhat of a step backwards. The possibilities with these types of networks are seemingly endless; however, there are only a handful of people in the entire world who have the required skill to teach these programs. Machine learning is rising quickly, and we must be ready to rise along with it.
What This Means for Our Future
Though this technology has many advantages, many programmers and companies have learned of disadvantages the hard way. Google became one such company when its photo recognition program began tagging black individuals as gorillas. This is only one example of how the neural network programming can behave in unpredictable ways. As American inventor and engineer, Danny Hillis wrote “Instead of being masters of our creations, we have learned to bargain with them, cajoling and guiding them in the general direction of our goals.”
Now before panicking about situations that you’ve seen over and over again in scientific fiction movies, know that many engineers and programmers are already studying to find out just how this programming really develops itself. They are studying where this unpredictable behaviors come from. Even if we can’t truly understand why certain connections are made, much like with pets, we can still train them to act in certain ways. And because of the type of programming being used and the machines being able to learn for themselves more and more people won’t have to know how to code in order to train them.
Resources for Educators: