Computer-implemented method of solving a cognitive task that includes learning abstract properties, comprising: accessing datasets characterising the abstract properties from an input unit; inputting the datasets into a first neural network of a neural network module; executing the first neural network to generate first embeddings; forming pairs of the first embeddings, wherein the pairs correspond to pairs of the datasets; inputting data corresponding to the formed pairs into a second neural network of the neural network module; executing the second neural network to generate second embeddings that capture relational properties of the pairs of datasets; executing a third neural network of the neural network module based on the second embeddings to obtain output values; and learning one or more abstract properties of the datasets based on the output values, to solve a cognitive task. The first neural network may be a convolutional neural network, and the second and third neural network may each be a fully-connected neural network. Forming the pairs of first embeddings may comprise concatenating the pairs, and data corresponding to the formed pairs may include concatenated values forming a single vector for each pair.
Neural network systems for abstract reasoning