Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Тем самым вы увеличите объем просчетов, но безрезультатно. Бесцельно по сути, так как вы не дождались скрещенного поколения, а выстрелили в молоко.
Можно конечно предиктивно на неполном результате текущей считаемой популяции делать попытки смешения, но там промахов будет запросто близко к 100%. В общем, увеличение объема вычисления налицо, а ускорения - нет.
Вы опираетесь на какие-то математические доказательства или просто вам так кажется?
Лично я не вижу тут никакой "бесцельности" и "безрезультатности". Основа системы - обмен успешными генами. И какая разница, когда были получены эти гены. Если особь из первого поколения с хорошими генами скрещивается с особью из третьего поколения тоже с хорошими генами, то получаемый результат ничуть не отличается от того, как если бы они были в одном поколении. Вероятность абсолютно одинакова, она не зависит от возраста.
Или другими словами, если все успешные особи окажутся уже в первом поколении, то оптимизация может сразу же завершится. Поэтому единственное что имеет значение - это набор генов. И в этом наборе нет гена возраста.
Ок.
Не переживай. Ни у кого не сойдется. Ни у тебя, ни у меня, ни в штатном ГА. Это реальный вынос мозга для оптимизации, говорю же, что сомневаюсь что како либо алгоритм сможет победить хотя бы 200 совпадений в пределах 20К обращений, не говоря уже о 100% попадании.
Но у кого сойдется лучше - это очень большой вопрос сейчас.
Я об этом и написал - в условиях облака 256 особей это минимум, который позволяет покрывать оверхед, поэтому так и сделано. Но реально необходимое количество особей в популяции действительно намного меньше.
Нет, облако тут не причем.
Это реально необходимое количество особей (от 128, лучше 256, но можно и больше) в популяции и при его снижении вы получите отвратительный результат.
Да, в своих частных случаях оптимизации своей собственной предобработанной(самообман, как обычно) функции вы можете заоптимизироваться(подгонка и у программистов/математиков в наличии, но эту тему почти не поднимают) и свести ГА в пару сотен проходов, но это не будет иметь никакого отношения к универсальному решателю.
Вот простой тест с генетическим алгоритмом по максимуму баланса на Moving Averages: EURUSD H1, 2016.01.01-2016.11.21, все тики, MetaQuotes-Demo
На локальном компе с 24 ядрами показал оценочное время расчета около 32 минут (тест до конца не довел, время бы меньше получилось, так как часть расчетов пропустилась бы как дубли). В клауде показал точно 3 минуты (тест прошел до конца).
Причем важно, что при работе в клауде не было никаких тормозов и все результаты возвращались быстро. Это доказывает, что стратегия выбора быстрых агентов у нас работает хорошо и проблемы ожидания самого медленного агента практически нет.
Нет, облако тут не причем.
Это реально необходимое количество особей (от 128, лучше 256, но можно и больше) в популяции и при его снижении вы получите отвратительный результат.
Да, в своих частных случаях оптимизации своей собственной предобработанной(самообман, как обычно) функции вы можете заоптимизироваться(подгонка и у программистов/математиков в наличии, но эту тему почти не поднимают) и свести ГА в пару сотен проходов, но это не будет иметь никакого отношения к универсальному решателю.
Наоборот, получаю замечательные результаты.
Речь о подгонке моего алгоритма к конкретной задаче не идет, я сам лично разрабатывал задачи так, что бы как можно сложнее её было решить и с учетом особенности алгоритмов оптимизации "любить" гладкие функции. Задача с текстом прекрасный пример отвратительно негладкой функции. Мой алго как и Ваш не имеет настроек, будет выложен здесь "как есть" без ограничений на функционал (с защитой конечно), сможете убедится, что никакой особой подгонки под конкретную задачу нет.
Вы опираетесь на какие-то математические доказательства или просто вам так кажется?
Лично я не вижу тут никакой "бесцельности" и "безрезультатности". Основа системы - обмен успешными генами. И какая разница, когда были получены эти гены. Если особь из первого поколения с хорошими генами скрещивается с особью из третьего поколения тоже с хорошими генами, то получаемый результат ничуть не отличается от того, как если бы они были в одном поколении. Вероятность абсолютно одинакова, она не зависит от возраста.
Я опираюсь на свой практический опыт написания га оптимизаторов. Первый написали еще в 2006 году.
Вы не теорию читайте про "успешный обмен генами", а подумайте об стоимости. ГА снижает затраты. И сейчас он может грубо за 8000-10000 проходов выдать приемлемый результат. Вы же предлагаете параллельно основной ветке расчетов стрелять в молоко(ибо еще нет скрещивания текущей популяции) по сторонам, увеличивая стоимость расчетов(проходов) вплоть до 1.5-2.0 раз при слабом (мое мнение, что близком к нулю) влиянии на конечный результат.
Или другими словами, если все успешные особи окажутся уже в первом поколении, то оптимизация может сразу же завершится. Поэтому единственное что имеет значение - это набор генов. И в этом наборе нет гена возраста.
Все таки вы совершенно на теоретическом уровне в этом вопросе. Ошибаетесь и даже не понимаете реальной механики генетического алгоритма, раз делаете такие заявления.
Например, у вас область решений 1 млрд вариантов, вы сделали целевую ГА пристрелку в 5 000 проходов с приемлемым результатом, а потом должны доказать себе, что дальше лучшего результата нет. Для этого вы обязаны продолжить генетику и еще с десяток генераций порыскать вокруг.
Вот как выглядит добивка результатов генетического алгоритма - все это в штатном ГА визуализируется и легко понятно:
но алгоритм не настроен на самообман - ему нужно больше гарантий и он делает еще десяток популяций для проверки, рыская вокруг лучших результатов
Вот когда на протяжении N популяций критерий оценки перестает улучшаться, ГА останавливается. Причем иногда во время финальной добивки он вылезает из неожиданной локальной ямы и ловит прирост результата, то он раскручивает генетику дальше. Это позволяет нам дать автоматически подстраивающийся ГА движок, который избавляет начинающих на 90% от стандартных ошибок и дает очень хорошие результаты без необходимости крутить 10 ручек настроек своего собственного га алгоритма.
Вот как это в логах выглядит:
2016.11.22 10:07:12 Tester Best result 19012.4 produced at generation 8. Next generation 32
2016.11.22 10:07:08 Tester Best result 19012.4 produced at generation 8. Next generation 31
2016.11.22 10:07:04 Tester Best result 19012.4 produced at generation 8. Next generation 30
2016.11.22 10:07:00 Tester Best result 19012.4 produced at generation 8. Next generation 29
2016.11.22 10:06:57 Tester Best result 19012.4 produced at generation 8. Next generation 28
2016.11.22 10:06:53 Tester Best result 19012.4 produced at generation 8. Next generation 27
2016.11.22 10:06:42 Tester Best result 19012.4 produced at generation 8. Next generation 26
2016.11.22 10:06:29 Tester Best result 19012.4 produced at generation 8. Next generation 25
2016.11.22 10:06:26 Tester Best result 19012.4 produced at generation 8. Next generation 24
2016.11.22 10:06:22 Tester Best result 19012.4 produced at generation 8. Next generation 23
2016.11.22 10:06:18 Tester Best result 19012.4 produced at generation 8. Next generation 22
2016.11.22 10:06:14 Tester Best result 19012.4 produced at generation 8. Next generation 21
2016.11.22 10:06:09 Tester Best result 19012.4 produced at generation 8. Next generation 20
2016.11.22 10:06:04 Tester Best result 19012.4 produced at generation 8. Next generation 19
2016.11.22 10:05:59 Tester Best result 19012.4 produced at generation 8. Next generation 18
2016.11.22 10:05:53 Tester Best result 19012.4 produced at generation 8. Next generation 17
2016.11.22 10:05:49 Tester Best result 19012.4 produced at generation 8. Next generation 16
2016.11.22 10:05:45 Tester Best result 19012.4 produced at generation 8. Next generation 15
2016.11.22 10:05:38 Tester Best result 19012.4 produced at generation 8. Next generation 14
2016.11.22 10:05:34 Tester Best result 19012.4 produced at generation 8. Next generation 13
2016.11.22 10:05:30 Tester Best result 19012.4 produced at generation 8. Next generation 12
2016.11.22 10:05:25 Tester Best result 19012.4 produced at generation 8. Next generation 11
2016.11.22 10:05:20 Tester Best result 19012.4 produced at generation 8. Next generation 10
2016.11.22 10:05:16 Tester Best result 19012.4 produced at generation 8. Next generation 9
2016.11.22 10:05:09 Tester Best result 18455.36 produced at generation 6. Next generation 8
2016.11.22 10:05:04 Tester Best result 18455.36 produced at generation 6. Next generation 7
2016.11.22 10:04:59 Tester Best result 18035.1 produced at generation 4. Next generation 6
2016.11.22 10:04:53 Tester Best result 18035.1 produced at generation 4. Next generation 5
2016.11.22 10:04:48 Tester Best result 17796.7 produced at generation 3. Next generation 4
2016.11.22 10:04:43 Tester Best result 17508.26 produced at generation 2. Next generation 3
2016.11.22 10:04:37 Tester Best result 17373.5 produced at generation 0. Next generation 2
Очень хорошо. Вопрос только в том, во сколько обошлась эта оптимизация?
Ровно в 10 центов.
Клауд на самом деле очень дешев, если считать нормально с точки зрения бизнеса(покупаю за деньги то, чего мне нужно и чего у меня нет), а не с точки зрения, что "я ни за что не плачу принципиально".
Ровно в 10 центов.
Наоборот, получаю замечательные результаты.
Речь о подгонке моего алгоритма к конкретной задаче не идет, я сам лично разрабатывал задачи так, что бы как можно сложнее её было решить и с учетом особенности алгоритмов оптимизации "любить" гладкие функции. Задача с текстом прекрасный пример отвратительно негладкой функции. Мой алго как и Ваш не имеет настроек, будет выложен здесь "как есть" без ограничений на функционал (с защитой конечно), сможете убедится, что никакой особой подгонки под конкретную задачу нет.
Я верю в самообман и человеческий curve fitting (что и есть самообман).
Не знаю... когда я последний раз пользовался облаком 2-3 месяца назад (под другим ником) получались раз в 100 большие денюжки, 15-20$ за одну оптимизацию это мягко говоря дорого. При интенсивных расчетах и частых оптимизациях целесообразнее купить машину с 24-мя ядрами.
Следите за объемом вычислений и соотносите оплату с полученным результатом (деньги vs скорость).
Получить результаты в 100-300 раз быстрее за время выпивания чашки кофе и по цене чашки кофе - это нормально.