
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
There are situations where a full brute force search will not find an optimum because the nodes of the brute force grid do not fall on it.
Maxim Dmitrievsky #:
1. Какой-нибудь конкретный критерий оценки кач-ва оптимизации есть?)
2. if the algorithm needs more iterations is it bad?
1. The limit of 10 000 accesses is not taken "from the ceiling". The MetaTrader 5 optimiser uses this number as the optimum from the practical point of view. This number is used as a reference boundary of practicality. You can make more calls, but why waste time and resources when you can use a more powerful algorithm and achieve the same results faster. This number is a threshold and is used when comparing different algos.
This describes the qualities of algorithms that should be considered:
Accuracy of convergence
Repeatability of results (robustness)
Scalability (ability to continue working efficiently as the dimensionality of the problem increases).
2. If random point generation is used, would it be bad that a huge number of calls to the FF are required?
3. If the number of accesses to the FF in a full search is within reasonable limits, then it should be used. Why do we need AO if only 200 accesses are required, for example?
There are situations where a full brute force search will not find an optimum because the nodes of the brute force grid do not fall on it.
Exactly right. And reduction of the grid will lead to a stepwise increase in calls to FF. This is where the area of practical applicability of AO under time and resource constraints in real life begins.
1. It is not yet a fact that the optimisers from alglib are used correctly.
1. You can question anything, but it is always much more constructive to talk from the position of complete source codes and correct reproducible tests.
2. You can get an optimal result on a two-dimensional Megacity if you ask 9 billion people to randomly poke their fingers into a blank sheet of paper, behind which the surface of the function is hidden (one of them will definitely be very close to the global and will say that it is he who has successfully solved the problem). But we need to find the optimal solution not in 9 billion attempts by random poking, but in 10 000 using a strategy.
The higher the average result for a series of independent tests (stability, repeatability of results), the higher the tested method is compared to random poke for a particular type of problem (for some problems some methods are not much different from random poke, and for others they are very effective).
This is the point of testing and comparing different algorithms, for which not just one test function, but three different ones with different properties are taken as benchmarks, so that one can clearly see the applicability of different algorithms on different tasks, their limitations and capabilities on different tasks. This allows you to approach the solution of optimisation problems in a meaningful way.
In the future, I prefer to answer specific questions on the content of the article and on the codes.
We take the methods for local optimisation, apply them to the global problem and compare them with the methods for global optimisation. That's what I'm talking about.
I'm talking about how we can adapt these methods for global optimisation. The simplest option is to increase the number of initialisations.
If I understand correctly, Adam etc are honed for speed, not quality.
It would be interesting to see the rating when limited by time rather than number of iterations.
If I understand correctly, Adam etc are honed in on speed, not quality.
It would be interesting to see the rating when limited by time rather than number of iterations.
The ADAM family of algorithms (AdamW, RAdam, AdaBelief and others) as well as SGD, SGRAD and others (there are many of them) are developed as a modern replacement for classical gradient methods and are designed to solve problems of large dimensions without knowledge of the analytical formula, often for training neural networks (all of them have their advantages and disadvantages). There are also interesting Lion methods from Google (2023) and some other very recent ones. This topic is very interesting to study, especially in the context of training neural networks, where it will be useful and informative to build a target surface on some simple example (or maybe complex) and conduct experiments (with parsing their innards, with deep study of the properties of methods, careful evaluation of their capabilities - everything as we like).
With time constraints, there is nothing to be bound to. One user will make 1 million accesses to the target in 1 minute, and another will make 1 billion. How can we compare algos in such conditions? That's why we use a limit on the number of hits and compare efficiency within this limit.
With time constraints, there is nothing to bind to. One user will make 1 million accesses to the target in 1 minute, while another will make 1 billion. How can we compare algos between them in such conditions? That's why we use a limit on the number of hits and compare efficiency within this limit.
Binding to the author's PC. Take the time of 10000 iterations of ANS as a base.
My results on fxsaber's code :
PS code size as an additional metric (how complex is the implementation of the algorithm)