Have you ever wished you were a bit smarter? I know I have, particularly during my linear signals and systems classes in college. Now we’re using the things I learned in that class, like fast Fourier transforms, to make cars more astute. Neural networks can use a variety of incoming data to help automobiles learn and “see” the world around them. The only problem with giving machines intelligence is that it opens them up to failure, which I managed to avoid all those years ago. If vehicles can think and deduce, it means they could possibly make an incorrect decision. This possibility has to be addressed before cars with advanced driver assistance systems (ADAS) powered by neural networks can hit the roads. Luckily we can use conventional logic and sensors to supervise neural networks as they process data and determine actions.
Artificial Intelligence is the future for vehicles.
The Advantages and Disadvantages of Neural Networks
The inherent advantage of neural networks is that they can remember how to react to old situations yet are flexible enough to deal with new ones as they arise. Unfortunately, this strength is also a weakness, as that flexibility means that we cannot be certain how they will react to novel inputs. In terms of safety, this makes neural networks hard to certify and not suitable for critical safety operations.
Machine learning is obviously a big deal for ADAS enabled vehicles. It’s such a game changer that some chip companies, like NVIDIA, are pivoting to develop artificial intelligence (AI) chips specifically for the automotive industry. The reason that companies are rushing to implement AI in cars is that it could help them drive more accurately and safely. Google’s autonomous cars have been navigating the roads for years, but the only reason they can is because Google has preprocessed maps of the paths they travel. A car with artificial intelligence wouldn’t need to drive on a road that had already been mapped out with precision. I know that whether or not there is a painted line on a road, I should be driving on the right side. A car that can “think” should be able to deduce the same thing. I also know I can cross a solid centerline in order to avoid a wreck. A vehicle that relies solely on rules and traditional sensors may not be able to make that decision. A system that can learn should be able to follow or break the rules in order to maintain its safety.
There are multiple impediments to implementation of machine learning in cars, but one that’s often forgotten is safety. There is no way to guarantee that a neural network will always make the right decision by itself. There have been times where I thought I was good to pass, pulled out into the other lane and had to dash back quickly to avoid an oncoming car. Some decisions need to be made with 100% certainty. People can learn things the wrong way, are prone to thinking that correlation implies causation, and can assume things will always be as they have been. For example, in my state when turning right at an intersection you must turn into the closest lane. Thus people coming in the opposite direction can simultaneously turn left into the lane next to you. In other states, it’s common practice to turn right into any lane you please. I once tried to turn left onto a street while another person was turning right onto it at the same time and we nearly had a wreck. A car with AI might make an assumption either way and end up crashing into someone.
Make sure your car thinks like a good driver and not like a child.
Neural Network Supervision
It seems obvious that these situations are avoidable, and they are. You can’t let a neural network make decisions alone, but you can let it suggest actions that are verified by a supervisor. Conventional methods that can be safety certified can be used to validate a neural network’s suggestions.
Let’s take that previous example again. Your car is about to turn left into a leftmost lane that should be clear, as anyone turning right will turn into the rightmost lane. You start to turn and another car turns right into the leftmost lane. Your vehicle’s sensors should pick up the impending collision and stop your car, even though you “should” have been able to turn into that lane. Traditional sensors can set hard limits on a neural network’s decisions by checking against some basic rules. Is the space we are trying to enter occupied, are we accelerating while the car in front of us is braking, etc. In order to accurately check your neural network’s deductions, you will need to be certain that your conventional system works. For that, I recommend using multiple sensor fusion to combine data streams for decision making. Thus you can pair your neural network, which will be rated at a relatively low ASIL level, with a system rated at the highest level for checking.
The advantages that neural networks have to offer are too great for us to ignore the complexity of their implementation. Soon manufacturers across the board will be using AI in their ADAS enabled vehicles. When that time comes make sure that your system has a conventional check in place to ensure that your neural networks are suggesting reasonable actions.
Building a car with ADAS is no simple task, whether it uses AI or not. If you want to do it right you need software that’s made specifically for developing programs for vehicles. TASKING has that software. They have a huge range of products, from standalone debuggers to static analysis tools, that will ease the pain of development.
Have more questions about machine learning? Call an expert at TASKING.