Глава 13. Нейронные сети13.1. Архитектура нейронных сетейПовседневная практика финансовых рынков находится в интересном противоречии с академической точкой зрения, согласно которой изменения цен финансовых активов происходят мгновенно, без каких-либо усилий эффективно отражая всю доступную информацию. Существование сотен маркет-мейкеров, трейдеров и фондовых менеджеров, работа которых состоит в том, чтобы делать прибыль, говорит о том, что участники рынка вносят определенный вклад в общую информацию. Более того, так как эта работа стоит дорого, то и объем привнесенной информации должен быть значительным. Существование сотен маркет-мейкеров, трейдеров и фондовых менеджеров на финансовых рынках говорит о том, что все они обрабатывают финансовую информацию и принимают решения. Труднее ответить на вопрос о том, как конкретно на финансовых рынках возникает и используется информация, которая может приносить прибыль. Исследования почти всегда показывают, что никакая устойчивая стратегия торговли не дает постоянной прибыли, и это, во всяком случае, так, если учитывать еще и расходы на совершение сделок. Хорошо известно также, что участники рынка (и весь рынок в целом) могут принимать совершенно различные решения исходя из сходной или даже неизменной информации. Участники рынка в своей работе, по-видимому, не ограничиваются линейными состоятельными правилами принятия решений, а имеют в запасе несколько сценариев действий, и то, какой из них пускается в ход, зависит подчас от внешних незаметных признаков. Один из возможных подходов к многомерным и зачастую нелинейным информационным рядам финансового рынка заключается в том, чтобы по возможности подражать образцам поведения участников рынка, используя такие методы искусственного интеллекта, как экспертные системы или нейронные сети. На моделирование процессов принятия решений этими методами было потрачено много усилий. Оказалось, однако, что экспертные системы в сложных ситуациях хорошо работают лишь тогда, когда системе присуща внутренняя стационарность (т.е. когда на каждый входной вектор имеется единственный не меняющийся со временем ответ). Под такое описание в какой-то степени подходят задачи комплексной классификации или распределения кредитов, но оно представляется совершенно неубедительным для финансовых рынков с их непрерывными структурными изменениями. В случае с финансовыми рынками едва ли можно утверждать, что можно достичь полного или хотя бы в определенной степени адекватного знания о данной предметной области, в то время как для экспертных систем с алгоритмами, основанными на правилах, это - обычное требование. Нейронные сети предлагают совершенно новые многообещающие возможности для банков и других финансовых институтов, которым по роду своей деятельности приходится решать задачи в условиях небольших априорных знаний о среде. Характер финансовых рынков драматическим образом меняется с тех пор, как вследствие ослабления контроля, приватизации и появления новых финансовых инструментов национальные рынки слились в общемировые, а в большинстве секторов рынка возросла свобода финансовых операций. Очевидно, что сами основы управления риском и доходом не могли не претерпеть изменений, коль скоро возможности диверсификации и стратегии защиты от риска изменились до неузнаваемости. Одной из сфер применения нейронных сетей для ряда ведущих банков стала проблема изменений позиции доллара США на валютном рынке при большом числе неизменных объективных показателей. Возможности такого применения облегчаются тем, что имеются огромные базы экономических данных, - ведь сложные модели всегда прожорливы в отношении информации. Котировки облигаций и арбитраж - еще одна область, где задачи расширения и сужения риска, разницы в процентных ставках и ликвидности, глубины и ликвидности рынка являются благоприятным материалом для мощных вычислительных методов. Еще одной проблемой, значение которой в последнее время возрастает, является моделирование потоков средств между институциональными инвесторами. Падение процентных ставок сыграло решающую роль в повышении привлекательности инвестиционных фондов открытого типа и индексных фондов, а наличие опционов и фьючерсов на их акции позволяет приобретать их с полной или частичной гарантией. Очевидно, что задача оптимизации в условиях, когда число частичных ограничений равновесия бесконечно (например, на фьючерсном и наличном рынке любого товара в любом секторе рынка играют роль перекрестные разности процентных ставок), становится проблемой чрезвычайной сложности, все более выходящей за рамки возможностей любого трейдера. В таких обстоятельствах трейдеры и, следовательно, любые системы, стремящиеся описать их поведение, в каждый момент времени должны будут сосредоточивать внимание на уменьшении размерности задачи. Хорошо известно такое явление, как ценная бумага повышенного спроса. Когда речь идет о финансовом секторе, можно с уверенностью утверждать, что первые результаты, полученные при применении нейронных сетей, являются весьма обнадеживающими, и исследования в этой области нужно развивать. Как это уже было с экспертными системами, может потребоваться несколько лет, прежде чем финансовые институты достаточно уверятся в возможностях нейронных сетей и станут использовать их на полную мощность. Характер разработок в области нейронных сетей принципиально отличается от экспертных систем: последние построены на утверждениях типа «если..., то...», которые нарабатываются в результате длительного процесса обучения системы, а прогресс достигается, главным образом, за счет более удачного использования формально-логических структур. В основе нейронных сетей лежит преимущественно-поведенческий подход к решаемой задаче: сеть «учится на примерах» и подстраивает свои параметры при помощи так называемых алгоритмов обучения через механизм обратной связи.^ РАЗЛИЧНЫЕ ВИДЫ ИСКУССТВЕННЫХ НЕЙРОНОВ Искусственным нейроном (рис. 12.1) называется простой элемент, сначала вычисляющий взвешенную сумму V входных величин Xj N __ у= ∑ Wixi =Wixi i=l Здесь N- размерность пространства входных сигналов. Затем полученная сумма сравнивается с пороговой величиной (или bias) wo, вслед за чем вступает в действие нелинейная функция активации f (ее можно также охарактеризовать как «решающую функцию»). Коэффициенты {W,} во взвешенной сумме (1) обычно называют синаптическими коэффициентами или весами. Саму же взвешенную сумму V мы будем называть потенциалом нейрона i. Выходной сигнал тогда имеет вид f(v) Величину порогового барьера можно рассматривать как еще один весовой коэффициент при постоянном входном сигнале. В этом случае мы говорим о расширенном входном пространстве: нейрон с N -мерным входом имеет N+ I весовой коэффициент. Если ввести в уравнение пороговую величину WO, оно перепишется так:в зависимости от способа преобразования сигнала и характера функции активации возникают различные виды нейронных структур. Мы будем рассматривать только детерминированные нейроны (в противоположность вероятностным нейронам, состояние которых в момент t есть случайная функция потенциала и состояния в момент (t-l). Далее, мы будем различать статические нейроны - такие, в которых сигнал передается без задержки,- и динамические, где учитывается возможность таких задержек, учитывается ( Входы Синапсы Ячейка Аксон Выход нейрона уРис.13.1.Искусственный нейрон^ РАЗЛИЧНЫЕ ВИДЫ ФУНКЦИИ АКТИВАЦИИ Функции активации f могут быть различных видов: линейная: выходной сигнал нейрона равен его потенциалу, ступенчатая: нейрон принимает решение, выбирая один из двух вариантов (активен/неактивен), линейная с насыщением: нейрон выдает значения, промежуточные между двумя предельными значениями А и В многопороговая: выходной сигнал может принимать одно из q значений, определяемых (q -1) порогом внутри предельных значений А и В, сигмоидная: рассматриваются два вида сигмоидных функций: 1________ s = f(V) = 1 +ехр(-bУ)с выходными значениями в промежутке (0,1) и s = f(V) = exp(bY)-1 ехр(by) + 1с выходными значениями от -1 до 1.Коэффициент Ь определяет крутизну сигмоида. Поскольку сигмоидная функция является гладким отображением (∞; +∞)~(0,I), крутизну b можно учесть через величины весов и порогов, и без ограничения общности можно полагать ее равной единице. Возможно, также определить нейроны без насыщения, принимающие на выходе непрерывное множество значений. В задачах классификации выходное значение может определяться порогом - при принятии единственного решения,- или быть вероятностным - при определении принадлежности к классу. Чтобы учесть особенности конкретной задачи, могут быть выбраны различные другие виды функции активации - гауссова, синусоидальная, всплески (wavelets) и т.д.^ НЕЙРОННЫЕ СЕТИ С ПРЯМОЙ СВЯЗЬЮМы будем рассматривать два вида нейронных сетей: статические, которые также часто называют сетями с прямой связью (feed-forward), и динамические, или рекуррентные сети. В этом разделе мы займемся статическими сетями. Сети других видов будут кратко рассмотрены позднее. Нейронные сети с прямой связью состоят из статических нейронов, так что сигнал на выходе сети появляется в тот же момент, когда подаются сигналы на вход. Организация (топология) сети может быть различной. Если не все составляющие ее нейроны являются выходными, говорят, что сеть содержит скрытые нейроны. Наиболее общий тип архитектуры сети получается в случае, когда все нейроны связаны друг с другом (но без обратных связей). В конкретных задачах нейроны обычно бывают сгруппированы в слои. На рис. 13.2 показана типовая схема нейронной сети с прямой связью с одним скрытым слоем.Выходные элементыСкрытые элементыВходные элементы^ Рис. 13.2. Нейронная сеть с прямой связью с одним скрытым слоем (пopoгu не отмечены) Интересно отметить, что, согласно теоретическим результатам, нейронные сети с прямой связью и с сигмоидными функциями являются универсальным средством для приближения (аппроксимации) функций. Говоря точнее, любую вещественнозначную функцию нескольких переменных на компактной области определения можно сколь угодно точно приблизить с помощью трехслойной сети. При этом правда, мы не знаем ни размеров сети, которая для этого потребуется, ни значений весов. Более того, из доказательства этих результатов видно, что число скрытых элементов неограниченно возрастает при увеличении точности приближения. Сети с прямой связью, действительно, могут служить универсальным средством для аппроксимации, но нет никакого правила, позволяющего найти оптимальную топологию сети для данной задачи. Таким образом, задача построения нейронной сети является нетривиальной. Вопросы о том, сколько нужно взять скрытых слоев, сколько элементов в каждом из них, сколько связей и какие обучающие параметры, в имеющейся литературе, как правило, трактуются облегченно.^ 13.2. Алгоритмы обучения нейронных сетейНа этапе обучения происходит вычисление синаптических коэффициентов в процессе решения нейронной сетью задач (классификации, предсказания временных рядов и др.), в которых нужный ответ определяется не по правилам, а с помощью примеров, сгруппированных в обучающие множества. Такое множество состоит из ряда примеров с указанным для каждого из них значением выходного параметра, которое было бы желательно получить. Действия, которые при этом происходят, можно назвать контролируемым обучением: «учитель» подает на вход сети вектор исходных данных, а на выходной узел сообщает желаемое значение результата вычислений. Контролируемое обучение нейронной сети можно рассматривать как решение оптимизационной задачи. Ее целью является минимизация функции ошибок, или невязки, она данном множестве примеров путем выбора значений весов W^ КРИТЕРИИ ОШИБОК Целью процедуры минимизации является отыскание глобального минимума - достижение его называется сходимостью процесса обучения. Поскольку невязка зависит от весов нелинейно, получить решение в аналитической форме невозможно, и поиск глобального минимума осуществляется посредством итерационного процесса - так называемого обучающего алгоритма, который исследует поверхность невязки и стремится обнаружить на ней точку глобального минимума. Обычно в качестве меры погрешности берется средняя квадратичная ошибка (MSE), которая определяется как сумма квадратов разностей между желаемой величиной выхода dk и реально полученными на сети значениями Yk для каждого примера k.Здесь р- число примеров в обучающем множестве. Наряду с такой мерой погрешности широко используется расстояние Кульбака-Лейблера, связанное с критерием максимума правдоподобия:а также некоторые другие.Минимизация величины Е осуществляется с помощью градиентных методов. В первом из них берется градиент общей ошибки, и веса W пересчитываются каждый раз после обработки всей совокупности обучающих примеров (Здесь 10 - определяемый пользователем параметр, который называется величиной градиентного шага или коэффициентом обучения. Другой возможный метод носит название стохастического градиентного. В нем веса пересчитываются после каждого просчета всех примеров из одного обучающего множества, и при этом используется частичная функция стоимости, соответствующая этому, например k-MY, множеству^ ОБРАТНОЕ РАСПРОСТРАНЕНИЕ ОШИБКИРассмотрим теперь наиболее распространенный алгоритм обучения нейронных сетей с прямой связью - алгоритм обратного распространения ошибки (Backpropagation, ВР), представляющий собой развитие так называемого обобщенного дельта-прав WIG. Этот алгоритм был заново открыт и популяризирован в 1986 г. Ру-мельхартом и МакКлеландом из знаменитой Группы по изучению параллельных распределенных процессов в Массачусетском технологическом институте. В этом пункте мы более подробно рассмотрим математическую суть алгоритма. Он является алгоритмом градиентного спуска, минимизирующим суммарную квадратичную ошибкуЗдесь индекс i пробегает все выходы многослойной сети. Основная идея ВР состоит в том, чтобы вычислять чувствительность ошибки сети к изменениям весов. Для этого нужно вычислить частные производные от ошибки по весам. Пусть обучающее множество состоит из Р образцов, и входы k-гo образца обозначены через {х l}. Вычисление частных производных осуществляется по правилу цепи: вес входа i-гo нейрона, идущего от j-гo нейрона, пересчитывается по формулегде 1:: - длина шага в направлении, обратном к градиенту. Если рассмотреть отдельно k-й образец, то соответствующее изменение весов равно Множитель O~ вычисляется через аналогичные множители из после дующего слоя, и ошибка, таким образом, передается в обратном направлении. Для выходных элементов мы получаем:Для скрытых элементов множитель 0k определяется так:( 13.13)с учетом того, что (13.14) получаем: (13.15) где индекс h пробегает номера всех нейронов, на которые воздействует i-й нейрон. Данный алгоритм используется в двух вариантах. В стохастическом варианте веса пересчитываются каждый раз после просчета очередного образца, а в «эпохальном», или off-line варианте, веса меняются после просчета всего обучающего множества.ИМПУЛЬС Другой часто применяемый прием состоит в том, что при определении направления поиска к текущему градиенту добавляется поправка - вектор смещения предыдущего шага, взятый с некоторым коэффициентом. Можно сказать, что учитывается уже имеющийся импульс движения. Окончательная формула для изменения весов выглядит так: где 11- число в интервале (0,1), которое задается пользователем. Часто значенией волевым образом задается равным 0.9, безотносительно к специфике задачи и архитектуре сети. Нужно отметить, что метод импульса очень чувствителен к способу упорядочения примеров в обучающем множестве. Если подряд попал ось несколько примеров из одного класса, импульс станет очень большим, и это нарушит ход процесса обучения. Сказанное еще раз свидетельствует о. необходимости предварительного случайного упорядочения обучающего множества.^ ДРУГИЕ АЛГОРИТМЫ ОБУЧЕНИЯНаконец, в последнее время пользуются успехом так называемые генетические алгоритмы, в которых набор весов рассматривается как ИНДИВИД, подверженный мутациям и скрещиванию, а в качестве показателя его «качества» берется критерий ошибки. По мере того как нарождаются новые поколения, все более вероятным становится появление оптимального индивида.ШУМ в финансовых приложениях данные зашумлены особенно сильно. Например, совершение сделок может регистрироваться в базе данных с запозданием, причем в разных случаях- с разным. Про пуск значений или неполную информацию также иногда рассматривают как шум: в таких случаях берется среднее или наилучшее значение, и это, конечно, приводит к зашумлению базы данных. Отрицательно сказывается на обучении неправильное определение класса объекта в задачах распознавания - это ухудшает способность системы к обобщению при работе с новыми (т.е. не входившими в число образцов) объектами.^ ПЕРЕКРЕСТНОЕ ПОДТВЕРЖДЕНИЕ Для того чтобы устранить произвол в разбиении базы данных, могут быть применены методы повторных проб. Рассмотрим один из таких методов, который называется перекрестным подтверждением. Его идея состоит в том, чтобы случайным образом разбить базу данных на q попарно непересекающихся подмножеств. Затем производится q обучений на (q -1) множестве, а ошибка вычисляется по оставшемуся множеству. Если q достаточно велико, например, равно 10, каждое обучение задействует большую часть исходных данных. Если процедура обучения надежна, то результаты по q различным моделям должны быть очень близки друг к другу. После этого итоговая характеристика определяется как среднее всех полученных значений ошибки. К сожалению, при применении этого метода объем вычислений часто оказывается очень большим, так как требуется проделать q обучений, и в реальном приложении с большей размерностью это может быть невыполнимо. В предельном случае, когда q = Р, где Р - общее число примеров, метод называется пере крестным подтверждением с одним востатке. Такой метод оценки имеет смещение, и разработан метод» складного ножа», уменьшающий этот недостаток ценой еще большего объема вычислений.^ 13.3. Динамические сетиСледующий класс нейронных сетей, который мы рассмотрим, - динамические или рекуррентные, сети. Они построены из динамических нейронов, чье поведение описывается дифференциальными или разностными уравнениями, как правило, первого порядка. Сеть организована так, что каждый нейрон получает входную информацию от других нейронов (возможно, и от себя самого) и из окружающей среды. Этот тип сетей имеет важное значение, так как с его помощью можно моделировать нелинейные динамические системы. Это - весьма общая модель, которую потенциально можно использовать в самых разных приложениях, например: ассоциативная память, нелинейная обработка сигналов, моделирование конечных автоматов, идентификация систем, задачи управления.^ Нейронные сети с временной задержкой Перед тем, как описать собственно динамические сети, рассмотрим, как сеть с прямой связью используется для обработки временных рядов. Метод состоит в том, чтобы разбить временной ряд на несколько отрезков и получить, таким образом, статистический образец для подачи на вход многослойной сети с прямой связью. Это осуществляется с помощью, так называемой разветвленной линии задержки (см. рис. 13.3). y(t)X(t)Рис.13.3. Нейронная сеть с временной задержкой Архитектура такой нейронной сети с временной задержкой позволяет моделировать любую конечную временную зависимость вида: y(t) = F[ x(t), x(t - 1), ..., х(у - k)]. (13.17) Поскольку рекуррентные связи отсутствуют, такая сеть может быть обручена при помощи стандартного алгоритма обратного распространения ошибки или какого-то из его многочисленных вариантов. Сети такой конструкции успешно применялись в задачах распознавания речи, предсказания нелинейных временных рядов и нахождения закономерностей в хаосе.^ СЕТИ ХОПФИЛДА С помощью рекуррентных сетей Хопфилда можно обрабатывать неупорядоченные (рукописные буквы), упорядоченные во времени (временные ряды) или пространстве (графики, грамматики) образцы (рис. 13.4). Рекуррентная нейронная сеть простейшего вида введена Хопфилдом; она построена из N нейронов, связанных каждый с каждым, причем все нейроны являются выходными. Сети такой конструкции используются, главным образом, в качестве ассоциативной памяти, а также в задачах нелинейной фильтрации данных и грамматического вывода. Кроме этого, недавно они были применены для предсказывания и для распознавания закономерностей в поведении цен акций.ВходыРис. 13.4. Сеть Холфилда13.4. Самоорганизующиеся сетиВведенную Кохоненом «самоорганизующуюся карту признаков)} можно рассматривать как вариант нейронной сети. Сеть такого типа рассчитана на самостоятельное обучение: во время обучения сообщать ей правильные ответы необязательно. В процессе обучения на вход сети подаются различныеобразцы. Сеть улавливает особенности их структуры и разделяет образцы на кластеры, а уже полученная сеть относит каждый вновь поступающий пример к одному из кластеров, руководствуясь некоторым критерием «близости". Сеть состоит из одного входного и одного выходного слоя. Количество элементов в выходном слое непосредственно определяет, сколько кластеров сеть может распознавать. Каждый из выходных элементов получает на вход весь входной вектор. Как и во всякой нейронной сети, каждой связи приписан некоторый синоптический вес. В большинстве случаев каждый выходной элемент соединен также со своими соседями. Эти внутренние связи играют важную роль в процессе обучения, так как корректировка весов происходит только в окрестности того элемента, который наилучшим образом откликается на очередной вход. Выходные элементы соревнуются между собой за право вступить в действие и «получить урок». Выигрывает тот из них, чей вектор весов окажется ближе всех к входному вектору в смысле расстояния, определяемого, например, евклидовой метрикой. У элемента-победителя это расстояние будет меньше, чем у всех остальных. На текущем шаге обучения менять веса разрешается только элементу-победителю (и, может быть, его непосредственным соседям); веса остальных элементов при этом как бы заморожены. Выигравший элемент заменяет свой весовой вектор, немного перемещая его в сторону входного вектора. После обучения на достаточном количестве примеров совокупность весовых векторов с большей точностью приходит в соответствие со структурой входных примеров - векторы весов в буквальном смысле моделируют распределение входных образцов.Puc.l3.5. Самоорганизующаяся сеть Кохонена. Изображены только связи, идущие в i-u узел. Окрестность узла показана пунктиром Очевидно, для правильно го понимания сетью входного распределения нужно, чтобы каждый элемент сети становился победителем одинаковое число раз - весовые векторы должны быть равновероятными. Перед началом работы сети Кохонена нужно сделать две вещи: векторы величины должны быть случайно распределены по единичной сфере; все весовые и входные векторы должны быть нормированы на единицу. 13.5. Сеть со встречным распространениемСеть со встречным распространением (CPN, Counterpropagation Network) соединяет в себе свойства самоорганизующейся сети Кохонена и концепцию Oustar - сети Гроссберга. В рамках этой архитектуры элементы слоя сети Кохонена не имеет прямо го выхода во внешний мир, а служат входами для выходного слоя, в котором связям адаптивно придаются веса Гроссберга. Эта схема возникла из работ Хехта - Нильсена. CPN-сеть нацелена на постепенное построение искомого отображения входов в выходы на основе примеров действия такого отображения. Сеть хорошо решает задачи, где требуется способность адаптивно строить математическое отражение по его точным значениям в отдельных точках. Сети данного вида успешно применяются в таких финансовых и экономических приложениях, как рассмотрение заявок на предоставление займов, предсказание трендов цен акций, товаров и курсов обмена валют. Говоря обобщенно, можно ожидать успешного применения СРN-сетей в задачах, где требуется извлекать знания из больших объемов данных.^ ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ НЕЙРОННЫХ СЕТЕЙ ДЛЯ ЗАДАЧ КЛАССИФИКАЦИИ (КЛАСТЕРИЗАЦИИ) Решение задачи классификации является одним из важнейших применений нейронных сетей. Задача классификации представляет собой задачу отнесения образца к одному из нескольких попарно непересекающихся множеств. Примером таких задач может быть, например, задача определения кредитоспособности клиента банка, медицинские задачи, в которых необходимо определить, например, исход заболевания, решение задач управления портфелем ценных бумаг (продать, купить или «придержать» акции в зависимости от ситуации на рынке), задача определения жизнеспособных несклонных к банкротству фирм.^ ЦЕЛЬ КЛАССИФИКАЦИИ При решении задач классификации необходимо отнести имеющиеся статические образцы (характеристики ситуации на рынке, данные медосмотра, информация о клиенте) к определенным классам. Возможны несколько способов представления данных. Наиболее распространенным является способ, при котором образец представляется вектором. Компоненты этого вектора представляют собой различные характеристики образца, которые влияют на принятие решения о том, к какому классу можно отнести данный образец. Например, для медицинских задач в качестве компонентов этого вектора могут быть данные из медицинской карты больного. Таким образом, на основании некоторой информации о примере, необходимо определить, к какому классу его можно отнести. Классификатор таким образом относит объект к одному из классов в соответствии с определенным разбиением N-мерного пространства, которое называется пространством входов, и размерность этого пространства является количеством компонент вектора. Прежде всего, нужно определить уровень сложности системы. В реальных задачах часто возникает ситуация, когда количество образцов ограниченно, что осложняет определение сложности задачи. Возможно вы делить три основных уровня сложности. Первый (самый простой) - когда классы можно разделить прямыми линиями (или гиперплоскостями, если пространство входов имеет размерность больше двух) - так называемая линейная разделимость. Во втором случае классы невозможно разделить линиями (плоскостями), но их, возможно, отделить с помошью более сложного деления - нелинейная разделимость. В третьем случае классы пересекаются, и можно говорить только о вероятностной разделимости.^ Рис.13.б. Линейно и нелинейно разделимые классыВ идеальном варианте после предварительной обработки мы должны получить линейно разделимую задачу, так как после этого значительно упрощается построение классификатора. К сожалению, при решении реальных задач мы имеем ограниченное количество образцов, на основании которых и производится построение классификатора. При этом мы не можем провести такую предобработку данных, при которой будет достигнута линейная разделимость образцов.^ ИСПОЛЬЗОВАНИЕ НЕЙРОННblХ СЕТЕЙ В КАЧЕСТВЕ КЛАССИФИКАТОРА Сети с прямой связью являются универсальным средством аппроксимации функций, что позволяет их использовать в решении задач классификации. Как правило, нейронные сети оказываются наиболее эффективным способом классификации, потому что генерируют фактически большое число регрессионных моделей (которые используются в решении задач классификации статистическими методами). К сожалению, в применении нейронных сетей в практических задачах возникает ряд проблем. Во-первых, заранее не известно, какой сложности (размера) может потребоваться сеть для достаточно точной реализации отображения. Эта сложность может оказаться чрезмерно высокой, что потребует сложной архитектуры сетей. Так, Минский в своей работе «Персептроны» доказал, что простейшие однослойные нейронные сети способны решать только линейно разделимые задачи. Это ограничение преодолимо при использовании многослойных нейронных сетей. В общем виде можно сказать, что в сети с одним скрытым слоем вектор, соответствующий входному образцу, преобразуется скрытым слоем в некоторое новое пространство, которое может иметь другую размерность, а затем гиперплоскости, соответствующие нейронам выходного слоя, разделяют его на классы. Таким образом, сеть распознает не только характеристики исходных данных, но и «характеристики характеристик», сформированные скрытым слоем.^ ПОДГОТОВКА ИСХОДНЫХ ДАННЫХ Для построения классификатора необходимо определить, какие параметры влияют на принятие решения о том, к какому классу принадлежит образец. При этом могут возникнуть две проблемы. Во-первых, если количество параметров мало, то может возникнуть ситуация, при которой один и тот же набор исходных данных соответствует примерам, находящимся в разных классах. Тогда невозможно обучить нейронную сеть, и система не будет корректно работать (невозможно найти минимум, который соответствует такому набору исходных данных). Исходные данные обязательно должны быть непротиворечивы. Для решения этой проблемы необходимо увеличить размерность пространства признаков (количество компонент входного вектора, соответствующего образцу). Но при увеличении размерности пространства признаков может возникнуть ситуация, когда число примеров может стать недостаточным для обучения сети, и она вместо обобщения просто запомнит примеры из обучающей выборки и не сможет корректно функционировать. Таким образом, при определении признаков необходимо найти компромисс с их количеством. Далее необходимо определить способ представления входных данных для нейронной сети, Т.е. определить способ нормирования. Нормировка необходима, поскольку нейронные сети работают с данными, представленными числами в диапазоне 0..1, а исходные данные могут иметь произвольный диапазон или вообще быть нечисловыми данными. При этом возможны различные способы, начиная от простого линейного преобразования в требуемый диапазон и заканчивая многомерным анализом параметров и нелинейной нормировкой в зависимости от влияния параметров друг на друга.^ КОДИРОВАНИЕ ВЫХОДНЫХ ЗНАЧЕНИЙ Задача классификации при наличии двух классов может быть решена на сети с одним нейроном в выходном слое, который может принимать одно из двух значений 0 или 1 в зависимости от того, к какому классу принадлежит образец. При наличии нескольких классов возникает проблема, связанная с представлением этих данных для выхода сети. Наиболее простым способом представления выходных данных в таком случае является вектор, компоненты которого соответствуют различным номерам классов. При этом i-я компонента вектора соответствует i-му классу. Все остальные компоненты при этом устанавливаются в О. Тогда, например, второму классу будет соответствовать 1 на 2 выходе сети и 0 на остальных. При интерпретации результата обычно считается, что номер класса определяется номером выхода сети, на котором появилось максимальное значение. Например, если в сети с тремя выходами, мы имеем вектор выходных значений (0,2; 0,6; 0,4), и видим, что максимальное значение имеет вторая компонента вектора, значит класс, к которому относится этот пример, - 2. При таком способе кодирования иногда вводится также понятие уверенности сети в том, что пример относится к этому классу. Наиболее простой способ определения уверенности заключается в определении разности между максимальным значением выхода и значением другого выхода, которое является ближайшим к максимальному. Например, для рассмотренного выше примера уверенность сети в том, что пример относится ко второму классу, определится как разность между второй и третьей компонентой вектора и равна 0.6-0.4=0.2. Соответственно, чем выше уверенность, тем больше вероятность того, что сеть дала правильный ответ. Этот метод кодирования является самым простым, но не всегда самым оптимальным способом представления данных. Известны и другие способы. Например, выходной вектор представляет собой номер кластера, записанный в двоичной форме. Тогда при наличии 8 классов нам потребуется вектор из 3 элементов, и, скажем, 3 классу будет соответствовать вектор 011. Но при этом в случае получения неверного значения на одном из выходов мы можем получить неверную классификацию (неверный номер кластера), поэтому имеет смысл увеличить расстояние между двумя кластерами за счет использования кодирования выхода по коду Хемминга, который повысит надежность классификации. Другой подход состоит в разбиении задачи с k классами на k*(k-I)/2 подзадач с двумя классами (2 на 2 кодирование) каждая. Под подзадачей в данном случае понимается то, что сеть определяет наличие одной из компонент вектора. Т.е. исходный вектор разбивается на группы по два компонента в каждой таким образом, чтобы в них вошли все возможные комбинации компонент выходного вектора. Число этих групп можно определить как количество неупорядоченных выборок по два из исходных компонентТогда, например, для задачи с четырьмя классами мы имеем 6 выходов (подзадач), распределенных следующим образом: №подзадач и (выхода) Компоненты выхода 1 1-2 2 1-3 3 1-4 4 2-3 5 2-4 6 3-4 Где 1 на выходе говорит о наличии одной из компонент. Тогда мы можем перейти к номеру класса по результату расчета сетью следующим образом: определяем, какие комбинации получили единичное (точнее близкое к единице) значение выхода (т.е. какие подзадач и у нас активировались), и считаем, что номер класса будет тот, который вошел в наибольшее количество активированных подзадач (см. таблицу). № класса Акт. выходы 1 1,2,3 2 1,4,5 3 2,4,6 5 3,5,6 Это кодирование во многих задачах дает лучший результат, чем классический способ кодирования.^ ВЕРОЯТНОСТНАЯ КЛАССИФИКАЦИЯ При статистическом распознавании образов оптимальный классификатор относит образец xJ. к классу С, руководствуясь решающим правилом Байеса. Для двух классов оно выглядит так: V отнести хК к С\, если р{с.I.I}>р{с21 хК}, V отнести f к С2, если Р{С. I.I} Смысл правила простой: образец f относится к группе, имеющей наибольшую апостериорную вероятность. Это правило оптимально в том смысле, что оно минимизирует среднее число неправильных классификаций. Ес ли имеется такая пара функций {q>z(x)}, что выполнены условия: Р{С2 I х }, то байесовское соотношение между априорной и апостериорной вероятностью сохраняет силу, и поэтому эти функции можно использовать в качестве упрощенных решающих функций. Так имеет смысл дела