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

 
Maxim Dmitrievsky #:

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

То есть, опять занимаешься пи-хакингом, или натягиванием данных под свои слова.

Что значит "изначально"? Сложность модели мы обсуждали отдельно, тогда мы говорили, что усложнение модели эффективно только до определённого момента, далее идет падение эффективности, и это так, да, с этим я не спорил и подтверждаю. Тогда я лишь предположил, что возможно эффективность может резкого вырасти, если очень значительно увеличить модель, ведь этого здесь никто не делал ранее (и понятно почему).

Я вел речь всегда, с очень давних времён этой ветки, что любое обучение есть оптимизация с поиском глобального экстремума, но ты отрицал это (и некоторые другие), мол, ты не "оптимизаторщик". Сейчас я тебе наглядно показал, что обучение возможно остановить только при поиске глобального экстремума, иначе просто нет возможности сделать это иначе (неизвестно когда останавливать обучение, нужен критерий для этого). Именно поэтому метакритерий останова и есть суть оптимизации при обучении на глобальный экстремум. 

Осознание этого даёт возможность взглянуть под новыми углами на обучение.

 
На моём рисунке ошибка, красная вал линия должна быть выше трейна.
 
Никто ничего не обсуждал, ты вклинился в разговор про сложность модели, или отреагировал на сообщение, поэтому прослыл оптимизаторщиком.
 
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 #:

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

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

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

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

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

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

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