Нейронные сети и генетические алгоритмы
Atom Ответить
15.08.2013


Уважаемые специалисты по алгоритмической торговле! Кто нибудь пробовал использовать в своих алгоритмах экзотические способы поиска скрытых закономерностей, такие как нейронные сети и генетические алгоритмы? Звучит красиво, но насколько они эффективны? Так как их реализация требует значительной загрузки мозгов! Оно того стоит?
Вот, например, человек ищет куда пристроить свою библиотеку с нейронными сетями под Матлаб. Хоть и не про трейдинг, но хоть какие-то наработки.



Спасибо:




32 Ответов
1 2  >
loop

Фотография
Дата: 14.09.2013
Ответить


Нейронные сети и генетические алгоритмы в книге Каца Маккормика «Энциклопедия торговых стратегий» возвеличиваются как максимум возможного, в нашем не простом ремесле.
Кто разбирается в этом владеет миром.

Да оно в общем то и понятно, это ИИ, самое сложное и пока непостижимое на земле. Я не имею в виду эти все кустарные приблуды кочующие в интернетах, они с реальными нейронными сетями которые разрабатывают в google связанны только названием.BigGrin
Спасибо: Bond

PavelS

Фотография
Дата: 16.09.2013
Ответить


Есть еще книжка Бестенс Д. и др. Нейронные сети и финансовые рынки. В интернете она есть. Практической пользы возможно и нет, но пролистать для ознакомления можно. Чуда ждать от нейронных сетей не стоит. Всего лишь куча методов анализа данных, каждый со своими целями, задачами и границами применимости. На попробовать, для понимания как ставить задачу и готовить данные, рекомендую взять NeuroShell 2. У меня, именно для торговли на рынке, успешного применения не получилось.
Спасибо:

Андрей Шабанов

Фотография
Автор статей
Дата: 22.09.2013
Ответить


На мой взгляд (который сейчас активно проверяется:) методы машинного обучения (с обучающими выборками) обладают своими плюсами и минусами.
В любом случае не стоит их возводить в ранг всемогущих машин выплевывающих указания куда пойдет рынок.
И уж точно при разработке стратегий не стоит пользоваться методами data mining, не разобравшись детально во всех сильных и слабых местах каждого метода..

Ползая по форумам и блогам, сложилось впечатление, что наиболее используемая схема работы со "сложными" методами состоит в следующем:
у вас есть набор простых логических кубиков (это могут быть индикаторы,эмпирики,паттерны,) а уже связывающим звеном объединяющим все это, является метод машинного обучения.

один из примеров:
http://jspauld.com/post/...machine-learning-and-hft

так же я знаю пример, когда нейросети напрямую использовались для предсказания котировок, но в достаточно специфических ситуациях (например для прогноза точки открытия)..в данном случае разработчики ставили цель обучить систему работать с паттернами рынка...

лично мне метод нейросетей не очень нравится, например, тот же SVM куда менее капризен в задачах классификации, но особо дорого мои слова не стоят...



В догонку...метод генетического алгоритма - по большей части, это метод оптимизации (хотя, естественно, можно и на нем строить МТС). Я знаю пару команд, которые с помощью него оптимизируют и достаточно успешно свои стратегии. Дело в том, что у нас обычно не бывает априорных предположений о "характере" целевой функции,экстремум которой мы ищем. точнее этот характер может меняться от вида стратегии..например если у нас есть просто стратегия в которой параметрами выступают числовые значения то обычно и градиентных методов достаточно, но зачастую бывает более сложные ситуации и здесь генетический алгоритм бывает неплох, особенно если надо отсеять крупицу из горы данных и стратегий.
Спасибо: Евгений Гович

Андрей Гунинский

Фотография
Дата: 22.09.2013
Ответить


То что нужно понять как работает та или иная используемая система это без спорно, иначе это случайная игра. Перебором параметров тут успеха не достичь. На мой взгляд такие «сложные» методы больше как маркетинговый приём пользы приносят чем реально повышают эффективность прогнозирования. Кто знает как устроенны нейронные сети понимает что нет там ничего сверх естественного, а в контексте рыночных таймсерий на первый план выходит предобработка ряда(дов), то есть удаление шума и сжатие входных векторов, а когда это сделано в должной мере эффективно то дальнейшее преобразование в сигнал тривиально и не требует для этого сложных иерархических методов. В общем если данные хорошо отфильтрованы то сеть не нужна а если плохо отфильтрованны то она бесполезна, я конечно утрирую но это близко к реальности.
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 23.09.2013
Ответить


Андрей Шабанов Перейти
И уж точно при разработке стратегий не стоит пользоваться методами data mining, не разобравшись детально во всех сильных и слабых местах каждого метода..


Подозреваю, что использование термина DM употреблено в рамках генетики. Что, на мой взгляд, неправильно.

http://ru.wikipedia.org/wiki/Data_mining

Цитата:
Основу методов Data Mining составляют всевозможные методы классификации, моделирования и прогнозирования, основанные на применении деревьев решений, искусственных нейронных сетей, генетических алгоритмов, эволюционного программирования, ассоциативной памяти, нечёткой логики. К методам Data Mining нередко относят статистические методы (дескриптивный анализ, корреляционный и регрессионный анализ, факторный анализ, дисперсионный анализ, компонентный анализ, дискриминантный анализ, анализ временных рядов, анализ выживаемости, анализ связей).


Главное выделил.

Другими словами, как раз нужно использовать data mining для разработки стратегий. Чтобы хотя бы проверить на числах или графике своб идею, прежде чем начинать программирование стратегии.

Я для себя еще давно разделил этапы разработки стратегии ввиде ответов на вопросы:

1. Существует ли неэффективность (да/нет).
2. Суммарное время жизни за весь период (если ее не было 2-3 месяца назад, то есть большая вероятность, что она исчезнет к запуску робота).
3. Количественне характеристики: сколько раз проявляется в течении дня (интрадей и хфт), какая средняя прибыль, сколько сделок.
4. Алготрейдерские характеристики: соотношение профит-лосса, соотношение заявок к сделкам (важно для ХФТ), гладкость кривой, средний размер позиции, среднее время нахождения в позиции и т.д.

Причем все это я отвечаю именно в таком порядке, и именно работой над данными (не над алгоритмом стратегии). Больше двух третей идей отсеиваются именно на вопросе 1. А это всего лишь простой скрипт на C# или SQL. Дело на час работы, за то я не иду до конечного пунтка - реализация стратегии.

Андрей Шабанов Перейти

В догонку...метод генетического алгоритма - по большей части, это метод оптимизации (хотя, естественно, можно и на нем строить МТС).


Придерживаюсь такого же мнения. Как сказали на Пауке, если на вход алгоритму давать мусор, то и на выходе будет такое же качество. Генетика хороша для оптимизации, но на вход нужно давать уже правильные данные. Тоесть те, что подтверждены статистически. Но на логику принятия решения алгоритма это не должно влиять. Скажем так, можно, конечно, сделать стратегию на генетике, но я почти уверен, что дешевле будет делать ввиде обычной структурированной стратегии с постоянной модернизацией. Рынок постоянно меняется, и с генетикой можно попасть банально в ситуацию, когда окончание разработки стратегии происходит позднее существования неэффективности.
Спасибо: Евгений Гович

PavelS

Фотография
Дата: 23.09.2013
Ответить


Михаил Сухов Перейти
Причем все это я отвечаю именно в таком порядке, и именно работой над данными (не над алгоритмом стратегии). Больше двух третей идей отсеиваются именно на вопросе 1. А это всего лишь простой скрипт на C# или SQL. Дело на час работы, за то я не иду до конечного пунтка - реализация стратегии.

Даже не знаю как вопрос сформулировать Confused У меня, пока стратегию не напишу, неэффективность не могу оценить.
Спасибо:

loop

Фотография
Дата: 23.09.2013
Ответить


Михаил Сухов Перейти
А это всего лишь простой скрипт на C# или SQL.


Скриптом случайно не поделитесь? Заинтриговали:))Drool Ну или формулу, алгоритм...

Если сикрет то без обид, я всё понимаю.

Спасибо.

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 23.09.2013
Ответить


PavelS Перейти
Михаил Сухов Перейти
Причем все это я отвечаю именно в таком порядке, и именно работой над данными (не над алгоритмом стратегии). Больше двух третей идей отсеиваются именно на вопросе 1. А это всего лишь простой скрипт на C# или SQL. Дело на час работы, за то я не иду до конечного пунтка - реализация стратегии.

Даже не знаю как вопрос сформулировать Confused У меня, пока стратегию не напишу, неэффективность не могу оценить.


Потому что нужен опыт. Это решение той же задачи, но с другого края, так сказать. Я вот удивляюсь, почему трейдеры пытаются сразу программировать стратегии (скриптом, дизайнером, кодом), если они еще не уверены в робастости подхода.

Что такое стратегия, вернее это ее код. Это некая F(x), где x - исходные данные. Оптимизация этой стратегии есть ничто иное, как dFx/dy этой функции. Тоесть для того, чтобы проверить наше число, нам сначала нужно получить число Fx, и далее его интерполировать по параметрам y.

Зачем? Зачем нагружать и себя и машинку лишними вычислениями? А как же оптимизация труда, времени и энергии в розетке?RollEyes

Можно сразу получать dx/dy. И уже к полученному числовому ряду применять F.

Например, возьмем арбитраж. Никто не пишет стратегию по раскореллированным парам. Тоесть как минимум все отвечают на вопрос номер 1. Отчевают это глазами, или просто чуйкой. Но можно ведь ответить числом. Причем это код будет обычного подсчета. Стратегия же в себя включает достаточно много трейдерского кода (открытие заявок, контроль позы, отслеживание ошибочных транзакций и прочее прочее). Нет смысла это писать на первом этапе, если на вопрос 1 мы получает отрицательный ответ.

Вот за счет этого и идет экономия времени.
Спасибо: loop Евгений Гович

loop

Фотография
Дата: 24.09.2013
Ответить


Михаил Сухов Перейти
PavelS Перейти
Михаил Сухов Перейти
Причем все это я отвечаю именно в таком порядке, и именно работой над данными (не над алгоритмом стратегии). Больше двух третей идей отсеиваются именно на вопросе 1. А это всего лишь простой скрипт на C# или SQL. Дело на час работы, за то я не иду до конечного пунтка - реализация стратегии.

Даже не знаю как вопрос сформулировать Confused У меня, пока стратегию не напишу, неэффективность не могу оценить.


Потому что нужен опыт. Это решение той же задачи, но с другого края, так сказать. Я вот удивляюсь, почему трейдеры пытаются сразу программировать стратегии (скриптом, дизайнером, кодом), если они еще не уверены в робастости подхода.

Что такое стратегия, вернее это ее код. Это некая F(x), где x - исходные данные. Оптимизация этой стратегии есть ничто иное, как dFx/dy этой функции. Тоесть для того, чтобы проверить наше число, нам сначала нужно получить число Fx, и далее его интерполировать по параметрам y.

Зачем? Зачем нагружать и себя и машинку лишними вычислениями? А как же оптимизация труда, времени и энергии в розетке?RollEyes

Можно сразу получать dx/dy. И уже к полученному числовому ряду применять F.

Например, возьмем арбитраж. Никто не пишет стратегию по раскореллированным парам. Тоесть как минимум все отвечают на вопрос номер 1. Отчевают это глазами, или просто чуйкой. Но можно ведь ответить числом. Причем это код будет обычного подсчета. Стратегия же в себя включает достаточно много трейдерского кода (открытие заявок, контроль позы, отслеживание ошибочных транзакций и прочее прочее). Нет смысла это писать на первом этапе, если на вопрос 1 мы получает отрицательный ответ.

Вот за счет этого и идет экономия времени.

Я думал тестирование это и есть та самая F.

Что значит «Зачем?» Вам может это и очевидно, но я даже в книжках о таком намёков не слышал, все дружно тестируют и анализируют результаты тестирования. Как это миновать совсем не очевидно.

Мне хочется выяснить что конкретно Вы имеете в виду под получением F(x) в какой мере это аналогично общепринятому тестированию, какие плюсы и минусы такого подхода. Зачем вообще тогда тестирование если и без него всё ясно с «неэффективнстью».

В смысле я так понимаю, что если есть торговая идея, то таким способом можно её проверить так сказать «не отходя от кассы», соответственно скорость проверки идей увеличивается на многие порядки при таком подходе, проще говоря это тот самый «грааль».

Про dy/dx не понял, то есть dF/dx или производная от «грааля» или что?
Спасибо:

Андрей Гунинский

Фотография
Дата: 24.09.2013
Ответить


loop Перейти
...что конкретно Вы имеете в виду под получением F(x) в какой мере это аналогично общепринятому тестированию...


Это смотря какая закономерность апробируется. Если предикторный блок ТС для какого то цВР представлен в виде ряда уже готовых сигналов(1,0,-1), то вычисление на лету её P\L и кумулятивной прибыли на истории - тривиальная задача, можно поначалу подумать, что это возможно только для стратегий, которые которые своей деятельности не оказывают на свои же результаты, сильной обратной связи, но это только на первый взгляд, так как паттрерны реакции рынка на выставление приказов того или иного объёма можно учесть в алгоритме прогноза и всё равно всё сведётся к предсказанию смещения цены, в данных условиях.

На Форексе например вообще обратную связь можно не учитывать, там ликвидность огромная. На биржах для скальперских стратегий, искажения обратной связи будут значительны и такие поверхностные способы подсчёта могут быть неверными, как собственно и тестирование на истории тестреом которое тоже не учитывает обратную связь.

В общем я поддерживаю Михаила Сухова в мнении о том что рыночные взаимосвязи, в начале нужно фильтровать с помощью таких, простых алгоритмов. Прежде чем уже строить на них боевую ТС.

PS. Это никакой не грааль. Даже на Форексных форумах завались «эквити-индикаторов» однако мало кому удаётся всё равно подымать много на рынке. Но я тоже после того как познакомился с этой технологией удивляюсь, как я раньше без неё обходился.
Спасибо:

PavelS

Фотография
Дата: 24.09.2013
Ответить


Михаил Сухов Перейти
Например, возьмем арбитраж. Никто не пишет стратегию по раскореллированным парам. Тоесть как минимум все отвечают на вопрос номер 1. Отчевают это глазами, или просто чуйкой. Но можно ведь ответить числом. Причем это код будет обычного подсчета.

Теперь понятно. Конечно можно и нужно прикинуть возможность арбитража, а потом уже строить стратегию, учитывая накладные расходы, время и стоимость удержания позиции.

Спасибо:

loop

Фотография
Дата: 25.09.2013
Ответить


Андрей Гунинский Перейти
Даже на Форексных форумах завались «эквити-индикаторов»

Где например? Я не нашел ни одного. И причём тут "индикатор" вообще? Нужен алгоритм выявления валидности законовмерности.

Короче секрет. Ок.

Спасибо:

Евгений Гович

Фотография
Дата: 25.09.2013
Ответить


Прошу прощение, а причем тут нейронные сети и ген-оптимизация, к пользовательским алгоритмам тестирования? Это свободное ассоцирование или есть взаимосвязь?

Спасибо:

Андрей Гунинский

Фотография
Дата: 09.11.2013
Ответить


Евгений Гович Перейти
Прошу прощение, а причем тут нейронные сети и ген-оптимизация, к пользовательским алгоритмам тестирования? Это свободное ассоцирование или есть взаимосвязь?



Есть конечно, взаимосвязь вообще есть всего со всем, вопрос только в силе и структуре.
Спасибо:

karellin

Фотография
Дата: 14.02.2014
Ответить


Андрей Гунинский Перейти
То что нужно понять как работает та или иная используемая система это без спорно, иначе это случайная игра. Перебором параметров тут успеха не достичь. На мой взгляд такие «сложные» методы больше как маркетинговый приём пользы приносят чем реально повышают эффективность прогнозирования. Кто знает как устроенны нейронные сети понимает что нет там ничего сверх естественного, а в контексте рыночных таймсерий на первый план выходит предобработка ряда(дов), то есть удаление шума и сжатие входных векторов, а когда это сделано в должной мере эффективно то дальнейшее преобразование в сигнал тривиально и не требует для этого сложных иерархических методов. В общем если данные хорошо отфильтрованы то сеть не нужна а если плохо отфильтрованны то она бесполезна, я конечно утрирую но это близко к реальности.


Многое прочитал про датамайнинг, НС, генетику. Размышлял, крутил в матлабе, и пришел к таким выводам.

1. (очевидный) Для успешного применения НС и генетики необходимо ПОЛНОЕ и ЧЕТКОЕ знание алгоритмов, применяемых при анализе. Например: в известных книгах типа Энциклопедии торговых стратегий Кац и МакКормик, Нейронные сети и финансовые рынки Бэстенса, Ван Дер Берга, Вуда написана всякая лажа. Авторы либо совершенно не разбираются в НС (вряд ли), либо успешно притворяются тупыми. Выводы о том, что НС применима (не применима) для решения задач, решать которые она не предназначена, на уровне книжки "Что такое хорошо, и что такое плохо". Для дилетантов писалось за гонорар. Про применение карт Кохонена вообще смешно читать - как эту шнягу использовать, когда это проекция многомерного пространства на двухмерное с огромной потерей информации. Три - четыре измерения еще можно как-то покрутить, а больше? а стабильность результатов? а как вектора по длине сравнивать, если они нормируются? И самое главное, в СОТ близкое расположение точек НЕ ЗНАЧИТ, что соответствующие им вектора также расположены рядом. Еще видел библиотеку для вейвлет-анализа по Хаару со стоимостью сколько-то там сотен долларов и рекламой типа основное достоинство Хаара в том, что он не заглядывает в будущее и поэтому разложение правильное (по фэншую по ходу). И ничего, что код по Хаару в Вики лежит и занимает пять строчек в С#, а набор коэффициентов при преобразовании в точности соответствует набору N скользящих средних с длиной периодов 2^N. Так можно до бесконечности продолжать. Из толкового именно по рынку нашел совсем немного. Вывод один - нужно учиться, читать, анализировать.
2. Необходимо НЕСТАНДАРТНОЕ применение методов НС и ГА. Например, как-то я узнал, что методу главных компонент соответствует модель НС с узким горлом, причем в отличие от МГК опорные вектора в НС нелинейные. Т.о. задача сжатия входного вектора может эффективно решаться с помощью НС. Также, читал о том, что для построения фитнес - функции можно использовать подходы генетического программирования (мне самому никогда бы не пришло в голову такое, не согласен, но в качестве примера нестандартного подхода сгодится). Обучение НС с помощью ГА вообще максимально управляемое. Можно включить в фитнес-функцию практически любые требования к структуре и свойствам НС, а не только минимизацию ошибки распознавания. Т.е. нужно смотреть на эти методы шире, глобальнее, но при этом не пытаться получить от них то, чего они не могут.
Классические методы НС и ГА обычно не дают впечатляющих результатов, возможно, из-за этого они и являются классическими. Никто не хочет палить продвинутые технологии анализа, пока они работают. Значит, необходимо проявить фантазию и самому придумать адекватные методы, которыми уже никто и никогда не заставит поделиться с другими. Ну и конечно дело еще и в том, что математики, которые в основном и разрабатывают методы анализа, народ придирчивый и скептичный. Пока нет строгого математического доказательства работы метода, автор, его предложивший, будет в их сообществе чем-то типа мишени для дартс. Ну не любят люди, когда каждый прохожий в них дротики втыкает. Частью поэтому и молчат о своих разработках.
Спасибо: Андрей Гунинский

Bond

Фотография
Курсы
Дата: 14.02.2014
Ответить


Добрый день!
Я смотрю до трейдеров, наконец-то, стало доходить, что необходимо абсолютно ясное пониманиемание применяемых алгоритмов тестирования и оптимизации.
У каждого подхода есть свои плюсы и недостатки. И без понимания этих нюансов можно получить "бредятину" в итоге.
По поводу "адекватных методов". Все эффективные алгоритмы уже давно известны и подробно изучены. Мне кажется все дело в обычной лени) Люди не любят думать, не хотят ни во что вникать и разбираться.
Куда проще скачать какую-нибудь библиотеку, подать на вход какую-нибудь ерунду, получить такую же ерунду на выходе, придать этому смысл и успешно слить бабло на бирже. А потом с уверенностью говорить, что все эти алгоритмы полная хрень)
"Техника в руках идиота - груда металлолома" Laugh
Автор топика
Спасибо:

karellin

Фотография
Дата: 14.02.2014
Ответить


Здравствуйте.
Bond Перейти
Добрый день!
Я смотрю до трейдеров, наконец-то, стало доходить, что необходимо абсолютно ясное пониманиемание применяемых алгоритмов тестирования и оптимизации.

То же самое я могу сказать, глядя на Вас. Ваши статьи по анализу, тестированию и оптимизации впечатлили прагматичным и системным подходом, а также четкими знаниями предмета. Спасибо за них.
Вы еще не пробовали генетику в своем оптимизаторе? Возможно она будет значительно лучше Монте-Карло по вычислительным затратам, хотя ее сложнее реализовать. В целом, все опять таки упирается с прагматичность - если Монте-Карло работает 2 сек., а генетика 1 сек., то нечего тут и огород городить. Тем более, что поиск идет всех минимумов/максимумов, а не только глобального.
Генетика в целом нужна для реально больших задач. Например, для автоматизированной разработки самих стратегий.
Спасибо:

Bond

Фотография
Курсы
Дата: 14.02.2014
Ответить


Вот мне интересно)
Как вы определяете, что Генетика быстрее Монте-Карло?
Почему она "быстрее"?
Чем вообще отличается Монте-Карло от Генетики?
И как вы планируете искать в многоэкстремальном пространстве лучшие стратегии с помощью Генетики?
Или, к примеру, как исследовать с помощью Генетики пространство на кластеризацию?
И т.д. и т.п.
Автор топика
Спасибо:

karellin

Фотография
Дата: 14.02.2014
Ответить


Интересный вопрос. Полагаю, что ГА - это частный случай М-К для решения задач большой размерности, когда оптимизация одной части переменных слабо влияет на оптимизацию другой части (других частей), в связи с чем поиск идет параллельно по нескольким направлениям, после чего они объединяются в одном решении.
Как исследовать пространство на кластеризацию... Слишком общий вопрос. Про кластеризацию с помощью ГА читал толковые статьи, есть в инете. Но все в конечном итоге зависит от задачи, которую преследует кластеризация.
Спасибо:

Bond

Фотография
Курсы
Дата: 14.02.2014
Ответить


karellin Перейти
Интересный вопрос. Полагаю, что ГА - это частный случай М-К для решения задач большой размерности, когда оптимизация одной части переменных слабо влияет на оптимизацию другой части (других частей), в связи с чем поиск идет параллельно по нескольким направлениям, после чего они объединяются в одном решении.
Как исследовать пространство на кластеризацию... Слишком общий вопрос. Про кластеризацию с помощью ГА читал толковые статьи, есть в инете. Но все в конечном итоге зависит от задачи, которую преследует кластеризация.


ссылка на Википедию

Ничего особенного в этом методе нет.
Вы приходите в магазин и видите, что на прилавке лежит селедка в масле(Монте-Карло), в майонезе(Генетические алгоритмы), селедка мелко порезанная с укропом(Рой частиц) и здоровенная банка цельной слабосоленой сельди(Метод перебора). Вы считаете, что с майонезом сельдь самая вкусная, а мне нравится просто в масле. Но не важно, что мы там думаем все равно это обычная селедка.
И здесь тоже самое, в основе - нелинейная стохастическая оптимизация. Кроме Полного перебора.
Те же проблемы с локальными экстремумами. Кстати, в моем алгоритме таких проблем нет) И прочее, прочее, прочее...
И с чего вы решили, что он удобен для больших размерностей? Почитайте, к примеру, комментарии в конце статьи на Википедии.
Автор топика
Спасибо:

karellin

Фотография
Дата: 14.02.2014
Ответить


Bond Перейти

Ничего особенного в этом методе нет.
Вы приходите в магазин и видите, что на прилавке лежит селедка в масле(Монте-Карло), в майонезе(Генетические алгоритмы), селедка мелко порезанная с укропом(Рой частиц) и здоровенная банка цельной слабосоленой сельди(Метод перебора). Вы считаете, что с майонезом сельдь самая вкусная, а мне нравится просто в масле. Но не важно, что мы там думаем все равно это обычная селедка.
И здесь тоже самое, в основе - нелинейная стохастическая оптимизация. Кроме Полного перебора.
Те же проблемы с локальными экстремумами. Кстати, в моем алгоритме таких проблем нет) И прочее, прочее, прочее...
И с чего вы решили, что он удобен для больших размерностей? Почитайте, к примеру, комментарии в конце статьи на Википедии.


Я не маркетолог, мне трудно судить о достоинствах и недостатках селедок различного приготовления. Если бы вы спросили допустим Марковица о том тестере стратегий, который написали, то думаю, что услышали бы много интересного о математической обоснованности своих методов. То же самое и об отзывах ученых о генетическом алгоритме. особенно порадовало мнение о том, что недостатком генетического алгоритма является неспособность спроектировать самолет сразу целиком. типа есть алгоритмы для этого, а вот ГА ну никак не может.
Чтобы не быть голословным:
http://technomag.bmstu.ru/doc/56533.html
взял про большие размерности из логики. то что в вашем алгоритме нет таких проблем - ваше недоказанное ничем мнение, как и мое про большие размерности.
существует класс задач ГА - генетическое программирование (задача переменной размерности решаемая путем эволюции дерева выражения). поделитесь, пожалуйста, как его можно реализовать с помощью монте карло.

Небольшое размышление на тему:
Например, будем классифицировать элементы множества по половинкам - больше или меньше ноля. В одномерном пространстве будет всего 2 подмножества, в 2-хмерном - 4, в 3-мерном - 8, в N-мерном 2^N. Допустим подбираем 30 параметров. Количество подмножеств - более 1*10^9 подмножеств, которые можно разделить, и это при разделении по каждой оси пространства только на 2. Какова же вероятность попадания случайного значения из монте-карло внутрь гиперкуба диаметром 0,1 от возможного? 1*10^30 по-видимому. А если алгоритм промахнется пару раз?
Генетический алгоритм тоже неидеален, но он накапливает информацию о лучших решениях в случае если решение задачи состоит из относительно независимых частей. Допустим, решение состоит из двух частей, одинаково влияющих на результат. Тогда генетический алгоритм будет решать не задачу попадания значения в 1*10^30 от общего пространства признаков, а лишь 2*10^15, поскольку размерность каждой из частей решения только 15. Если независимых частей еще больше, то выигрыш становится еще существеннее. Примерно так.
Спасибо:

Bond

Фотография
Курсы
Дата: 14.02.2014
Ответить


Цитата:
Если бы вы спросили допустим Марковица о том тестере стратегий, который написали, то думаю, что услышали бы много интересного о математической обоснованности своих методов.

Не знаю кто такой Марковиц, да это и не важно. Меня за 6 лет обучения в техническом университете научили самостоятельно решать сложные задачи. От всех этих заумных книжек больше вреда, чем пользы. Если у человека есть ясное мышление, то он и без них разберется. А если трейдер торгует по астрологическим прогнозам, то ему ничего не поможет.

Цитата:
то что в вашем алгоритме нет таких проблем - ваше недоказанное ничем мнение, как и мое про большие размерности

Я никому ничего не доказываю. И никого ни в чем не убеждаю.

Цитата:
существует класс задач ГА - генетическое программирование (задача переменной размерности решаемая путем эволюции дерева выражения). поделитесь, пожалуйста, как его можно реализовать с помощью монте карло.

Что?Huh

Цитата:
А если алгоритм промахнется пару раз?

Вот главный вопрос! Остальное все риторика. Вот именно на этом моменте и была построена основная логика моего алгоритма.
И почему вы его все время сравниваете с Монте-Карло? Мой алгоритм правильнее назвать "Методом уменьшения итерационной решетки". Да, и совершенно не важно как он зовется. Вы думаете что "Генетический алгоритм" имеет какое-то отношение к эволюции и генетике? Или "Метод имитации отжига" связан с термодинамикой или кристаллографией? Или "Рой частиц" с муравьями или пчелами? Это всего лишь ассоциации для более простого понимания, не более. Одна природа алгоритмов, никто из них не может быть лучше или хуже!
Не правильно спрашивать: "Что лучше Генетика или Монте-Карло?"
Правильно спрашивать: "Как определить область выборки? Как задать критерий останова? Как не упереться в локальный максимум?"

Мне кажется, что вы не поняли в чем суть алгоритма.

П.С.
"Как селедку не называй, шоколадным тортом она от этого не станет!" Laugh
Автор топика
Спасибо:

karellin

Фотография
Дата: 14.02.2014
Ответить


В чем суть вашего алгоритма, я возможно и не понял. Поправьте меня, если я не прав. Вы предлагаете оценивать по монте-карло области наименее пригодных решений и отбрасываете эти области целиком, уменьшая (обрезая) пространство, в котором производится поиск.
Я же говорю вам о следующем. При большой размерности пространства достаточно велик (в случае размерности 30 - просто ОГРОМЕН) шанс пропустить в области плохих решений локальный или глобальный максимум.
Генетический алгоритм я называю так, поскольку это общераспространенное название данного класса алгоритмов. Естественно, алгоритм не имеет почти ничего общего с реальной биологией. Я прекрасно представляю себе, как он работает, иначе просто не стал бы вступать в его обсуждение.
Мне интересно другое. Поняли ли вы, что я имел в виду в последней части своего ответа, говоря о значительном повышении вероятности для ГА найти правильный ответ при решении задачи, состоящей из двух слабо взаимосвязанных частей, каждую из которых характеризует свой набор признаков. Если нет, то судя по отсутствию вопросов вы все уже для себя решили, и это вам не нужно. Но если вы уже определились со своим отношением к ГА и его месту среди прочей стохастики - так и напишите. По крайней мере, это сэкономит мне время. А то получается, что я пытаюсь ответить на вопрос человеку, который не хочет меня слышать, поскольку убежден в правильности другого ответа.
9 признаков - не та размерность, в которой могут существенно проявиться различия ГА и монте-карло.

Bond Перейти

Цитата:
существует класс задач ГА - генетическое программирование (задача переменной размерности решаемая путем эволюции дерева выражения). поделитесь, пожалуйста, как его можно реализовать с помощью монте карло.

Что?Huh


Приз за лучший ответ.Laugh Можете узнать что это, погуглив "генетическое программирование". Вам будет интересно.

Спасибо.
Спасибо:

Bond

Фотография
Курсы
Дата: 14.02.2014
Ответить


Цитата:
Вы предлагаете оценивать по монте-карло области наименее пригодных решений и отбрасываете эти области целиком, уменьшая (обрезая) пространство, в котором производится поиск.

На каждой итерации уменьшается область выборки. Выбирается заданное число худших параметров и согласно их количеству общий объем выборки делится на множество микрообластей, которые вырезаются из пространства как самые неудачные. После каждой итерации все результаты за все время исследования сортируются и выбираются самые неудачные. Все результаты сохраняются и анализируются до конца оптимизации. Задача алгоритма не идти к максимуму, а не упустить из вида хорошие области пространства. А все хорошие параметры можно потом дополнительно исследовать. Главное, что мы знаем, где их искать.

Цитата:
При большой размерности пространства достаточно велик (в случае размерности 30 - просто ОГРОМЕН) шанс пропустить в области плохих решений локальный или глобальный максимум.

Цитата:
9 признаков - не та размерность, в которой могут существенно проявиться различия ГА и монте-карло.

Вы теоретик или практик? Просто я не знаю ни один полноценный тестер, который сможет хотя бы 5 параметров нормально прооптимизировать. 9 параметров это и без того очень много! Исходя из своего опыта могу сказать, что нужно исследовать не менее 20% от общего пространства, чтобы получить более или менее адекватный результат. Обычные компы такой объем никогда не высчитают.
Если будете использовать много параметров, то получите многоэкстремальное рваное пространство со всеми вытекающими проблемами. Если вырезать микрообласти по монте-карло, которые будут помещаться между экстремумами, то здесь нет никакой проблемы. Хотите точнее - уменьшайте области, увеличивайте время тестирования. Хотите быстрее - увеличивайте области, увеличивайте вероятность пропустить экстремум. ГА тоже не может из ниоткуда получать данные о пространстве, ей также нужно его тестировать и "мутировать" в сторону экстремумов. Возможно в многоэкстремальном пространстве ГА будет вести себя корректнее. Я не знаю. Нужно тестировать. Вот коллега сейчас пишет, что много лет занимается тестированием и сейчас перешел на метод отжига. Хз, каждому свое. Не забывайте, что очень много зависит от способа формирования пространства стратегий и архитектуры стратегий и тестировщика.
Автор топика
Спасибо:

karellin

Фотография
Дата: 15.02.2014
Ответить


Вы описали алгоритм, наполовину обратный ГА. Вместо популяции лучших решений в нем создается своеобразная популяция худших (в виде областей, исключенных из поиска), хотя в больших размерностях это работать не будет. Но для вашей задачи это видимо лучшее решение из возможных.
Если честно, ни разу не встречал практического использования ГА для задач с числом оптимизируемых параметров менее 10, может просто не интересовался такими задачами. Например, для обучения НС число оптимизируемых весовых коэффициентов часто бывает более 100.

Bond Перейти

Цитата:
то что в вашем алгоритме нет таких проблем - ваше недоказанное ничем мнение, как и мое про большие размерности

Я никому ничего не доказываю. И никого ни в чем не убеждаю.

По-видимому дискуссию пора заканчивать. Вы действительно для себя уже сделали все выводы, имеете собственный взгляд на проблему и не нуждаетесь в том, чтобы его кто-то опроверг. Спасибо за полезную информацию, кое-что заставило задуматься.
Спасибо:
1 2  >

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy