The code allows for the creation, training, and testing of a Fuzzy ARTMAP neural network system. The following example datasets are also included in the zip file.
A new neural network architecture is introduced for incremental supervised learning of recognition categories and multidimensional maps in response to arbitrary sequences of analog or binary input vectors, which may represent fuzzy or crisp sets of features. The architecture, called fuzzy ARTMAP, achieves a synthesis of fuzzy logic and adaptive resonance theory (ART) neural networks by exploiting a close formal similarity between the computations of fuzzy subsethood and ART category choice, resonance and learning. Fuzzy ARTMAP also realizes a new minimax learning rule that conjointly minimizes predictive error and maximizes code compression, or generalization. This is achieved by a match tracking process that increases the ART vigilance parameter by the minimum amount needed to correct a predictive error. As a result, the system automatically learns a minimal number of recognition categories, or “hidden units,” to meet accuracy criteria. Category proliferation is prevented by normalizing input vectors at a preprocessing stage. A normalization procedure called complement coding leads to a symmetric theory in which the AND operator (∧) and the OR operator (∨) of fuzzy logic play complementary roles. Complement coding uses on cells and off cells to represent the input pattern, and preserves individual feature amplitudes while normalizing the total on cell/off cell vector. Learning is stable because all adaptive weights can only decrease in time. Decreasing weights correspond to increasing sizes of category “boxes.” Smaller vigilance values lead to larger category boxes. Improved prediction is achieved by training the system several times using different orderings on the input set. This voting strategy can also be used to assign confidence estimates to competing predictions given small, noisy, or incomplete training sets. Four classes of simulations illustrate fuzzy ARTMAP performance in relation to benchmark back propagation and genetic algorithm systems. These simulations include (i) finding points inside versus outside a circle; (ii) learning to tell two spirals apart, (iii) incremental approximation of a piecewise-continuous function; and (iv) a letter recognition database. The fuzzy ARTMAP system is also compared with Salzberg’s NGE system and with Simpson’s FMMC system.
A Tutorial is included in the zip file and can be accessed through the GUI's menu.
To execute examples, execute ARTMAPgui at the MATLAB command line. From the GUI menu, select Run tab and select one of the following datasets from the dropdown menu.
To provide your own dataset, execute fuzzyARTMAPTester in the MATLAB command line.
Usage: [a,b,c] = biasedARTMAPTester(dataStruct,lambda_value)
The MATLAB struct dataStruct should have the following format.
The datastruct fields are:
training_input: [f features X m records]
training_output: [m labels X 1]
test_input: [f features X n records]
test_output: [n labels X 1]
descriptionVerbose: ‘A more detailed description of the dataset (optional)’
Any OS that runs Matlab