Neural Networks - page 13

 
Kazam:
If you want a good source of information about HONN's get the book "Artificial Higher Order Neural Networks for Economics and Business". It's a new publication so it has very good info. The price is a killer (180$) but you can find it in pdf .

Thats the one I was talking about, its good. I've only got a little way through it and already its given me plenty of ideas. Implementing them, for me anyway, is a little more tricky, I'm a bit of a neuber to this coding malarky...

Thanks for the recommendations will have a look and see... Might get lucky and find some of them in the uni library. They've just built a new Artificial Intelligence building with its own library so there might be something there. Otherwise ill just download it...

Oh I split my 10yr data into two chunks 2/3 and 1/3 respectively, trained the network on the first 2/3rds (including splitting that 2/3 into training, test and CV chunks) and then tested the resulting network on the remaining 1/3 and it seemed to remain accurate. There was some minimal loss of accuracy but it was still 0.9995 regression line. Could that still be explained by over-fitting on the previous training data?

 
Kazam:

- "Gen Expression Programming" - by Candida Ferreira.

Isn't Candida Ferreira the bacteria that causes thrush?

 

surfeur

I don't trade Forex using ENN. I might start soon but probably I'll use systems for classification /systems that decide when to take long/short trade/ rather than try to forecast the price - Forex is to volatile.

As for now I'm using ENN and genetic algorithms /and some other stuff like fuzzy logic, rough set theory etc./ for portfolio management /predicting long term interest rates for the purpose of trading T-bills etc./.

The results are pretty good. They'll be better when everything gets better and more stable after the financial crisis ends.

mrwobbles

For the purpose of trading Forex don't look at the error measurements but rather check if the predictions show the same direction of price movement like the desired output. What I mean - if NN shows that the next price will close higher than the current one than you should expect the price to move at least x pips above its opening level. Predicting the exact price level is almost impossible for time frames like H1 or H4.

The small error that you get now is caused by the wrong method of its measurement.

And you're right - there is a genus of yeasts called Candida

 

I've tried to predict the close as well as the open-close spread because I think you're right predicting the exact close would be near impossible. Thou I think a suitable network with genetically optimized neurons and weights would be able to do so to within 5 pips if you provided it with the right inputs. Have you considered using Kohonen self organizing maps (SOMs) to predict further into the future than t+1? My understanding is that Kohonen networks can take the prediction for t+1 and then use that value to predict all values to say t+10, thou I might be wrong. This would be useful, although all examples I've seen have been less accurate than what I am looking for.

 

For the purpose of predicting Forex time series forget about SOM's. ENN are much better.

If you want to predict steps over t+1 /t+2, t+3 etc./ just use a different time frame. For example if You want to predict the trend for next week use W1 time frame. Don't predict t+n based on t+n-1 /because Forex exchange rates are chaotic and non-linear/. You can also train one network to predict t+1, second one to predict t+2 /using the same data/ and so on.

A very good idea is building hybrid systems. In simple words - take 5-6 best neural networks and combine their output /you can use simple averaging for this [(out1+out2+...+outN)/N)], GEM, LWPR [LWPR is the best choice IMO] etc./

 

That's basically what I thought, I saw a few predictions from SOMs and they might have got the trend right over a period of say 20 steps but they were far off in the actual path that price took. I think that using genetic optimization is the way forward, given NN being designed to mimic biological systems, it seems logical that adding some form of evolutionary process will increase accuracy.

I'm not sure about these results, I've zoomed in to check whether it gets the direction right and it seems to get it more often than not. There are a couple of anomalous results (one where its out by 400 pips = S) but for the most part it gets the direction right. The picture shows predictions (green) against targets (blue) for close, high and low. I've read a lot about ANNs but this is my first forage into building them so I don't exactly know what I'm looking for other than the obvious.

Files:
gbpjpy60-3.jpg  67 kb
 

hi

I will post this again:several years ago I wrote a thesis regarding fuzzy logic + Neural Network with Back Propagation to predict oil deposit in a well logging process and the result is good , so I think fuzzy logic with NN back propagation can be implemented to predict the trend in this business but it needs more data to train to get a better result,I ve used 9 nodes to predict the pattern of rocks ,I don't know how many nodes for recognize a forex pattern .

===================

Forex Indicators Collection

 
prasxz:
I will post this again:several years ago I wrote a thesis regarding fuzzy logic + Neural Network with Back Propagation to predict oil deposit in a well logging process and the result is good , so I think fuzzy logic with NN back propagation can be implemented to predict the trend in this business but it needs more data to train to get a better result,I ve used 9 nodes to predict the pattern of rocks ,I don't know how many nodes for recognize a forex pattern .

===================

Forex Indicators Collection

I read that it depends largely on the number of inputs you are giving the network. I'm giving it 32 inputs and I want 3 outputs so I'd start with (32-3)/2=14.5 so say 14 neurons and then work from there. The model I've built uses 13 nodes, funnily enough decreasing the nodes increased both the accuracy and convergence time thou it decreased after a point. Applying a genetic algorithm to the problem to create an ENN, as Kazam was talking about, should allow the network to choose the most optimal network in a sample space of all possible networks that produce accurate results. That is if I've understood what I've read about them. Thou I would imagine this would significantly increase the time it takes to build the network.

 

prasxz

Fuzzy neural networks and fuzzy hybrid neural systems might be a very good choice when building trading systems. They might be less useful for the purpose of forecasting chaotic time series.

mrwobbles

Those charts show the training data /desired vs predicted/?

Choosing a proper number of nodes is very very hard. The formula you presented is useless /but it's very popular/ - there is no deterministic way of choosing an optimal, or near optimal, NN architecture.

Genetic algorithms overcome this problem. You supply a GA with two groups - one with terminal symbols /inputs, constants etc./ and the other one with functions /nodes with different activation functions, trigonometric functions etc./, and the algorithm "builds" NN's using members of those groups. This way you can get a NN that has 3 nodes and 5 inputs or NN that has 30 nodes and 50 inputs. The more generations you wait the better NN's you get /read about Holland's schema theorem if you want to know why it happens like this

/.

 
Kazam:

mrwobbles

Those charts show the training data /desired vs predicted/?

Choosing a proper number of nodes is very very hard. The formula you presented is useless /but it's very popular/ - there is no deterministic way of choosing an optimal, or near optimal, NN architecture.

Genetic algorithms overcome this problem. You supply a GA with two groups - one with terminal symbols /inputs, constants etc./ and the other one with functions /nodes with different activation functions, trigonometric functions etc./, and the algorithm "builds" NN's using members of those groups. This way you can get a NN that has 3 nodes and 5 inputs or NN that has 30 nodes and 50 inputs. The more generations you wait the better NN's you get /read about Holland's schema theorem if you want to know why it happens like this

http://en.wikipedia.org/wiki/Holland%27s_schema_theorem
/.

Yeah training vs predicted. I built a new network with the first 6-7 years of data used to train, test and cross validate. I then fed it the remaining 3 years of data as a test with no learning, the idea being to mimic a live test. The training regression line had a slope of 0.99995 and when I fed it about 3 years of previously unseen data that dipped to 0.9995. I'm not sure how to interpret this. It seems a little too accurate for something I put together in less than an hour.

Yeah I came across that formula in an introduction to neural networks book I found in the library. It covered the basics and for me was a good induction to the world of neural networks. For someone starting out thou its as good a place as any to start before tackling harder concepts like genetic algorithms.

If I've understood correctly it involves generating an, at first, random population of programs (input weights, hidden layers, neurons etc) that could solve the problem and then using optimal parent programs to breed a new generation of programs that should hopefully be better than the last. Surely thou if you generate the first population at random is there not a chance that you could generate a population in which no program solves the problem? Or is the idea to start with a population that doesnt solve the problem and then evolve one that does? Surely that would involve a lot of computation? More so than say the average desktop could handle? I would imagine parallel graphics card processing or even better a massively parallel system would be required. That said, however, it does seem the best approach to selecting the most optimal solution.

Would you not be better starting with a population of say 12 networks created from training using existing methods and then use that set of programs to produce offspring with each other? You could then create a family tree type structure, using the methods you suggested to evolve a better population, pruning unsuccessful offspring and selecting the 12 most optimal programs at to be the next generations parents? The idea being to start with a population that you know solves the problem and then evolving a more efficient program from the resulting offspring.