A convolutional neural network
The purpose of this project was to dissect a convolutional network, one of the state-of-the-art neural network architectures that back up computer vision softwares. Through this instructional framework, you get to see the raw implementation of all “magic" components of a convnet that are usually abstracted out in machine learning frameworks. Such components are for example the convolution operation, max-pooling, kernels, and the backpropagation algorithm both for fully connected and convolutional layers. My final goal with this project was to be able to visually break down how the weights pick up certain patterns over the course of training and hence become robust at vision tasks.
Please note the purpose of this framework is to fully understand these core concepts, rather than performance. If you’re looking for an implementation for your project, I advise you consider the standard ML frameworks.
For technical details or collaboration, please see the Github repo above.