Глубокое обучение с подкреплением для торговли криптовалютой: практический подход к решению проблемы переобучения на исторических данных

В этой статье, написанной Берендом Гортом, подробно описывается проект, над которым он работал в качестве научного сотрудника Колумбийского университета. Проект будет щедро пожертвован фонду AI4Finance с открытым исходным кодом, целью которого является создание фонда, подобного Linux и Apache, в передовой области ИИ и финансов.

В статье пойдет речь о недавно опубликованной статье Беренда. Вдохновленный прочитанной книгой Достижения в финансовом машинном обучении Маркуса Лопеса де Прадо [1][2], Беренд решил найти новые основы для измерения переобучения в глубоком обучении с подкреплением. Итоговый документ был представлен на семинаре ICAIF ’22 и будет дополнительно представлен на AAAI ’23. Кроме того, в этой статье будет представлено подробное руководство о том, как воспроизвести результаты, изложенные в документе, с помощью платформы с открытым исходным кодом, доступной по предоставленной ссылке:



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

Вот куда мы входим! У нас есть решение, которое поможет вам избежать переобучения и повысить ваши шансы на успех в поиске криптосокровищ. Мы используем метод, называемый проверкой гипотез (например, проверку подлинности карты сокровищ), чтобы обнаружить переоснащение, затем обучаем наших агентов DRL (карты сокровищ) и отбраковываем все, что не проходит проверку. После этого мы тестируем наш метод. И угадай что? Наши менее переоснащенные агенты DRL имели более высокую прибыль по сравнению с более переоснащенными агентами, равной стратегией веса и даже рыночным эталоном. Это дает нам уверенность в том, что наш подход можно использовать на реальном рынке (поиск настоящего сокровища).

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

Итак, собирайте чемоданы, берите карту сокровищ и отправляйтесь на рынок криптовалют с нашим подходом, и вы можете просто разбогатеть!

Введение

В нашей статье мы стремились решить проблему переоснащения методов глубокого обучения с подкреплением (DRL) для торговли криптовалютой. Переобучение происходит, когда модель слишком хорошо обучена на обучающих данных и плохо работает на новых, невидимых данных. Мы предложили практический подход к обнаружению и устранению переобучения с помощью проверки гипотез. Мы протестировали наш метод с использованием 10 различных криптовалют за период времени, когда рынок испытал два обвала, и обнаружили, что агенты DRL с меньшим переоснащением приносят более высокую прибыль по сравнению с агентами с более высоким коэффициентом, стратегией с равным весом и индексом S&P DBM (рыночный ориентир). ). Это дает нам уверенность в том, что наш подход можно использовать на реальном рынке. Таким образом, наша статья направлена ​​​​на предоставление метода, гарантирующего, что выбранные агенты-практики DRL не перетренируются в течение периода обучения, что сделает их результаты более надежными и заслуживающими доверия.

Сопутствующие работы

Зачем агенту DRL понадобился бэктест? Чтобы доказать, что это не было чудом с одного удара!

В нашей статье обсуждаются различные методы тестирования производительности агента глубокого обучения с подкреплением (DRL) для финансовой торговли.

Первый метод, называемый методом Walk-Forward (WF), является наиболее широко применяемой практикой. Тем не менее, он может быть переобученным, что означает, что он может плохо обобщаться на будущие рыночные ситуации.

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

Чтобы решить эти проблемы, мы предлагаем третий метод, называемый комбинаторной перекрестной проверкой с очисткой (CPCV), который моделирует более широкий спектр рыночных ситуаций для уменьшения переобучения и контроля утечки.

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

Похоже, этот агент DRL успешно прошел проверку на истории. Только не просите его выступить в дождливый день!

Смоделируйте задачу торговли криптовалютой

Марковский процесс принятия решений

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

Предполагая, что существует D криптовалют и T меток времени, t = 0, 1, …, T − 1. Мы используем агент глубокого обучения с подкреплением для совершения торговых действий, которые могут быть либо покупкой, продажей, либо удержанием. Агент наблюдает за ситуацией на рынке, например за ценами и техническими индикаторами, и предпринимает действия для максимизации совокупного дохода. Мы моделируем торговую задачу как марковский процесс принятия решений (MDP):

Мы рассматриваем 15 функций, которые используются в существующих статьях, но отфильтровываем некоторые из них. Как показано на рис. 1, если корреляция двух признаков превышает 60 %, мы отбрасываем любой из них. Наконец, в векторе признаков сохраняются 6 некоррелированных признаков: объем торгов, RSI, DX, ULTSOC, OBV и HT.

Окружающая среда строительного рынка

Приведенные ниже пояснения реализованы в окружающей среде Alpaca.

Почему агент DRL отфильтровал коррелированные функции? Чтобы его торговая стратегия была свежа, как ромашка!

Мы создаем рыночную среду, воспроизводя исторические данные в стиле OpenAI Gym. Торговый агент взаимодействует с рыночной средой в нескольких эпизодах, где эпизод воспроизводит рыночные данные (временной ряд) в зависимости от времени от t = 0 до t = T - 1. В начале (t = 0) среда отправляет начальное состояние s 0 агенту, который возвращает действие a 0. Затем среда выполняет действие t и отправляет значение вознаграждения rt и новое состояние s t+1 агенту для t = 0, …, T − 1. Наконец, s T −1 устанавливается в качестве конечного состояния. Рыночная среда выполняет следующие три функции:

Операционные издержки. Каждая сделка имеет комиссию за транзакцию, и разные брокеры взимают разные комиссии. Для торговли криптовалютой мы предполагаем, что стоимость транзакции составляет 0,3% от стоимости каждой сделки. Следовательно, (2) становится

Комиссию за транзакцию можно найти в разделе The Alpaca Environmentfou (около строк 131 и 148). При этом не может быть отрицательного баланса или продажи; поэтому в среде размещаются некоторые утверждения, чтобы убедиться, что среда не содержит ошибок.

Проблема переобучения на бэктестах

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

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

Почему агент DRL не прошел бэктест? Он был слишком занят переоснащением!

Практический подход к решению проблемы переобучения на основе исторических данных

Мы предлагаем практический подход к решению проблемы переобучения на исторических данных. Во-первых, мы формулируем задачу как проверку гипотезы и отбрасываем агентов, не прошедших проверку. Затем мы опишем подробные шаги для оценки вероятности переобучения, p в диапазоне [0,1].

Проверка гипотезы для отклонения переоснащенных агентов

Мы формулируем тест гипотезы, чтобы отвергнуть переобученных агентов. Математически это выражается следующим образом:

Где α › 0 – уровень значимости. Ожидается, что тест гипотезы (7) отклонит два типа ложноположительных агентов DRL. 1) Существующие методы могли давать чрезмерно оптимистичные результаты, поскольку многие авторы испытывали искушение переключаться между периодами обучения и тестирования. Этот тип утечки информации является распространенной причиной переобучения при тестировании на исторических данных. 2). Обучение агентов, скорее всего, переобучится, поскольку алгоритмы DRL очень чувствительны к гиперпараметрам. Например, можно обучить агентов с помощью алгоритмов PPO, TD3 или SAC, а затем отклонить агентов, не прошедших тест.

Агент DRL прошел проверку гипотезы, и это был настоящий истребитель переобучения!

Оценка вероятности переобучения

Приведенные ниже пояснения реализованы в классе CPCV.

Комбинаторная перекрестная проверка позволяет проводить обучение и проверку в различных рыночных ситуациях. Учитывая временной период обучения, выполняются следующие шаги:

Шаг 1 (разделение данных обучения и проверки): см. рис. 2; Разделите период обучения с T точками данных на N групп одинакового размера. K из N групп создают проверочный набор, а остальные N-k групп - в качестве обучающего набора, в результате чего J = (N/N-k) комбинаторных расщеплений. Наборы для обучения и проверки имеют (N-k)(T/N) и T’ = k(T/N) точки данных соответственно.

Шаг 2 (одно испытание гиперпараметров): установите новый набор параметров для настройки гиперпараметров.

Шаг 3: В каждом разделении данных обучения и проверки мы обучаем агента, используя обучающий набор, а затем оцениваем показатель производительности агента для каждого набора проверки, i = 1, …, H. После обучения на всех разделениях мы берем среднюю производительность. метрические общие наборы проверки.

Шаг 2) и шаг 3) составляют одно испытание гиперпараметров. Выполните цикл для H испытаний и выберите набор гиперпараметров (или агента DRL), который работает лучше всего с точки зрения общего разделения показателей средней производительности. Эта процедура рассматривает различные рыночные ситуации, в результате чего агент DRL работает лучше всего в различных рыночных ситуациях. Однако тренировочный процесс, включающий несколько испытаний, приведет к переобучению.

Поэтому мы хотим иметь метрику для переобучения…

Вероятность переобучения

Приведенные ниже пояснения реализованы в классе PBO.

Мы оцениваем вероятность переобучения, используя вектор возврата. Вектор доходности определяется как Rt = v(t)-v(t-1), где v(t) — стоимость портфеля на временном шаге t. Мы оцениваем вероятность переобучения с помощью трех общих шагов:

Шаг 1: Для каждого испытания гиперпараметра усредните доходность наборов проверки (длиной T’) и получите R_avg в R^T’.

Шаг 2: Для H испытаний сложите R_avg в матрицу M в R^T’xH.

Шаг 3: На основе M мы вычисляем вероятность переобучения p

Выберите количество расщеплений, чем больше расщеплений, тем точнее будет вероятность переобучения. При 16 разбиениях и выше вероятность переобучения будет иметь доверительный интервал > 95%. Для простоты возьмем расщепления S = 4:

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

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

Предполагая, что существует D криптовалют и T меток времени, t = 0, 1, …, T − 1. Мы используем агент глубокого обучения с подкреплением для совершения торговых действий, которые могут быть либо покупкой, продажей, либо удержанием. Агент наблюдает за ситуацией на рынке, например за ценами и техническими индикаторами, и предпринимает действия для максимизации совокупного дохода. Мы моделируем торговую задачу как марковский процесс принятия решений (MDP):

Изображение автора. Мы рассматриваем 15 функций, которые используются в существующих статьях, но отфильтровываем некоторые из них. Как показано на рис. 1, если корреляция двух признаков превышает 60 %, мы отбрасываем любой из них. Наконец, в векторе признаков сохраняются 6 некоррелированных признаков: объем торгов, RSI, DX, ULTSOC, OBV и HT. бар):

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

Затем мы проверяем второй вектор с этим индексом 3, который равен 5. Теперь мы можем вычислить относительный ранг:

Формула использует (N + 1) в качестве знаменателя для w̄, чтобы избежать w̄ = 1,0. Это привело бы к бесконечности в логитах. Нельзя быть уверенным на 100%, потому что все образцы превзошли один.

Теперь мы используем логит-функцию, чтобы преобразовать эти события в вероятность:

Мы выполнили это только для одного образца, а именно для образца 1! Мы собираем эти логиты из каждой выборки c1 — c6, а затем просто подсчитываем количество логитов ‹ 0, деленное на общее количество логитов. Это наша вероятность переобучения. Вот что представляет собой следующая формула:

Оценка производительности

В первом случае мы используем метод продвижения для обучения обычного агента с использованием алгоритма PPO и разделения данных обучения, проверки и тестирования. Затем мы вычисляем вероятность переобучения (p) для этого агента. Затем мы обучаем другого обычного агента, используя алгоритм PPO и метод перекрестной проверки k-кратного размера с k = 5.

Во втором случае мы используем вероятность переобучения, чтобы измерить вероятность переобучения агента при настройке гиперпараметров для трех разных агентов: TD3, SAC и PPO. Мы рассчитываем p для каждого агента с каждым набором гиперпараметров для H = 50 испытаний.

Для измерения производительности агента мы используем три показателя: совокупный доход, волатильность и вероятность переобучения. Кумулятивный доход измеряет прибыль, волатильность измеряет степень изменения ряда торговых цен во времени, а вероятность переобучения измеряет вероятность переобучения агента.

Мы также сравниваем эффективность предлагаемого нами метода с двумя эталонными методами: портфелем с равным весом и индексом широкого цифрового рынка криптовалюты S&P (S&P BDM Index). Стратегия равного веса распределяет доступные денежные средства поровну между всеми доступными криптовалютами в момент времени t0, в то время как индекс S&P BDM отслеживает эффективность криптовалют с рыночной капитализацией более 10 миллионов долларов.

Отказ от переоснащенных агентов

В этом разделе мы исследуем производительность обычных агентов и агентов глубокого обучения с подкреплением (DRL). Мы используем функцию логит-распределения для измерения вероятности переобучения, представленной площадью под кривой для области [-\infty, 0].

На рис. 4 ниже показаны результаты для обычных агентов, где мы сравниваем наш подход PPO с методами WF и KCV. Мы обнаружили, что метод WF имеет более высокую вероятность переобучения на уровне 17,5%, а метод KCV имеет более низкую вероятность на уровне 7,9%. Наш подход PPO имеет еще более низкую вероятность переобучения — 8,0%.

На рис. 5 представлены результаты для агентов DRL, в частности PPO, TD3 и SAC. Мы обнаружили, что метод SAC имеет самую высокую вероятность переобучения на уровне 21,3%, в то время как PPO и TD3 имеют более низкую вероятность на уровне 8,0% и 9,6% соответственно. В таблице \ref{tab: hyperparameters_per_agent} показаны конкретные гиперпараметры, используемые для каждого агента.

В целом, эти результаты показывают, что наши методы PPO и TD3 имеют более низкую вероятность переобучения по сравнению с обычными и другими методами DRL и могут быть более подходящими для использования в практических приложениях.

Тестирование производительности

В этом разделе мы представляем результаты нашего тестирования на истории. Мы использовали два рисунка, рис. 6 и рис. 7, чтобы показать результаты работы нашего агента. Наш агент использует индикатор CVIX, который, превысив 90 долларов, заставляет агента прекратить покупать и продавать все активы криптовалюты. Мы сравниваем производительность нашего агента с обычными агентами, рыночными ориентирами и нашим подходом. Результаты показывают, что наш метод значительно превосходит два других агента, PPO WF и PPO KCV, с увеличением совокупного дохода не менее чем на 15%. Кроме того, наш метод также демонстрирует более низкую волатильность, что указывает на то, что он более устойчив к риску. Кроме того, при сравнении нашего подхода с агентами DRL, TD3 и SAC, наш агент PPO превосходит их благодаря значительному увеличению совокупного дохода (>24%) и более низкой волатильности. Наконец, по сравнению с контрольными показателями наш подход лучше с точки зрения совокупной доходности и волатильности. Основываясь на этих результатах, мы делаем вывод, что агент PPO является лучшим агентом среди протестированных.

Заключение

Эй, товарищи! В этой статье мы отправляемся в путешествие, чтобы раскрыть сокровище решения проблемы переобучения при тестировании на исторических данных в торговле криптовалютой с помощью глубокого обучения с подкреплением. И позвольте мне сказать вам. Мы нашли золото! Наши результаты показывают, что агент PPO (с его надежным комбинаторным методом CV) превосходит всех других наземных агентов, включая обычных агентов, других агентов DRL и даже индекс S&P DBM как по совокупной доходности, так и по волатильности. И давайте не забывать. Он тоже очень крепкий!

Что касается будущих рейсов, мы планируем 1). охота за эволюцией вероятности переобучения в процессе обучения и для разных агентов; 2). тестирование установки лимитных ордеров и закрытия сделок; 3). исследовать бескрайние моря крупномасштабных данных, таких как все валюты, соответствующие индексу S&P BDM; и 4). получить больше трофеев, таких как основы и функции настроений для пространства состояний. Итак, поднимайте якорь и отправляйтесь в открытое море торговли криптовалютой вместе с нами!

~ Спасибо за прочтение ;)

Беренд Горт

Ссылка

  1. Бейли, Д. Х., Борвейн, Дж. М., Лопес Де Прадо, М., и Чжу, К. Дж. (2017). Вероятность переобучения бэктестов. Journal of Computational Finance, 20(4), 39–69. https://doi.org/10.21314/JCF.2016.322

2. Прадо, М.Л. де. (2018). Достижения в области финансового машинного обучения.