1. An artificial neural network system configured to receive input data and produce an abstracted output in dependence on the received input data, comprising: a plurality of successive artificial neural network layers, each respective successive artificial neural network layer being implemented by at least one automated processor and comprising an array of hidden layer neurons and a respective set of weights in a stacked architecture, the array of hidden layer neurons of a respective artificial neural network layer having a state dependent on at least a state of a preceding artificial neural network layer, and a respective set of connection weights to the preceding artificial neural network layer; at least one artificial neural network layer further automatically receiving feedback from at least one succeeding artificial neural network layer; each respective set of connection weights being dependent on at least training information, wherein the training information comprises a relationship of the received input data and abstract information represented in the respective received input data, wherein the feedback received from the at least one succeeding artificial neural network layer acts to modify at least one connection weight; the artificial neural network system being implemented to achieve a predefined level of abstraction based on at least the training information modified based on the feedback; wherein the arrangement of at least a respective array of hidden layer neurons, and the respective sets of connection weights define an architecture of the artificial neural network layer; and the plurality of artificial neural network layers each having a different respective architecture and operating sequentially to achieve a plurality of levels of abstraction between the received input data and an artificial neural network output.