Convolution neural networks
This section is provided as a brief introduction to convolution neural networks without Scala implementation. In a nutshell, a convolutional neural network is a feed-forward network with multiple hidden layers, some of them relying on convolution instead of matrix or tensor multiplication (wT .x).
Up to this point, the layers of the perceptron were organized as a fully connected network. The number of synapses or weights increases significantly as the number and size of hidden layers increases. For instance, a network for a feature set with a dimension 6, three hidden layers of 64 nodes each, and 1 output value requires (7x64 + 2*65*64 + 65*1) = 8833 weights!
Applications such as image or character recognition require a very large feature set, making training a fully connected layered perceptron very computationally intensive. Moreover, these applications need to convey spatial information such as the proximity of pixels as part of the features vector.
A recent...