Neural Network Butterfly

posted by Li Li
blog: http://ubcode.weebly.com/

As an artificial intelligence algorithm, neural network has been widely used in pattern recognition and prediction. Here, we are trying to integrate this algorithm into the Smart House system to predict the indoor behaviors of residents based on the data collected by sensors and household appliances. However, neural network works like a black box. It is not so easy to get an intuitive understanding of how it acts. To address this problem, we tried to train the neural network to draw pictures. By means of this, we can visualize the effects of inputs and parameters (amount of layers and node, the learning speed, size of training set) on the final outputs. This butterfly is just a byproduct of this kind of experiment.

Artificial Neural network simulates the function of the biological neural networks inside the brain. The network consists of nodes and connections. The output of each node is decided by the sum of the inputs. Weight is used to describe the strength of the connection. The connections and their weights decide how the neural network works. The network can be trained to find out the complex relationships between inputs and outputs by adjusting the weights.

Take a picture for example. There is a relationship between the x, y coordinates and the RGB color of each pixel. If we build up a neural network and train it with one picture again and again, then we will get a set of weights (weight matrix) which can represent this relationship. It means all the information of the picture has been recorded inside the weight matrix. If we present this network with another picture, the weight matrix will be adjusted gradually to fit the new relationship. During this progress, the network is learning to draw the new picture with some memory of the previous one. So it can create pictures in-between.