Что подать на вход нейросети? Ваши идеи... - страница 68

 

Вход — это ещё не сила сигнала

Силой его наделяют веса. Но само входное число априори уже(!) несёт в себе силовой элемент — свой количественный фактор.


Ранее я поднимал проблематику понимания входных данных. 

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

0.9 на вход — это равносильно тому, что сигнал крайне сильный. 

И тут закономерные вопросы:
1) С чего это он сильный?
2) Куда он сильный? Бай? Сел? Холд? Закрытию Бай? Закрытию Сел? 

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

И далее на плечи НС ложится задача «прибраться» во входных данных, вместо того, чтобы изучить их. 



И теперь собственно перейдём к деструктивной функции числовых данных:

Когда на вход подаётся число 0.9, что это означает? «Активно покупать»? «Сильно BUY»? 
С точки зрения любого осциллятора с диапазоном от 0 до 1 — это либо строго BUY, либо строго SELL, в зависимости от... трейдера! Только он «наделяет» осцилляторы волшебными сигналами, когда сооружает свою Торговую Стратегию. 
На практике эти числа не означают ровным счёто ничего. Любой программист/кодер пробежит по всей истории и увидит, что эти сигналы — рандомные.

Когда на вход подаётся число 0.9, что это в себе несёт? У НС появляется возможность его значительно «ослабить» весом. 
Что это порождает? Учитывая, что веса во всех архитектурах — статичные — это порождает то, что числами меньше 0.9 при значительном ослаблении — нейросеть работать НЕ будет. 
Они попросту никак не повлияют на общую результативность, поскольку в сумматоре будут двигать общую сумму незначительно. 

Просто представьте, НС поставила вес 0.1 входному числу, у которого максимум «1», в результате, если на вход придёт 0.9, то число станет 0.09, а если придёт 0.1 - число будет 0.01. 
Буквально ВЕСЬ диапазон ниже 1-цы — просто убивается. 


А если «работоспособность» данного входного числа лежит в диапазоне от 0.1 до 0.5, и, попадая в эту зону, число нужно «усилисть»(!) для общей архитектуры и дальнейших вычислений в следующих слоях?
Не получится, ворвётся число 0.9 и просто «сломает» всю малину. Ведь оно — больше влияет на решение НС из-за своего постоянного количественного доминирования. 

Даже в задаче XOR, там нет 2-ки, там нет 0.5 на вход. Там 1-ца. В результате вход является по типу "да, есть сигнал" (1)  и "нет сигнала" (0). На один вход в задаче всегда подаётся один и тот же сигнал. 

Если перевести данный подход на язык НС для форекса, то получится следующее: если пришло число 0.9 - подаём на первый вход, а если пришло число 0.1 - подаём на второй вход. Иначе — 0. 

Обратите внимание: у нас получаются динамические веса , то есть, уже на начальном этапе идёт фильтриация «шума». Если 0.9 - это «плохое» число, то его умножим, допустим, на 0.0001, дабы «спратать» его на самое дно, чтобы не мешало обучению своим излишним силовым фактором. 
А если число 0.1 — умножаем на максимальный вес «1.0», чтобы задать максимальное влияние числа на сю НС. 



Так вот, в динамике весов есть что-то разумное, потенциальное. НА МОЙ ВЗГЛЯД, имхо. 
Просто это выглядит как-то обосновано. 


В качестве примера динамического веса (фильтра): 

5 входов, все проходят «фильтрацию«, но на этом всё — далее MLP  я пока не подключал, поскольку до конца не разобрался с проблемой переобучения в динамике весов. Всё средствами МТ5, обычная оптимизация. 


Оптимизация фильтра 2000-2021, EURUSD, H1:



Форвард первый год 2021-2022


Форвард второй год 2022-2023


Форвард третий год 2023-2024


Все три года форварда


UPD

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

 

хоть что-то про NN и DL получилось ? хоть у кого-то тут...

---

ну кроме графиков в питоне и подогнанных тестов:-) Хотя-бы "советник торгует на демо и плюсит"

---

а то есть ощущение что это тупиковая ветвь эволюции и весь выхлоп машобуча и нейронок в рекламе, спаме и "взаимных_посылах"



 
Maxim Kuznetsov #:
это тупиковая ветвь эволюции

Что-то типа кофейной гущи 21 века

 
Ivan Butko #:

А если «работоспособность» данного входного числа лежит в диапазоне от 0.1 до 0.5, и, попадая в эту зону, число нужно «усилисть»(!) для общей архитектуры и дальнейших вычислений в следующих слоях?
Не получится, ворвётся число 0.9 и просто «сломает» всю малину. Ведь оно — больше влияет на решение НС из-за своего постоянного количественного доминирования.

С деревьями это решается сплитами - просто листья с значением предиктора < 0.1 и > 0.5 не будут выдавать сигналов.

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

[Удален]  
С помощью весов нейросеть мапит входы на выходы, другого смысла в них не предусмотрено. 

Введение адаптивных весов тоже в конечном счёте сводится к определению весов для входов и выходов.

Адаптивность нужна там, где есть ограничение на размер НС. В данном случае ограничения нет.

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

Это равносильные вещи.
[Удален]  
В твоём случае, чтобы не страдать фигнёй, достаточно обучить нормальную НС, а потом применять к ней разные фильтры, чтобы найти те регионы, где она работает лучше всего. В кач-во фильтров можно использовать те же индюки или другие.

Это избавит тебя от многих лишних дум :)
[Удален]  
Ты же писал в другой теме. Переобучай в талово НС, чтобы она давала как можно больше сделок. Только потом не переворачивай на новых данных, а фильтруй сигналы по времени, волатильности, и проч. проч. Ищи стабильные сеты.

В остальном ты просто потратишь время.
В последней статье в каментах скидывал пример про штаны и шорты. По такому же принципу.

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

Если бы не думы, я бы сейчас бестолково тратил время на бога МО — Гизлыка :)

moskitman #:

Что-то типа кофейной гущи 21 века

Вообще - да, но не отпускает. 

Сидишь такой, разбираешь ручную ТС чью-то, потом: "Блин, в прошлый раз я не попробовал то-то" - и опять сюда


Forester #:
С деревьями это решается сплитами - просто листья с значением предиктора < 0.1 и > 0.5 не будут выдавать сигналов.
Я к ним никак не перейду

Maxim Kuznetsov #:

хоть что-то про NN и DL получилось ? хоть у кого-то тут...

---

ну кроме графиков в питоне и подогнанных тестов:-) Хотя-бы "советник торгует на демо и плюсит"

---

а то есть ощущение что это тупиковая ветвь эволюции и весь выхлоп машобуча и нейронок в рекламе, спаме и "взаимных_посылах"


Грубая торговля — получается. 

А вот мягкая, чтобы можно было в маркет — пока нет. 

[Удален]  
Ivan Butko #:

Если бы не думы, я бы сейчас бестолково тратил время на бога МО — Гизлыка :)

Думать вредно для организма, заимствуй опыт ))

 
Maxim Dmitrievsky #:

Думать вредно для организма, заимствуй опыт ))

Тоже верно