I am trying to use a convolutional neural network (implemented with [keras](http://keras.io/)) to solve a modified version of the MNIST classification problem (I am trying the background variations as described [here](http://www.iro.umontreal.ca/~lisa/twiki/bin/view.cgi/Public/MnistVariations)). I started from [this example](http://github.com/fchollet/keras/blob/master/examples/mnist_cnn.py) and played around a bit with the parameters to get better accuracies, but I seem to get stuck at about 90% accuracy on my validation set. 

I've read papers who manage to get near-human accuracy on those datasets, but I seem not to be able to improve my network to get over 95% (something I would expect to be possible). Because I have only been guessing the parameters for the network thus far and I don't seem to find anything online, I was wondering whether there are any guidelines to find a good architecture and good parameters for convolutional neural networks.

Would anybody be aware of how to tackle the problem of finding good parameters (including architecture) for a CNN apart from trying?