ВВЕДЕНИЕ
1 Постановка задачи
2 Основы нейронных сетей
2.1 Персептрон
2.2 Многослойный персептрон
2.3 Метод обратного распределения ошибок
2.4 Функция активации
2.4.1 Обзор функций активации
2.5 Функция потери (целевая функция)
2.5.1 Обзор функций потери
2.6 Оптимизатор
2.6.1 Обзор оптимизаторов
3 Рекуррентные нейронные сети
3.1 Топология рекуррентных нейронных сетей ....
3.2 Долгая краткосрочная памяти - LSTM
4 Описание разработки
4.1 Построение рекуррентной (LSTM) нейронной сети
4.2 Разработка бота в мессенджере «telegram» ....
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ . . .
ПРИЛОЖЕНИЕ А. Графики
ПРИЛОЖЕНИЕ Б. Графики
ПРИЛОЖЕНИЕ В. Код программах
ПРИЛОЖЕНИЕ Г. Код программах
ПРИЛОЖЕНИЕ Д. Код программах
ПРИЛОЖЕНИЕ Е. Код программы 77
ПРИЛОЖЕНИЕ Ж. Код программы
В настоящее время нейронные сети используются в широком спектре задач от распознавания текста на изображениях до детектирования частиц в коллайдерах [1]. Такая универсальность возможна благодаря свойству нейронной сети инкапсулировать нелинейные зависимости и наличию эффективных алгоритмов тренировки нейронной сети.
Искусственный интеллект (ИИ) - очень широкая область исследования, посвященная когнитивным способностям машин: обучение определенному поведению, упреждающее взаимодействие с окружающей средой, способность к логическому выводу и дедукции, компьютерное зрение, распознавание речи, решение задачи, представление знаний, восприятие действительности и многое другое. Менее формально под ИИ понимается любая ситуация, в которой машины имитируют, интеллектуальное поведение, считающийся присущим человеку. Искусственный интеллект заимствует методы исследования из информатики, математики и статистики.
Машинное обучение (МО) - отрасль ИИ, посвященная тому, как обучать компьютеры решению конкретных задач без программирования. Основная идея МО заключается в том, что можно создавать алгоритмы, способные обучаться на данных и впоследствии давать предсказания. Существует три основных вида МО. В случае обучения с учителем машине предъявляется данные и правильные результаты, а цель состоит в том, чтобы машина обучилась на этих примерах и смогла выдавать осмысленные результаты на данных, которые раньше не видела. В случае обучения без учителя машине предъявляются только сами данные, а она должна выявить структуру без постореннего вмешательства. В случае обучения с подкреплением машина взаимодействует с окружающей средой и обучается находить варианты поведения [2].
Глубокое обучение (ГО) - подмножество методов МО, в которых применяются искусственные нейронные сети (ИНС), построенные на базе аналогии со структурой нейронов человеческого мозга.
Сравнительно небольшое число хитроумных методов с огромным успехом применяются в самых разных областях (обработка изображений, текста, видео, речи и т. д.), что позволило добиться значительного прогресса по сравнению с результатами, достигнутыми за предшествующие десятки лет. Своими успехами ГО обязано наличию больших объемов обучающих данных и графических процессоров (GPU), позволяющие построить очень эффективную процедуру вычислении. В компаниях Google, Microsoft, Amazon, Apple, Facebook и многих других методов глубокого обучения постоянно используются для анализа больших массивов данных.
В выпускной квалификационной работе рассматривается задача применения рекуррентной LSTM нейронной сети для задачи регрессионного типа, а именно прогноз курсов криптовалют на один таймфрейм вперед. В ВКР рассматривался пяти криптовалют с наибольшей капитализацией на рынке криптовалют по состоянию на май 2019 года.
Задача регрессии состоит в установлении функциональной зависимости между ожидаемыми значениями зависимых (выходных) переменных и значениями независимых (входных) переменных. Решение задачи базируется на использование особым образом организованной обучающей выборки данных, в которой задаются совокупности значений вектора независимых переменных XN = ж(1),... ,x^N1 и соответствующая ей совокупности значений зависимой переменной — «ответов» обучающей YN = у^11,... ,y^N где каждый вектор у(г) £ R1 определен на множестве вещественных чисел. В более широкой постановке может рассматриваться несколько зависимых переменных, которые объединяются в вектор у{() ^ = 1,... Полученная функциональная зависимость используется для предсказания ожидаемого значения зависимой переменной для нового набора независимых (входных переменных). Если значение зависимой переменной определяется по отношению к будущему моменту времени, которое присутствует в перечне компонент вектора независимых переменных, то задача регрессии называется задачей прогнозирования.
При решении задачи регрессии выполняется построение математической модели, которая определяет характер функциональной связи зависимых и независимых переменных, т. е. проводится оценка параметров получаемой функции регрессии на основе обучающей выборки. Таким образом, основная особенность регрессионного анализа состоит в том, что при его помощи можно получить конкретные сведения о том, какую форму и характер имеет зависимость между исследуемыми переменными.
Задача регрессии решается в два этапа. На первом этапе проводится обучение и формируется модель анализируемых объектов. На втором этапе построенную модель применяют к анализируемым объектам для определения значения зависимой переменной от независимых переменных (входные данные). В регрессионной задаче, в большинстве случаев, определяются числовые значения зависимой переменной, допущенные или неизвестные (относящиеся к будущему моменту времени) дынные, описываемые вещественнозначным вектором [3].
Выпускная квалификационная работа состоит из оглавления, введения, четырех параграфов, заключения, списка литературы и приложения. В первом параграфе приводится постановка и план поэтапного выполнения поставленной задачи. Во втором параграфе дается определения основных понятий нейронной сети, рассматривается персептрон и многослойный перцептрон, описывается алгоритм обратного распределения ошибок, дается определения функции активации, функции потери, оптимизатору и проводится обзор roTOBBix функций активации, функций потери и оптимизаторам. Третий параграф посвящен рекуррентным нейронным сетям. Рассматриваются обычные рекуррентные нейронные сети и сети долгой краткосрочной памяти (LSTM), так же рассматриваются топологии рекуррентных нейронных сетей. В третьем параграфе подробно рассказывается каким образом рекуррентной LSTM сети удается справиться с проблемой, встречающих в O6BIHHBIX рекуррентных нейронных сетях, исчезающих и взрывных градиентов. В четвертом параграфе приводится подробное описание разработки поставленной задачи, приводятся численные результаты (таблицы входных данных и результаты построенной модели представлены в Приложении А, графики ошибки построенных моделей и графики исторических и предсказанных данных представлены в Приложении Б).
Для реализации поставленной задачи составлена программ в ПО Python (см. Приложение В - Приложение Ж) [4].
Работа оформлена в системе компьютерной вёрстки LATEX
Автором была рассмотрена задача предсказания курса валютных пар BTC/USD, ETH/USD, BCH/USD, LTC/USD, XRP/USD с суточным тайм- фреймом. Ввита изучены теоретические OCHOBBI нейронных сетей, машинного и глубинного обучения. Построена рекуррентная нейронная сеть с одним LSTM - слоем, был проведен подбор суперпараметров с помощью случайного поиска.
Так же были разработан и протестирован бот в мессенджере «telegram» с которым, в дальнейшем, были интегрированы построенные нейронные сети.
Результаты расчетов представлены как в табличном, так и в графическом виде.
Из проведенных в данном ВКР экспериментов можно сделать вывод, что предложенный метод хорошо справился с поставленной задачей. Наблюдается высокая корреляция между входными и выходными данными.
1. Bernard Widrow, David Е. Rumelhart, and Michael A. Lehr. Neural networks: Applications in industry, business and science. Commun. ACM, 37(3):93-105, March 1994.
2. E. В. Архангельская, А. Кадурин, С. И. Николенко «Глубокое обучение. Погружение в мир нейронных сетей», издательство «Питер», 2018.
3. А. А. Сирота «Методы и алгоритмы анализа данных и их моделирование в MATLAB», Санкт-Петербург, 2016.
4. М. Саммерфилд «Программирование на Python 3. Подробное руководство», 2009.
5. Львовский С.М., Набор и верстка в системе LATEX. -3-е издание, 2003.
6. К. В. Воронцов Лекции по искусственным нейронным сетям, 2007.
7. Н. Т. Siegelmann, Е. D. Sontag «On the Computational Power of Newral Nets», Proceedings of the Fifth Annual Workshop on Computational Learning Theory, ACM, 1992
8. G. E. Hinton, D. E. Rumelhart, R. J. Williams «Learning Internal Representations by Backpropagating error», Parallel Distributes Processing: Explorations in the Microstructure of Cognition, 1985
9. R. Pascanumu, T. Mikolov, Y. Bengio «On the Difficulty of Training Recurent Neural Networks», 2013
11. G. Chen «А Gentle Tutorial of Recurrent Neural Network with Error Backpropagation». Department of Computer Science and Engineering, SUNY at Buffalo, 2018.
12. https://www.cryptocompare.com/
13. В. В. Голенков, О. M. Гергет «Анализ методов нормировки разнотипных данных для анализа в экспертных системах медицинской диагностики».Томский Политехнический Университет, Кафедра Прикладной Математики, 2013.
14. J. Bergstra, Y. Bengio «Random Search for Hyper-Parameter Optimization», Canada, 2012.
15. В. T. Кушербаева, Ю. А. Сушков «Статистическое исследование алгоритма случайного поиска», Санкт-Петербургский государственный университет, 2007.
16. В.В. Стрижов «Функция ошибки в задачах восстановления регрессии». Заводская лаборатория, 2013.