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

Статьи по самоорганизующимся картам
Обучение без учителя
      Любая нейронная сеть прежде всего должна быть обучена. Процесс обучения заключается в подстройке внутренних параметров нейросети под конкретную задачу.
      При обучении "классической" многослойной нейросети на вход подаются данные или индикаторы, а выход нейросети сравнивается с эталонным значением (с так называемым "учителем"). Разность этих значений называется ошибкой нейронной сети, которая и минимизируется в процессе обучения. Таким образом, обычные нейронные сети выявляют закономерности между входными данными и прогнозируемой величиной. Если такие закономерности есть, то нейросеть их выделит и прогноз будет успешным.
       В процессе обучения карт Кохонена на входы также подаются данные и индикаторы, но при этом сеть подстраиваться под закономерности во входных данных, а не под эталонное значение выхода. Такое обучение называется обучением "без учителя". Обучение при этом заключается не в минимизации ошибки, а в подстройке внутренних параметров нейросети (весов) для большего совпадения с входными данными. После обучения такая нейросеть визуально отображает многомерные входные данные на плоскости нейронов. Имея такое представление данных, можно очень наглядно увидеть наличие или отсутствие взаимосвязи во входных данных.
      Для большего удобства визуального представления нейроны карты Кохонена располагают в виде двухмерной матрицы и раскрашивают эту матрицу в зависимости от анализируемых параметров нейронов.

Порядок работы с картами Кохонена
      Как и при работе с обычными нейросетями, работа с картами Кохонена складывается из нескольких последовательных этапов. Первым из них является этап определения состава входов.
      Для хорошего обучения обычной нейросети, нужно выбрать такое множество входов, которое наиболее сильно влияет на выходные (прогнозируемые) значения. Если мы угадали, и входы действительно влияют на выходы, то нейросеть будет работать и давать отличные прогнозы. Однако, подобрать правильные входы очень сложно. Обычно это делается методом проб и ошибок, т.е. простым перебором различных комбинаций индикаторов и данных. Об этих и других тонкостях работы с такими нейросетями было рассказано в статье "Нейросети: работа над ошибками" в предыдущем номере ВС.
      Входы нейросети, обучаемой "без учителя", определяются другим образом и перед такой нейросетью ставится иная цель - выявление закономерностей между любыми входными данными и индикаторами, которые и подаются на вход карты. Архитектура карт Кохонена, в отличие от многослойной нейросети, очень проста и представляет собой один единственный слой нейронов, который организован в виде двухмерной матрицы. Пользователю необходимо определить лишь размер этой матрицы т.е. количество нейронов по ширине и количество нейронов по высоте.
      Карты Кохонена дают визуальное отображение многомерных входных данных. У карты Кохонена анализируются не только выходы нейронов (как в случае обычной нейросети), но также веса нейронов и распределения примеров по нейронам. Так как карта Кохонена организована в виде двухмерной решетки, в узлах которой располагаются нейроны, то ее очень удобно отображать на плоскости в виде "карты" с раскраской зависящей от величины анализируемого параметра нейрона. Именно за схожесть изображения этой парадигмы нейросети с топографическими картами они получили название карт Кохонена.

Как устроена карта Кохонена
      Самоорганизующиеся карты Кохонена являются одной из парадигм нейронных сетей. Принципы работы и обучения такой нейросети были сформулированы финским ученым Тойво Кохоненом в 1982 году. Основной идей Т. Кохонена является введение в правило обучения нейрона информации о его расположении. По Кохонену нейросеть имеет один входной слой, с числом нейронов равным числу входов и единственный скрытый (выходной) слой нейронов, образующий одномерную (линия) или двухмерную (прямоугольник) решётку. По аналогии с топографическими картами, такую нейросеть также называют картой Кохонена.
      Для этой парадигмы обучение проводится без "учителя", т. е. в процессе обучения нет сравнивания выходов нейронов с эталонными значениями.
      В процессе обучения на вход такой нейросети последовательно подаются обучающие примеры. После подачи очередного примера определяется наиболее схожий нейрон, т. е. нейрон, у которого скалярное произведение весов и поданного на вход вектора минимально. Такой нейрон объявляется победителем и будет являться центром при подстройке весов у соседних нейронов. Правило обучения, предложенное Кохоненом, предполагает соревновательное обучение с учетом расстояния нейронов от "нейрона победителя" и записывается в виде:
     
где  - функция соседства, определяющая величину корректировки веса нейрона, wi - веса i-го нейрона, b - скорость обучения.
      Для нейрона победителя функция соседства равна 1 и затем плавно (по линейному или экспоненциальному закону) уменьшается при удалении от него. Таким образом в процессе обучения, подстройка весов происходит не только в одном нейроне - нейроне победителе, но и в его окрестностях.
      После окончания процесса обучения карта Кохонена классифицирует входные примеры на группы схожих. Вся совокупность нейронов в выходном слое точно моделирует структуру распределения обучающих примеров в многомерном пространстве. Уникальность технологии самоорганизующихся карт состоит в преобразовании N-го пространства в двух или одномерное. Единственное, что надо помнить - такое преобразование сопряжено с некоторыми ошибками. Две точки, близко лежащие на карте Кохонена, будут близки и в N-ном входном пространстве, но не наоборот.
      Для лучшего понимания мы подготовили пример, разъясняющий общие подходы к анализу самоорганизующихся карт. Подадим на два входа карты (размером 50х50 нейронов) набор случайных чисел от 0 до 50 общим числом 500 примеров. После проведения обучения такой карты Кохонена, все семейство карт будет иметь вид изображенный на рисунке.
      Карта частот имеет равномерное распределение примеров по поверхности карты, что объясняется равномерным распределением входных примеров и качеством обучения карты.
      Для нас в этом примере представляет интерес раскраска карты входов. Раскраска каждой из них линейна и постоянна по одной из граней карты. Причем обе карты входов имеют одинаковую раскраску, но развернуты друг относительно друга на 90 градусов. Как это можно трактовать? При значении 1-го входа равного 0 (темно синяя полоса на первой карте), 2-й вход может принимать весь спектр значений от 0 (темно синий) до 50 (темно красный). Это соответствует входному распределению данных (пара независимых равномерно распределенных величин). Таким образом, самоорганизующаяся карта смогла правильно отобразить взаимное распределение двух входов карты.
      Более полную информацию по теории самоорганизующихся карт и методам ее применения можно получить из новой книги издательства "Альпина" - Гвидо Дебок "Виазулизация финансовых данных с помощью самоорганизующихся карт Кохонена" либо на семинарах ТОРА-Центр, посвященных нейронным технологиям.

Карта выходов нейронов
       Выходы нейронов карты Кохонена напоминают топографическую карту. Координаты этой карты определяют положение одного нейрона. Например, координаты 12:34 описывают нейрон, находящийся на пересечении 12 столбца с 34 рядом в матрице нейронов. Величина выхода нейрона по аналогии с географическими картами трактуется как высота точки.
      Карты Кохонена, также как и географические карты, можно отображать либо в двухмерном, либо в трехмерном виде. В двухмерном виде карта раскрашивается в соответствии с уровнем выхода нейрона. Для более высоких значений обычно используются светлые тона, а для низких значений - темные.
      Карта выходов является главной картой в анализе карт Кохонена. Именно на нее проецируется взаимное расположение исследуемых данных. Схожие входные данные образуют на карте кластеры - замкнутые области, состоящие из нейронов с одинаковыми значениями выходов. Как правило, ярко выраженные кластеры в данных имеют четкие границы с другими областями карты. В трехмерном виде это выглядит как крутой склон холма.

Карта частот
       После завершения обучения каждый входной пример попадает в "свой" нейрон.
      При этом в некоторые нейроны не попадет ни одного примера, а в некоторые попадет несколько примеров. Распределение обучающих примеров по нейронам очень показательно и отображается на карте частот.
      В общем случае входные примеры равномерно распределяются по карте. Но если в данных есть ярко выраженные группы, то примеры распределяются неравномерно, образуя кластеры. Кластером может быть или обособленная группа из нескольких нейронов, в которую попало некоторое число входных примеров, или отдельный нейрон, в который попало большое число входных примеров.

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

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

Задача номер один - поиск соседей
       Итак мы вплотную подошли к уникальному свойству карт Кохонена - отображению меры похожести входных примеров. Чем ближе на карте точки друг к другу, тем более похожи друг на друга примеры, которые в эти точки попадают.
      Что нам это дает? Посмотрим на рисунок в этом разделе. На нем отображена карта частот и показаны графики цен для трех "соседей" (точек находящихся рядом). Cоседние точки на карте показывают очень схожее поведение на графике цен - продолжение тренда вниз. Однако самое ценное заключается в том, что во всех этих точках дальнейшее развитие ситуации было одинаковым - разворот тренда снизу вверх. Обратите внимание - мы говорим о будущем (!) развитии ситуации. В каждый данный момент мы можем посмотреть к чему в прошлом приводила похожая ситуация на рынке!

Поиск закономерностей в финансовых рядах
       Известно, что весь теханализ и любая механическая торговая система на его основе использует те или иные закономерности в рядах цен. Успешно торгует только тот, кто знает закономерности рынка. Описанию таких закономерностей посвящены толстые книги (например: "Энциклопедия технических индикаторов рынка" Р.Колби, Т.Мейерс), в которых проводятся исследования применения тех или иных индикаторов на различных финансовых рынках. В этом поиске закономерностей могут помочь карты Кохонена, которые могут отобразить все данные сразу с учетом их внутренней схожести в удобном для анализа виде.
       Попробуем ответить на вопрос: "Есть ли закономерности в поведении цены акции РАО ЕЭС России в зависимости от дня недели?" Для этого возьмем данные по акциям РАО ЕЭС России за последние 300 торговых дней. Подадим на вход карты Кохонена размером 50х50 следующие значения:
       - день недели
       - тип свечи в текущий день,
       - тип свечи в предыдущий день
       День недели кодируется числом от 1 (понедельник) до 7 (воскресенье). Тип японской свечи кодируется числом от -5 до +5, как показано на рисунке.
      Посмотрим на карту частот. Во-первых все точки расположены неравномерно, а во-вторых присутствуют нейроны-кластеры (ярко красные точки). Понятно, что наличие таких кластеров объясняется дискретностью входных значений.
       Попытаемся определить какую-либо закономерность в этих данных, позволяющую спрогнозировать тип свечи в текущий день на основе информации о дне недели и типе свечи в предыдущий день. Для этого исследуем все кластеры на карте частот и определим число выпадения определенного типа свечи (например, черной с обеими тенями) в определенный день недели.
      После просмотра всех дней недели, мы выделили пятницу. Если в пятницу была белая свеча 2-го типа, то в 15 случаях в понедельник наблюдается черная свеча и только в 5 случаях - белая. Соотношение 15:5 является хорошим результатом и показывает неочевидную закономерность в исследуемом ряде данных - в 75% случаев белая свечка в пятницу приводит к черной свечке в понедельник!
      Карта Кохонена в этом примере сыграла роль "разведчика" данных позволившего определить интересную закономерность в анализируемом ряде, которая дает гарантированную прибыль в торговле! При увеличении числа входов можно получать другие интересные закономерности, которые позволяют прогнозировать дальнейшее поведение цен.

Программное обеспечение
      Как любая нейронная технология, карты Кохонена требуют соответствующего программного обеспечения. На сегодняшний момент в мире существует несколько программ, позволяющих работать с картами Кохонена - это программы SoMine, Statistica, NeuroShell и новый программный пакет NeuroScalp.
      SoMine является универсальной программой по картам Кохонена. Она имеет большой арсенал встроенных средств анализа карт. Основной ее недостаток - ее универсальность. При использовании SoMine для анализа финансовых рядов трейдеру придется вспомнить формулы индикаторов и осцилляторов и самостоятельно вычислять их значения другими программными средствами - например электронными таблицами. Также отсутствует опция показа карты в трехмерном виде. Мы рекомендуем SoMine как программу, применимую там, где не требуется проводить анализ временных рядов.
      Пакет Statistica предназначен для статистического анализа, а самоорганизующиеся карты в нем представлены в виде отдельного модуля. Возможности анализа карт Кохонена довольно скудны, а работать с финансовыми рядами очень затруднительно (отсутствуют индикаторов и функции работы с временными рядами).
      В NeuroShell среди встроенных архитектур нейросетей есть и карты Кохонена, но к сожалению они представлены в одномерном варианте и вообще не имеют средств для визуального анализа.
      В пакет NeuroScalp входит модуль "Карты Кохонена". Наверное, это первая программа, всесторонне реализующая алгоритм самоорганизующихся карт в применении к финансовым рядам данных. В программе реализован собственный язык программирования, позволяющий использовать индикаторы технического анализа. Реализован богатый инструментарий для проведения анализа карт Кохонена.
      Все примеры в этой статье созданы с использованием программного пакета NeuroScalp. Демо-версию программы NeuroScalp можно найти на компакт-диске к этому номеру журнала или в интернете по адресу
http://www.tora-centre.ru/nscalp.

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

Источник: http://www.tora-centre.ru/library/ns/spekulant03.htm