Евгений Гович
|
Дата: 23.01.2014
Нейронные сети, «нелинейная динамика» и подобная псевдонаучная профанация - гипнотизирующий пиар для необразованных халявщиков.
То есть исключительно около-рыночное применение у этих «технологий».
Реальная торговля уже не мыслима без инсайда и протекции влиятельных особ, нужно быть вхожим в круги олигархов и депутатов. В противном случае рынок эффективен.
|
|
|
|
Спасибо:
|
|
|
|
|
|
karellin
|
Дата: 27.01.2014
|
|
|
|
|
Здравствуйте, Иван. Прочитал обе Ваши статьи. Меня не покидает чувство, что вы прочитали всего одну/две книжки/статьи о НС перед тем, как принялись делать своего робота. Ни цены, ни приращения цен, ни свечи (их цвета, тени, патерны) не годятся в качестве исходных данных для НС. Вся соль НС это то, что именно нужно подавать на ее вход. Есть интересные статьи о прогнозировании ценового ряда с помощью НС и анализе влияния применяемой предобработки данных на результат ее работы. Если коротко, самые эффективные методы предобработки данных по различным источникам - это специальные вейвлеты, банальные крестики-нолики, модовая декомпозиция, к которым обычно применяются (для уменьшения размерности пространства признаков) метод главных компонент, кластеризация с равномерным распределением данных внутри кластера и т.д. Дома лежит полдесятка научных статей о предобработке данных для НС, но сейчас на работе, поэтому точные данные дать не могу. Помню фамилии авторов - Крисилов, Олешко. Погуглите, почитайте.
Нейросеть вам ответит что-то внятное только если ее внятно спросить. Если свалить на вход кучу необработанных данных, она вернет общую статистику по основным группам этих данных, а поскольку они не обработаны ее ответ будет примерно соответствовать матожиданию по этой куче, то есть случайный +-. А вообще, существует мнение (которое я в целом разделяю), что методы датамайнинга более эффективны при грамотном использовании, поскольку дают представление о данных в целом (структура, распределения, зависимости), тогда как нейросеть выдает только конечный результат и является по сути черным ящиком.
|
|
|
|
|
|
|
Rebelion
|
Дата: 27.01.2014
|
|
|
|
|
[quote=karellin;29353]Здравствуйте, Иван. Прочитал обе Ваши статьи. Меня не покидает чувство, что вы прочитали всего одну/две книжки/статьи о НС перед тем, как принялись делать своего робота. Ни цены, ни приращения цен, ни свечи (их цвета, тени, патерны) не годятся в качестве исходных данных для НС. Вся соль НС это то, что именно нужно подавать на ее вход. Есть интересные статьи о прогнозировании ценового ряда с помощью НС и анализе влияния применяемой предобработки данных на результат ее работы. Если коротко, самые эффективные методы предобработки данных по различным источникам - это специальные вейвлеты, банальные крестики-нолики, модовая декомпозиция, к которым обычно применяются (для уменьшения размерности пространства признаков) метод главных компонент, кластеризация с равномерным распределением данных внутри кластера и т.д. Дома лежит полдесятка научных статей о предобработке данных для НС, но сейчас на работе, поэтому точные данные дать не могу. Помню фамилии авторов - Крисилов, Олешко. Погуглите, почитайте.
Нейросеть вам ответит что-то внятное только если ее внятно спросить. Если свалить на вход кучу необработанных данных, она вернет общую статистику по основным группам этих данных, а поскольку они не обработаны ее ответ будет примерно соответствовать матожиданию по этой куче, то есть случайный +-. А вообще, существует мнение (которое я в целом разделяю), что методы датамайнинга более эффективны при грамотном использовании, поскольку дают представление о данных в целом (структура, распределения, зависимости), тогда как нейросеть выдает только конечный результат и является по сути черным ящиком.[/quote]
А можно и мне ссылки на данные статьи? Мне важен дата майнинг больше в этом ключе - что подавать на вход стратегиям для анализа. Был бы очень благодарен.
|
|
|
|
Спасибо:
|
|
|
|
|
|
karellin
|
Дата: 27.01.2014
|
|
|
|
Спасибо:
|
|
|
|
|
|
loop
|
Дата: 28.01.2014
[quote=karellin;29353]Если свалить на вход кучу необработанных данных, она вернет общую статистику по основным группам этих данных, а поскольку они не обработаны ее ответ будет примерно соответствовать матожиданию по этой куче, то есть случайный +-. [/quote]
Хорошо сказано.
|
|
|
|
Спасибо:
|
|
|
|
|
|
karellin
|
Дата: 29.01.2014
|
|
|
|
|
Я поразмышлял тут на досуге, в каких случаях будет оправдано применение НС в торговле. В общем случай придумал только один, и при этом довольно специфический. Давным давно в журнале Валютный спекулянт год так за 2000-2001 читал статьи про метод торговли AT&CF, при котором автором применялись спектральный анализ и цифровая фильтрация ценового ряда, а также использовались собственные индикаторы. Система сигналов на покупку - продажу по этим индикаторам была далеко нетривиальной - что-то типа: "Если кривая М находится над Т, а индикатор S пересекает D снизу вверх, причем R не больше трех, это сильный сигнал на покупку, приводящий к успеху в 85% случаев".
Так вот, в случае наличия серьезного отклонения матожидания прибыли от нуля при каком-либо из соотношений индикаторов системы, это соотношение, как я считаю, можно выловить с помощью НС типа карт Кохонена или нечеткой нейросети, после чего уже вытащить из обученной нейросети конкретные правила для определения признаков такой прибыльной ситуации.
Других применений для НС я пока, к сожалению, не вижу, поскольку они проигрывают в точности, обоснованности и предсказуемости результата другим методам.
|
|
|
|
Спасибо:
|
|
|
|
|
|
karellin
|
Дата: 06.02.2014
|
|
|
|
|
Совершенно спонтанно возникла идея использования нейросети как чрезвычайно гибкого инструмента предобработки данных для датамайнинга. Но поскольку я не специалист по НС, у меня есть вопрос к сообществу.
Обучающий пример при использовании алгоритма обучения BackProp влияет на изменение весовых коэффициентов сети строго определенным образом. Для реализации планируемой НС необходимо иметь альтернативные варианты изменения весовых коэффициентов, чтобы направлять ее обучение в нужную сторону. То есть имеется задача обучить сеть определенным образом, чтобы значения ее весовых коэффициентов соответствовали определенным правилам. Можно использовать обратное распространение ошибки в лоб, просто меняя последовательность обучающих примеров, но это очень сильно замедляет обучение сети, и не факт, что можно будет использовать все примеры выборки без исключений.
Вопрос: Существуют ли алгоритмы обучения сети, при которых можно изменять оказываемое на конкретные весовые коэффициенты сети воздействие, и если да, то какие?
Поскольку для реализации задуманного мне придется отказаться от использования имеющихся в свободном доступе компонентов, желательно, чтобы алгоритм обучения был максимально простым, сравнимым по сложности в обратным распространением ошибки, если это возможно (сильно сомневаюсь).
Пока то немногое, что приходит на ум - корректировать коэфф. обучения для каждого отдельного выхода сети и смотреть, как будут изменяться целевые веса. Но так сеть будет учиться НУ ОЧЕНЬ ДОЛГО, и не факт, что успешно. Еще один вариант - обучение через генетический алгоритм с настроенной соответствующим образом оценочной функцией.
PS Сеть с тремя скрытыми слоями. Регулировать нужно веса первого слоя от входного.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Иван З.
|
Дата: 06.02.2014
|
|
|
|
|
Здравствуйте, karellin! Почитал статьи о прогнозировании ценового ряда, которые вы упоминали в предыдущих комментариях. Крисилов, Олешко и др., спасибо, интересные статьи.
[quote]Вопрос: Существуют ли алгоритмы обучения сети, при которых можно изменять оказываемое на конкретные весовые коэффициенты сети воздействие, и если да, то какие?[/quote]
При обучении алгоритмом обратного распространения ошибки, для каждого слоя и даже для каждого нейрона можно задать свою функцию активации. При корректировке весов будет использоваться ее производная. Но к ней предъявляются определенные требования. Можно посмотреть здесь http://www.aiportal.ru/articles/neural-networks/back-propagation.html . Также можно регулировать скорость обучения, и так называемую инерцию http://www.aiportal.ru/articles/neural-networks/accelerate-training-speed.html . Если вы хотите вручную влиять на ход обучения, корректируя веса первого слоя. То это не имеет смысла, сеть будет подстраивать веса которые вы не трогали. А если вы будете корректировать все веса входного слоя то она не обучится вовсе. Реализовать такое вмешательство можно и на персептроне но результата не будет.
Алгоритм обратного распространения ошибки, на мой взгляд, это не самый простой способ обучения нейросети. Генетический алгоритм проще, здесь любопытная реализация http://habrahabr.ru/post/168067/ . А сети Кохонена и Гроссберга еще проще, вот тут они более менее внятно описаны http://www.intuit.ru/studies/courses/88/88/lecture/2656 . Задача не совсем ясна, поэтому, что то советовать трудно.
|
|
|
|
|
|
|
karellin
|
Дата: 06.02.2014
|
|
|
|
|
Иван З., я вполне себе владею основной информацией о нейросетях, как вы понимаете. Моделировал их работу даже в Exсel, не говоря уже о программных реализациях. Вручную никто веса первого слоя корректировать в принципе не сможет при том объеме данных, который обрабатывается. Я предположил, что если я подкорректирую в определенных случаях коэфф. скорости обучения для определенных весов, то это мне поможет сосредоточить на определенных нейронах определенную информацию о выборке. То есть нейросеть используется для датамайнинга с целью извлечь полезную информацию из выборки.
Например, имеется обработанная выборка из рыночных данных. Также имеются сведения об ожидаемой волатильности опционов. Один из выходов нейросети тестируем на корреляцию с ожидаемой волатильностью, и в случае если она (корреляция) уменьшается - пытаемся обучить на данном примере другие веса, уменьшить скорость обучения некоторых весов и т.д. В конечном итоге максим корреляцию и узнаем, какие именно рыночные данные являются определяющими для ожидаемой волатильности и в какие именно моменты времени.
Не нужно говорить о том, что сеть с единственным выходом учится лучше, чем сеть с несколькими. Архитектура сети и алгоритм ее работы такие именно чтобы осуществлять нелинейный поиск в пространстве признаков, а не прогнозировать конкретный признак на основе других. Ищется максимальная корреляция, а не прогноз изменения. Задача - исследование, а не гадание.
Генетический алгоритм - в точку, спасибо. В оценочную функцию можно вставить условия на значения определенных весов. Сейчас почитаю о нем.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Иван З.
|
Дата: 06.02.2014
Возможно вам помогут сети с обратной связью, так называемые рекуррентные нейронные сети, сети Хопфилда и Хемминга как их разновидность.
|
|
|
|
Спасибо:
|
|
|
|
|