Back to Articles Index
This is an article by Adam Hartley of SnapDragon Systems that appeared in Club 3000
I was talking to a fellow Club 3000 reader recently about neural networks and their pro's and con's. He had gone through the whole neural network user cycle from excitement at the idea of something that would do all the hard work of system development itself, through to euphoria as the network learnt everything that it was asked to and finally to despair and disillusionment when it was realised that the network couldn't predict anything that it hadn't been trained on. Having done a fair bit of work on them myself I thought that I would offer a few thoughts and ideas on the subject as I feel that there is now a bit of a backlash against neural networks with people finding that they are not as easy to use as was first thought.
I think that one of the most important questions that any potential neural network trader should first address is whether a neural network actually is suited to his or her trading style. Using a network is a great leap of faith in that there are no clues at all to the reason for the network's decision: one has to have a blind trust in its abilities (which may or may not be justified) in order to take every trade that is signalled. This is even harder than a conventional trading system in that for those at least one can say why the trade has been signalled.
The main potential problem with any neural network is that of the number of parameters that it has. People tend to lose sight of the fact that a neural network is in fact no more that a highly non-linear parameterised function with each weight in the network being a parameter that can be optimised to produce the desired result. A network with 10 inputs and one hidden layer of 10 nodes has well over 100 parameters in it. Would you use a 100 parameter trading system? This is not to say that one should never use a network of this size but one should at least be aware of what one is doing.
Because of this plethora of free parameters the most important problem that the network developer faces is that of producing a network with good generalisation ability. That is to say the ability to make meaningful decisions on data that it has not been trained on instead of merely knowing the training data inside out. There are several practical ways that this can be approached. The simplest way is the 'bottom up' development approach whereby the developer starts of with the simplest possible network with the smallest possible number of nodes and trains that. This 'sparse' network will be such a simpleton that it will only be able to grasp the simplest facts about the training data set, which is just what one is looking for. Gradually the size of the network can be increased, with generalisation ability (i.e. diagnosis ability on unseen data) monitored closely each time. Incidentally, when testing on unseen data it is important to use more than a few token unseen data patterns so that a decent number of unseen trades are generated. I typically like to test the system on as much unseen data as I have trained the network on.
One other approach to the problem of over-training is to take a large network but not to train it to death on the training data but instead merely give the network a quick glance at it (i.e. only do one or two passes through the data set). This ensures that it does not have time to memorise the entire data set. Provided that one is using a rigorous testing or validation method on unseen data this approach should be ok. I like to test the network on unseen data frequently as it is being trained so that a graph of both training and unseen network performance can be plotted against the number of training iterations. Once the unseen network performance starts to deteriorate you know that the network is being over-trained.
Finally, if you decide that you do want to trade with neural networks then persevere as it can be done: there are now several large funds managing large amount that are exclusively using neural networks for their trading decisions. There is no end to the number of different ways that they can be used, just so long as a reliable method of validation on unseen data is used. Getting a reliable neural network trading method is probably as hard if not harder than designing a conventional trading system so it is not the lazy man's way to riches but, if used correctly they can be made to succeed.
Back to Articles Index