Wednesday, April 15, 2015

Network on Chip and Its Topologies

Network on chip is a communication subsystem on a chip. NoC is the blend of network theory and methods for the communication on the chip. Mainly NoC is used in large VLSI systems for communication purposes. Public transportation Network is used for the transfer of information between various blocks in the network.

NoC is constructed by the combinations of the various Routers and Router play the most important role in the communication of the Network. The main message is delivering to the destination from the generating source by the help of the routers.

Router:

Router provides the Route for transferring the data from one block to block. It provides the exact controls to the Router so these controls can transfer the message or data.

Advantages of NoC:

There are many advantages of NoC. Some of them given below:

i)          The Communication channel of big design on single chip was very complex but by the help of the NoC it becomes easy to understand.
ii)           Reduction in physical area.

Parameters used to Measure the NoC performance:
  1.       Throughput 
  2.       Bandwidth
  3.       Latency
Throughput is the maximum traffic accepted by the network. 

The bandwidth refers to the maximum rate of data propagation. The measurement unit of bandwidth is bits per second.

Latency is the time among the beginning of the transmission of the data and its complete reception at the destination.

Various Topologies used in NoC:

Here Topology word is used to tell the type of the connection between the different routers.

i)                    2-D Grid:
The main connection for the Routers in the 2-D Grid Topology is shown in the below given diagram:

                         
                                                          2-D Grid Topology network

ii)                  2-D Torus:

There are connected various Routers in the following figure.


                                  
2-D Torus Topology Connection

iii)                3-D Hypercube:

The routers connection for the 3-D hypercube topology is shown below:

  
                             
                                     3-D Hypercube Topology Connection

iv)                Octagon:

The connection for the octagon topology is shown below. In this, routers are connected in the octagon pattern so called as the octagon topology.


                                  
                                       Octagon topology connection

v)                  Fat tree :

The connection of the Router for the Fat tree topology is shown below. This type of topology connection is indirect one.

Fat Tree

vi)                3-stage butterfly:

The connection for the 3 stage butterfly topology is shown below:


                            
                                                    3-Stage Butterfly topology connection

Tuesday, April 14, 2015

Computer Vision: Current Trends and Future Possibilities



Extracting some useful information from images is considered as Computer Vision. These images can be of any form from Visual to Infrared to X-rays in the whole electromagnetic spectrum. The basic idea is to duplicate human visual perception in images to extract the same information.

Some major applications of Computer vision consists tasks including Object detection, Object tracking, segmentation, Image inpainting and 3d modelling from images.

A lot of research work is carried out all over the globe in all of the above mentioned fields. So in this article we are going to discuss some of the very interesting yet strange fields for new comers.

Image Inpainting:

Image inpainting is a process to recover some useful information from deteriorated images or give some artistic look to images by removing unwanted objects still maintaining smooth background. Such a task is a daily part of human life as imagine a person at some distinct place or removing a particular object from a scene but in computers, this is trivial. 

Method:

First a binary map is created on the basis of which part of the image is to be removed. Now that part of the image is filled in a manner to minimize energy. This is often done using a very simple operator called Laplacian operator. This is essentially second order derivative of image. Second order derivatives are used because its direction is similar to the direction of edges rather than perpendicular to it as in the case of first order derivative. Thus we find to minimize this function as this would perfectly reflect the second order derivative.

Image Segmentation:

Segmentation is a process of image processing to segment out one or more objects from an image. The goal is to find out a boundary of pixels that can perfectly differentiate between two objects based on colour or shape or both. Applications for image segmentation includes Object detection, Face detection and in medical imaging. Tumour detection, Surgery planning and diagnosis of anatomical structures are some of the major applications of segmentation in medical imaging.

Motion Analysis:

Motion analysis is in the simplest case to find out a moving object from a sequence of images. This work can be extended to find the direction of movement, velocity and displacement calculation and object tracking. The basic idea is find out a static region (background) and a moving region with substantial displacement. One very popular method for this is finding the Optical flow. Motion analysis is extremely important in Surveillance and video object tracking. Tracking with a moving camera increases the complexity a lot due to the relative motion between camera and the object. Tracking with multiple cameras with overlapping or non-overlapping regions are current research issues in Object tracking.

Thursday, April 9, 2015

CNN Behavior Analysis: Visualizing the activations and first-layer weights


Layer Activations 

 

The most straight-forward visualization technique is to show the activations of the network during the forward pass. For ReLU networks, the activations usually start out looking relatively blobby and dense, but as the training progresses the activations usually become more sparse and localized. One dangerous pitfall that can be easily noticed with this visualization is that some activation maps may be all zero for many different inputs, which can indicate dead filters, and can be a symptom of high learning rates.

Convolutional/FC Filters

 

The second common strategy is to visualize the weights. These are usually most interpretable on the first CONV layer which is looking directly at the raw pixel data, but it is possible to also show the filter weights deeper in the network. The weights are useful to visualize because well-trained networks usually display nice and smooth filters without any noisy patterns. Noisy patterns can be an indicator of a network that hasn't been trained for long enough, or possibly a very low regularization strength that may have led to over fitting.

Back propagation 

 

Primary reason we are interested in this problem is that in the specific case of Neural Networks, f will correspond to the loss function ( L ) and the inputs x will consist of the training data and the neural network weights. Training data is given and fixed so it is a constant factor in the equation. So here we are left with two variables which are weights and biases of each layer. In back propagation Convolutional Neural Network compute the gradient at every layer according to the loss function at output and these calculated new weights are then updated to converse the network for the final solution.

Friday, April 3, 2015

An Introduction to CNN: Carrying the Machine learning on its shoulders



Traditional neural network layers use a matrix multiplication to describe the interaction between each input unit and each output unit. This means every output unit interacts with every input unit. Convolutional networks, however, typically have sparse interactions. This is accomplished by making the kernel smaller than the input and using it for the whole image.

Parameter sharing concept is used in CNN. It refers to using the same parameter for more than one function (input values) in a model. In a convolutional neural net, each member of the kernel is used at every position of the input. The parameter sharing used by the convolution operation means that rather than learning a separate set of parameters for every location, we learn only one set. This is also called as sparse connectivity.


convolutional neural network


If the function that a layer needs to learn is indeed a local, translation invariant function, then the layer will be dramatically more efficient if it uses convolution rather than matrix multiplication. If the necessary function does not have these properties, then using a convolutional layer will cause the model to have high training error.

Pooling

First stage, the layer performs several convolutions in parallel to produce a set of presynaptic activations. In the second stage, each presynaptic activation is run through a nonlinear activation function, such as the rectified linear activation function. This stage is sometimes called the detector stage. In the third stage, we use a pooling function. A pooling function replaces the output of the net at a certain location with a summary statistic of the nearby outputs. For example, the max pooling operation reports the maximum output within a rectangular neighborhood. Pooling helps to make the representation becomes invariant to small translations of the input.

Zero-padding

Zero-padding setting is when just enough zero-padding is added to keep the size of the output equal to the size of the input. It calls same convolution, full convolution, in which enough zeroes are added for every pixel to be visited k times in each direction.

The CNN behavior analysis will be explained in the further articles from the R&D team at SiliconMentor working in Computer Vision, Biomedical Signal Analysis, VLSI and their associated domains.