• Нейронная сеть выдает не верные значения. Как можно исправить?

    @rPman
    Во первых, закономерности в указанных данных может и не быть, нельзя найти то чего нет

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

    В третьих, данные должны быть правильно поданы, они должны быть нормированы, быть на интервале (обычно 0-1 или к примеру -1..+1), отличный пример - для торговых объемов, подавай на вход 1/(1+v), это число будет гарантированно будет на интервале (0..1], так же старайся избегать дискретных значений и графиков с острыми вершинами (первая производная - бесконечность)...

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

    В пятых, очень рекомендую внимательно подумать над функцией ошибки. Так в классическом виде функция ошибки - это сумма квадратов разницы между целевыми и вычисленными выходами, но ведь можно определить ее как к примеру размер депозита, его ты хочешь максимизировать, так что переверни 1/(a+x), при использовании текущей нейронной сети, если ты будешь торговать по своей стратегии, на каком то интервале (этот интервал должен быть привязан к моменту времени получения входных данных сети, т.е. считаем сеть для момента времени T, и симулируем торговлю за время [T-x..T] или лучше [T..T+x], т.е. в будущем, ты же доход будешь получать на основе будущих сделок после принятия решения на основе текущих значений.

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