I have a supervised learning problem where my algorithm will be given a set of training examples for learning whether a shape is a circle of a square. I was wondering which type of ANN would be the best. I know that you can choose a perceptron if the data is linearly separable... Surely I can easily have a hyperplane that divides my squares and circles up? So isn't a perceptron a good enough choice? However, aren't multilayer feedforward networks more commonly used? What is the natural choice and why?

The following image shows the training data given to the system. The NN needs to classify two-dimensional data A=[a1,a2] into squares and circles.

Thank you.