Toño Hernández

Fundamentally, Neural Networks allows machines to learn

Discussion created by Toño Hernández Employee on Jul 25, 2017

Artificial Neural Network (ANN) consists of connections made from thousands interconnected artificial neurons sequentially stacked in layers. The layered ANN is one of the key features to have Machine Learning (ML): the labeled data used to feed the ANN enables it to learn how to interpret that data like a human (and sometimes better); this is called Supervised Learning.  


One of the simplest types of ANN is Feedforward Neural Network (FNN). The FNN moves data in only one direction, with no loops or cycles. Data travels from input nodes (and through hidden nodes, if any) to output nodes. Convolutional Neural Network (CNN) is a class of FNN inspired by the animal visual cortex organization and the connectivity pattern between neurons.   


Convolutional Neural Network is commonly used to analyze visual imagery: recognizing objects or scenes, performing object detection and segmentation. Compared to other image classification algorithms, CNN brings independence from previous knowledge by using its little pre-processing: learning the filters that in traditional algorithms were hand-engineered —this also saves human effort. 


Filters can have very simple features (like checking brightness or identifying edges) and increase complexity as the layers progress (like define unique characteristics of the object). Filters are applied to every training image at different resolutions, the input of the next layer uses the output of each convolved image. CNN have hundreds or thousands of layers; each one of them can learn to detect different features of the image. 



There are some ways for training a CNN to perform object recognition. Using MATLAB®  and Neural Network Toolbox eases the transfer learning for a CNN: 
1. From scratch. Requiring the definition of the layer and filter numbers, also the learning weights and other parameters. This type of training demands massive amounts of data (millions of samples). 
2. Using a pre-trained model. Automatically extracts features from a new data set without requiring huge amounts of it, long computation, or training time. Pre-trained model is called Transfer Learning.  


Lately, the use of CNN for ML has become popular due: 
- CNN produces state-of-the-art recognition outcomes.  

- CNN learns directly from image data. 
- CNN removes the need for manual feature extraction —the features are directly learned.  
- CNN can be retrained for new recognition duties —allowing the use of pre-existing networks. 


IMAGE: Convolutional Neural Network 


Artificial Neural Networks have been responsible for moving forward the era of Artificial Intelligence (AI); ANN is currently one of the most disruptive technologies out there. Fundamentally, ANN allows machines to learn.