Chapter 7. Deep Learning Using ROS and TensorFlow

You may have come across deep learning many times on the Web. Most of us are not fully aware of this technology, and many people are trying to learn it too. So in this chapter, we are going to see the importance of deep learning in robotics and how we can implement robotics applications using deep learning and ROS.

Here are the main topics we are going to discuss in this chapter:

  • Introducing deep learning and its applications
  • Deep learning for robotics
  • Software frameworks and programming languages for deep learning
  • Getting started with Google TensorFlow
  • Installing TensorFlow for Python
  • Embedding TensorFlow APIs in ROS
  • Image recognition using ROS and TensorFlow
  • Introduction to scikit-learn
  • Implementing SVM using scikit-learn
  • Embedding SVM on a ROS node
  • Implementing an SVM-ROS application

Introduction to deep learning and its applications

So what actually is deep learning? It is a buzzword in neural network technology. What is a neural network then? An artificial neural network is a computer software model that replicates the behaviour of neurons in the human brain. A neural network is one way to classify data. For example, if we want to classify an image by whether it contains an object or not, we can use this method. There are several other computer software models for classification like logistic regression, Support Vector Machine (SVM); a neural network is one among them.

So why we are not calling it neural network instead of deep learning? The reason is that in deep learning, we use a large number of artificial neural networks. So you may ask, "So why it was not possible before?" The answer: to create a large number of neural networks (multilayer perceptron), we may need a high amount of computational power. So how has it become possible now? It's because of the availability of cheap computational hardware. Will computational power alone do the job? No, we also need a large dataset to train with.

When we train a large set of neurons, it can learn various features from the input data. After learning the features, it can predict the occurrence of an object or anything we have taught to it.

To teach a neural network, we can either use the supervised learning method or go unsupervised. In supervised learning, we have a training dataset with input and its expected output. These values will be fed to the neural network, and the weights of the neurons will be adjusted in such a way that it can predict which output it should generate whenever it gets a particular input data. So what about unsupervised learning? This type of algorithm learns from an input dataset without having corresponding outputs. The human brain can work like supervised or unsupervised way, but unsupervised learning is more predominant in our case.

The main applications of deep neural networks are in the classification and recognition of objects, such as image recognition and speech recognition.

In this book, we are mainly dealing with supervised learning for building deep learning applications for robots.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.227.231