Глубокое рекуррентное обучение с подкреплением использует рекуррентную нейронную сеть (RNN), такую ​​как сети на основе Long Short-Term Memory (LSTM) или Gated Recurrent Unit (GRU), для обучения функции значений, которая сопоставляет состояния среды со значениями действий. Рекуррентные нейронные сети полезны для моделирования данных временных рядов, поскольку сеть поддерживает память, обучаясь сохранять полезную информацию из входных данных предыдущих выводов модели. Каждый раз при вызове модели память обновляется в соответствии с текущими входными данными.

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

Окна ввода временных рядов

Один шумный вход может серьезно повредить память RNN. Чтобы сделать входные данные нашей модели более стабильными, мы включим предыдущие временные шаги как часть входных данных нашей модели. Например, окно ввода размера 4 будет включать наш текущий временной шаг вместе с 3 предыдущими временными шагами. Интуиция заключается в том, что шум, содержащийся в одном временном шаге, может быть приручен контекстом других временных шагов в пределах окна. Мы рассмотрим результаты использования входных данных с окнами временных рядов 1, 4, 8, 16 и 32 в настройке глубокого повторного обучения с подкреплением.

Данные и модель

Для этого теста мы будем использовать псевдослучайно сгенерированные данные, как описано в предыдущем посте Обучение рекуррентных нейронных сетей на длинных последовательностях. Данные генерируются из базовой волновой функции со стохастически изменяющимися амплитудами и дополнительным гауссовым шумом. Сгенерированные данные будут обрабатываться так, как если бы это были данные о ценах на товар, который мы можем купить или продать. Наша модель будет изучать функцию стоимости, предсказывая будущую прибыль от покупки или продажи товара на каждом временном шаге. Выходные данные для обучения рассчитываются с использованием уравнения Беллмана Q-Value, как описано Гаятри Вадали в ее сообщении Обновление Q-матрицы для более эффективного обучения глубоких рекуррентных Q-сетей. Мы генерируем 20 последовательностей, используя 15 последовательностей для обучения и 5 для тестирования.

Наша модель состоит из одного слоя ГРУ с 16 нейронами. После обучения нашей сети отображению текущих значений цен на будущие значения действий и вознаграждений мы используем нашу сеть для принятия решений о действиях во время симуляции торговли с нашими данными обучения и тестирования. Мы обучаем каждую модель для 300 эпох и тестируем каждые 50 эпох с помощью симуляции торговли.

Результаты

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

Результаты тренировочных данных (прибыль против эпохи)

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

Результаты тестовых данных (прибыль против эпохи)

Давайте проверим производительность каждой модели на тестовых данных.

Неудивительно, что окно размера 1 не приносит прибыли. Когда мы увеличиваем размер окна до 4 и 8, наша модель может изучать функцию значения, которая выигрывает от тестовых данных. Однако дальнейшее увеличение размера окна до 16 приводит к снижению производительности. Размер окна 32 не приносит никакой прибыли. Для этой конкретной комбинации данных и модели нейронной сети размер входного окна, равный 8, имеет лучшую производительность по нашим данным проверки из 5 размеров окна, которые были протестированы.

Заключение и дальнейшая работа

В этом посте мы исследовали эффекты увеличения окна ввода временных рядов, чтобы помочь управлять влиянием зашумленных данных на состояния памяти RNN в настройке Deep Recurrent Reinforcement Learning. Эксперимент показал, что увеличение окна ввода может улучшить производительность модели. Однако слишком большое окно может потенциально привести к чрезмерной подгонке и ухудшению производительности модели.

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

Masala.AI

Команда специалистов по науке о данных Mindboard исследует передовые технологии инновационными способами для создания оригинальных решений, включая линейку продуктов Masala.AI. Masala предоставляет услуги по оценке мультимедийного контента, такие как vRate, расширение браузера, которое обнаруживает и блокирует контент для взрослых с настраиваемыми настройками чувствительности. Расширение для браузера vRate доступно для загрузки в Интернет-магазине Chrome. Посетите www.masala.ai для получения дополнительной информации.