Карты входов
При анализе карт входов рекомендуют использовать сразу несколько карт. Исследуем фрагмент карты, состоящий из карт трех входов, который приведен на рис. 12.8
Рис. 12.8. Карты трех входов
На одной из карт выделяем область с наибольшими значениями показателя. Далее имеет смысл изучить эти же нейроны на других картах.
На первой карте наибольшие значения имеют объекты, расположенные в правом нижнем углу. Рассматривая одновременно три карты, мы можем сказать, что эти же объекты имеют наибольшие значения показателя, изображенного на третьей карте. Также по раскраске первой и третьей карты можно сделать вывод, что существует взаимосвязь между этими показателями.
Также мы можем определить, например, такую характеристику: кластер, расположенный в правом верхнем углу, характеризуется низкими значениями показателей du (депозиты юридических лиц) и akt (активы банка) и высокими значениями показателей pr_a (прибыльность активов).
Эта информация позволяет так охарактеризовать кластер, находящийся в правом верхнем углу: это банки с небольшими активами, небольшими привлеченными депозитными средствами от юридических лиц, но с наиболее прибыльными активами, т.е. это группа небольших, но наиболее прибыльных банков.
Это лишь фрагмент вывода, который можно сделать, исследуя карту.
На следующем рисунке (рис. 12.9) приведена иллюстрация карт входов и выходов, последняя - эта карта кластеров. Здесь мы видим несколько карт входов (показателей деятельности банков) и сформированные кластеры, каждый из которых выделен отдельным цветом.
Рис. 12.9. Карты входов и выходов
Для нахождения конкретного объекта на карте необходимо нажать правой кнопкой мыши на исследуемом объекте и выбрать пункт "Найти ячейку на карте". Выполнение этой процедуры показано на рис. 12.10. В результате мы можем видеть как сам объект, так и значение того измерения, которое мы просматриваем. Таким образом, мы можем оценить положение анализируемого объекта, а также сравнить его с другими объектами.
Рис. 12.10. Ячейка на карте
В результате применения самоорганизующихся карт многомерное пространство входных факторов было представлено в двухмерном виде, в котором его достаточно удобно анализировать.
Банки были классифицированы на 7 групп, для каждой из которых возможно определение конкретных характеристик, исходя из раскраски соответствующих показателей.
Классификация нейронных сетей
Одна из возможных классификаций нейронных сетей - по направленности связей.
Нейронные сети бывают с обратными связями и без обратных связей.
Сети без обратных связей
Сети с обратным распространением ошибки.Сети этой группы характеризуются фиксированной структурой, итерационным обучением, корректировкой весов по ошибкам. Такие сети были рассмотрены в предыдущей лекции.
Другие сети (когнитрон, неокогнитрон, другие сложные модели).Преимуществами сетей без обратных связей является простота их реализации и гарантированное получение ответа после прохождения данных по слоям.
Недостатком этого вида сетей считается минимизация размеров сети - нейроны многократно участвуют в обработке данных.
Меньший объем сети облегчает процесс обучения.
Сети с обратными связями
Сети Хопфилда (задачи ассоциативной памяти). Сети Кохонена (задачи кластерного анализа).Преимуществами сетей с обратными связями является сложность обучения, вызванная большим числом нейронов для алгоритмов одного и того же уровня сложности.
Недостатки этого вида сетей - требуются специальные условия, гарантирующие сходимость вычислений.
Другая классификация нейронных сетей: сети прямого распространения и рекуррентные сети.
Сети прямого распространения
Персептроны. Сеть Back Propagation. Сеть встречного распространения. Карта Кохонена.Рекуррентные сети. Характерная особенность таких сетей - наличие блоков динамической задержки и обратных связей, что позволяет им обрабатывать динамические модели.
Сеть Хопфилда. Сеть Элмана - сеть, состоящая из двух слоев, в которой скрытый слой охвачен динамической обратной связью, что позволяет учесть предысторию наблюдаемых процессов и накопить информацию для выработки правильной стратегии управления. Эти сети применяются в системах управления движущимися объектами.Нейронные сети могут обучаться с учителем или без него.
При обучении с учителем для каждого обучающего входного примера требуется знание правильного ответа или функции оценки качества ответа. Такое обучение называют управляемым. Нейронной сети предъявляются значения входных и выходных сигналов, а она по определенному алгоритму подстраивает веса синаптических связей. В процессе обучения производится корректировка весов сети по результатам сравнения фактических выходных значений с входными, известными заранее.
При обучении без учителя раскрывается внутренняя структура данных или корреляции между образцами в наборе данных. Выходы нейронной сети формируются самостоятельно, а веса изменяются по алгоритму, учитывающему только входные и производные от них сигналы. Это обучение называют также неуправляемым. В результате такого обучения объекты или примеры распределяются по категориям, сами категории и их количество могут быть заранее не известны.
Обучение сети Кохонена
Сеть Кохонена, в отличие от многослойной нейронной сети, очень проста; она представляет собой два слоя: входной и выходной. Ее также называют самоорганизующей картой. Элементы карты располагаются в некотором пространстве, как правило, двумерном. Сеть Кохонена изображена на рис. 12.1
Рис. 12.1. Сеть Кохонена
Сеть Кохонена обучается методом последовательных приближений. В процессе обучения таких сетей на входы подаются данные, но сеть при этом подстраивается не под эталонное значение выхода, а под закономерности во входных данных. Начинается обучение с выбранного случайным образом выходного расположения центров.
В процессе последовательной подачи на вход сети обучающих примеров определяется наиболее схожий нейрон (тот, у которого скалярное произведение весов и поданного на вход вектора минимально). Этот нейрон объявляется победителем и является центром при подстройке весов у соседних нейронов. Такое правило обучения предполагает "соревновательное" обучение с учетом расстояния нейронов от "нейрона-победителя".
Обучение при этом заключается не в минимизации ошибки, а в подстройке весов (внутренних параметров нейронной сети) для наибольшего совпадения с входными данными.
Основной итерационный алгоритм Кохонена последовательно проходит ряд эпох, на каждой из которых обрабатывается один пример из обучающей выборки. Входные сигналы последовательно предъявляются сети, при этом желаемые выходные сигналы не определяются. После предъявления достаточного числа входных векторов синаптические веса сети становятся способны определить кластеры. Веса организуются так, что топологически близкие узлы чувствительны к похожим входным сигналам.
В результате работы алгоритма центр кластера устанавливается в определенной позиции, удовлетворительным образом кластеризующей примеры, для которых данный нейрон является "победителем". В результате обучения сети необходимо определить меру соседства нейронов, т.е. окрестность нейрона-победителя.
Окрестность представляет собой несколько нейронов, которые окружают нейрон-победитель [39].
Сначала к окрестности принадлежит большое число нейронов, далее ее размер постепенно уменьшается. Сеть формирует топологическую структуру, в которой похожие примеры образуют группы примеров, близко находящиеся на топологической карте.
Полученную карту можно использовать как средство визуализации при анализе данных. В результате обучения карта Кохонена классифицирует входные примеры на кластеры (группы схожих примеров) и визуально отображает многомерные входные данные на плоскости нейронов.
Уникальность метода самоорганизующихся карт состоит в преобразовании n-мерного пространства в двухмерное. Применение двухмерных сеток связано с тем, что существует проблема отображения пространственных структур большей размерности.
Имея такое представление данных, можно визуально определить наличие или отсутствие взаимосвязи во входных данных.
Нейроны карты Кохонена располагают в виде двухмерной матрицы, раскрашивают эту матрицу в зависимости от анализируемых параметров нейронов.
На рис. 12.2 приведен пример карты Кохонена
Рис. 12.2. Пример карты Кохонена
Что же означает ее раскраска? На рис.12.3 приведена раскраска карты, а точнее, ее i-го признака (показателя pr_a), в трехмерном представлении. Как мы видим, темно-синие участки на карте соответствуют наименьшим значениям показателя, красные - самым высоким.
Рис. 12.3. Раскраска i-го признака в трехмерном пространстве
Теперь, возвращаясь к рисунку рис.12.2, мы можем сказать, какие объекты имеют наибольшие значения рассматриваемого показателя (группа объектов, обозначенная красным цветом), а какие - наименьшие значения (группа объектов, обозначенная синим цветом).
Таким образом, карты Кохонена (как и географические карты) можно отображать:
в двухмерном виде, тогда карта раскрашивается в соответствии с уровнем выхода нейрона;в трехмерном виде. В результате работы алгоритма получаем такие карты:
карта входов нейронов;карта выходов нейронов;специальные карты. Координаты каждой карты определяют положение одного нейрона.
Так, координаты [15:30] определяют нейрон, который находится на пересечении 15-го столбца с 30-м рядом в матрице нейронов. Рассмотрим, что же представляют собой эти карты.
Карта входов нейронов.
Веса нейронов подстраиваются под значения входных переменных и отображают их внутреннюю структуру. Для каждого входа рисуется своя карта, раскрашенная в соответствии со значением конкретного веса нейрона.
При анализе данных используют несколько карт входов.
На одной из карт выделяют область определенного цвета - это означает, что соответствующие входные примеры имеют приблизительно одинаковое значение соответствующего входа. Цветовое распределение нейронов из этой области анализируется на других картах для определения схожих или отличительных характеристик. Пример рассмотренных карт входов будет приведен ниже.
Карта выходов нейронов.
На карту выходов нейронов проецируется взаимное расположение исследуемых входных данных. Нейроны с одинаковыми значениями выходов образуют кластеры - замкнутые области на карте, которые включают нейроны с одинаковыми значениями выходов.
Специальные карты. Это карта кластеров, матрица расстояний, матрица плотности попадания и другие карты, которые характеризуют кластеры, полученные в результате обучения сети Кохонена.
Важно понимать, что между всеми рассмотренными картами существует взаимосвязь - все они являются разными раскрасками одних и тех же нейронов. Каждый пример из обучающей выборки имеет одно и то же расположение на всех картах.
Подготовка данных для обучения
При подготовке данных для обучения нейронной сети необходимо обращать внимание на следующие существенные моменты.
Количество наблюдений в наборе данных. Следует учитывать тот фактор, что чем больше размерность данных, тем больше времени потребуется для обучения сети.
Работа с выбросами. Следует определить наличие выбросов и оценить необходимость их присутствия в выборке.
Обучающая выборка должна быть представительной (репрезентативной).
Обучающая выборка не должна содержать противоречий, так как нейронная сеть однозначно сопоставляет выходные значения входным.
Нейронная сеть работает только с числовыми входными данными, поэтому важным этапом при подготовке данных является преобразование и кодирование данных.
При использовании на вход нейронной сети следует подавать значения из того диапазона, на котором она обучалась. Например, если при обучении нейронной сети на один из ее входов подавались значения от 0 до 10, то при ее применении на вход следует подавать значения из этого же диапазона или близлежащие.
Существует понятие нормализации данных. Целью нормализации значений является преобразование данных к виду, который наиболее подходит для обработки, т.е. данные, поступающие на вход, должны иметь числовой тип, а их значения должны быть распределены в определенном диапазоне. Нормализатор может приводить дискретные данные к набору уникальных индексов либо преобразовывать значения, лежащие в произвольном диапазоне, в конкретный диапазон, например, [0..1]. Нормализация выполняется путем деления каждой компоненты входного вектора на длину вектора, что превращает входной вектор в единичный.
с картами Кохонена, сейчас представлено
Программное обеспечение, позволяющее работать с картами Кохонена, сейчас представлено множеством инструментов. Это могут быть как инструменты, включающие только реализацию метода самоорганизующихся карт, так и нейропакеты с целым набором структур нейронных сетей, среди которых - и карты Кохонена; также данный метод реализован в некоторых универсальных инструментах анализа данных.
К инструментарию, включающему реализацию метода карт Кохонена, относятся SoMine, Statistica, NeuroShell, NeuroScalp, Deductor и множество других. Для решения задачи будем использовать аналитический пакет Deductor.
Пусть имеется база данных коммерческих банков с показателями деятельности за текущий период. Необходимо провести их кластеризацию, т.е. выделить однородные группы банков на основе показателей из базы данных, всего показателей - 21.
Исходная таблица находится в файле "banks.xls". Она содержит показатели деятельности коммерческих банков за отчетный период.
Сначала импортируем данные из xls-файла в среду аналитического пакета.
На первом шаге мастера запускаем мастер обработки и выбираем из списка метод обработки "Карта Кохонена". Далее следует настроить назначения столбцов, т.е. для каждого столбца выбрать одно из назначений: входное, выходное, не используется и информационное. Укажем всем столбцам, соответствующим показателям деятельности банков, назначение "Входной". "Выходной" не назначаем.
Следующий шаг предлагает разбить исходное множество на обучающее, тестовое и валидационное. По умолчанию,программа предлагает разбить множество на обучающее - 95% и тестовое - 5%.
Эти шаги аналогичны шагам в мастере обработки для нейронных сетей, описанным в предыдущей Лекции.
На шаге № 5, изображенном на рис. 12.4 предлагается настроить параметры карты: количество ячеек по Х и по Y их форму (шестиугольную или четырехугольную).
Рис. 12.4. Шаг № 5 "Настройка параметров карты Кохонена"
На шестом шаге "Настройка параметров остановки обучения", проиллюстрированном на рис. 12.5, устанавливаем параметры остановки обучения и устанавливаем эпоху, по достижению которой обучение будет прекращено.
Рис. 12.5. Шаг № 6 "Настройка параметров остановки обучения"
На седьмом шаге, представленном на рис. 12.6, настраиваются другие параметры обучения: способ начальной инициализации, тип функции соседства. Возможны два варианта кластеризации: автоматическое определение числа кластеров с соответствующим уровнем значимости и фиксированное количество кластеров (определяется пользователем). Поскольку нам неизвестно количество кластеров, выберем автоматическое определение их количества.
Рис. 12.6. Шаг № 7 "Настройка параметров остановки обучения"
На восьмом шаге запускаем процесс обучения сети - необходимо нажать на кнопку "Пуск" и дождаться окончания процесса обучения. Во время обучения можем наблюдать изменение количества распознанных примеров и текущие значения ошибок. Этот процесс аналогичен тому, что мы рассматривали при обучении нейронных сетей в предыдущей лекции.
По окончании обучения в списке визуализаторов выберем "Карту Кохонена" и визуализатор "Что-если". На последнем шаге настраиваем отображения карты Кохонена, этот шаг проиллюстрирован на рис. 12.7.
Рис. 12.7. "Шаг № 10 Настройка отображений карты Кохонена"
Укажем отображения всех входных, выходных столбцов, кластеров, а также поставим флажок "Границы кластеров" для четкого отображения границ.
Самоорганизующиеся карты (Self-Organizing Maps, SOM)
Сети, называемые картами Кохонена, - это одна из разновидностей нейронных сетей, однако они принципиально отличаются от рассмотренных выше, поскольку используют неконтролируемое обучение. Напомним, что при таком обучении обучающее множество состоит лишь из значений входных переменных, в процессе обучения нет сравнивания выходов нейронов с эталонными значениями. Можно сказать, что такая сеть учится понимать структуру данных.
Идея сети Кохонена принадлежит финскому ученому Тойво Кохонену (1982 год). Основной принцип работы сетей - введение в правило обучения нейрона информации относительно его расположения.
В основе идеи сети Кохонена лежит аналогия со свойствами человеческого мозга. Кора головного мозга человека представляет собой плоский лист и свернута складками. Таким образом, можно сказать, что она обладает определенными топологическими свойствами (участки, ответственные за близкие части тела, примыкают друг к другу и все изображение человеческого тела отображается на эту двумерную поверхность).
Выбор структуры нейронной сети
Выбор структуры нейронной сети обуславливается спецификой и сложностью решаемой задачи. Для решения некоторых типов задач разработаны оптимальные конфигурации [44, 51, 52].
В большинстве случаев выбор структуры нейронной сети определяется на основе объединения опыта и интуиции разработчика.
Однако существуют основополагающие принципы, которыми следует руководствоваться при разработке новой конфигурации [53]:
возможности сети возрастают с увеличением числа ячеек сети, плотности связей между ними и числом выделенных слоев;введение обратных связей наряду с увеличением возможностей сети поднимает вопрос о динамической устойчивости сети;сложность алгоритмов функционирования сети (в том числе, например, введение нескольких типов синапсов - возбуждающих, тормозящих и др.) также способствует усилению мощи НС.Вопрос о необходимых и достаточных свойствах сети для решения того или иного рода задач представляет собой целое направление нейрокомпьютерной науки. Так как проблема синтеза нейронной сети сильно зависит от решаемой задачи, дать общие подробные рекомендации затруднительно. Очевидно, что процесс функционирования НС, то есть сущность действий, которые она способна выполнять, зависит от величин синаптических связей, поэтому, задавшись определенной структурой НС, отвечающей какой-либо задаче, разработчик сети должен найти оптимальные значения всех переменных весовых коэффициентов (некоторые синаптические связи могут быть постоянными).
Задачи, решаемые при помощи карт Кохонена
Самоорганизующиеся карты могут использоваться для решения таких задач, как моделирование, прогнозирование, поиск закономерностей в больших массивах данных, выявление наборов независимых признаков и сжатие информации.
Наиболее распространенное применение сетей Кохонена - решение задачи классификации без учителя, т.е. кластеризации.
Напомним, что при такой постановке задачи нам дан набор объектов, каждому из которых сопоставлена строка таблицы (вектор значений признаков). Требуется разбить исходное множество на классы, т.е. для каждого объекта найти класс, к которому он принадлежит.
В результате получения новой информации о классах возможна коррекция существующих правил классификации объектов.
Вот два из распространенных применений карт Кохонена: разведочный анализ данных и обнаружение новых явлений [39].
Разведочный анализ данных. Сеть Кохонена способна распознавать кластеры в данных, а также устанавливать близость классов. Таким образом, пользователь может улучшить свое понимание структуры данных, чтобы затем уточнить нейросетевую модель. Если в данных распознаны классы, то их можно обозначить, после чего сеть сможет решать задачи классификации. Сети Кохонена можно использовать и в тех задачах классификации, где классы уже заданы, - тогда преимущество будет в том, что сеть сможет выявить сходство между различными классами.
Обнаружение новых явлений. Сеть Кохонена распознает кластеры в обучающих данных и относит все данные к тем или иным кластерам. Если после этого сеть встретится с набором данных, непохожим ни на один из известных образцов, то она не сможет классифицировать такой набор и тем самым выявит его новизну.