Искусственные нейронные сети. - страница 3

 
gpwr:

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

Так и есть :)

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

А выделение закономерностей - это дополнительный пласт работы по анализу обученных весов и передаточных функций НС, я сам никогда этим не занимался лично.

Человеческий мозг способен очень успешно обучаться нелинейным закономерностям. Возьмите для примера, расчет траектории бумеранга, который запускают бушменские племена где-нибудь в Африке. Все природа нам дала. Можно целенаправленно обучаться нелинейным закономерностям на рынке. Я лично хочу написать на VBA обучалку для себя следующего рода: на график будет выводиться ряд котировок небольшой длины, скажем 100-150 баров и мне нужно будет угадать общее направление цены в будущее, скажем на 50 баров. Я буду нажимать кнопки вверх/вниз, и программа будет записывать мой ответ и угадал я или нет. После это график случайно смещается по оси времени и т.д. В результате я либо обучусь (процент угаданных направлений станет расти), либо нет (типа, извините, не получилося). Хороший будет пример обучаемости мозга. 

 
gpwr:

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

Одно дело аппроксимировать рыночные данные сетью, и совсем другое дело - распознавание образов.

Второе представляется более правильным - ведь мозг трейдера именно распознаёт образы.

 
joo:

Одно дело аппроксимировать рыночные данные сетью, и совсем другое дело - распознавание образов.

Второе представляется более правильным - ведь мозг трейдера именно распознаёт образы.

Инженеры из Google подавали самообучающейся сети (какой там тип я не знаю) скрины с роликов YouTube и сеть научилась выделять кошек в отдельный класс. Можно прикинуть какой объем информации крутился в оперативке. Теоретически возможно и графики скармливать сетке, но это должна быть огромная сложная сеть и комп соответствующий. Проще ценовой паттерн подавать, нормализованный в диапазоне, скажем [0;1]. И стационарность соблюдается и реализовать просто. В принципе, трейдер видит ценовой паттерн, а есть трейдеры, которые по чистому графику торгуют (без индикаторов). Но, видимо, сеть должна переобучаться постоянно. Потому что наш мозг тоже постоянно обновляет связи и улучшает понимание процесса.
 
alexeymosc:
Инженеры из Google подавали самообучающейся сети (какой там тип я не знаю) скрины с роликов YouTube и сеть научилась выделять кошек в отдельный класс. Можно прикинуть какой объем информации крутился в оперативке. Теоретически возможно и графики скармливать сетке, но это должна быть огромная сложная сеть и комп соответствующий. Проще ценовой паттерн подавать, нормализованный в диапазоне, скажем [0;1]. И стационарность соблюдается и реализовать просто. В принципе, трейдер видит ценовой паттерн, а есть трейдеры, которые по чистому графику торгуют (без индикаторов). Но, видимо, сеть должна переобучаться постоянно. Потому что наш мозг тоже постоянно обновляет связи и улучшает понимание процесса.
Трейдер, когда "видит" паттерн, все таки анализирует не чистый ценовой ряд, такого количества оперативки ни у одного человеческого моска нет (она, кстати, мыслительная оперативка, максимум пару сотен байт составляет). Поэтому предобработка сигнала обязательна.
 
alsu:
Трейдер, когда "видит" паттерн, все таки анализирует не чистый ценовой ряд, такого количества оперативки ни у одного человеческого моска нет (она, кстати, мыслительная оперативка, максимум пару сотен байт составляет). Поэтому предобработка сигнала обязательна.

Не слышал про это. Окей. Ну тогда конечно сложно понять, какие именно аспекты ЦР воспринимает мозг. В этом и проблема всех потуг сделать что-то похожее на базе НС. Важные признаки поступающей информации не определены, приходиться только гадать.

Но - лично мне больше всего запонимаются изгибы и пики :) 

 
alexeymosc:

Не слышал про это. Окей. Ну тогда конечно сложно понять, какие именно аспекты ЦР воспринимает мозг. В этом и проблема всех потуг сделать что-то похожее на базе НС. Важные признаки поступающей информации не определены, приходиться только гадать.

Но - лично мне больше всего запонимаются изгибы и пики :) 

Мне кажется, очень перспективно - очистка ценовой информации от шума с помощью НС. Полезный сигнал в принципе описывается небольшим количеством параметров, скажем, если взять сутки на М1, то их может быть навскидку 10-20 (вместо 1440), что вполне по силам воспринять человеческим мозгам. Вопрос в том, чтобы именно правильно очистить сигнал, не потеряв при этом важной информации. Вот тут-то ИМХО и может помочь сеть. Ну, а уж обработать (классифицировать, кластеризовать, регрессировать, etc.) оставшуюся часть можно любым подходящим методом, и не факт, кстати, что НС будет лучшим выбором. Во всяком случае, для таких задач инструментов разработано множество, и не в последнюю очередь причина этому в том, что все они работают одинаково плохо)))
 
alsu:
Мне кажется, очень перспективно - очистка ценовой информации от шума с помощью НС. Полезный сигнал в принципе описывается небольшим количеством параметров, скажем, если взять сутки на М1, то их может быть навскидку 10-20 (вместо 1440), что вполне по силам воспринять человеческим мозгам. Вопрос в том, чтобы именно правильно очистить сигнал, не потеряв при этом важной информации. Вот тут-то ИМХО и может помочь сеть. Ну, а уж обработать (классифицировать, кластеризовать, регрессировать, etc.) оставшуюся часть можно любым подходящим методом, и не факт, кстати, что НС будет лучшим выбором. Во всяком случае, для таких задач инструментов разработано множество, и не в последнюю очередь причина этому в том, что все они работают одинаково плохо)))
Алексей, вы говорите прямо про проблему Feature Selection, то есть на обычном языке: как выбрать 1% данных из имеющегося массива, которые максимально информативны для прогноза типа: входить длинно, входить коротко, ждать. Но и в случае применения изощренных техник к этой проблеме, подводные камни вылазят быстро. Во-первых, не ясно, под каким соусом подавать выбранные точки данных: сырые значения не подходят, нужно предобрабатывать. Может быть, все заработает, если взять разницу между 457 и 891 баром, а также между 1401 и 1300. Вариантов тьма, а брутфорсом перебирать все времени не хватит.
 

Еще по поводу информации, реально поступающей в мозг. Весьма поучительный пример - фрактальное сжатие изображений. Оно как раз показывает, что на самом деле зрительно человеку для восприятия достаточно информации в тысячи и даже десятки тысяч раз меньше, чем "сырой" размер изображения.

Вот интересно, какого коэффициента можно  достигнуть, сжимая котир по фрактальному алгоритму? 100? 500? больше?

 
alexeymosc:
Алексей, вы говорите прямо про проблему Feature Selection, то есть на обычном языке: как выбрать 1% данных из имеющегося массива, которые максимально информативны для прогноза типа: входить длинно, входить коротко, ждать. Но и в случае применения изощренных техник к этой проблеме, подводные камни вылазят быстро. Во-первых, не ясно, под каким соусом подавать выбранные точки данных: сырые значения не подходят, нужно предобрабатывать. Может быть, все заработает, если взять разницу между 457 и 891 баром, а также между 1401 и 1300. Вариантов тьма, а брутфорсом перебирать все времени не хватит.
Здесь еще примешена еще и проблема интерпретации выходных данных алгоритма. Мы очень часто пытаемся строить ту же сеть так, чтобы на выходе был четкий сигнал, что нам делать, ну, или по-крайней мере, информация, относительно понятно (для дизайнера) преобразуемая в такой сигнал. Но не факт, что самой сети удобно выдавать инфу именно в такой форме, может ей было бы гораздо проще давать нам не грубо полтора бита (бай-селл-стоп), а, например, 10 бит информации?
 
alsu:
Здесь еще примешена еще и проблема интерпретации выходных данных алгоритма. Мы очень часто пытаемся строить ту же сеть так, чтобы на выходе был четкий сигнал, что нам делать, ну, или по-крайней мере, информация, относительно понятно (для дизайнера) преобразуемая в такой сигнал. Но не факт, что самой сети удобно выдавать инфу именно в такой форме, может ей было бы гораздо проще давать нам не грубо полтора бита (бай-селл-стоп), а, например, 10 бит информации?
Хорошее, кстати замечание. По сути, мы пытаемся сжать входную информацию до такого уровня, что бы можно было четко принимать решения (бай-сел- стоп). Очень даже может быть, что лучшим решением будет вообще коэф. сжатия равным 1 (то есть без сжатия или близким к этому). На входе образ понятный сетке, на выходе образ понятный человеку.
Причина обращения: