Боровиков В.П. - SNN Нейронные сети (778914), страница 6
Текст из файла (страница 6)
Как и в случае савтоматическим конструктором сети эта процедура может потребовать многовремени, но, тем не менее, именно она часто оказывается единственным способомрешения задачи.В процессе работы генетический алгоритм порождает большое число пробныхбитовых строк (их число задается параметром Популяция) и искусственно«скрещивает» их на протяжении заданного числа поколений, используя при этомоперации искусственного отбора – мутацию и скрещивание, – интенсивностьюкоторых можно управлять.
Сеть PNN или GRNN обучается с заданным параметромсглаживания (разумно перед применением генетического алгоритма пропуститьнесколько тестов для определения подходящего коэффициента сглаживания), а длятого, чтобы дать преимущество небольшим наборам входных переменных, можнозадать параметр Штраф за элемент.Алгоритм просматривает все входные переменные, имеющиеся в набореданных. Чтобы запустить алгоритм, нужно нажать кнопку ОК.
Когда его работазакончится, в таблице в нижней части окна напротив полезных переменных будетвыведено слово Да, а напротив бесполезных – Прочерк. Чтобы воспользоватьсярезультатами работы алгоритма, нужно предварительно в меню Пониженияразмерности на вкладке Конец анализа выбрать Запустить Конструктор сетей длявыбранных переменных или Запустить Мастер решений для выбранныхпеременных.РАБОТА С СЕТЬЮПолучение выходных значенийПосле того, как сеть обучена, с ее помощью можно проводить анализ данных:прогонять сеть на отдельных наблюдениях из текущего набора данных, на всемнаборе данных или на произвольных, заданных пользователем наблюдениях.
Сетьюможно обрабатывать и любой другой совместимый набор данных, имеющийвходные переменные с такими же именами и определениями, как и в сети. Этоозначает, что построив сеть, мы более не привязаны к обучающему множеству. Еслианализируется набор данных, у которого помимо входов совместимы и выходныезначения, то программа STATISTICA Нейронные сети вычислит значения ошибок.При открытии сети или набора данных программа STATISTICA Нейронныесети проверяет, имеются ли в наборе данных переменные, совместимые с входнымипеременными сети. Если такие есть, то их тип в наборе данных автоматическиустанавливается таким, как нужно, а все остальные переменные игнорируются.Таким образом, можно иметь несколько сетей (в виде файлов), работающих сразными входными переменными из одного и того же набора данных, и при загрузкесети структура набора данных будет автоматически настраиваться на сеть.Одиночные наблюдения можно прогонять с помощью команды Наблюдениепользователя (меню Результаты – вкладка Дополнительно).
Чтобы прогнать новоенаблюдение, задайте его номер в соответствующем поле окна, а чтобы прогнатьтекущее наблюдение, просто нажмите кнопку Прогнать текущее. Значениявходных переменных для данного наблюдения выводятся в нижней таблице, азначения выходных можно увидеть, нажав кнопку Предсказанные. Такжепользователь может самостоятельно задать вектор входных значений с помощьюкнопки Значения пользователя. Если текущий набор данных содержит совместимыевыходные данные, то под фактическим выходным значением выводится целевоезначение и разность между ними, т.е.
ошибка.Имеется три формата вывода: Переменные (постпроцессированныепеременные после масштабирования и преобразования номинальных значений),Активации (значения активаций для выходных элементов сети, как правило, дляпоказа доверительных уровней в задачах классификации) и Кодировки (этот форматприменяется в сетях Кохонена и представляет собой вектор весов выигравшегорадиального элемента – ближайшего к тестируемому наблюдению) (рис. 9.15).Рис. 9.15Прогон всего набора данных осуществляется командой Запустить модельстартового меню (предварительно необходимо построить сети и на окне результатовнажать ОК, а затем указать новый источник данных).При этом выходные значения (в одном из трех перечисленных вышеформатов) выдаются в виде одной таблицы, содержащей также целевые значения иошибки (ошибки, как говорилось выше, выводятся, только если задано значениевыходной/зависимой переменной), если они могут быть вычислены. Выдается какошибка для каждого значения, так и суммарная среднеквадратичная ошибка.
Этоокно может быть особенно полезно в случае, если нейронная сеть используется какодин из этапов в сложной последовательности операций с данными.Чтобы обработать отдельное наблюдение (не входящее ни в какой наборданных), нужно воспользоваться командой Значение пользователя.В таблицу можно ввести с клавиатуры любые входные значения и затем спомощью сети получить для них прогноз.Эта возможность может оказаться полезной, если в процессе экспериментоввы захотите немного изменить значения переменных в данном наблюдении, чтобыпосмотреть, как такие изменения повлияют на прогноз.Внутренние активацииОбычно нейронную сеть считают «черным ящиком», однако иногда можетвозникнуть желание «заглянуть внутрь этого ящика», например, чтобы попытатьсявыяснить роль скрытых элементов.В окне Архитектура сети (меню Результаты, вкладка Дополнительно)выводятся внутренние активации элементов сети – в виде цветового выделения награфе сети (рис.
9.16). Здесь можно задать номер наблюдения, чтобы прогонятьнаблюдения из набора данных.Рис. 9.16Уровни активации (по умолчанию) показаны цветом – черным дляположительной активации, серым для отрицательной.Топологическая карта и частоты выигрышейРабота с сетями Кохонена имеет ряд особенностей. Во–первых, во время нееполезно смотреть на топологическую карту, где в наглядном виде представленыактивации радиальных элементов для каждого обрабатываемого наблюдения.
Во–вторых, сети Кохонена обучаются сами, в связи с чем возникает необходимостьвыявлять кластеры в топологической карте (подсчитывая, сколько раз тот или инойэлемент «выигрывал» при обработке обучающих примеров) и затем помечать этикластеры, приписывая элементам названия классов.В окне Частоты выигрышей можно прогнать весь набор данных иподсчитать, сколько раз «выигрывал» каждый радиальный элемент (т.е. элемент, чейвектор весов оказывался ближе всех к данным наблюдениям). Эти частотывыигрышей выводятся в виде таблицы с сохранением топологии, что позволяетидентифицировать часто выигрывавшие элементы, которые соответствуюткластерам в данных.В окне Топологическая карта реализованы различные средства, позволяющиепроанализировать работу сети Кохонена, идентифицировать кластеры и пометитьклассы и соответствующие им элементы.Топологическую структуру можно увидеть следующим образом.
Приизменении параметра Номер наблюдения указанное наблюдение прогоняется черезсеть и в окне Топологическая карта графически изображаются активацииэлементов. При этом больший размер черного квадрата у элемента соответствуетменьшему уровню активации (поскольку активация представляет собой расстояниеот наблюдения до вектора весов, то чем меньше уровень активации, тем большесходство). Квадрат, полностью залитый черным цветом, означает полноесовпадение.
Выигравший элемент выделяется цветом. Прогоняя обучающиенаблюдения и наблюдая при этом за поведением сети, можно, как правило, выявитькластеры и определить, из каких данных эти кластеры состоят.В программе STATISTICA Нейронные сети сеть Кохонена всегда имеет однуноминальную выходную переменную, поэтому такая сеть предназначена длярешения задач классификации. Значения выходной переменной – суть названияклассов, и соответствующие метки можно присваивать отдельным элементам сети взнак того, что элемент «принадлежит» к данному классу.
Назначать классыэлементам можно в интерактивном режиме в окне Топологическая карта, для этогонужно или ввести (или выбрать из списка имеющихся) имя класса в поле ввода,расположенное справа, или (что более удобно) щелкнув левой кнопкой мыши натопологической карте, указать нужный класс. Если вы назначаете некоторый класс впервый раз, то укажите опцию Изменить список классов и добавьте имя новогокласса к списку значений номинальной выходной переменной.Проекция временного рядаСеть, предназначенная для анализа временных рядов, запускается так же, каки любая другая – командами Наблюдение пользователя, Запустить модель, однакоздесь действуют некоторые специальные правила. Во–первых, поскольку прианализе временного ряда входные данные берутся из нескольких наблюдений, вокне Наблюдение пользователя задается номер наблюдения, соответствующийвыходному значению, а входные значения берутся из предыдущих наблюдений, приэтом несколько первых наблюдений в наборе данных автоматически делаютсянеучитываемыми.
Во–вторых, в таблице ввода Значение пользователя для каждойвходной переменной следует задавать несколько последовательных значений повремени (рис. 9.17).Рис. 9.17Сеть, построенную для анализа временного ряда, можно также запускать изспециального окна Проекция временного ряда. Смысл этой процедуры состоит втом, чтобы вычислить весь прогнозируемый ряд исходя из одного начальногонабора значений.














