Convolutional Neural Networks

In this notebook, we will walk through the design, training, and testing of convolutional neural networks (CNNs). These neural networks will be used for image classification. Classification will be performed on images of handwritten single numerical digits (0-9).

The data set we will be using is the MNIST data set. This is a very popular data set among the machine learning community. The data set contains 60,000 images, and each image contains a handwritten numerical digit. Each of the images has been provided with a truth label that corresponds to the handwritten digit within the image from the set {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.

To do this we will utilize Keras, which is a high-level API for TensorFlow, which is Google's machine-learning library.

Convolutional neural networks differ from traditional feed-forward networks in that they replace the matrix multiplication operator with a convolution operator. This provides sparse connections and a large reduction in the number of parameters that need to be trained. In CNNs, the weights that need to be trained are kernel elements.

We wish to explore the impact of adjustments in the CNN architecture, optimization algorithms, regularization techniques, and hyperparameters. Therefore, we will start with a base network and adjust from there.

Previous
Previous

Model-Based Design of a Closed-Loop Speed Controller for a Hybrid System

Next
Next

Neural Networks With Minibatch Stochastic Gradient Descent and Adaptive Moments (ADAM)