Pages

vendredi, juin 05, 2015

Google Car

In this article, we talk about something a little different from what we have seen before, Google Cars. More generally, we talk about self-driving cars. This is different from what has been done before because in our previous examples we talked about doing one thing which, was more or less managed by one algorithm using Machine Learning. Here, such a car would be an agglomeration of new technologies so that it would have all that it needs to become self-driving.
The declared objective of a self-driving car is to reduce accidents, which is why they did not stop at developing a car that only assists drivers, they want the human to stop taking part in driving. Of course, for the tests they ran, the car had a steering wheel to allow a human to take over in case of a problem but the final design of the car will not give such a possibility. This kind of car will also enable people who are physically disabled and cannot drive to use again a car without the help of anyone. In this video, they took a nearly blind man to make a tour in their car; he was the one sitting behind de steering wheel.

How does it work? I will not go into details, firstly because Google indeed has not unveiled all the information about the functioning of their car and secondly because that might become a bit complicated for everyone - including me - to explain it. So quickly, if you have not seen a self-driving car yet, it has a device turning on its roof. This device in fact sends laser beam in order to generate a detailed 3D map of its environment. We can see the result in the picture below where every box represents an obstacle for the car.
Google's self-driving car using its laser-generated maps of the
conditions around it  to guide its path
We add to these laser beams several camera so that the car can detect a red light or a stop sign. Then we add some more radar devices so that the car can move and estimate with precision at what distance an obstacle is approaching. Then you mix all of this up with an algorithm to determine the driving behavior and we get a self-driving car!
Back in 2011, the technology was already doing amazing things as this TED talk shows but in 2015 the track record is even better. The technology is maturing and now the car can handle most of driving situations such as traffic zone lane closures or even a bike running a red light. The 23 actual self-driving test cars were involved in only 12 minor accidents on public roads and in these accidents, the self-driving cars were not at fault or it was being driven manually .

Self-driving cars are getting ready and their release for the public is planned for 2020. There are still lots of things to do and especially in terms of legislation. In the USA, four states have already allowed driverless cars so the major part of the world is still not prepared for the introduction of self-driving cars. Let us hope it will be done in time!

Deep learning and neural networks

Today we focus on Deep Learning and an important algorithm part of the Deep Learning; Neural Networks. Deep Learning correponds to a category among the machine learning methods. These methods are characterized by applying several complex functions to some inputs in order to obtain outputs that solve a problem. If Deep learning is highly complex and difficult to understand, the interesting thing about it is that it is inspired from neuroscience. Our brain works the same way applying complex functions to electric signals coming from our nerves. One of the algorithms trying to copy our brain is the neural network.
Modelling a simple neural network
with one hidden layer

The first layer corresponds to the inputs modeling the signal we get from our nerves. The last layer corresponds to the outputs characterizing the solution of the problem the neural network is solving. The layers between are called hidden layers. Each cell of these layers takes the inputs of the previous layer as argument, applies a function to them and passes the value of this function to the next layer until the output layer. These cells represent the neurons of our brain communicating through synapses. What is remarkable about these algorithms is that it works pretty well with automatic speech recognition, natural language processing or facial recognition. These things are hard to solve mathematically, using equations but when we know a language, we easily understand someone talking to us, no matter how his pitch is or his pronunciation. It shows how closer we are getting to modeling a human brain and to reach Artificial Intelligence. 

For example, Neural Networks have been used since the 80's to decipher the amount written on the checks you give to the bank. More recently, thanks to the increased power of our computers, more complex neural networks can be trained with up to one billion neurons and tenths or hidden layers. Recently in 2014, Facebook unveiled an algorithm called DeepFace that can recognize specific human faces in images around 97% of the time, even when those faces are partly hidden. A human would have a hard time being as good as this algorithm.

For more illustrations of what can be done with these deep learning algorithms, I recommend you to watch an incredible video from TED where you can see Jeremy Howard, the previous President of Kaggle, a community and competition platform of over 200,000 data scientists. The last point he exposes is an unsupervised algorithms. In other words, algorithms which can learn without the need of human help. Algorithms were developed that way because helping the machine to learn by giving examples can be very costly in human work. These kind of algorithms are amazing because after going through lots of images, it can recognize photos of cats sleeping from cats jumping. Of course, without human intervention, the only thing left to do is to give the corresponding labels to the classified photos so that the computer can communicate with us with words.

Now these machines have no human behavior, but add this technology to glasses and we get reality-augmented glasses capable to give you indications about who or what is standing in front of you.