SLIDE 1
1
Projects in C
These projects consist in the development of a neural network simulator in C language. Then, the simulator has be used within a larger application, addressing a specific problem (e.g. classification, pattern recognition, detection, optimization, control, etc.). The program must include a graphic interface to allow the user to interact with the simulation, change hyper-parameters, give commands, display the evolution of the system, and load/save data sets and network parameters.
Hopfield networks
- 1. Digit associator. Simulate a Hopfield network that stores 10 images of the digits from 0 to 9,
represented by binary images of 32x32 pixels. Make a graphic interface that allows the user to define the training set by drawing the digits through the mouse, save/load the training set, select the inputs to the network, display the output and the energy during evolution, add noise to the images, and input new test images with the mouse.
Multilayer shallow networks
- 2. Function approximator. Simulate a feedforward network that approximate a function from a set of
sample points TS = {(xi, yi) i = 1, …, M} defined by the user through the mouse. The network consists
- f Ni input neurons, Nh hidden neurons, and 1 output neuron. Before giving as input to the network,
each input coordinate xi is first converted into Ni values in [0,1]. Then, the yi coordinate is used as a target value for training. To see what the network is learning, at each training step, compute the
- utput corresponding to all input coordinates on the x axis (with a given resolution) and visualize the
corresponding points on the Cartesian plane. See: https://www.youtube.com/watch?v=y46O28b8AYE
- 3. Two-input visualizer. Simulate a feedforward network with two input neurons, N hidden neurons
(set by the user), and 1 output neuron. Training samples are given by a set of coordinates defined by the user through the mouse on a given area of the screen. To see what the network is learning, for each epoch, visualize the output of each neuron using a color map, where each coordinate of the input space (with a given resolution) is painted on the screen with a color proportional to the output
- value. See: https://playground.tensorflow.org/
- 4. Digit classifier. Simulate a 3-layer neural network trained on the MNIST data set that reads 28x28
input images of digits (from 0 to 9) generated by the mouse and outputs 10 classes in a softmax
- layer. See the following demo: http://macheads101.com/demos/handwriting/?c=neuralnet
Kohonen Networks
- 5. Two-input map. Simulate a Kohonen network with two input neurons and 100 output neurons
- rganized as a 10x10 bidimensional map. Design the graphic interface so that the user can provide
input data set coordinates with different spatial distribution, visualizing the weights and their neighborhood during training.
- 6. Image2map. Simulate a Kohonen network with 16x16 input neurons and 12 output neurons
- rganized as a one-dimensional ring. Train the network using binary images of 12 bars with different
- rientation. Visualize the weights of each input neuron as a 16x16 color coded matrix.
- 7. Optimizer. Simulate a Kohonen network (2 inputs and 40 outputs) to solve the Traveling Salesman
- ptimization problem, where the training set consists of 20 points representing the locations of cities
to be visited in a sequence that minimizes the total length of the path. The output map has to be
- rganized as a 1D-ring and the values of the 40 weights (connected to their closest neighbors) will