A system that associates a number of inputs with a number of outputs in a non-linear way. This could mean that, for example, inputs that are only slightly different are associated with outputs that are very different, and vice versa. In neural network models, non-linearity is achieved by the non-linear activation function of the processing units, such as a threshold, sigmoid (S-shaped) or Gaussian (bell-shaped) function.