I've been experimenting with a simple tic-tac-toe game to learn neural network programming (MLP and CNNs) with good results. I train the networks on a board positions and the best moves and the network is able to learn and correctly predict the best moves to make when it encounters those board positions.But the network is unable to discover newer patterns/features from existing ones. For example -Let's say that the board position is below and move is for the X player (AI)O  _  __  O  __  _  _The recommended move would be 8 (0 based indices) so that the opponent doesn't win, the resulting board would be - O  _  __  O  __  _  XIf I train the network on the above enough times, the AI (MLP or CNN based) learns to play 8 when it encounters the above situation. But it doesn't recognize the below as variations (rotated and shifted, respectively but slanted straight lines in general) of the same pattern and is not able to correctly pick 6 and 0, respectively -_  _  O            _  _  __  O  _     or     _  O  _   etc_  _  _            _  _  OMy question is - Should I expect CNNs to be able to discover new previously untrained on patterns/features such as above? 
Can a CNN or MLP discover similar but untrained-on patterns?
neural networks;convolutional neural networks