============================================================================= README file for the example files encoder.xxx ============================================================================= Description: This network learns to code 8 units to 3 units and encode ============ 3 units to 8 units. The task of an n-m-n-encoder network is to code a 1-of-n coding of n input units to m = log(n) hidden units and to encode the outputs of these m units again to a 1-of-n representation of n units. What makes the problem interesting is that the network is required to have a small number of hidden units. Note that these input and output values are internally treated as real values by the network, although the problem is a binary problem. Encoders with m = log(n) are called 'tight' encoders, with m < log(n) are called 'supertight' encoders, with m > log(n) are called 'loose' encoders. Note that obviously for this problem no shortcut connections from input to output are allowed. Pattern-Files: encoder.pat ============== Each of the eight input patterns consists of one '1' at Position i and '0' at the remaining positions. The output consists of the identical pattern, therefore the mapping to be learned is the identity mapping. Network-Files: encoder.net ============== Config-Files: encoder.cfg ============= Hints: ====== The following table shows some learning functions one may use to train the network. In addition, it shows the learning-parameters and the number of cycles we needed to train the network successfully. These parameters have not been obtained with extensive studies of statistical significance. They are given as hints to start your own training sessions, but should not be cited as optimal or used in comparisons of learning procedures or network simulators. Surely you can do better... Learning-Function Learning-Parameters Cycles Std.-Backpropagation 2.0 750 Backpropagation with Momentum 0.8 0.6 0.1 300 Quickprop 0.2 1.75 0.0001 75 Rprop 0.2 75 You may easily build your own n-m-n encoder networks either by adding or deleting hidden units or by using the BIGNET tool from the info panel. To create the 8-4-8 encoder by adding a hidden unit select one hidden unit with left mouse button (it turns yellow), make it the curent target unit by pressing the middle mouse button and enter 'u c a' (units copy all) on the keyboard while the mouse pointer is inside the 2D display window. This creates a duplicate of the selected hidden unit with all input and output connections copied from the original. Now initialize the network and train the enlarged 8-4-8 network. Try also the 8-2-8 encoder! Note that the time to train an n-(log n)-n encoder grows exponentially with n. A 128-7-128 encoder can still be trained with SNNS, larger values give problems. ============================================================================= End of README file =============================================================================