Нейросети и
анализ временных рядов. В части, касающейся финансистов... (продолжение) Михаил Болдырев, ТОРА-Центр В начале статьи, опубликованном в предыдущем номере, на примере популярной системы Ward System были рассмотрены возможности и характеристики современных нейропрограмм. Данная часть статьи посвящена обзору задач, как правило решаемых с помощью нейросетей. Немного теории... При решениии той или иной задачи мы опираемся на доказанную теорему, в общем случае представляемую так: если задача имеет решение в рамках классического набора математических инструментов, то решение задачи может быть реализовано с помощью нейросети обратного распространения, причем с количеством слоев не более трех (имеются в виду входной, скрытый и выходной слои). В подавляющем большинстве задач (90%) действительно используются сети с алгоритмом настройки, названным “обратное распространение” (Back Propagation, Backprop). Этот алгоритм является наиболее стабильным в работе, хотя и не самым точным в результатах. Дело в том, что любой алгоритм настройки (парадигма) нейросети является множественно-вероятностной. Поэтому, задумываясь о выборе аналитического инструмента, мы ни в коем случае не отрицаем тот факт, что точность решения при использовании методов классического анализа получится выше.. Но, во-первых, время, затраченное на “классическое” решение, может оказаться непомерно большим для конкретной задачи. Во-вторых, стабильность такого решения (его применимость для широкого диапазона реальных значений) - тоже вопрос, а время корректировки модели сопоставимо с разработкой новой. Наконец, в-третьих, для решения задач классическими методами требуются достаточно квалифицированные специалисты с хорошей математической подготовкой. Нейросети в общем случае свободны от указанных недостатков.
Вернемся к обратному распространению. Когда мы оцениваем перспективы получения конкретного решения, то на одной чаше весов лежит та степень точности, которая нас устраивает и которую мы явно указываем при настройке сети. На другой чаше лежит ответ на вопрос: “будет ли получено решение с заданной точностью вообще и за какое время ?”. Планируя решение задачи мы располагаем набором статистических данных - это может быть временной ряд, кодированное изображение, любой процесс, описанный в виде набора формальных параметров и рядя их значений (см. таблицу 1). Таблица разделяется на колонки входных значений и колонки обучающих шаблонов (они же выходные значения). В идеальном случае для нейросети требуется предъявление минимума наиболее совместных данных, то есть таких, которые наиболее полно отражают суть рассматриваемого процесса. Но практически мы затрудняемся явно определить, какие именно данные содержат более значимую информацию, а какие - менее значимую. Поэтому в реальных задачах мы вынуждены проделать большую работу по подбору данных, которые, на наш взгляд, имеют отношение к исследуемой задаче. (В скобках замечу, что подбор и предобработка, “причесывание” входной информации съедает до 80-90 % времени аналитика, о способах ее подготовки будет отдельный разговор). Весь фокус в том, что не существует в нейросетевой науке более-менее стабильных и общепризнанных методик для определения ожидаемого времени настройки нейросети. Бывает так, что весьма большой массив данных сеть обрабатывает за приемлемое время (час-полтора), а бывает, что с виду нехитрая задача заставляет сеть учиться сутками... Каково вам будет ходить вокруг компьютера несколько часов (дней), чтобы выяснить, что сеть “впала в маразм” и отказывается работать дальше ? Существуют разные подходы к решению этой проблемы. Практические приемы.
Предобработка данных. Эта часть решения задачи целиком ложится на крепкие плечи (голову?) аналитика. Состав и глубина статистической выборки как обучающей последовательности имеет для нейросети такое же значение, как и внутренние управляющие параметры. Что касается состава данных - здесь возникает широкое поле для экспериментов. Понятно, что включение в данные дневной цены семечек на местном “маркете” вряд ли будет иметь смысл в задаче прогноза цены закрытия ОФЗ (впрочем, как знать ?). Пассажи такого типа аналитик опознает без специальной подготовки. Однако, с другой стороны, аналитик располагает значительным количеством деловой информации, прямо или косвенно относящейся к “его” сектору рынка. Проблема в том, как отфильтровать информацию, выделив нужные данные. Во-первых, современные нейропакеты, как правило, содержат функцию “определение чувствительности нейросети по входам” (см. рис 1). Практически имеющиеся данные “сваливаются в кучу “, а затем нейросеть посли серии предварительных прогонов дает развернутую картину приоритетности входных данных. Этот метод скорее всего не самый оптимальный (вспомним неопределенное время обучения !), зато наиболее доступный в смысле затрат усилий.
Во-вторых, существуют методы кластерного, корреляционного анализа и анализа временных рядов (time series analysis), которые позволяют сгруппировать данные, выявить степень взаимосвязи разных групп (отдельных элементов) в численном виде, а также определить в том же численном виде степень цикличности в диапазонах значений как групп , так и отдельных элементов (см. рис 2). Это также дает аналитику некоторую пищу для размышлений о выборе данных и задани их глубины. В-третьих, существует целое направление в финансовом анализе, технология Data Maining (буквально - “заготовка данных”), которое пытается ответить на вопрос: “как извлечь интуитивно понятные и полезные для применения знания из больших информационных объемов, причем достаточно быстрым и эффективным способом?”. И существуют различные программные инструменты, которые такую технологию используют. Например, пакет IDIS фирмы Information Discovery в результате работы порождает систему явных правил, описывающих взаимосвязь между полями вашей базы данных с указанием степени достоверности и возможностью обработки исключительных и противоречивых ситуаций. Система на основе нечеткой логики CubiCalc 2.0 фирмы HyperLogic имеет в своем составе элемент Rule Maker, который либо извлекает множество нечетких правил из предоставляемых вами данных, либо аппроксимирует сложные функции на основе тех же данных. И в том, и в другом случае в качестве “двигателя” (rule engine) используются нейронные сети, работающие в режиме классификации. Наконец, в-четвертых, проблема противоречивости данных. Излишне говорить, что плохое качество исходных данных может “свести на нет “ все ваши усилия по их подбору. Эта проблема актуальна на всех мировых рынках, на российском - особо. Фирмой ТОРА-Центр на основании анкетирования многих клиентов и учета их пожеланий было проведено специальное маркетинговое исследование в области рынка информационных услуг в Москве. Учитывалось количество предоставляемой информации, частота ее обновления и уровень предоставляемого сервиса по ряду параметров. В числе прочего выяснился любопытный факт: информационные агенства, имеющие внутрифирменный стандарт передачи данных (не декларируемый, а фактический) - скорее исключение, чем правило. Этот факт означает, что возможность (или невозможность) автоматизированной обработки данных - это количество ваших же часов и головной боли, потраченных в борьбе с табличным процессором в деле формирования собственной базы данных (это утверждение проверено автором на практике). Постановка задачи. Существенный, хотя, на первый взгляд, очевидный момент. Попытки нахождения того, что вы сами представляете смутно, часто приводит к процессу “достижения линии горизонта” в различных формах. Общим местом стала необходимость привлечения квалифицированных экспертов. Например, вы предполагаете, что “ваш” сектор рынка сильно зависит от изменений политического (социального, естественного) климата. Нейросети здесь наготове, но сразу возникает проблема эффективной формализации указанных вами факторов, то есть, опять же, сбора информации, ее классификации и составления моделей рейтинговых оценок. Другое общее место - применение специальных технологий и соответствующего программного обеспечения. Например, технология реинжиниринга, ставшего на Западе экономическим идолом и более известного в России как имитационное моделирование (разновидность системного анализа) воплощена в пакете iThink фирмы High Performance System (HPS). Применение такого подхода, конечно, требует определенных временных затрат, но, во-первых, порождает систему моделей, привязанных к конкретной предметной области (и представляющих самостоятельную ценность), во-вторых, освобождает вас от применения “метода тыка” в нахождении решения . Выбор парадигмы нейросети, то есть ее конструктивного типа и связанного с ним алгоритма обучения. Таковых существует около 30 (т.к. для некоторых сходимость не доказана), объединенных в несколько групп. Некоторые из них представляют интерес в основном для исследований (как, например, адаптивный резонанс), другие находят широкое применение в коммерческих задачах. Одни нейропакеты, включают все известные парадигмы и представляют собой элементные “конструкторы” для создания приложений, например, библиотека OWL фирмы HyperLogic c полным набором нейро- и fuzzy- парадигм. Или роскошнейший Explore Net фирмы Hecht-Nielsen Company (HNC) - одного из “патриархов” в мире нейрокомпьютеров, создателя специализированных нейрокомпьютеров и систем класса FALCON. Другие системы - коммерческие - в большинстве своем содержат сети: обратного распространения (широчайший круг решаемых задач), прямого распространения, сети с механизмами рекуррентных связей (реализуется механизм задания “ассоциаций” и дает неплохие результаты прогноза временных рядов), сети Кохонена (задачи кластеризации), сети со стохастическими методами обучения (обучение и работа с неполными данными) и в редких случаях - сети с линейными алгоритмами обучения (возможность преобразования аппроксимируемых функций в ряды с вычислением коэффициентов). Их применимость детально описана в различной литературе, но в общих случаях рекомендуется двигаться “от простого к сложному”, то есть начинать с Back Prop. Настройка сети и проверка качества настройки. Вопрос настройки - отдельная большая тема. В сложных ситуациях процесс может занимать часы и дни. Один мз критериев качества настройки - способность сети распознавать данные, не участвующие в обучении. Для этого из обучающего набора извлекается “тестовое множество” (обычно 10-20%), которым периодически проверяется работоспособность сети. Отсюда же вытекает понятие “переобучения”, когда тестовая ошибка начинает расти, хотя обучающая уменьшается. Такая ситуация говорит о том, что обучение надо прекратить и поменять исходные настройки и (или) состав данных. Критерием работоспособности сети является для вас среднеквадратичная ошибка обучения. Ее можно характеризовать как “степень разброса” прогнозируемых данных. Точнее - вероятность выхода прогнозируемой величины за диапазон, заданный при настройке. Диапазон изменения - весьма существенный показатель, вне которого сеть не сможет функционировать корректно. Другой критерий работоспособности - статистическая повторяемость точности получаемых прогнозов, определяемая серией экспериментов в “реальном” режиме. Итак, мы с вами прошли весь цикл нейросетевого решения решения задачи. Все это замечательно, скажете вы, но каковы результаты реального применения ?. TORA-Centre (c) 1995-98 |