# A Review of Machine Learning and IoT in Smart Transportation
## 2 Machine Learning and IoT in Smart Transportation
### Machine Learning Algorithms
#### 2.1.7 Deep Learning  
The term Deep Learning encloses powerful methods for reinforcement learning able to process a large amount of unstructured data. Deep learning techniques are suited for big-data handling and computationally intense processes like image pattern recognition, speech recognition and synthesis, etc. As the needs for CPU power increases, powerful GPUs are widely used to perform Deep learning tasks. Like ANNs, with deep learning, deep neural networks are created. The word 'deep' refers to the large number of hidden layers that compose the neural network. The number of layers in a deep learning technique is tight to the number of calculated features. In deep learning, the features are automatically estimated and there is no need for feature calculation and extraction before applying such a method. Additionally, a large variety of network structures is introduced with the advance of deep learning [50]. A deep learning approach based on Convolutional Neural Networks (CNN) is used in [20]. CNNs are widely used in the literature for image recognition. A CNN is a type of ANN since it consists of an input, an output layer, and some hidden layers. The hidden layers in a CNN architecture can be pooling, convolutional, non-linear, subsampling, or Fully Connected (FC) layers. At convolutional layers, features are learned from the input data. The features or filters consist of weight and bias values. A significant characteristic of CNN is that multiple neurons use the same filters. Neurons are units that apply a transfer function on the weighted sum of its input signals [9]. Convolutional layers are followed by non-linear layers, converting all negative values to zeros. Then, dimensionality reduction is applied with sub-sampling layers. Finally, an FC layer which is actually a Multi-Layer Perceptron performs the classification of the input data. The authors use CNN to detect a parking lot occupancy based on smart cameras input running with Raspberry Pi 2 as a controller. The goal is to execute the CNN method exclusively on the smart cameras, so a minimized version of the AlexNet model [51] is implemented (mAlexNet). The evaluation is performed using a dataset created by the authors (CNRPark-EXT) and a well-known dataset (PKLot) [38], achieving an accuracy of 98.27% and 90.13%, respectively. Additionally, an extended review in deep learning methods based on CNNs and Deeper CNNs (DCNNs) was done in [21]. The author summarized studies whose main purpose is the pavement distress detection using deep learning techniques. The reviewed studies apply CNN and DCNN methods in a wide variety of image datasets, such as Google StreetView images, smartphone images, and 3D images constructed with specialized hardware (e.g., a Ground Penetrating Radar (GPR) [52]). In the review's conclusion, it is mentioned that both CNN and DCNN perform very well in pavement image classification. In [19], the authors study the development of a blind-spot detection system for smart vehicles. The proposed method is based on Fully Connected Networks (FCN), which are said to perform better than CNN in real-time image input. The proposed system uses input from three cameras mounted outside a car. An FCN is similar to a CNN, lacking the convolution layers. The term Fully Connected means that every neuron in the previous layer is connected to every node in the proceeding layer. The studied method utilizes an adaptation of Adam Optimizer [53] and Relu [50] activations. As mentioned earlier, the purpose of [12] is to perform real-time traffic network assignments. This study uses a Deep Belief Network (DBN) to pre-process input data and initialize the clustering centers that are fed in K-Means to perform the needed clustering. The DBN method is designed with two hidden layers, based on the Restricted Boltzmann machine (RBM), to enable training simplicity. A DBN a set of unsupervised layers such as RBM. Such a network has connections between the layers, but not inside the layer. DBNs can be also be trained greedily layer by layer.