The output from the convolutional, pooling, and non-linearity operations can represent high-level features of the input image and may further be used to generate a fully connected layer that ultimately provides the classification value(s). In CNNs, the term “Fully Connected” implies that every “neuron” (or node) in the previous layer is connected to every neuron on the next layer. For example, with respect to the above embodiment, there may be 128 fully connected layers. A fully connected layer, such as the 128 fully connected layers of the previous embodiment, can be used to generate classifications or provide predictions from the CNN model. In some CNN model embodiments, the sum of output probabilities from the fully connected layer is the value “1,” although the CNN model can also be modified to sum some other value, such as, e.g., “100.”
The CNN model may use the features learned from the convolutional, pooling, and non-linearity, and fully connected operations for classifying the input image into various classes based on a training dataset. Training a CNN can involve determining optimal weights and parameters of the CNN (as used in the various CNN operations described herein) to accurately classify images from the training set, and therefore, allow for better predictions. As described herein, the convolution, non-linearity, and pooling operators act as feature extractors from an input image and the fully connected layer acts as a classifier. For example, when a new (unseen) image is input into a CNN, the CNN can perform a forward propagation to output a probability for each class.