📄 readme
字号:
/******************************************************************************* * README v.2 (Feb. 9, 02) * * Description: * Readme for artmap_m.zip * See http://www.cns.bu.edu/~artmap for further details. * Authors: * Suhas Chelian, Norbert Kopco ******************************************************************************//******************************************************************************* * Contents ******************************************************************************/The attached archive artmap_m.zip contains a sample implementation ofthe ARTMAP neural network, in many of its variations. The archivecontains the following files:artmap_shell.m - a sample program of how to use a single ARTMAP networkartmap_shell_vote.m - a sample program of how to use voting with ARTMAP networksartmap_init.m - initialization for a single ARTMAP networkartmap_train_large.m - training an ARTMAP network on a setartmap_train_small.m - training an ARTMAP network for a single inputartmap_test_large.m - testing an ARTMAP network on a setartmap_test_small.m - testing an ARTMAP network for a single inputinput.dat - sample training set containing 1000 training points for the Circle-in-the-Square problem (every row of this text file contains the input values for one training pattern)output.dat - the file containing expected output classes for the training set (every row of this text file contains the class label for the corresponding input in the file input.dat)te_input.dat - sample testing set containing 10000 testing points for the Circle-in-the-Square problem (format as in input.dat)te_output.dat - file containing expected output classes for the testing set (format as in output.dat)Makefile - useful for zipping this packageREADME - this fileThe training and testing files (input.dat, output.dat, te_input.dat,te_output.dat) must be placed into the same directory as the code./******************************************************************************* * Compiling and Running ******************************************************************************/The code, written in Matlab, can be run on almost any platform withMatlab. To simulate a single ARTMAP network, run it under Matlab usefollowing command: artmap_shellToggle "traceInit" if you want to see how the network was initialized;toggle "traceTrain" if you want to see what weights the networkdeveloped after training.You can also simulate multiple ARTMAP networks that vote to make adecision by typing: artmap_shell_voteYou can change the number of voters through the "numVoters" variable,and decide whether WTA compression is done for each network beforevoting or not through the "voteWTA" variable./******************************************************************************* * Configuration ******************************************************************************/To choose which ARTMAP system you would like, set MAPTYPEArg inartmap_init.m to 1 for Fuzzy ARTMAP, 2 for ART-EMAP, 3 for ARTMAP-IC,or 4 for dARTMAP; see artmap_shell.m for an example. From there,the system configuration is automatic. Seehttp://www.cns.bu.edu/~artmap for the papers from which one cancompare the different versions of ARTMAP.If you would like to do advanced configuration, set defaultParams to 0in artmap_init.m, and pass in a cell array; see artmap_shell.m for anexample.Please note that dARTMAP must use the Choice-by-difference signalrule, and the Increased CAM Gradient during training and testing.Other ARTMAP's can still use the Choice-by-difference signal rule,even though they were not orignally designed with it. Similarly,other ARTMAP's did not used Increased CAM Gradient during testing butthey now can (do not use it during training). If you wish, you canchange to using the Simple CAM Gradient by toggling the DO_TEST_SCGflag (through 'varargin'). Also, dARTMAP gets greatest codecompression (fewer nodes) with DO_KAPPA_VEC set to 0. dARTMAP wasnot originally designed to handle ARTb output, which DO_KAPPA_VECsimulates.In addition, although MT- was not orignally applied to Fuzzy ARTMAP orART-EMAP, it can still be used with them. If you wish, you can change to MT+(epsilon > 0, again through 'varargin'), but you then lose the abilityto encode inconsistent case. (Inconsistent cases are cases when thesame input is mapped to different outputs.)In addition, note that each implementation differs slightly from the(Carpenter et al., 1998b) paper in that Theta is now defined to beTheta from the paper - M. This changes the Increased CAM Gradient set{ j | (2-alpha)M-Tj > 0 } to { j | M-Tj > 0 } (see Step 2a inTraining, and 2i in Testing); also Tu is now alpha*M, not M. Thesechanges effect the dynamic range of the match function, T, but not thealgorithms overall behavior. You can toggle back to the originalpaper's definition by setting DO_OLD_Tj (through 'varargin').Before compilation of the code, the following parameters of the systemneed to be specified for each file:********************************************************************************artmap_init.m: MAPTYPE 1 - Fuzzy ARTMAP 2 - ART-EMAP 3 - ARTMAP_IC 4 - DIST_ARTMAP M The number of input dimensions, not including complement coding. L The number of output classes, labeled 1 to L. MAX_F2_SIZE The maximum number of F2 nodes. defaultParams Whether to use default parameters or not. Other parameters can be set by using 'varargin': alpha Parameter in the Choice-by-difference and Weber signal rule Loosely speaking, large values of alpha will not recruit uncommited nodes as quickly. This can also be achieved by making T_u small with the Choice-by-difference signal rule. p Power in the increased gradient or simple CAM rule p determines the degree contrast enchancement in F2 for testing. Large p are equivalent to Winner-take-all (choice behavior), and small p lead to a more distributed activity. Setting p < 1 is not recommended. beta Learning rate epsilon Match tracking parameter rho_a_bar ARTa baseline vigilance parameter rho_ab Mapfield vigilance T_u F0 -> F2 signal for uncommited nodes MAX_F2_SIZE This constant defines the upper bound on the number of coding units in the Layer F2 (F2 size is also equal to the number of units in F3 layer.)See the papers at http://www.cns.bu.edu/~artmap for further information on how the parameters effect performance.********************************************************************************artmap_train_large.m: trainArg The training points. The first 1:M columns are the inputs, and the M+1st column is the output. trainNArg The number of training points. forceInputHC Whether to force input hypercubing or not. forceOutputHC Whether to force proper indexing of output classes or not. verbose A value of 1 will show the beginning and ending of training; a value of 2 will show progress incrementally. defaultEpochs Whether to use default training regime or not. Other training regimes can be set by using 'varargin': EPOCHS Number of passes over set shuffle Whether to shuffle training points after each epoch or not shuffleSeed What to seed the shuffle order withPlease note that input must be in the unit hypercube (all dimensionsare placed in the [0,1] interval). The algorithm will not workproperly if this is not so. Similarly, the output must be indexedfrom 1 to L.********************************************************************************artmap_test_large.m testArg The testing points. The first 1:M columns are the inputs, and the M+1st column is the output. testNArg The number of testing points. forceInputHC Whether to force input hypercubing or not. forceOutputHC Whether to force proper indexing of output classes or not. verbose A value of 1 will show the beginning and ending of training; a value of 2 will show progress incrementally; a value of 3 will show the index of each incorrectly predicted output.Please note that input must be in the unit hypercube (all dimensionsare placed in the [0,1] interval). The algorithm will not workproperly if this is not so. Similarly, the output must be indexedfrom 1 to L.Common abbreviations you may run into include:CBD Choice-by-differenceWTA Winner-take-all (choice)ICG Increased CAM gradientIC Instance countingSCG Simple CAM gradientLastly, the code has been broken into functions to allow greaterreadibility, but if you prefer monolothic code, see version 1.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -