When most people think about artificial intelligence, they think of the smart robotic assistants we see portrayed in science fiction films - the kind that can bring you a drink, carry a conversation, or remind you to leave the house with an umbrella.
In some ways, the media and film industry has warped our view of what artificial intelligence really is and how scientists are using it to solve society's problems today. When we think about AI, we should really think about computer systems that can use machine learning to make decisions in real time, similar to what a human would do.
As an example, let's look at the development of AI as applied to the game of chess. In 1996, the leading computer chess engine, IBM's Deep Blue, played and lost a match against then-world champion Garry Kasparov. In 1997, a rematch was played and won by Deep Blue in New York City. These events represented a seismic shift in the world of chess - machines could now reliably defeat the best human players in the world.
Over the following decades, data scientists developed Stockfish, an even stronger chess engine than Deep Blue. Most recently, Google used artificial intelligence and machine learning to teach a computer called AlphaZero to play chess from scratch. The engine processed data from millions of chess games played throughout history and became the most robust computer chess engine ever within six hours - it learned just like a human would, but in a reduced time frame.
If you’re drawn to the possibilities of AI and looking to improve your artificial intelligence programming for embedded systems, this article is for you.
We've put together a few tips for improving your AI awareness and boosting the power of your next embedded systems product with AI.
If you're looking to boost your AI programming, it's essential to start with an appreciation of how it works.
We, as humans, all have sensors and receptors that we use to perceive a vast quantity of information - temperature, sound, light, taste and smell, touch, pressure, pain, and the list goes on.
Our brains have an incredible capacity to take this variety of multi-sensory input and turn it into something useful. We learn to recognize objects, detect patterns, develop muscle memory, learn complex cognitive, and extract all kinds of information from our surroundings. We can also communicate that information effectively to other humans.
The human mind is the template for artificial intelligence.
When AI programmers create a bot that can learn a task, perform visual recognition, or make decisions in real-time, what they're doing is trying to replicate the complexities of the human mind. The next time you want to program AI to solve a problem, start by thinking "How would I solve this using my tools as a human?" before you question how a computer can be programmed to solve it.
In 1965, AI pioneer Herbert Simon of Carnegie Mellon University was quoted, "Within 20 years, machines will be capable of doing any work a man can do". Over 50 years later, it's clear that AI hasn't lived up to its initial promise to completely replace the human labor force. The daily impact of AI on our lives is still quite small, despite the enormous expectations that were held for the development of AI technology in the latter half of the 20th century.
Still, it's important to recognize how AI is being used effectively.
AI is most effective when implemented in its simplest form: as a means of introducing ad hoc decision-making capabilities for an embedded system. For example, consider a GPS device that you use to help you travel in your car without getting lost. You can input a desired destination and your GPS tracks where you are and tells you how to get there. Your GPS can use geolocation to determine whether you've made a wrong turn and knows to find you a new route that gets you back on track. While the GPS may not have any unique insights or personality, it's still a form of AI - it processes data and makes optimal decisions just like a human would, and it may even communicate with you directly.
If we take a problem-solving approach to artificial intelligence, it's clear that the best use of AI is as a program that can process data and use it to make decisions. That's what our GPS does - it takes our position, our destination and our method of travel and it finds a solution to the problem. If we abandon the solution, say by making a wrong turn, it finds another one.
The next step beyond that is machine learning, like the kind that Google used to develop the AlphaZero Chess Engine. AI that is capable of making decisions can improve its decision-making with a machine learning algorithm, optimizing its functioning through an iterative process in the same way that humans engage in "practice".
If you're looking for an opportunity to develop your skills programming artificial intelligence into embedded systems, you should focus your search on the most significant areas of innovation where the most investment and research is happening; that's where you'll find the mentors and connections you need to excel in the industry.
Embedded systems engineers at Volvo, General Motors, and other leading car manufacturers are using artificial intelligence to build the autonomous cars of the future, driving development in the use of AI for image processing and spatial navigation tasks. AI is also being used to program embedded systems for smart surgical robots that may be able to conduct operations on humans in the next decade. Getting involved with a major industrial implementation of AI is a great way to increase your skills working with AI.
If you plan to work on your own AI projects with embedded systems, it's essential to invest in the right tools. Products like the Beagle I2C/SPI Protocol Analyzer allow programmers and engineers to log data traffic within embedded systems, monitoring the quality and processes of their AI builds in real time. Additionally, the Aardvark I2C/SPI Host Adapter is also a favorite diagnostic and debugging tool for embedded systems engineers who wish to verify the correct functioning of their AI system.
To improve your artificial intelligence programming, it's important to look up from the computer screen and recognize what artificial intelligence is as a whole. Start by appreciating the problem that we're really trying to solve with AI - how can we build or program a machine that replicates the human mind? It's important to understand the limitations of AI, after all, if people struggle understanding their own emotions, what chance do scientists have of programming an emotionally aware robot? Stay focused on the best uses of AI - performing complex decision-making tasks based on machine learning and data processing.
Finally, it's important to focus on the major areas of innovation in AI. Home automation, vehicular automation, and surgical automation are all developing areas and look to continue to grow for the next ten years.
If you're planning your own embedded systems projects at home, investing in the right debugging and analysis tools is the best way to ensure your AI software is up to par. For a jump start, you can also request a demo for your application.