Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3321

[Удален]  
Никто ничего не обсуждал, ты вклинился в разговор про сложность модели, или отреагировал на сообщение, поэтому прослыл оптимизаторщиком.
 
Maxim Dmitrievsky #:
Никто ничего не обсуждал, ты вклинился в разговори про сложность модели, или отреагировал на сообщение, поэтому прослыл оптимизаторщиком.

Всё, Максим. Дальнейшее обсуждение не имеет смысла, всё все выяснили уже. Вот тут рядом и Саныч наблюдает, который из покон веков спорил со мной, что мол, глобал искать вредно, на что я отвечал "смотря какой глобал", и Саныч так и тоже пока ещё не понял, что в конечном итоге ищет глобал.

Надеюсь на возвращение дискуссии в спокойное, дружелюбное и конструктивное русло.

А все, кто читают эту ветку на постоянной основе помнят, кто и что и когда говорил, не включай несознанку - бесполезно это. Я ошибку сделал сегодня - график неправильно нарисовал, спокойно признал ошибку и сказал об этом. Признавать свои ошибки нормально, Максим.

 
Andrey Dik #:

Почему же нет. Да. У меня не другое представление, просто многие не любят, почему то, называть вещи своими именами.

Когда именно остановить обучение - вопрос выбора методики, я лишь подчеркивал, что без обнаружения глобального экстремума остановить обучение невозможно (ну либо принудительно, что не будет иметь практически полезного смысла).

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

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

Учитывая, что применяется в общем то перебор всего и вся, Максим утверждает, что это не обучение с учителем, так как логика разметки может отсутствовать и ситуации не похожи друг на друга, что осложняет процесс обучения. И это правильно, по сути у нас много разных классов, которые объединяются по принципу "нравится" и "не нравится", но при этом они могут быть не похожи по признакам между собой. Ранее я предложил метод постепенного отсева таких данных, через поэтапное обучение, выделение в начальной выборке отсутствие противоречий с помощью обученной модели и последующего обучения на оставшихся данных. Это не единственное решение. Тема действительно заслуживает внимания.

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

 
Andrey Dik #:


Таким образом, обучение в машинном обучении можно рассматривать как оптимизацию, где цель состоит в нахождении комбинации параметров модели, которая минимизирует функцию потерь и достигает наилучшей производительности модели.
Не согласен. Это лишь малая часть МО. Трансформеры, причинно-следственные учения в мо это точно не оптимизация в общем случае. 
 
Andrey Dik #:

Бинго!

Вот теперь ты осознал, наконец то, что любое обучение есть ни что иное как оптимизация с поиском глобального экстремума. А может быть и не осознал ещё, но осознаешь обязательно.

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

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

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

Пробовал и здешние статьи, и с ЧатомГПТ собирали по 10 000 нейронов в 3 слоя, либо 10 слоёв по 1000 нейронов, либо один слой 100 000 нейронов (моя RTX 3080 забивалась полностью, а если брать больше - питон писал, что не хватает памяти), и RNN, и LSTM, и CNN, и СNN-LSTM, и CNN-BiLSTM, и CNN-BiLSTM-MLP со двумя регуляциями и дропаутами, и Q-обучение. DQN только не получилось, Чат написал Актёра-Критика на несколько страниц, но код оказался с ошибками, которые ни я, ни чат не смогли устранить.

ВСЁ это - не работает. Результат везде один - превращение в скользящуюю среднюю. На вход подавал всё возможное из ветки "что подать на вход нейросети", и ещё много чего. 

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

И вот он открывает Гугл-коллаб и начинает там писать код питоновский (по-моему питоновский). Закидывает туда цены закрытия, если не ошибаюсь - дня, биткоина. Обучает. Проверяет. Тут я протёр глаза от лука и начал смотреть результат. 

Результат такой: предсказание идёт рядом с фактической ценой, но... с угадыванием направления. То есть, было, допустим, 35000, прогноз 37500, факт - 37100. Следующий шаг: прогноз 35700, факт - 35300. Прогноз 34000, факт 35000. И в таком ключе далее. Писал он такую сеть, которая предсказывает не следующую цену, а 12, по-моему, следующих цен подряд за раз. И вот они совпадали после каждого шага по направлению.


Вопрос: на питоне реально можно написать что-то рабочее?

 
Andrey Dik #:

Всё, Максим. Дальнейшее обсуждение не имеет смысла, всё все выяснили уже. Вот тут рядом и Саныч наблюдает, который из покон веков спорил со мной, что мол, глобал искать вредно, на что я отвечал "смотря какой глобал", и Саныч так и тоже пока ещё не понял, что в конечном итоге ищет глобал.

Надеюсь на возвращение дискуссии в спокойное, дружелюбное и конструктивное русло.

А все, кто читают эту ветку на постоянной основе помнят, кто и что и когда говорил, не включай несознанку - бесполезно это. Я ошибку сделал сегодня - график неправильно нарисовал, спокойно признал ошибку и сказал об этом. Признавать свои ошибки нормально, Максим.

Не надо за меня.

Обсуждался тестер, а не МО.

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

Нет здесь места оптимизации. 

 
СанСаныч Фоменко #:

Не надо за меня.

Обсуждался тестер, а не МО.

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

Нет здесь места оптимизации. 

Красное и есть оптимизация, в вашем случае будет звучать как "снижение дисперсии" или "установление фиксированной дисперсии заданного значения" в зависимости от того что делаете))

 
Andrey Dik #:

Красное и есть оптимизация, в вашем случае будет звучать как "снижение дисперсии" или "установление фиксированной дисперсии заданного значения" в зависимости от того что делаете))

Как-то Вы текст не воспринимаете.

Оптимизация(?) возможна ТОЛЬКО на трейне, на котором модель обучается. При обучении есть алгоритм и в лупу можно увидеть оптимизацию. Далее идет проверка этой модели, которая НЕ имеет обратной связи с "оптимизацией", так как в модели отсутствуют параметры, которые могут повлиять на результаты на тестировании . Чтобы повлиять надо что-то делать с предикторами и/или учителем.

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