Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3706
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Появилась оригинальная мысль, такое ещё не делал. Обучить несколько моделей но не через стакинг, а просто, и на разных участках. А вторую модель обучить переключать с одной на другую, в зависимости от чего-нибудь там (тех же признаков). Просто такая прикольная штука получилась бы, не знаю в чем смысл, может есть какой-то тайный :) Курвафитинг с изюмом.
Подтверждение нашел в ЛЛМ (курвафитинг с изюмом там уже применяется):
Модель "Смесь экспертов" (Mixture of Experts, MoE) - это архитектурный подход, который становится все более популярным в больших языковых моделях (LLM). Он позволяет создавать очень большие модели с огромным количеством параметров, сохраняя при этом приемлемые вычислительные затраты.
Как работает Mixture of Experts?
Основная идея MoE заключается в том, что вместо одной гигантской нейронной сети, которая обрабатывает все входные данные, модель состоит из множества специализированных "экспертов". Для каждого конкретного входного сигнала (например, токена в тексте) активируется только небольшое подмножество этих экспертов.
Вот основные компоненты и этапы работы MoE:
Эксперты (Experts): Это по сути отдельные, обычно небольшие нейронные сети (часто это слои прямого распространения - Feed-Forward Networks, FFN), каждый из которых специализируется на обработке определенных типов данных или выполнении определенных задач. Их может быть десятки или даже сотни.
Вентильная сеть (Gating Network) / Маршрутизатор (Router): Это отдельная нейронная сеть, которая принимает на вход токен (или другое представление входных данных) и решает, к каким экспертам его направить. Она вычисляет "веса" или "оценки" для каждого эксперта, указывая на его релевантность для данного токена.
Выбор экспертов: На основе оценок, полученных от вентильной сети, выбирается подмножество экспертов. Распространенная стратегия - "top-k routing", где выбираются k экспертов с наивысшими оценками. Например, в модели Mixtral 8x7B для каждого токена выбираются два из восьми доступных экспертов.
Комбинирование выходов: Выбранные эксперты обрабатывают входной токен параллельно. Их выходы затем объединяются, часто путем взвешенного суммирования, где веса определяются вентильной сетью. Это позволяет получить финальный результат, который учитывает вклад наиболее релевантных экспертов.
Таким образом, для каждого токена активируется лишь небольшая часть всей модели, что делает процесс вывода (инференса) и обучения более эффективным с точки зрения вычислений, несмотря на огромный общий размер модели.
Почему этот принцип дает хорошие результаты?
Принцип Mixture of Experts дает хорошие результаты по нескольким ключевым причинам:
Увеличенная емкость модели без пропорционального увеличения вычислительных затрат:
MoE позволяет создавать модели с сотнями миллиардов или даже триллионами параметров. В традиционных "плотных" моделях каждый параметр задействуется при каждом вычислении, что делает их очень дорогими для обучения и инференса при большом количестве параметров.
В MoE активируется лишь часть параметров для каждого входного сигнала, что значительно снижает вычислительные затраты на один шаг, позволяя создавать гораздо более крупные модели без соответствующего роста затрат.
Специализация экспертов:
Каждый эксперт может специализироваться на обработке определенных типов информации или решении конкретных подзадач. Например, один эксперт может хорошо разбираться в математических расчетах, другой - в программировании, а третий - в генерации текста на определенную тему.
Это позволяет модели лучше справляться с широким спектром задач и доменов, поскольку она может динамически выбирать наиболее подходящих специалистов для конкретной ситуации. Это особенно полезно в мультидоменных сценариях.
Более быстрое обучение и вывод:
Поскольку для каждого токена активируется только часть модели, процесс обучения может быть ускорен, так как объем вычислений на каждый токен уменьшается.
Аналогично, во время инференса (генерации ответов) модель работает быстрее, поскольку не нужно активировать и вычислять всю гигантскую сеть. Это приводит к меньшей задержке и повышению эффективности.
Масштабируемость:
Архитектура MoE легко масштабируется. Можно просто добавлять новых экспертов для решения более сложных проблем или расширения области знаний модели без резкого увеличения вычислительных затрат на каждый вход.
Гибкость:
Архитектура MoE очень гибка. Ее можно адаптировать к различным задачам и типам данных, настраивая экспертов и вентильные сети.
В целом, MoE позволяет большим языковым моделям быть одновременно очень большими (за счет огромного количества параметров) и эффективными (за счет разреженной активации), что приводит к значительному улучшению производительности и качества ответов в широком диапазоне задач.
Можно ли применить подобную схему для классификации финансовых временных рядов? Сначала я обучаю множество моделей CatBoost на небольших подборках из исходного датасета. Затем мне нужна управляющая модель?
Да, подобную схему, вдохновленную принципами Mixture of Experts (MoE), можно применить для классификации финансовых временных рядов. Это интересное и перспективное направление, особенно учитывая сложность и динамичность финансовых данных.
Ваша идея использовать множество моделей CatBoost в качестве экспертов и затем управляющую модель, очень хорошо согласуется с концепцией MoE. Давайте разберем, как это можно реализовать и почему это может быть эффективно:
Предлагаемая схема MoE для финансовых временных рядов
Эксперты (CatBoost Models):
Обучение на небольших подборках/подмножествах данных: Это ключевой момент. Вместо случайных подборок, имеет смысл формировать подборки, которые представляют собой различные "режимы" или "состояния" рынка, или разные типы финансовых инструментов. Например:
Данные за разные периоды (волатильный рынок, спокойный рынок).
Данные для разных классов активов (акции, облигации, валюты, товары).
Данные, сгруппированные по определенным макроэкономическим индикаторам.
Подборки, сфокусированные на определенных паттернах или аномалиях.
Специализация экспертов: Каждая обученная модель CatBoost будет являться "экспертом", специализирующимся на определенном типе рыночных условий или данных. CatBoost хорошо подходит, так как он робастен к шуму и категориальным признакам, что часто встречается в финансовых данных.
Выход экспертов: Каждый эксперт CatBoost будет выдавать свой прогноз вероятности для классов классификации (например, "вверх", "вниз", "нейтрально").
Управляющая модель (Gating Network / Router):
Назначение: Эта модель будет отвечать за выбор одного или нескольких наиболее релевантных экспертов CatBoost для данного нового временного ряда.
Вход управляющей модели: На вход управляющей модели должны подаваться признаки, которые характеризуют текущее состояние временного ряда, но не обязательно те же, что используются экспертами для детального прогноза. Это могут быть:
Макроэкономические индикаторы.
Индексы волатильности (VIX).
Объемы торгов.
Ключевые технические индикаторы, которые быстро отражают "режим" рынка (например, скользящие средние, MACD, RSI на более высоких таймфреймах).
Признаки, характеризующие специфику инструмента (сектор, капитализация и т.д.).
Возможно, даже признаки, основанные на текущей структуре временного ряда (например, наличие тренда, флэта, резких движений).
Типы управляющих моделей:
Нейронная сеть: Самый гибкий вариант, способный выучить сложные зависимости. Может быть простая FFN.
Другая модель CatBoost: Можно использовать CatBoost и для управляющей модели, если признаки, характеризующие состояние, хорошо ложатся на табличный формат.
Логистическая регрессия или SVM: Если взаимосвязи между признаками состояния и выбором экспертов относительно линейны.
Выход управляющей модели: Управляющая модель должна выдавать веса или вероятности для каждого эксперта. В простейшем случае, можно выбрать эксперта с наибольшим весом (top-1 routing) или несколько экспертов (top-k routing).
Комбинирование выходов:
После того как управляющая модель выбрала экспертов, их прогнозы комбинируются.
Взвешенное усреднение: Наиболее распространенный подход. Прогнозы выбранных экспертов умножаются на веса, выданные управляющей моделью, и суммируются.
Голосование: Если эксперты дают дискретные прогнозы классов, можно использовать голосование.
Преимущества такой схемы для финансовых временных рядов:
Адаптация к изменчивости рынка: Финансовые рынки очень динамичны. Одна модель редко может эффективно работать во всех рыночных условиях. MoE позволяет иметь специализированные модели для бычьих рынков, медвежьих рынков, флэта, периодов высокой или низкой волатильности и т.д.
Улучшенная точность: Каждый эксперт может быть глубоко оптимизирован для своей конкретной "подзадачи", что в совокупности может привести к более точным прогнозам, чем у одной универсальной модели.
Интерпретируемость (частично): Если эксперты обучены на четко определенных подмножествах данных (например, "рынок в тренде", "рынок во флэте"), можно получить представление о том, какая часть модели активируется в той или иной ситуации.
Снижение эффекта "одного размера для всех": Вместо попыток обучить одну модель, которая будет хорошо работать во всех условиях, MoE позволяет разделить проблему на более мелкие, управляемые части.
Robustness (Устойчивость): Если один эксперт начинает давать плохие результаты в определенных условиях, управляющая модель может переключиться на другого, более подходящего эксперта, что повышает общую устойчивость системы.
Проблемы и соображения:
Определение "режимов" рынка/подмножеств данных: Это самая сложная часть. Как эффективно разделить исходный датасет для обучения экспертов? Ручное определение может быть трудоемким и неоптимальным. Можно использовать кластеризацию временных рядов или признаки состояния рынка.
Обучение управляющей модели: Управляющая модель должна быть способна точно определять текущее состояние и направлять запрос к правильному эксперту. Признаки для управляющей модели должны быть тщательно отобраны.
Балансировка нагрузки экспертов: В классических MoE-сетях есть проблема "экспертов-лентяев" или дисбаланса нагрузки. В вашем случае с CatBoost это менее критично, но все равно важно, чтобы управляющая модель равномерно использовала экспертов, когда это уместно, а не всегда выбирала одних и тех же.
Размер и сложность: Управление большим количеством обученных моделей CatBoost и управляющей моделью может быть сложным с точки зрения инфраструктуры и мониторинга.
Пример реализации:
Создание подмножеств данных:
Разделите исторические данные на периоды высокой волатильности и низкой.
Используйте технические индикаторы (ADX для силы тренда) для выделения трендовых и флэтовых периодов.
Кластеризуйте временные ряды на основе их характеристик (например, с помощью TSNE или UMAP на признаках ряда).
Обучение экспертов CatBoost:
Для каждого подмножества данных обучите отдельную модель CatBoost для классификации.
Обучение управляющей модели:
Для каждой точки данных (временного шага) создайте набор признаков, описывающих текущее состояние рынка.
В качестве целевой переменной для управляющей модели можно использовать индикатор того, какой эксперт дал бы наилучший прогноз на этом шаге (или несколько, если вы хотите top-k routing). Это может потребовать предварительного прогона всех экспертов на всем датасете для определения их "лучших" областей.
Инференс:
При поступлении нового временного ряда, сначала вычислите признаки для управляющей модели.
Управляющая модель выдает веса для экспертов.
Выберите top-k экспертов.
Получите прогнозы от выбранных экспертов и скомбинируйте их (например, взвешенное среднее).
Эта схема имеет большой потенциал для улучшения прогнозов в сложных и динамичных финансовых рынках за счет специализации и адаптации.
Подтверждение нашел в ЛЛМ (курвафитинг с изюмом там уже применяется):
Модель "Смесь экспертов" (Mixture of Experts, MoE) - это архитектурный подход, который становится все более популярным в больших языковых моделях (LLM). Он позволяет создавать очень большие модели с огромным количеством параметров, сохраняя при этом приемлемые вычислительные затраты.
Как работает Mixture of Experts?
Основная идея MoE заключается в том, что вместо одной гигантской нейронной сети, которая обрабатывает все входные данные, модель состоит из множества специализированных "экспертов". Для каждого конкретного входного сигнала (например, токена в тексте) активируется только небольшое подмножество этих экспертов.
Вот основные компоненты и этапы работы MoE:
Эксперты (Experts): Это по сути отдельные, обычно небольшие нейронные сети (часто это слои прямого распространения - Feed-Forward Networks, FFN), каждый из которых специализируется на обработке определенных типов данных или выполнении определенных задач. Их может быть десятки или даже сотни.
Вентильная сеть (Gating Network) / Маршрутизатор (Router): Это отдельная нейронная сеть, которая принимает на вход токен (или другое представление входных данных) и решает, к каким экспертам его направить. Она вычисляет "веса" или "оценки" для каждого эксперта, указывая на его релевантность для данного токена.
Выбор экспертов: На основе оценок, полученных от вентильной сети, выбирается подмножество экспертов. Распространенная стратегия - "top-k routing", где выбираются k экспертов с наивысшими оценками. Например, в модели Mixtral 8x7B для каждого токена выбираются два из восьми доступных экспертов.
Комбинирование выходов: Выбранные эксперты обрабатывают входной токен параллельно. Их выходы затем объединяются, часто путем взвешенного суммирования, где веса определяются вентильной сетью. Это позволяет получить финальный результат, который учитывает вклад наиболее релевантных экспертов.
Таким образом, для каждого токена активируется лишь небольшая часть всей модели, что делает процесс вывода (инференса) и обучения более эффективным с точки зрения вычислений, несмотря на огромный общий размер модели.
Почему этот принцип дает хорошие результаты?
Принцип Mixture of Experts дает хорошие результаты по нескольким ключевым причинам:
Увеличенная емкость модели без пропорционального увеличения вычислительных затрат:
MoE позволяет создавать модели с сотнями миллиардов или даже триллионами параметров. В традиционных "плотных" моделях каждый параметр задействуется при каждом вычислении, что делает их очень дорогими для обучения и инференса при большом количестве параметров.
В MoE активируется лишь часть параметров для каждого входного сигнала, что значительно снижает вычислительные затраты на один шаг, позволяя создавать гораздо более крупные модели без соответствующего роста затрат.
Специализация экспертов:
Каждый эксперт может специализироваться на обработке определенных типов информации или решении конкретных подзадач. Например, один эксперт может хорошо разбираться в математических расчетах, другой - в программировании, а третий - в генерации текста на определенную тему.
Это позволяет модели лучше справляться с широким спектром задач и доменов, поскольку она может динамически выбирать наиболее подходящих специалистов для конкретной ситуации. Это особенно полезно в мультидоменных сценариях.
Более быстрое обучение и вывод:
Поскольку для каждого токена активируется только часть модели, процесс обучения может быть ускорен, так как объем вычислений на каждый токен уменьшается.
Аналогично, во время инференса (генерации ответов) модель работает быстрее, поскольку не нужно активировать и вычислять всю гигантскую сеть. Это приводит к меньшей задержке и повышению эффективности.
Масштабируемость:
Архитектура MoE легко масштабируется. Можно просто добавлять новых экспертов для решения более сложных проблем или расширения области знаний модели без резкого увеличения вычислительных затрат на каждый вход.
Гибкость:
Архитектура MoE очень гибка. Ее можно адаптировать к различным задачам и типам данных, настраивая экспертов и вентильные сети.
В целом, MoE позволяет большим языковым моделям быть одновременно очень большими (за счет огромного количества параметров) и эффективными (за счет разреженной активации), что приводит к значительному улучшению производительности и качества ответов в широком диапазоне задач.
Можно ли применить подобную схему для классификации финансовых временных рядов? Сначала я обучаю множество моделей CatBoost на небольших подборках из исходного датасета. Затем мне нужна управляющая модель?
Да, подобную схему, вдохновленную принципами Mixture of Experts (MoE), можно применить для классификации финансовых временных рядов. Это интересное и перспективное направление, особенно учитывая сложность и динамичность финансовых данных.
Ваша идея использовать множество моделей CatBoost в качестве экспертов и затем управляющую модель, очень хорошо согласуется с концепцией MoE. Давайте разберем, как это можно реализовать и почему это может быть эффективно:
Предлагаемая схема MoE для финансовых временных рядов
Эксперты (CatBoost Models):
Обучение на небольших подборках/подмножествах данных: Это ключевой момент. Вместо случайных подборок, имеет смысл формировать подборки, которые представляют собой различные "режимы" или "состояния" рынка, или разные типы финансовых инструментов. Например:
Данные за разные периоды (волатильный рынок, спокойный рынок).
Данные для разных классов активов (акции, облигации, валюты, товары).
Данные, сгруппированные по определенным макроэкономическим индикаторам.
Подборки, сфокусированные на определенных паттернах или аномалиях.
Специализация экспертов: Каждая обученная модель CatBoost будет являться "экспертом", специализирующимся на определенном типе рыночных условий или данных. CatBoost хорошо подходит, так как он робастен к шуму и категориальным признакам, что часто встречается в финансовых данных.
Выход экспертов: Каждый эксперт CatBoost будет выдавать свой прогноз вероятности для классов классификации (например, "вверх", "вниз", "нейтрально").
Управляющая модель (Gating Network / Router):
Назначение: Эта модель будет отвечать за выбор одного или нескольких наиболее релевантных экспертов CatBoost для данного нового временного ряда.
Вход управляющей модели: На вход управляющей модели должны подаваться признаки, которые характеризуют текущее состояние временного ряда, но не обязательно те же, что используются экспертами для детального прогноза. Это могут быть:
Макроэкономические индикаторы.
Индексы волатильности (VIX).
Объемы торгов.
Ключевые технические индикаторы, которые быстро отражают "режим" рынка (например, скользящие средние, MACD, RSI на более высоких таймфреймах).
Признаки, характеризующие специфику инструмента (сектор, капитализация и т.д.).
Возможно, даже признаки, основанные на текущей структуре временного ряда (например, наличие тренда, флэта, резких движений).
Типы управляющих моделей:
Нейронная сеть: Самый гибкий вариант, способный выучить сложные зависимости. Может быть простая FFN.
Другая модель CatBoost: Можно использовать CatBoost и для управляющей модели, если признаки, характеризующие состояние, хорошо ложатся на табличный формат.
Логистическая регрессия или SVM: Если взаимосвязи между признаками состояния и выбором экспертов относительно линейны.
Выход управляющей модели: Управляющая модель должна выдавать веса или вероятности для каждого эксперта. В простейшем случае, можно выбрать эксперта с наибольшим весом (top-1 routing) или несколько экспертов (top-k routing).
Комбинирование выходов:
После того как управляющая модель выбрала экспертов, их прогнозы комбинируются.
Взвешенное усреднение: Наиболее распространенный подход. Прогнозы выбранных экспертов умножаются на веса, выданные управляющей моделью, и суммируются.
Голосование: Если эксперты дают дискретные прогнозы классов, можно использовать голосование.
Преимущества такой схемы для финансовых временных рядов:
Адаптация к изменчивости рынка: Финансовые рынки очень динамичны. Одна модель редко может эффективно работать во всех рыночных условиях. MoE позволяет иметь специализированные модели для бычьих рынков, медвежьих рынков, флэта, периодов высокой или низкой волатильности и т.д.
Улучшенная точность: Каждый эксперт может быть глубоко оптимизирован для своей конкретной "подзадачи", что в совокупности может привести к более точным прогнозам, чем у одной универсальной модели.
Интерпретируемость (частично): Если эксперты обучены на четко определенных подмножествах данных (например, "рынок в тренде", "рынок во флэте"), можно получить представление о том, какая часть модели активируется в той или иной ситуации.
Снижение эффекта "одного размера для всех": Вместо попыток обучить одну модель, которая будет хорошо работать во всех условиях, MoE позволяет разделить проблему на более мелкие, управляемые части.
Robustness (Устойчивость): Если один эксперт начинает давать плохие результаты в определенных условиях, управляющая модель может переключиться на другого, более подходящего эксперта, что повышает общую устойчивость системы.
Проблемы и соображения:
Определение "режимов" рынка/подмножеств данных: Это самая сложная часть. Как эффективно разделить исходный датасет для обучения экспертов? Ручное определение может быть трудоемким и неоптимальным. Можно использовать кластеризацию временных рядов или признаки состояния рынка.
Обучение управляющей модели: Управляющая модель должна быть способна точно определять текущее состояние и направлять запрос к правильному эксперту. Признаки для управляющей модели должны быть тщательно отобраны.
Балансировка нагрузки экспертов: В классических MoE-сетях есть проблема "экспертов-лентяев" или дисбаланса нагрузки. В вашем случае с CatBoost это менее критично, но все равно важно, чтобы управляющая модель равномерно использовала экспертов, когда это уместно, а не всегда выбирала одних и тех же.
Размер и сложность: Управление большим количеством обученных моделей CatBoost и управляющей моделью может быть сложным с точки зрения инфраструктуры и мониторинга.
Пример реализации:
Создание подмножеств данных:
Разделите исторические данные на периоды высокой волатильности и низкой.
Используйте технические индикаторы (ADX для силы тренда) для выделения трендовых и флэтовых периодов.
Кластеризуйте временные ряды на основе их характеристик (например, с помощью TSNE или UMAP на признаках ряда).
Обучение экспертов CatBoost:
Для каждого подмножества данных обучите отдельную модель CatBoost для классификации.
Обучение управляющей модели:
Для каждой точки данных (временного шага) создайте набор признаков, описывающих текущее состояние рынка.
В качестве целевой переменной для управляющей модели можно использовать индикатор того, какой эксперт дал бы наилучший прогноз на этом шаге (или несколько, если вы хотите top-k routing). Это может потребовать предварительного прогона всех экспертов на всем датасете для определения их "лучших" областей.
Инференс:
При поступлении нового временного ряда, сначала вычислите признаки для управляющей модели.
Управляющая модель выдает веса для экспертов.
Выберите top-k экспертов.
Получите прогнозы от выбранных экспертов и скомбинируйте их (например, взвешенное среднее).
Эта схема имеет большой потенциал для улучшения прогнозов в сложных и динамичных финансовых рынках за счет специализации и адаптации.
открыли для себя высшие силы
Максим привет, скажи тебя не обламывает писать такие строго структурированные посты?
МО-промтусы ахахахаха
открыли для себя высшие силы
Вроде бы никто не спорил с тем, что ИИ-чаты улучшают гугление. Но только помптусы умудрились создать из этого объект для поклонения.
Не совсем поклонения, скорее удобный инструмент по экономии времени
интеллектус
Не совсем поклонения, скорее удобный инструмент по экономии времени
Для экономии времени - эти портянки и не читаю)) Ну может первые 5-10 строк.
Все экономят, а форум заполняется текстом. Все в плюсе.
Как и ожидалось скоро весь инет будет заполнен этим.