БАНКОВСКИЕ ТЕХНОЛОГИИ 9'97  
High Tech 
НЕЙРОННЫЕ СЕТИ: ПРОСТО О СЛОЖНОМ  
Курочкин С.В.

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

Что же такое нейронная сеть? Прежде всего, не нужно думать, что это какой-то материальный объект. Это общая схема метода решения вполне определенной типовой задачи. Поэтому сначала о самой задаче, а потом о методе.

Что касается задачи, то, в общем виде, речь идет о приближенном восстановлении отображения по заданному ряду его значений. Предположим, что нам даются наборы чисел (входные векторы) и для каждого из них нам сообщают значение функции, которое она имеет на данном наборе. Пример: значением является обменный курс некоторой валюты на следующий день, вход - уровень этого курса и некоторых других финансовых показателей за, скажем, последний месяц. Другой пример: входной вектор - характеристики заемщика банка (возраст фирмы, капитал, количество занятых, сидел/не сидел в тюрьме директор и т.п.), результат - выполнил ли клиент условия возврата кредита. В обоих случаях речь идет пока об исторических данных. Затем нам предъявляют уже новые данные: значения финансовых показателей по сегодняшний день включительно или данные о новом клиенте, обратившемся с просьбой о предоставлении кредита. Результат теперь неизвестен, и мы должны его (хотя бы приближенно) найти: каким будет обменный курс завтра, перспективен ли для банка данный клиент.

Как действует в этой ситуации нейронная сеть? Элементарная операция, которую она производит с данными, состоит в следующем: берется "взвешенная" сумма входных величин (т.е. сумма их, взятых с некоторыми коэффициентами, которые называются весами). Затем полученная величина преобразуется с помощью нелинейной монотонной функции (функции активации) так, чтобы получившееся в результате значение лежало в интервале от 0 до 1. Описанная конструкция называется искусственным нейроном. Сеть состоит из многих таких нейронов, причем часть из них обрабатывает непосредственно входные данные (первый слой нейронов), другие - сигналы, полученные на выходе с нейронов первого слоя, и т.д. (скрытые слои нейронов), и, наконец, есть единственный выходной нейрон, который и выдает нам результат. При этом веса, соответствующие различным нейронам (а иногда и параметры функций активации), могут меняться независимо друг от друга. Обрабатывая исторические (обучающие) данные и меняя при этом веса, сеть стремится наилучшим образом приспособить свой выходной сигнал к известному результату. Этот процесс называется обучением сети. После того как оно закончено, на вход сети можно подать новые данные, и она выдает свой прогноз. Мы видим, что тут действительно есть (в сильно упрощенном виде, конечно) некоторая аналогия с работой мозга человека.

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

В каких задачах используются нейросетевые методы? Применительно к банковской сфере я бы выделил три класса таких приложений: прогнозирование временных рядов (курсов акций, обменных курсов), классификация (определение степени надежности клиента, привлекательности объекта для инвестиций, распознавание подписи) и третий, смешанный тип, который можно назвать задачей динамической классификации, - анализ и выявление аномалий в поведении объекта во времени (прежде всего, это задача обнаружения злоупотреблений с пластиковыми карточками). На основании многочисленных публикаций нерекламного характера можно сделать вывод, что нейронные сети позволили добиться серьезных успехов в решении всех перечисленных задач. Примеры этому читателям "Банковских технологий" известны (№№ 3, 6 за 1995 г., № 1 за 1996 г.). Сейчас уже ни одна серьезная финансовая структура на Западе не обходится без использования нейросетевых методов в аналитической работе.

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

Мне думается, что истина в этом вопросе лежит где-то посередине, и решающая роль в отборе информации, на основании которой будет строиться прогноз, принадлежит не компьютерной программе, а человеку с его пониманием сути экономических процессов и опытом работы на финансовом рынке (хотя программа - та же нейронная сеть - может ему в этом помочь). Вот пример такого правильного решения, определившего финансовый успех (взят из ноябрьского номера за 1996 г. журнала "Communications of the ACM", целиком посвященного Data Mining). Действующее лицо: компания Carlberg & Associates; прогнозируется индекс S&P 500; данные, на которых строится прогноз: процентные ставки, показатели прибыли, дивиденды, долларовый индекс, цена на нефть; метод прогноза: нейронная сеть; результат: предсказано 96% изменений индекса за период 1986-1995 гг.

У этого вопроса есть еще один интересный и редко обсуждаемый аспект. Мировая (и отечественная) элита финансовых трейдеров при принятии решений активно пользуется не только числовой, но и текстовой информацией - сообщениями (открытыми и конфиденциальными, и даже слухами) о состоянии дел в той или иной структуре, действиях конкретных лиц и т.п. Сейчас такую информацию способен обрабатывать только человек. Вот простейшая ситуация, на которой видна сложность задачи: никакого труда не составит извлечь из потока новостей все сообщения, касающиеся, к примеру, некоторого политического деятеля, но как научить программу выделить те из них, где о нем говорится, скажем, в одобрительном плане? Насколько мне известно, лучшие умы в области искусственного интеллекта брошены сейчас именно на эту задачу, и тех, кто первым сумеет существенно продвинуться в ее решении, очевидно, ждет большой успех.

Несколько слов о моем личном опыте решения задач с помощью нейросетевых методов. Я использовал программу Neural Connection - совместную разработку фирм SPSS и Recognition Systems. Чтобы объективно оценить ее возможности, я сознательно взял совершенно невыигрышную задачу: прогноз остатков на расчетных счетах клиентов в филиале банка. Высказывания относительно нее ведущих отечественных и зарубежных авторитетов в области анализа финансовых временных рядов колеблются от "очень неприятная" до "безнадежная". Расчеты проводились на реальных данных. На первом графике красным цветом показан прогноз, построенный по обучающим (синий) и валидационным (зеленый) данным. Разумеется, на этом подмножестве данных качество прогноза обязано быть достаточно высоким. Кстати говоря, в рекламных материалах часто приводятся только графики такого типа. На втором графике представлен прогноз (красный цвет), построенный уже по новым (голубой) данным, т.е. таким данным, которые сеть не видела при обучении. Как видно, прогноз получился вполне осмысленным - и это, повторяю, когда структура временного ряда очень плохая и альтернативные статистические методы практически не работают.

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

Как можно было бы в целом оценить роль нейросетевых методов в задачах анализа финансовых данных? Мне кажется, здесь стоит избегать крайностей. Нейросети - не мыльный пузырь, но и не чудодейственное средство. Это инструмент - простой, удобный в работе, хорошо дополняющий известные методы статистики, и при его умелом использовании можно получать хорошие результаты. То, что определенный инструментарий нужен, жизнь доказала неопровержимо, и могут вызвать лишь удивление еще сохранившиеся кое-где в банковской сфере представления, что все проблемы можно решить с помощью электронных таблиц. Нейросетевые пакеты должны быть в компьютере (а книги по нейронным сетям - на книжной полке) у каждого серьезного финансового аналитика.