Введение 3
1. Применение нейросетевых технологий в исследовании финансовых
рынков 6
1.1. Финансовый рынок 6
1.2. Криптовалюты 7
1.3. Прогнозирование и методы прогнозирования 11
1.4. Нейронные сети 15
2. Библиотека TensorFlow 19
2.1. Граф вычислений и сессии 19
2.2. Операторы TensorFlow, применённые в данной работе 20
2.3. Методы оптимизации сети, реализованные в TensorFlow 22
3. Построение трёхслойного персептрона для прогнозирования тренда 29
3.1. Алгоритмы подготовки входных данных и их реализация 29
3.2. Конфигурация сети 35
3.3. Результаты оптимизации сети 38
Заключение 40
Список использованных источников 42
В последние годы наблюдается повышенное внимание к искусственным нейронным сетям. Возможными сферами внедрения нейросетей являются те, где человеческие способности не столь эффективны, а традиционные вычисления трудоемки или физически неадекватны (т.е. не отражают или плохо отражают настоящие физические процессы и объекты). Действительно, значимость использования нейросетей существенно возрастает в потребности решений плохо формализованных задач [4]. Они получили огромный успех благодаря таким причинам [39], как:
• Устойчивость к частым переменам в среде [40]. Преимущества нейронных сетей заметны, когда многократно изменяются «правила игры»: среда, в которой находится прогнозируемый объект, а также тип и степень воздействия некоторых факторов. Поэтому, для решений таких проблем, как прогнозирование динамики валютного рынка, характеризующегося влиянием большого количества часто меняющихся факторов, нейронные сети подходят более всего.
• Эффективность при работе с большим количеством противоречивых
данных. Там, где имеется большой объем исследуемых данных, в которых скрыты закономерности, нейронные сети будут предпочтительнее. В таком случае автоматически учитываются также разные нелинейные закономерности, зависимости между влияющими факторами. Нейросети также справляются с проклятием размерности, т.е. могут выявлять зависимости при большом количестве переменных.
• Эффективность при решении неформализованных или плохо формализованных задач [34]. Из общеизвестных достоинств систем, основанных на нейронных сетях важно отметить то, что здесь отсутствует необходимость в строгой математической спецификации модели, это наиболее значимо при прогнозировании плохо формализуемых задач. Как известно, что большая часть экономических, бизнес и других похожих процессов плохо формализуется [6].
Целью данной работы является ознакомление с нейронными сетями как одним из направлений развития искусственного интеллекта, используемых в экономике. Сегодня использование нейронных сетей для задач деятельности на бирже особенно актуально [16], так как традиционные, ставшие уже классическими, методы были спроектированы для моделирования относительно постоянного, эволюционирующего низкими темпами мира. Известно, что большая часть всех сделок на экономических рынках - спекулятивные [44], т.е. производящиеся только для получения прибыли по схеме "купить подешевле - продать подороже". Все они основываются на прогнозах динамики цен валют участниками торгов. Для эффективного изучения рынка требуются современные, соответствующие нынешним условиям экономико-математические способы. Сегодня многие ученые работают в области разработки методов прогнозирования финансовых рынков. Таким образом, исследования в сфере валютных рынков - актуальное и перспективное направление деятельности и будет оставаться таковым в течение длительного периода времени.
Сегодня следует отметить популярность криптовалют на мировых финансовых рынках [17]. Криптовалюта - это инновационная разработка, она появилась благодаря развитию глобальных технологий высокоскоростной передачи информации, когда сеть Интернет разрослась до огромных масштабов, а децентрализованные сети получили большую популярность. А также, интерес к криптовалюте стремительно растет, в связи с востребованностью в мире «справедливых денег», полной анонимностью и защитой от подделок. Поэтому прогнозирование рынка криптовалют актуально.
Для достижения этой цели необходимо решить следующие задачи: изучить структуру нейронных сетей, правила и принципы их функционирования; возможность их использования при решении проблем предсказания тренда финансовых временных рядов.
Первая глава дает представление о финансовом рынке, в том числе рынке криптовалют, методах предсказания, о структуре нейронной сети, принципах ее работы.
Во второй главе рассмотрена библиотека TensorFlow, которая предназначена для построения и обучения нейросетей, а также описаны используемые методы оптимизации сети.
Третья глава содержит описание процесса подготовки данных и построения нейронной сети.
В ходе выполнения данной выпускной квалификационной работы была достигнута цель исследования, а именно изучено применение нейронных сетей к задаче прогнозирования. Была спроектирована искусственная нейронная сеть для предсказания тренда криптовалюты - эфириум. Также были успешно выполнены поставленные задачи: ознакомление со структурой нейронных сетей, правилами и принципами их функционирования. Также были изучены некоторые методы анализа и подготовки данных. В дополнение к этому был изучен рынок криптовалют, а именно технологии блокчейн, майнинг валют и другое.
В результате удалось получить точность прогнозов 60%. Система хоть и не решает задачу со 100%-ной точностью, может принести значительную прибыль в финансовой сфере. Учитывая, что рынок криптовалют очень динамично развивается, полученный результат является неплохим. На рисунке 4.1. представлен график с изменениями цены Эфириума с 2016 по 2018 года.
В процессе было разработано два программных продукта. Первый предназначен для подготовки данных для обучения и тестирования нейронной сети, реализация которой выполнена на языке программирования C# в Visual Studio 2015. Во втором программном продукте реализация многослойного перцептрона. Эта программа написана на Python 3.5 с применением библиотеки TensorFlow от Google для машинного обучения. В ходе работы были изучены принципы работы с TensorFlow. Эта библиотека значительно упрощает разработку нейросети, так как в ней уже есть реализации основных методов обучения, функций активации, функций потерь, методов оптимизации и многое другое.
1. Барский А. Б. Нейронные сети: распознавание, управление, принятие решений. — М.: Финансы и статистика, 2004. — 176 с.
2. Воронов И.В., Политов Е.А., Ефременко В.М. Обзор типов искусственных нейронных сетей и методов их обучения // Вестник Кузбасского государственного технического университета. - 2007. - №3. С. 1-7
3. Горбань А.Н. Обучение нейронных сетей. - М.: СП «Параграф», 1990 - 160 с.
4. Ефремова Е.А., Дунаев Е.В. Применение нейронных сетей для прогнозирования финансовых временных рядов. // Доклады ТУРСУРа, 2004. С. 150 — 155
5. Круглов В.В., Борисов В.В. Искусственные нейронные сети: Теория и практика. М.: Горячая линия - Телеком, 2002 - 382 с.
6. Мицель А. А., Ефремова Е. А. Прогнозирование динамики цен на фондовом рынке // Известия Томского политехнического университета. - 2006. - №8 1-5.
7. Н. Нильсон.. Принципы искусственного интеллекта. 1985 год. 374 стр.
8. Рассел, Норвиг. Искусственный интеллект. Современный подход. 2-е изд. 2006 год. 1408 стр.
9. Смолин Д.В. Введение в искусственный интеллект. Конспект лекций. 2004 год. 208 стр
10. Хайкин С. Нейронные сети: полный курс. М.: Издательский дом Вильямс, 2006 — 1104 с.
11. Аксиомы технического анализаhttps://rivaforex.ru/aksiomy-texnicheskogo-analiza-forex/[12.03.2018]
12. Библиотека машиного обучения от Google. Hello Tensorflow. https://habr.com/post/305578/f9.01.2018]
13. Введение в машинное обучение с Tensorflow https://habr.com/post/326650/f9.01.2018]
14. Дерево решений https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%80%D0%B5%D0%B2%D0%BE %D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B9f10.05.2018]
15. Искусственная нейронная сеть https://ru.wikipedia.org/wiki/%D0%98%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F
%D0%BD%D0%B5%D0%B9%D1%80%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F %D1%81%D0%B5%D1%82%D1%8Cf21.12.2017]
16. Исследование и разработка алгоритма анализа финансового рынка http://masters.donntu.org/2015/fknt/pozhydaev/diss/index.htm[27.02.2018]
17. Криптовалюта: что это и как заработатьhttps ://kinvestor.ru/kriptovaluta-kak-zarabotat/[1.04.2018]
18. Криптовалюта эфириумhttps://mining-cryptocurrency.ru/ethereum-eth/[1.04.2018]
19. Криптовалютыhttps://www.fxteam.ru/forex/cryptocurrency/[ 1.04.2018]
20. Майнинг криптовалюты: что это простыми словамиhttp://real- investment.ru/bitkoin/majning kriptovaljuty chto ehto takoe prostymi slovami[1.04.2018]
21. Математическое моделирование. Задачи прогнозирования валютного курсаhttps://fortrader.org/learn/fundamentalniy-analiz-forex/matematicheskoe-modelirovanie-zadachi-prognozirovaniya-valyutnogo-kursa.html[10.05.2018]
22. Метод ближайшего соседа или метод одиночной связи http://www.aiportal.ru/artides/autodassification/single-link.html[10.05.2018]
23. Метод градиентного спуска http://www.machinelearning.ru/wiki/index.php?title=%D0%9C%D0%B5%D1%82%D0%BE%D0%B4 %D0%B3%D1%80%D0%B0%D0%B4%D0%B8%D0%
B5%D0%BD%D1%82%D0%BD%D0%BE%D0%B3%D0%BE %D1%81%D0%BF%D1%83%D1 %81%D0%BA%D0%B0[10.03.2018]
24. Метод наименьших квадратов
http:// www.cleverstudents .ru/ articles/mnk.html[01.12.2017]
25. Метод решения проблемы переобучения в нейронных сетях - Dropout https://habr.com/company/wunderfund/blog/330814/[22.04.2018]
26. Методы ускорения обучения нейронной сети. Скорость обучения. http://www.aiportal.ru/artides/neural-networks/accelerate-training-speed.html[12.03.2018]
27. Module: tfhttps://www.tensorflow.org/api docs/python/tf[9.01.2018]
28. Module: tf.nnhttps://www.tensorflow.org/api docs/python/tf/nn[9.01.2018]
29. Module: tf.train https://www.tensorflow.org/api docs/python/tf/train[9.01.2018]
30. Нейронные сетиhttp://www.aiportal.ru/articles/neural-networks/neural-networks .html[21.12.2017]
31. Нейронные сети
http://statsoft.ru/home/textbook/modules/stneunet.html[23.12.2017]
32. Нейронные сети для начинающих. Часть 2
https ://habr.com/post/313216/[21.12.2017]
33. Обучение нейронных сетей https://www.intuit.ru/studies/courses/6/6/lecture/178?page=4[24.12.2017]
34. О применении нейронных сетей в экономике и перспективы их развитияhttps ://www.scienceforum.ru/2017/2484/32073[27.02.2018]
35. Перекрестная энтропия
https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BA%D1%80%D1%91%D1%81%D1%82%D0%BD%D0%B0%D1%8F %D1%8D
%D0%BD%D1%82%D1%80%D0%BE%D0%BF%D0%B8%D1%8F
[12.03.2018]
36. Перцептрон
https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D1%86%D0%B5%
D0%BF%D1%82%D1%80%D0%BE%D0%BD[5.02.2018]
37. Перцептроны
https://neuralnet.info/chapter/%D0%BF%D0%B5%D1%80%D1 %81%D0%B5%
D0%BF%D1%82%D1%80%D0%BE%D0%BD%D1%8B/[5.02.2018]
38. Предварительная обработка данных https://www.intuit.ru/studies/courses/6/6/lecture/192?page=3[12.03.2018]
39. Преимущества нейронных сетейhttp ://www.aiportal.ru/ articles/neural-networks/advantages.html[11.05.2018]
40. Преимущества нейронных сетейhttp://www.neuropro.ru/neu3.shtml[11.05.2018]
41. Прогноз
https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B3%D0%BD%D0%BE%D0%B7f27.02.2018]
42. Регуляризация в машинном обучении: L1 и L2 https://msdn.microsoft.com/ru-ru/magazine/dn904675.aspxf22.04.2018]
43. Роль экономики в жизни общества
https://moluch.ru/conf/econ/archive/77/3994/f27.02.2018]
44. Спекулятивные сделки
http://golosingushetii.ru/spekuljtivnve sdelki.html[27.02.2018]
45. TensorFlowhttps://ru.wikipedia.org/wiki/TensorFlowf9.01.2018]
46. Трендhttp://www.financialguide.ru/encvclopedia/trendf27.02.2018]
47. Фундаментальный анализ рынкаhttp ://orderflowtrading.ru/ analitika-rvnka/fundamentalnvjj-analiz/[12.03.2018]
48. Функция потерь https://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F %D0%BF%D0%BE%D1%82%D0%B5%D1%80%D1 %8C
[12.03.2018]
49. Функция Softmaxhttps://ru.wikipedia.org/wiki/Softmaxf12.03.2018]
50. Что такое криптовалютаhttps://mining-crvptocurrencv.ru/chto-takoe-kriptovalyuta/f1.04.2018]
51. Это нужно знать: ключевые рекомендации по глубокому обучению (часть 2)http://datareview.info/article/eto-nuzhno-znat-klvuchevvie-rekomendatsii-po-glubokomu-obuchenivu-chast-2/f14.03.2018]
52. Эфириумhttps://ru.wikipedia.org/wiki/Ethereumf1.04.2018]