A neural network uses a fuzzy membership function, the parameters of which are adaptive during the training process, to parameterize the interconnection weights between an (n-1)'th layer and an n'th layer of the network. Each j'th node in each k'th layer of the network except the input layer produces its output value y.sub.k,j according to the function ##EQU1## where N.sub.k-1 is the number of nodes in layer k-1, i indexes the nodes of layer k-1 and all the w.sub.k,i,j are interconnection weights. The interconnection weights to all nodes j in the n'th layer are given by w.sub.n,i,j =w.sub.n,j (i, p.sub.n,j,1, . . . , p.sub.n,j,p.sbsb.n). The apparatus is trained by setting values for at least one of the parameters p.sub.n,j,1, . . . , p.sub.n,j,Pn. Preferably the number of parameters P.sub.n is less than the number of nodes N.sub.n-1 in layer n-1. w.sub.n,j (i,p.sub.n,j,1, . . . , p.sub.n,j,Pn) can be convex in i, and it can be bell-shaped. Sample functions for w.sub.n,j (i, p.sub.n,j,1, . . . , p.sub.n,j,Pn) include ##EQU2##