Нейронная сеть (НС) – массив связанных и совместно функционирующих естественных (биологических) или искусственных нейронов, призванных выполнять определенные задачи. По происхождению и типу нейронов различают биологические (БНС) и искусственные нейронные сети (ИНС).
СОДЕРЖАНИЕ:
Введение. Искусственный интеллект
1. Биологическая нейронная сеть (БНС)
2. Искусственная нейронная сеть (ИНС)
2.1. Определение
2.2. Искусственный нейрон и функция активации
2.3. Структура, типы и простейший механизм ИНС
3. История создания
4. Предназначение ИНС
4.1. Распознавание
4.2. Классификация
4.3. Принятие решений и управление
4.4. Сжатие данных и ассоциативная память
4.5. Прогнозирование
5. Обучение ИНС
5.1. Виды обучения
5.2. Требования к входной информации
5.3. Ошибка, эпоха и итерация
6. Нейросети в биржевой торговле
Примечания и ссылки
Используемые сокращения
ВВЕДЕНИЕ. ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ
Термин «искусственный интеллект», ИИ (artificial intelligence, AI) был введен в 1956 г. американцем Джоном Маккарти. Одно из наиболее точных и адекватных определений ИИ дано в «Толковом словаре по искусственному интеллекту» А. Аверкиным и соавторами[1]. Согласно нему, ИИ – это «свойство интеллектуальных <технических или программных> систем выполнять творческие функции, которые традиционно считаются прерогативой человека».
Одним из путей «копирования» человека стало изобретение и развитие искусственных нейронных сетей (ИНС). Для того, чтобы яснее понять явление ИНС рассмотрим, какие человеческие опции они призваны подменить.
1. БИОЛОГИЧЕСКАЯ НЕЙРОННАЯ СЕТЬ (БНС)
Под биологической или естественной нейронной сетью Википедия[2] понимает «совокупность нейронов головного и спинного мозга центральной нервной системы и ганглия (узлов, скоплений) периферической нервной системы, связанные или функционально объединенные в нервной системе, и выполняющие специфические физиологические функции».
Упомянутые «специфические физиологические функции» делают людей людьми. Это их интеллектуальная, «мозговая» деятельность, простая и сложная. От первого осмысленного шага ребенка до общей теории относительности скромного служащего патентного бюро Альберта Эйнштейна. От способности различать цвета до создания шедевров уровня «универсального человека» из Флоренции по имени Леонардо.
Структурная единица НС – нейрон или неврон (от древнегреческого волокно, нерв[3]). Нейрон – клетка, хранящая информацию и передающая ее с помощью электрических и химических сигналов. Человеческий мозг содержит 90-95 млрд нейронов. Нейронная сеть образуется путем связывания нейронов друг с другом. Место контакта между соседними нейронами именуется синапсом (от греческого соединение, связь)[4].
Как работает биологическая нейронная сеть?
Запускаемый в нее импульс передается от нейрона к нейрону через синапсы химическим или электрическим путем. В первом случае, прохождение сигнала обеспечивается, так называемыми, медиаторами (нейромедиаторами) – биологически активными химическими веществами. При электрическом варианте между нейронами (клетками) путешествуют ионы.
На выходе из БНС импульс от крайних нейронов перебрасывается на эффекторную клетку (клетку мишень), которая исполняет получаемый «приказ».
2. ИСКУССТВЕННАЯ НЕЙРОННАЯ СЕТЬ (ИНС)
Искусственная нейронная сеть – «математическая модель с ее программным/аппаратным воплощением, выстроенная по принципу организации и функционирования биологической нейронной сети»[5]. Можно выразиться более понятно и кратко: «ИНС – компьютерная модель мозга человека»[6]. Она имитирует его работу, правда пока, достаточно примитивно.
2.2. Искусственный нейрон и функция активации
Роль естественного нейрона в ИНС выполняет нейрон искусственный, другое название – формальный нейрон. Технически, искусственный нейрон – простейший процессор. Математически – функция, преобразующая линейную комбинацию входных сигналов (значений), получаемых формальным нейроном, в выходные, передаваемые им далее. Функция носит имя функции активации или срабатывания, а также передаточной функции.
К базовым функциям активации относят:
1) Линейную функцию f(x)=k*x (обычно, k=1).
Частный случай – полулинейная функция:
f(x)= | 0, при x<0 |
х, при 0<x<1 | |
1, при x>1 |
2) Пороговую функцию:
f(x)= | 0, при x<x0 |
1, при x>x0 |
3) Сигмоид (сигмоиду):
f(x)=1/(1+e-x)
4) Гиперболический тангенс:
f(x)=(e2x-1)/(e2x+1)
Важным в архитектуре функций активации является то, что (в большинстве случаев) она должна быть монотонно возрастающей и с областью ее значений [0;1] или [-1;1]. Бывают и исключения.
2.3. Структура, типы и простейший механизм ИНС
Итак, что такое ИНС в первом приближении, и каковы основные принципы ее работы?
Как и в биологической нейронной сети, ИНС – массив связанных между собой нейронов, но нейронов искусственных.
(Далее, по тексту, по умолчанию, под нейронами будут пониматься искусственные нейроны, под нейронной сетью, НС – искусственная нейронная сеть, ИНС, если не оговорено иное)
источник[5]
Нейроны делятся на три вида, в зависимости от их расположения в сети: входные, промежуточные (скрытые или внутренние) и выходные[7]. На картинке, соответственно – зеленые, голубые и желтый. Они формируют слои ИНС: входной, промежуточные и выходной. Входные нейроны являются «прозрачными» для входящей в них информации, передают ее далее, «один к одному», без обработки. Прочие - модифицируют сведения, полученные из предыдущего слоя.
Для определения связи, контакта между искусственными нейронами, аналогично БНС, применяется термин «синапс». Роль синапса в математическом нейроне выполняют веса (коэффициенты), на которые умножаются входные, по отношению к данному нейрону, сигналы (цифровые значения) для подстановки в функцию активации. Вес – единственный параметра синапса ИНС.
Связь (синапс) с положительны весом называется «возбуждающей», с отрицательным – «тормозящей». У каждого нейрона один выход, сигналы с которого могут уходить на неограниченное число входов других нейронов.
Существует великое множество классификаций нейронных сетей: по типу входной информации, по характеру обучения, по характеру настройки синапсов в и т.д.
Одной из базовых представляется разделение ИНС на сети прямого распространения (СПР) и рекуррентные нейронные сети (РНС). В СПР выдерживается единое направление передачи сигнала, от входных нейронов, через промежуточные – к выходным. РНС предполагает частичное отражение (обратную передачу) импульса нейронами данного слоя на слой предыдущий. Далее, в материале рассматриваются только СПР.
Функционирование ИНС рассмотрим на элементарном примере.
источник[6]
Здесь, I1 и I2 – входные, H1 и H2 – промежуточные (скрытые) и O1 – выходной нейроны. Также, для краткости, под I1, I2, H1,H2 и О1 будем понимать математические значения, аргументы для расчета функции активации, «снимаемые» с соответствующих нейронов. Wi (i=1,….6) – синапсы (веса).
Зададим для входящих переменных следующие значения:
I1=1, I2=0, w1=0,45, w2=0,78 ,w3=-0,12 ,w4=0,13 ,w5=1,5 ,w6=-2,3.
Отметим, что веса w1, w2 и w4 – отвечают возбуждающим связям, прочие – тормозящим.
В качестве функции активации предлагается использовать сигмоид.
Этап 1
Сигналы от нейронов I1 и I2 поступают на нейроны H1 и H2. (входящая информация H1input и H2input) и обрабатываются ими в исходящую информацию (H1output и H2output).
H1input=I1*w1+I2*w3=1*0,45+0*(-0,12)=0,45.
H2input=I1*w2+I2*w4=1*0,78+0*0,13=0,78.
H1output=sigmoid(0,45)=1/(1+e-0,45)=0,61.
H2output=sigmoid(0,78)=1/(1+e-0,78)=0,69.
Этап 2
Сигналы от нейронов H1 и H2 поступают на нейрон O1. (входящая информация O1input) и обрабатываются им в исходящую информацию (O1output).
O1input=H1output*w5+ H2output*w6=0,61*1,5+0,69*(-2,3)=-0,672.
O1output= sigmoid(-0,672)=1/(1+e0,672)=0,338.
Далее, этот сигнал с соответствующим весом, например, w7, уходит на следующий нейрон.
В 2018 году искусственные нейронные сети отметили 75-летие.
Своему появлению они обязаны двум американским именам: Уоррен Мак-Каллок (Warren Sturgis McCulloch) и Уолтер Питтс (Walter Pitts). В 1943 г. ученые публикуют фундаментальную работу «Логическое исчисление идей, относящихся к нервной активности»[8], положившую начало новому направлению на стыке кибернетики и нейрофизиологии.
Уолтер Питтс (справа)[8]
Для практической реализации идеи ИНС «отец» кибернетики Норберт Винер предложил У. Питтсу вакуумные лампы. Идеальное техническое решение для 1940-х.
Норберт Винер[9]
Для чего Всевышний создал человека и наделил его таким уникальным аппаратом, как нейронная сеть, точно ответить может только сам Творец. Не нам судить об этом.
Искусственные сети проектируют люди и ставят перед ними четкие задачи.
По характеру исполняемых задач, ИНС группируются по следующим магистральным направлениям.
Наиболее простое и популярное применение ИНС в наше время. Нейронная сеть помогает современному гаджету выделить, среди прочих, лицо его владельца и провести идентификацию. Интернет-поисковики с помощью ИНС распределяют картинки по образам, содержащимся в них. Объект для распознавания может быть любой: изображение, звук, текст, символ.
Дополняет и расширяет функцию распознавания. То, что узнано и определено должно быть классифицировано. Нейронная сеть отнесет объект исследования к тому или иному классу, в соответствии с набором (вектором) присущих ему признаков.
Например, ИНС поможет кадровой службе вынести решение о соответствии претендента предлагаемой должности при приеме на работу. Набор признаков: от возраста и пола до образования и уровня классификации.
Нейронная сеть отберет оптимальных заемщиков для банка. Анализу подвергнутся платежеспособность, семейное положение, кредитная история и т.д.
4.3. Принятие решений и управление
Расширяет первые два направления. Распознаваться и классифицироваться могут не только привычные объекты, но и целые ситуации. На вход ИНС подаются характеристики состояния исследуемой системы. На выходе – принимаемое решение, встраиваемое в управление системой.
4.4. Сжатие данных и ассоциативная память
ИНС уплотняет и/или восстанавливает память (массивы данных).
С одной стороны, она может, используя тесные связи между элементами анализируемого массива, значительно уплотнить, сжать его, убрав лишние, повторяющиеся сегменты и связи. «Увидеть» главное.
С другой – провести обратную процедуру, своего рода «вспомнить все». Нейросеть воссоздаст полную информацию по ее части или восстановит поврежденные исходные данные. Такая процедура называется авто- или ассоциативной памятью. Работает логический индуктивный метод: рассуждение от частного к общему.
Пожалуй, самое интересное для биржевой торговли.
Основывается на способности нейронной сети предсказывать значения числовых последовательностей (рядов), исходя из предыдущих значений. Прогноз возможен только тогда, когда прошлые тенденции в таких рядах могут, с той или иной степенью вероятности, повториться в будущих трендах. Согласно гипотезе эффективного рынка[10], считается, что для ценных бумаг и иных финансовых активов это приемлемо. Так выстроен весь технический анализ. Для угадывания выигрыша в лотерее – бессмысленно.
Для того, чтобы нейросеть смогла выполнить ту или иную задачу, ее надо обучить, как человека. Как ребенка, школьника или студента. Сеть «воспитывают», натаскивают, тестируют на обучающей выборке.
Процесс напоминает бэктестинг обычного торгового алгоритма. На вход подаются исторические данные, полученный результат сравнивают с реальным, уже известным, оценивают ошибку. Далее делают поправку в структуре ИНС (связи, веса и пр.), прогоняют по следующему «историческому» отрезку. Результат сравнивают с «идеалом» и вычисляют ошибку. Если есть тенденция к уменьшению погрешности, значит, сеть обучается успешно, в противном случае, что-то не в порядке с ее архитектурой.
Обучение искусственной сети рассматривается, как кибернетический эксперимент. Различают три вида подобных экспериментов[5].
1) Обучение с учителем, Supervised learning.
Принудительный тренинг ИНС на обучающей выборке. Принципиально описан выше. Главное в Supervised learning – участие наставника, экспериментатора, отлаживающего сеть и наличие «правильного ответа» для каждой выборки (выходное пространство решений сети задано). Цель – уменьшение ошибки до адекватного уровня.
2) Обучение без учителя, Unsupervised learning.
Другие названия – самообучение или спонтанное обучение[11].
Сущность метода понятна из определения – сеть обучается сама. Применяется на крупных ИНС, для которых заданы подробные описания объектов обучающей выборки. Процесс тренировки состоит в самостоятельном поиске сетью внутренних связей, закономерностей и зависимостей между объектами.
ИНС лично формирует выходное пространство решений. ИНС, обучающиеся без учителя, получили имя самоорганизующихся.
Один из популярных представителей Unsupervised learning – нейросеть Хопфилда[12]. Особенность сети Хопфилда такова, что при автономном функционировании ее динамика сходится к равновесному положению. Таким образом, ИНС проводит самоотладку.
3) Обучение с подкреплением, Reinforcement learning.
Микс, промежуточное состояние между первым и вторым методами. Вариант смешанного обучения.
Роль учителя выполняет некая среда или модель, но не человек. Ее отклики на решения сети, именуемые сигналами подкрепления[13], выполняют роль корректировочных команд экспериментатора. С другой стороны, ряд сигналов подкрепления продуцируются самими нейронами. Это признак самообучения.
Сведем, приведенное выше, в картинку:
5.2. Требования к входной информации
Для правильной настройки и последующей успешной работы ИНС, подбор входящих данных для обучения имеет важное, если не решающее, значение.
Они должны удовлетворять, в том числе, таким требованиям.
1) Репрезентативность.
Говоря языком социологов и маркетологов[14], обучающая выборка должна представлять все значимые параметры для генеральной совокупности, но не выходить за их пределы. Например, при отладке ИНС для прогноза цены акции, исторические котировки надо брать из одних торговых площадок или учитывать разницу между ними, рассматривать периоды, аналогичные прогнозируемому: сопоставлять даты выхода корпоративной отчетности и макроэкономических статновостей пр.
2) Непротиворечивость.
Для фондового рынка противоречивость будет, в том числе, между данными стабильного и турбулентного рынка (резкое ралли или обвал).
3) Нормализация.
«Размерность» входящих данных должна быть единой или сопоставимой. Для функции активации не только область значений (значения функции), но и область ее определения (значения вводимого аргумента х) не должны выходить за отрезок [-1;1]. Иными словами, на вход и на выход подаются числа по модулю, не превышающие 1.
Что же делать, если речь идет о котировках бумаг, выражаемых двух и трехзначными числами или, по крайней мере, больше одного доллара или рубля? Их необходимо привести в нужный формат (размерность). Допустим, взяв обратную величину 1/P, где P – цена акции. Такое действие над числом называется его нормализацией или нормировкой. В итоге, весь ценовой диапазон инструмента ляжет в интервал от почти 0 (при P→+∞, ну очень большие числа, например стоимость акций BRK-A У. Баффетта, $282640,00 за 24.12.18) до 1 при P=$1,00).
Можно подойти и тоньше[6]. Вводить не нормализованный курс акций, а относительное отклонение двух соседних прошлых, «исторических» цен из обучающей выборки. Тогда прогнозируется отклонение от крайнего члена ряда, то есть, от последней известной цены бумаги.
Кроме нормализации, данные могут обрабатываться и другими способами. Непрерывный поток значений переводится в дискретный – квантуется. Или проводится очистка, фильтрование «зашумленной» информации.
Главный итог обучения искусственной сети – минимальное значение ошибки в ее работе. Конечно, она никогда не будет нулевой. Задача – свести ее к приемлемому уровню. Ошибка – расхождение между поученным и ожидаемым результатом.
В примере из подраздела 2.3 сеть выдала такой результат:
O1output= sigmoid(-0,672)=1/(1+e0,672)=0,338.
Предположим, известное (правильное, заданное) значение равно 1. Ошибка: ∆=1-0,338=0,662 или 66,2%
В процессе тренировки с учителем, ожидаемый результат известен, как одно из исторических данных и погрешность вычисляется после проведения этапа (этапов) тестирования. Обычно, она выражается в процентах (от 0 до 100%) или в долях единицы (от 0 до 1), как кому удобнее. В «боевой» ситуации ожидаемый результат «зашит» в будущее – через минуту, день, неделю, месяц и т.д. Безусловно, если ошибка велика на тесте, то действовать ИНС в реале бессмысленно.
Прогон по выборке получил название «эпохи обучения». Прошли обучающую выборку один раз – сеть «прожила» одну эпоху, два раза – две, n раз – n эпох. Часто, одну эпоху называют одной итерацией, а обучаемые таким образом сети – итерационными. Очевидно, чем больше n, тем система будет более тренированной. Нейросеть продолжает обучаться и в процессе работы. Для нее, как и для любого из нас – «учиться никогда не поздно».
На практике, входные данные при обучении с учителем разделяются на две группы: собственно обучающие и проверочные. Первые используются для тренинга, вторые для оценки ошибки. При этом, проверочные данные в процессе обучения не применяются. После серии итераций значение имеет только уменьшение ошибки на проверочных (тестовых) данных. Если погрешность сжимается на обучающих данных, а на тестовых нет, то сеть «хитрит» и запоминает обучающую информацию. Говорят, что она «переобучена». В таком случае тренировку ИНС останавливают.
источник[15]
Насколько успешно искусственная нейросеть может обучаться, демонстрируют ее «интеллектуально-спортивные» достижения. Два года назад на новостных лентах появились сообщения о том, что ИНС AlphaGo выиграла турнир по игре в го у ведущего мирового мастера. Простой перебор вариантов здесь не проходил. Таких вычислительных мощностей пока нет. По крайней мере, они отсутствовали у воспитателей AlphaGo. Сеть должна была непременно научиться играть в го, что она и сделала, в том числе, разыгрывая партии, сама с собой.
6. НЕЙРОСЕТИ В БИРЖЕВОЙ ТОРГОВЛЕ
ИНС – не традиционный алгоритм, который можно написать/запрограммировать. В известном смысле, искусственная сеть – алгоритм с искусственным интеллектом, способный обучаться с наставником или без.
По своей «природе», механическая торговая система не способна самостоятельно перестроиться под изменяющуюся рыночную ситуацию. При смене обстоятельств, советника надо останавливать и менять «начинку» (встроенный алгоритм), во избежание генерации большого количества отрицательных сделок. Корректно обученные и правильно заточенные под среду нейронные сети «живут» вместе с рынком и, в идеале, становятся его органической частью.
Нейросети могут впитать и задействовать в работе не только котировочный ряд, но и любую информацию фундаментального или технического характера, поступающую на биржу в произвольных пропорциях.
Исключительную важность приобретает процесс отбора таких сведений, чтобы они помогали, а не мешали в функционировании ИНС, не расстраивали ее. В прямом и переносном смысле.
Выставляются пороги чувствительности к входным данным. Сеть анализирует, классифицирует и группирует сообщения. Отсеивается противоречивая, взаимоисключающая информация, способная заблокировать ИНС. Как одна из методик используется Data mining[16].
«Игра стоит свеч»: неверные данные – неверные решения.
Искусственные нейронные сети применяются в трейдинге по ряду направлений, включая моделирование рисков[17]. Но главное – прогнозирование временных рядов.
Упрощенно, задача выглядит следующим образом.
Имеется ряд из к значений исторических (прошлых) цен акции «А»: Pt-1, Pt-2, Pt-3….., Pt-k, отвечающих моментам времени t-1, t-2, t-3…., t-k. От сети требуется найти Pt: цену бумаги в будущий момент времени t.
На входе – четыре точки, на выходе – пятая.
Конечно, как упоминалось выше, только котировками исследуемой акции для прогноза ее будущей стоимости, ограничиваться не стоит. Хорошая сеть работает с индексами тех рынков, где акция обращается, деривативами, базовым активом которых выступает данная акция, другими бумагами представляемого акцией сектора/отрасли и т.д. Любая корректная информация.
Если временной ряд состоит из трех значений цены, каждое из которых отвечает одному торговому дню, то процесс обучения таков.
Ряд (итерация) / Прогноз |
Входные данные |
Выходные данные |
Ряд 1 |
день 1 – Р1 день 2 – Р2 день 3 – Р3 |
день 4 – Р4 (задано/известно) сравнивается с выходным значением, выдаваемым сетью по выборке (Р1, Р2, Р3) |
Ряд 2 |
день 2 – Р2 день 3 – Р3 день 4 – Р4 |
день 5 – Р5 (задано/известно) сравнивается с выходным значением, выдаваемым сетью по выборке (Р2, Р3, Р4) |
Ряд 3 |
день 3 – Р3 день 4 – Р4 день 5 – Р5 |
день 6 – Р6 (задано/известно) сравнивается с выходным значением, выдаваемым сетью по выборке (Р3, Р4, Р5) |
Прогноз |
день 4 – Р4 день 5 – Р5 день 6 – Р6 |
день 7 – Р7? (не известно) предсказывается сетью по выборке (Р4, Р5, Р6) |
Здесь: день 1, день 2 …,день 6 – «исторические» торговые дни с известными ценами финансового инструмента Р1, Р2…, Р6. Обучающая/тестовая выборка из трех эпох (итераций) понуждает сеть высчитывать цену для четвертого (по порядку) дня по трем предыдущим, сравнивает с известным значением, оценивает ошибку, вносит поправку в веса и связи. И так три раза. Четвертый прогон – предсказание цены Р7 в день 7, допустим – завтра.
Нельзя сказать, что ИНС получили всеобщее признание в торговом сообществе. Какое-то время о них вообще забыли. До 2007 года популярными были программные продукты на нейросетевей основе: NeuroSolutions и NeuroShell.
Проходили сообщения, что инвесткомпания LBS Capital Management Inc. достигает неплохих результатов, используя относительно недорогие нейросетевые пакеты, стоимостью до $50 тыс.
Но, увы, большинство современных ИНС дают низкую точность прогноза. Ошибка в пределах 50-60%. Это много. Ряд экспертов, например, аналитик хедж-фонда NMRQL Стюарт Рид[17], считают, что к ИНС сложился неверный подход. Многие склонны переоценивать их возможности, а некоторые – неправильно строить и эксплуатировать.
Но прогресс неумолим.
В списке профессий, в которых роботы заменят человека в ближайшие 30-50 лет, устойчиво фигурируют биржевые брокеры. Ну и трейдеры, понятно тоже. Просто составители списков не знают разницы. За спиной брокеров и трейдеров маячит тень конкурента.
Искусственной нейронной сети.
- ↑ «Искусственный интеллект», Википедия
- ↑ Нейронная сеть», Википедия
- ↑ «Нейрон», Википедия
- ↑ Синапс», Википедия
- ↑ «Искусственная нейронная сеть», Википедия
- ↑ «Нейронные сети для начинающих. Часть 1» (https://habr.com)
- ↑ «Искусственный нейрон», Википедия
- ↑ «Питтс, Уолтер», Википедия
- ↑ «Винер, Норберт», Википедия
- ↑ «Гипотеза эффективного рынка», Википедия
- ↑ «Обучение без учителя», Википедия
- ↑ «Нейронная сеть Хопфилда», Википедия
- ↑ «Обучение с подкреплением», Википедия
- ↑ «Репрезентативность», Википедия
- ↑ Национальный открытый университет (https://www.intuit.ru)
- ↑ Data mining – интеллектуальный анализ данных, Википедия
- ↑ «Технологии фондового рынка: 10 заблуждений о нейронных сетях» (https://habr.com)
НС – нейронная сеть, нейросеть, коротко – сеть
БНС – биологическая (естественная) нейронная сеть
ИНС – искусственная нейронная сеть, для краткости, по умолчанию – нейросеть или сеть
ИИ – искусственный интеллект
СПР – сети (нейронные) прямого распространения
РНС – рекуррентные нейронные сети