Сети Кохонена

Распознавание сетью структуры данных. Решение задач классификации в сетях Кохонена. Использование доверительных уровней (порогов принятия и отвержения) для интерпретации выходных значений в пакете ST Neural Networks. Границы диапазона для переменной.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 21.10.2014
Размер файла 65,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

1. Сеть Кохонена

сеть кохонен интерпретация

Сети Кохонена принципиально отличаются от всех других типов сетей, реализованных в пакете ST Neural Networks. В то время как все остальные сети предназначены для задач с управляемым обучением, сети Кохонена главным образом рассчитана на неуправляемое обучение (Kohonen, 1982; Haykin, 1994; Patterson, 1996; Fausett, 1994).

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

На первый взгляд это может показаться странным. Как сеть сможет чему-то научиться, не имея выходных значений? Ответ заключается в том, что сеть Кохонена учится понимать саму структуру данных.

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

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

Сеть Кохонена имеет всего два слоя: входной и выходной, составленный из радиальных элементов (выходной слой называют также слоем топологической карты). Элементы топологической карты располагаются в некотором пространстве - как правило двумерном (в пакете ST Neural Networks реализованы также одномерные сети Кохонена).

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

Помимо того, что уже сказано, в результате итеративной процедуры обучения сеть организуется таким образом, что элементы, соответствующие центрам, расположенным близко друг от друга в пространстве входов, будут располагаться близко друг от друга и натопологической карте. Топологический слой сети можно представлять себе как двумерную решетку, которую нужно так отобразить в N-мерное пространство входов, чтобы по возможности сохранить исходную структуру данных. Конечно же, при любой попытке представить N-мерное пространство на плоскости будут потеряны многие детали; однако, такой прием иногда полезен, так как он позволяет пользователю визуализировать данные, которые никаким иным способом понять невозможно. Основной итерационный алгоритм Кохонена последовательно проходит одну за другой ряд эпох, при этом на каждой эпохе он обрабатывает каждый из обучающих примеров, и затем применяет следующий алгоритм:

Выбрать выигравший нейрон (то есть тот, который расположен ближе всего к входному примеру);

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

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

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

Результатом такого изменения окрестностей является то, что изначально довольно большие участки сети "перетягиваются" - и притом заметно - в сторону обучающих примеров. Сеть формирует грубую структуру топологического порядка, при которой похожие наблюдения активируют группы близко лежащих нейронов на топологической карте. С каждой новой эпохой скорость обучения и размер окрестности уменьшаются, тем самым внутри участков карты выявляются все более тонкие различия, что в конце концов приводит к тонкой настройке каждого нейрона. Часто обучение умышленно разбивают на две фазы: более короткую, с большой скоростью обучения и большими окрестностями, и более длинную с малой скоростью обучения и нулевыми или почти нулевыми окрестностями.

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

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

Идея сети Кохонена возникла по аналогии с некоторыми известными свойствами человеческого мозга. Кора головного мозга представляет собой большой плоский лист (площадью около 0.5 кв.м.; чтобы поместиться в черепе, она свернута складками) с известными топологическими свойствами (например, участок, ответственный за кисть руки, примыкает к участку, ответственному за движения всей руки, и таким образом все изображение человеческого тела непрерывно отображается на эту двумерную поверхность).

2. Решение задач классификации в пакете ST Neural Networks

В задаче классификации сеть должна отнести каждое наблюдение к одному из нескольких классов (или, в более общем случае, оценить вероятность принадлежности наблюдения к каждому из классов). В пакете ST Neural Networks для классификации используется номинальная выходная переменная - различные ее значения соответствуют различным классам.

В пакете ST Neural Networks классификацию можно осуществлять с помощью сетей следующих типов: многослойного персептрона, радиальной базисной функции, сети Кохонена, вероятностной нейронной сети и линейной сети. Единственная из сетей пакета ST Neural Networks, не предназначенная для задач классификации, - это обобщенно-регрессионная сеть (на самом деле, если Вы потребуете, GRNNs будет пытаться это сделать, но мы этого не рекомендуем).

Номинальные переменные представляются в пакете ST Neural Networks в одном из двух видов (первый из них годится только для переменных с двумя значениями): 1) бинарном (два состояния) и 2) один-из-N. При бинарном представлении переменной соответствует один узел сети, при этом значение 0.0 означает активное состояние, а 1.0 - неактивное. При кодировании 1-из-N на каждое состояние выделяется один элемент, так что каждое конкретное состояние представляется как 1.0 в соответствующем элементе и 0.0 во всех других.

Номинальные входные переменные в пакете ST Neural Networks могут быть преобразованы одним из этих методов как на этапе обучения сети, так и при ее работе. Целевые выходные значения для элементов, соответствующих номинальным переменным, также легко определяются во время обучения. Несколько большие усилия требуются на то, чтобы по результатам работы сети определить выходной класс.

Каждый из выходных элементов будет содержать числовые значения в интервале от 0.0 до 1.0. Чтобы уверенно определить класс по набору выходных значений, сеть должна решить, "достаточно ли близки" они к нулю или единице. Если такой близости не наблюдается, класс считается "неопределенным".

Кроме того, в пакете ST Neural Networks для интерпретации выходных значений используются доверительные уровни (пороги принятия и отвержения). Эти пороговые значения можно корректировать, чтобы заставить сеть быть более или, наоборот, менее "решительной" при объявлении класса. Схемы здесь немного различаются для случаев бинарного и 1-из-N представлений:

Бинарное. Если выходное значение элемента превышает порог принятия, то выбирается класс 1.0. Если выходное значение лежит ниже порога отвержения, выбирается класс 0.0. Если выходное значение лежит между порогами, класс считается не определенным.

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

При кодировании методом 1-из-N имеет место одна особенность. На первый взгляд кажется, что "наиболее решительной" будет сеть с порогами принятия и отвержения, равными 0.5. Это действительно так для бинарного кодирования, но уже не так для кодирования 1-из-N. Можно сделать так, чтобы порог принятия был ниже порога отвержения, и наиболее решительной будет сеть, у которой порог принятия 0.0 , а порог отвержения 1.0. При такой, на первый взгляд странной настройке сети элемент с наивысшим уровнем активации будет определять класс вне зависимости от того, что происходит в других элементах. Вот точная схема действия алгоритма определения класса в пакете ST Neural Networks:

Выбирается элемент с наивысшим выходным сигналом. Если его выходной сигнал выше или равен порогу принятия, а выходные сигналы всех остальных элементов ниже порога отвержения, то в качестве ответа выдать класс, определяемый этим элементом.

При пороге принятия 0.0 выходной сигнал выигравшего элемента всегда будет принят, а при пороге отвержения 1.0 все остальные элементы неизбежно будут отвергнуты, и поэтому алгоритм сводится к простому выбору выигравшего элемента. Если же оба пороговых значения - принятия и отвержения - установить на уровне 0.5, сеть вполне может остаться в нерешительности (в случаях, когда у победителя результат ниже 0.5 или у кого-то из проигравших - выше 0.5).

Хотя для понимания описанной процедуры требуются определенные усилия, после того, как Вы к ней привыкнете, Вы сможете устанавливать для задачи различные тонкие условия. Например, уровни принятия/отвержения, равные 0.3/0.7 , означают следующее: "выбрать класс, соответствующий выигравшему элементу, при условии, что его выход был не ниже 0.3 и ни у какого другого элемента активация не превышала 0.7" - другими словами, для того, чтобы решение было принято, победитель должен показать заметный уровень активации, а проигравшие - не слишком высокий.

Все сказанное относится к механизму выбора класса для большинства типов сетей: MLP, RBF, линейных сетей и PNN (одно исключение: в PNN-сети нельзя использовать бинарное кодирование, и даже бинарные номинальные выходные переменные оцениваются с помощью кодирования 1-из-N ). В отличие от них, сеть Кохонена действует совершенно иначе.

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

В наших рассмотрениях мы предполагали, что "положительному" решению о классификации должно соответствовать значение, близкое к 1.0, а "отрицательному" - близкое к 0.0. Это действительно так в том случае, если на выходе используются логистические функции активации. Кроме того, это удобно, поскольку вероятность может принимать значения от 0.0 до 1.0. Однако, в некоторых ситуациях может оказаться более удобным использовать другой диапазон. Иногда применяется обратная упорядоченность, так что положительное решение соответствует малым выходным значениям. Пакет ST Neural Networks поддерживает любой из этих вариантов работы.

Вначале в качестве границ диапазона для каждой переменной используются значения минимум/среднее и максимум/стандартное отклонение. Для логистической выходной функции активации хорошими значениями по умолчанию являются 0.0 и 1.0. Некоторые авторы советуют использовать в качестве функции активации гиперболический тангенс, который принимает значения в интервале (-1.0,+1.0). Таким приемом можно улучшить обучение, потому что эта функция (в отличие от логистической) симметрична. В этом случае нужно изменить значения минимум/среднее и максимум/стандартное отклонение, и программа ST Neural Networks автоматически будет правильно интерпретировать классы.

Обратная упорядоченность, как правило, применяется в двух ситуациях. Одну из них мы только что обсудили: это сети Кохонена, в которых выходное значение есть мера удаленности, и ее малое значение соответствует большему доверию. Вторая ситуация возникает при использовании матрицы потерь (которая может быть добавлена в вероятностную сеть на этапе ее построения или вручную - к сетям других типов). Если используется матрица потерь, то выходы сети означают ожидаемые потери от выбора того или иного класса, и цель заключается в том, чтобы выбрать класс с наименьшими потерями. Упорядоченность можно обратить, объявив выходной сигнал не уровнем доверия, а мерой ошибки. В таком случае порог принятия будет ниже порога отвержения.

3. Таблица статистик классификации

При выборе порогов принятия/отвержения и оценке способностей сети к классификации очень помогает информация, содержащаяся в окне Статистики классификации - Classification Statistics. В нем указывается, сколько наблюдений было классифицировано правильно, сколько неправильно или вообще не классифицировано. Кроме того, выдается информация о том, сколько наблюдений каждого класса было отнесено к другим классам. Все эти данные выдаются отдельно для обучающего, контрольного и тестового множеств.

4. Решение задач регрессии в пакете ST Neural Networks

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

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

Нейронные сети наиболее часто используемых архитектур выдают выходные значения в некотором определенном диапазоне (например, на отрезке [0,1] в случае логистической функции активации). Для задач классификации это не создает трудностей. Однако для задачрегрессии совершенно очевидно, что тут есть проблема, и некоторые ее детали оказываются весьма тонкими. Сейчас мы обсудим возникающие здесь вопросы.

Для начала применим алгоритм масштабирования, чтобы выход сети имел "приемлемый" диапазон. Простейшей из масштабирующих функций пакета ST Neural Networks является минимаксная функция: она находит минимальное и максимальное значение переменной по обучающему множеству и выполняет линейное преобразование (с применением коэффициента масштаба и смещения), так чтобы значения лежали в нужном диапазоне (как правило, на отрезке [0.0,1.0]). Если эти действия применяются к числовой (непрерывной) выходной переменной, то есть гарантия, что все обучающие значения после преобразования попадут в область возможных выходных значений сети, и следовательно сеть может быть обучена. Кроме того, мы знаем, что выходы сети должны находиться в определенных границах. Это обстоятельство можно считать достоинством или недостатком - здесь мы приходим к вопросам экстраполяции.

Посмотрим на рисунок.

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

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

Предположим, например, что мы используем многослойный персептрон (MLP). Применение минимакса по описанной выше схеме весьма ограничительно.

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

Во-вторых, оценка по среднему также не будет выполняться: вместо этого будет браться минимум или максимум смотря по тому, росла или убывала в этом месте оцениваемая кривая.

Чтобы избежать этих недостатков в MLP используется ряд приемов:

Во-первых, логистическую функцию активации в выходном слое можно заменить на линейную, которая не меняет уровня активации (N.B.: функции активации меняются только в выходном слое; в промежуточных слоях по-прежнему остаются логистические и гиперболические функции активации). Линейная функция активации не насыщается, и поэтому способна экстраполировать (при этом логистические функции предыдущих уровней все-таки предполагают насыщение на более высоких уровнях). Линейные функции активации в MLP могут вызвать определенные вычислительные трудности в алгоритме обратного распространения, поэтому при его использовании следует брать малые (менее 0.1) скорости обучения. Описанный подход пригоден для целей экстраполяции.

Во-вторых, можно изменить целевой диапазон минимаксной масштабирующей функции (например, сделать его [0.25,0.75]). В результате обучающие наблюдения будут отображаться в уровни, соответствующие средней части диапазона выходных значений. Интересно заметить, что если этот диапазон выбран маленьким, и обе его границы находятся вблизи значения 0.5, то он будет соответствовать среднему участку сигмоидной кривой, на котором она "почти линейна", - тогда мы будем иметь практически ту же схему, что и в случае линейного выходного слоя. Такая сеть сможет выполнять экстраполяцию в определенных пределах, а затем будет насыщаться. Все это можно хорошо себе представить так: экстраполяция допустима в определенных границах, а вне их она будет пресекаться.

Если применяется первый подход и в выходном слое помещены линейные элементы, то может получиться так, что вообще нет необходимости использовать алгоритм масштабирования, поскольку элементы и без масштабирования могут выдавать любой уровень выходных сигналов. В пакете ST Neural Networks имеется возможность для большей эффективности вообще отключить все масштабирования. Однако, на практике полный отказ от масштабирования приводит к трудностям в алгоритмах обучения. Действительно, в этом случае разные веса сети работают в сильно различающихся масштабах, и это усложняет начальную инициализацию весов и (частично) обучение. Поэтому мы не рекомендуем Вам отключать масштабирование, за исключением тех случаев, когда диапазон выходных значений очень мал и расположен вблизи нуля. Это же соображение говорит в пользу масштабирования и при пре-процессировании в MLP-сетях (при котором, в принципе, веса первого промежуточного слоя можно легко корректировать, добиваясь этим любого нужного масштабирования).

До сих пор в нашем обсуждении мы уделяли основное внимание тому, как в задачах регрессии применяются сети MLP, и в особенности тому, как сети такого типа ведут себя в смысле экстраполяции. Сети, в которых используются радиальные элементы (RBF и GRNN), работают совершенно иначе и о них следует поговорить отдельно.

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

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

Качество работы сети в задаче регрессии можно проверить несколькими способами.

Во-первых, сети можно сообщить выходное значение, соответствующее любому наблюдению (или какому-то новому наблюдению, который Вы хотели бы проверить). Если это наблюдение содержалось в исходных данных, то выдается значение разности (невязки).

Во-вторых, могут быть получены итоговые статистики. К ним относятся среднее значение и стандартное отклонение, вычисленные для обучающих данных и для ошибки прогноза. В общем случае среднее значение ошибки прогноза будет очень близко к нулю (в конце концов, нулевое среднее для ошибки прогноза можно получить, попросту оценив среднее значение обучающих данных и вовсе не обращаясь к значениям входных переменных). Наиболее важным показателем является стандартное отклонение ошибки прогноза. Если оно не окажется существенно меньше стандартного отклонения обучающих данных, это будет означать, что сеть работает не лучше, чем простая оценка по среднему. Далее, в пакете ST Neural Networks пользователю выдается отношение стандартного отклонения ошибки прогноза к стандартному отклонению обучающих данных. Если оно существенно меньше единицы (например, ниже 0.1), то это говорит о хорошем качестве регрессии. Это регрессионное отношение (точнее, величину единица минус это отношение) иногда называют долей объясненной дисперсии модели.

В-третьих, можно вывести изображение поверхности отклика. На самом деле, разумеется, эта поверхность представляет собой N+1-мерный объект, где N - число входных элементов, а оставшееся измерение соответствует высоте точки на поверхности. Понятно, что непосредственно визуально представить такую поверхность при N большем двух невозможно (а реально N всегда больше двух). Тем не менее, в пакете ST Neural Networks Вы можете выводить срезы поверхности отклика по любым двум входным переменным. При этом значения всех остальных входных переменных фиксируются, и меняются только два выбранные. Всем остальным переменным можно придать любое значение по своему усмотрению (по умолчанию система ST Neural Networks возьмет для них средние значения). Значения двух исследуемых переменных можно менять в произвольном диапазоне (по умолчанию - в диапазоне изменения обучающих данных).

5. Прогнозирование временных рядов в пакете ST Neural Networks

В задачах анализа временных рядов целью является прогноз будущих значений переменной, зависящей от времени, на основе предыдущих значений ее и/или других переменных (Bishop, 1995)

Как правило, прогнозируемая переменная является числовой, поэтому прогнозирование временных рядов - это частный случай регрессии. Однако такое ограничение не заложено в пакет ST Neural Networks, так что в нем можно прогнозировать и временные ряды номинальных (т.е. классифицирующих) переменных.

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

В пакете ST Neural Networks для решения задач прогноза временных рядов можно применять сети всех типов (тип сети должен подходить, в зависимости от задачи, для регрессии или классификации). Сеть конфигурируется для прогноза временного ряда установкой параметров Временное окно - Steps и Горизонт - Lookahead. Параметр Временное окно задает число предыдущих значений, которые следует подавать на вход, а параметр Горизонт указывает, как далеко нужно строить прогноз. Количество входных и выходных переменных может быть произвольным. Однако, чаще всего в качестве входной и одновременно (с учетом горизонта) выходной выступает единственная переменная. При конфигурировании сети для анализа временных рядов изменяется метод препроцессирования данных (извлекаются не отдельные наблюдения, а их блоки), но обучение и работа сети происходят точно так же, как и в задачах других типов.

В задачах анализа временных рядов обучающее множество данных, как правило, бывает представлено значениями одной переменной, которая является входной/выходной (т.е. служит для сети и входом, и выходом).

В задачах анализа временных рядов особую сложность представляет интерпретация понятий обучающего, контрольного и тестового множеств, а также неучитываемых данных.

В обычной ситуации каждое наблюдение рассматривается независимо, и никаких вопросов здесь не возникает. В случае же временного ряда каждый входной или выходной набор составлен из данных, относящихся к нескольким наблюдениям, число которых задается параметрами сети Временное окно - Steps и Горизонт - Lookahead. Из этого следуют два обстоятельства:

Категория, которое будет отнесен набор, определяется категорией выходного наблюдения. Например, если в исходных данных первые два наблюдения не учитываются, а третье объявлено тестовым, и значения параметров Временное окно и Горизонт равны соответственно2 и 1, то первый используемый набор будет тестовым, его входы будут браться из первых двух наблюдений, а выход - из третьего. Таким образом, первые два наблюдения, хотя и помечены как не учитываемые, используются в тестовом множестве. Более того, данные одного наблюдения могут использоваться сразу в трех наборах, каждый из которых может быть обучающим, контрольным или тестовым. Можно сказать, что данные "растекаются" по обучающему, контрольному и тестовому множествам. Чтобы полностью разделить эти множества, пришлось бы сформировать отдельные блоки обучающих, контрольных и тестовых наблюдений, отделенные друг от друга достаточным числом неучитываемых наблюдений.

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

6. Отбор переменных и понижение размерности

До сих пор, говоря о построении и конструировании сети, мы предполагали, что входной и выходной слои заданы, то есть, что мы уже знаем, какие переменные будут подаваться на вход сети, и что будет ее выходом. То, какие переменные будут выходными, известно всегда (по крайней мере, в случае управляемого обучения). Что же касается входных переменных, их правильный выбор порой представляет большие трудности (Bishop, 1995). Часто мы не знаем заранее, какие из входных переменных действительно полезны для решения задачи, и выбор хорошего множества входов бывает затруднен целым рядом обстоятельств:

Проклятие размерности. Каждый дополнительный входной элемент сети - это новая размерность в пространстве данных. С этой точки зрения становится понятно следующее: чтобы достаточно плотно "заселить" N-мерное пространство и "увидеть" структуру данных, нужно иметь довольно много точек. Необходимое число точек быстро возрастает с ростом размерности пространства (грубо говоря, как 2**N для большинства методов). Большинство типов нейронных сетей (в частности, многослойный персептрон MLP) в меньшей степени страдают от проклятия размерности, чем другие методы, потому что сеть умеет следить за проекциями участков многомерного пространства в пространства малой размерности (например, если все веса, выходящие из некоторого входного элемента, равны нулю, то MLP-сеть полностью игнорирует эту входную переменную). Тем не менее, проклятие размерности остается серьезной проблемой, и качество работы сети можно значительно улучшить, исключив ненужные входные переменные. На самом деле, чтобы уменьшить эффект проклятия размерности иногда бывает целесообразно исключить даже те входные переменные, которые несут в себе некоторою (небольшую) информацию.

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

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

Итак, выбор входных переменных - это исключительно важный этап при построении нейронной сети. Перед тем, как непосредственно начинать работать с пакетом ST Neural Networks, имеет смысл произвести предварительный отбор переменных, используя при этом свои знания в предметной области и стандартные статистические критерии. Затем, уже средствами пакета ST Neural Networks можно будет попробовать различные комбинации входных переменных. В пакете ST Neural Networks имеется возможность "игнорировать" некоторые переменные, так что полученная сеть не будет использовать их в качестве входов. Можно поочередно экспериментировать с различными комбинациями входов, строя всякий раз новые варианты сетей.

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

Чтобы понять причину этого, рассмотрим, что произойдет, если мы добавим в сеть новую, возможно совершенно несущественную входную переменную. Сеть на линейных элементах, например MLP, может научиться присваивать весам, идущим от этой переменной, нулевые значения, что означает игнорирование переменной (реально это происходит так: изначально малые веса этой переменной так и остаются малыми, а веса содержательных входных переменных меняются нужным образом). Радиальная сеть типа PNN или GRNN не может позволить себе такую роскошь: кластеры, образующиеся в пространстве небольшого числа существенных переменных, будут "размазаны" по направлениям несущественных размерностей - для учета разброса по несущественным направлениям требуется большее число элементов. Сеть, в большей степени страдающая от наличия плохих входных данных, имеет преимущество, когда мы стремимся избавиться то этих плохих данных.

Поскольку описанный процесс экспериментирования занимает много времени, в пакете ST Neural Networks имеется инструмент, который может сделать это за Вас. Для выбора подходящей комбинации входных переменных здесь используется так называемый генетический алгоритм (Goldberg, 1989). Генетические алгоритмы хорошо приспособлены для задач такого типа, поскольку они позволяют производить поиск среди большого числа комбинаций при наличии внутренних зависимостей в переменных.

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

Самый распространенный метод понижения размерности - это анализ главных компонент (Bishop, 1995; см. также Факторный анализ). Метод состоит в следующем: к данным применяется линейное преобразование, при котором направлениям новых координатных осей соответствуют направления наибольшего разброса исходных данных. Как правило, уже первая компонента отражает большую часть информации, содержащейся в данных. Поскольку анализ главных компонент (АГК) представляет собой линейный метод, его можно реализовать с помощью линейной сети, и в пакете ST Neural Networks предусмотрена возможность обучать линейную сеть для выполнения АГК. Очень часто метод АГК выделяет из многомерных исходных данных совсем небольшое число компонент, сохраняя при этом структуру информации.

Один из недостатков метода главных компонент (АГК) состоит в том, что это чисто линейный метод, и из-за этого он может не учитывать некоторые важные характеристики структуры данных. В пакете ST Neural Networks реализован также вариант "нелинейного АГК", основанный на использовании так называемой автоассоциативной сети (Bishop, 1995; Fausett, 1994; Bouland and Kamp, 1988). Это такая нейронная сеть, которую обучают выдавать в качестве выходов свои собственные входные данные, но при этом в ее промежуточном слое содержится меньше нейронов, чем во входном и выходном слоях. Поэтому, чтобы восстановить свои входные данные, сеть должна научиться представлять их в более низкой размерности. Сеть "впихивает" наблюдения в формат промежуточного слоя и только потом выдает их на выходе. После обучения автоассоциативной сети ее внешний интерфейс может быть сохранен и использован для понижения размерности. Как правило, в качестве автоассоциативной сети берется многослойный персептрон с тремя промежуточными слоями. При этом средний слой отвечает за представление данных в малой размерности, а два других скрытых слоя служат соответственно для нелинейного преобразования входных данных в средний слой и выходов среднего слоя в выходной слой. Автоассоциативная сеть с единственным промежуточным слоем может выполнять только линейное понижение размерности, и фактически осуществляет АГК в стандартном варианте.

Размещено на Allbest.ru

...

Подобные документы

  • Понятие о нейронных сетях и параллели из биологии. Базовая искусственная модель, свойства и применение сетей. Классификация, структура и принципы работы, сбор данных для сети. Использование пакета ST Neural Networks для распознавания значимых переменных.

    реферат [435,1 K], добавлен 16.02.2015

  • Принципы и система распознавание образов. Программное средство и пользовательский интерфейс. Теория нейронных сетей. Тривиальный алгоритм распознавания. Нейронные сети высокого порядка. Подготовка и нормализация данных. Самоорганизующиеся сети Кохонена.

    курсовая работа [2,6 M], добавлен 29.04.2009

  • Сущность и понятие кластеризации, ее цель, задачи, алгоритмы; использование искусственных нейронных сетей для кластеризации данных. Сеть Кохонена, самоорганизующиеся нейронные сети: структура, архитектура; моделирование кластеризации данных в MATLAB NNT.

    дипломная работа [3,1 M], добавлен 21.03.2011

  • Решение задач прогнозирования цен на акции "Мазут" на 5 дней, построение прогноза для переменной "LOW". Работа в модуле "Neural networks", назначение вкладок и их характеристика. Построение системы "Набор программистов" нечеткого логического вывода.

    курсовая работа [3,2 M], добавлен 26.12.2016

  • Сущность, структура, алгоритм функционирования самообучающихся карт. Начальная инициализация и обучение карты. Сущность и задачи кластеризации. Создание нейронной сети со слоем Кохонена при помощи встроенной в среды Matlab. Отличия сети Кохонена от SOM.

    лабораторная работа [36,1 K], добавлен 05.10.2010

  • Реалізація сегментації позичальників методом карт Кохонена за допомогою пакету Deductor Studio. Послідовність дій, які необхідно провести для аналізу даних у Deductor Studio. Результат сегментації на картах Кохонена та характеристика кожного сегменту.

    контрольная работа [1017,1 K], добавлен 29.09.2010

  • Технологии решения задач с использованием нейронных сетей в пакетах расширения Neural Networks Toolbox и Simulink. Создание этого вида сети, анализ сценария формирования и степени достоверности результатов вычислений на тестовом массиве входных векторов.

    лабораторная работа [352,2 K], добавлен 20.05.2013

  • Бібліотека Pcap та її реалізація WinPcap під платформу Windows. Аспекти робот з бібліотекою WinPcap. Штучні нейронні мережі. Застосування бібліотеки Winpcap для захоплення мережевого трафіку. Реалізація нейронної мережі Кохонена для аналізу заголовків.

    дипломная работа [2,2 M], добавлен 09.06.2012

  • Пример дерева решений. Анализ древовидной структуры данных. Предикторные (зависимые) переменные как признаки, описывающие свойства анализируемых объектов. Решение задач классификации и численного прогнозирования с помощью деревьев классификации.

    презентация [391,1 K], добавлен 09.10.2013

  • Модели оценки кредитоспособности физических лиц в российских банках. Нейронные сети как метод решения задачи классификации. Описание возможностей программы STATISTICA 8 Neural Networks. Общая характеристика основных этапов нейросетевого моделирования.

    дипломная работа [1,4 M], добавлен 21.10.2013

  • Построение векторной модели нейронной сети. Проектирование и разработка поискового механизма, реализующего поиск в полнотекстовой базе данных средствами нейронных сетей Кохонена с применением модифицированного алгоритма расширяющегося нейронного газа.

    курсовая работа [949,0 K], добавлен 18.07.2014

  • Возможности программ моделирования нейронных сетей. Виды нейросетей: персептроны, сети Кохонена, сети радиальных базисных функций. Генетический алгоритм, его применение для оптимизации нейросетей. Система моделирования нейронных сетей Trajan 2.0.

    дипломная работа [2,3 M], добавлен 13.10.2015

  • Этап предварительной обработки данных, классификации, принятия решения. Изображения обучающих рукописных символов, тестового символа. Выход нейронной сети для тестового символа. График тренировки нейронной сети. Последовательность точек. Входные вектора.

    статья [245,7 K], добавлен 29.09.2008

  • Взаимодействие уровней в процессе связи, его эталонная модель для открытых систем. Функции уровней модели OSI. Сетезависимые протоколы, а также протоколы, ориентированные на приложениях, их сравнительное описание и использование в современных сетях.

    реферат [361,5 K], добавлен 16.04.2015

  • Рассмотрение программных продуктов, обеспечивающих решение задач по распознаванию образов. Видеопотоки от камер видеонаблюдения. Изменение размера и формата представления кадра. Отслеживание движения объекта в кадре. Распознавание номеров автотранспорта.

    лабораторная работа [1,4 M], добавлен 28.11.2021

  • Виды протоколов - стандартов, определяющих формы представления и способы пересылки сообщений, процедуры их интерпретации, правила совместной работы оборудования в сетях. Корневые серверы DNS, обеспечивающие работу системы доменных имен Интернета.

    презентация [1,4 M], добавлен 14.05.2017

  • Простейшая сеть, состоящая из группы нейронов, образующих слой. Свойства нейрокомпьютеров (компьютеров на основе нейронных сетей), привлекательных с точки зрения их практического использования. Модели нейронных сетей. Персептрон и сеть Кохонена.

    реферат [162,9 K], добавлен 30.09.2013

  • Решение задачи нелинейного программирования с определением экстремумов функции. Этапы процесса нахождения решения задачи нелинейного программирования с использованием ее геометрической интерпретации. Определение гиперповерхности уровней функции.

    курсовая работа [1,5 M], добавлен 25.09.2010

  • Оптимизационные исследования задач линейного и нелинейного программирования при заданных математических моделях. Решение задач линейного программирования и использование геометрической интерпретации и табличного симплекс-метода, транспортная задача.

    курсовая работа [408,7 K], добавлен 13.06.2019

  • Определение (задание структуры) данных. Обработка данных. Управление данными. Microsoft Access - нечто большее, чем СУБД. Проектирование, создание и управление базой данных на примере переплетной мастерской в пакете MS Access.

    курсовая работа [470,8 K], добавлен 30.10.2002

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.