Instead of writing specific command, you can teach the computer to seek out different patterns in your data. What you need to do is focusing on feeding the computer with diet of data. Just think about it, you can never program every move and the next move in a chess game, but you can feed the computer to teach it to learn its moves on its own!
Neural networks are a robust way for computer to find the various pattern in the data, just like the human brain structure which allow you to learn new things and quickly classify different patterns.
![broken image](http://user-assets.sxlcdn.com/images/182442/Fm3_V9OsQudf__Qp213rt5XQzGdy.png?imageMogr2/strip/auto-orient/thumbnail/1200x9000>/quality/90!/format/png)
You can use 1) supervised learning when you have a relatively SMALL training set to have the network find patterns, and use the patterns to run against your test data, 2) unsupervised learning when you have LARGER data sets, machine can find patterns in UNLABELED data and find new clusters that you even haven’t considered, 3) reinforcement learning, the machine can play games or run algorithms and then look at the results, and if positive event occurs, the machine can learn or reinforce the algorithm.
Things to consider: 1) you’ll need to feed massive diet of data 2) you’ll use an empirical approach. Modern neural networks give you plenty of opportunity to fine-tune your network, which are called your networks’ HYPER parameters. In addition, you can try different algorithms and different statistical techniques even you don’t know why these changes improve the outcome.