воскресенье, 3 ноября 2013 г.

Кластерный анализ в Statistica. Часть 4. Нейронные сети

 

Обширную тему решил затронуть. Искусственные нейронные сети. Попытаюсь дать представление на пальцах. Что это такое? Это попытка смоделировать человеческий мозг. Только более примитивно. Базовым элементом каждой нейронной сети является нейрон (Рис. 1).

Рисунок1

Рис. 1. Принципиальная схема нейрона.

Нейрон имеет входы, сумматор и функцию активации. На входы подается информация, например содержание трех хим. элементов в конкретной пробе. Каждое из них умножается на определенный коэффицициент. Далее входящие сигналы суммируются и преобразуются с помощью активационной функции. Это может быть тангенс данного числа, или e^(-1*данную сумму), где е – число Эйлера. Весь цимес заключается в:

  1. Весах нейронов;
  2. Функции активации;
  3. Наборе нейронов. Если взять несколько нейронов и организовать их в слои, в каждом из которых будет от 1 до N нейронов, то это будет искуссвенная нейронная сеть.

Искусственные нейронные сети необходимо обучать, или дать им возможность самообучится. Обучить нейронную сеть – означает дать ей выборку и подстроить веса так, что бы нейроны максимально точно описывали данные. Функции активации как раз моделируют нелинейные взаимосвязи хим. элементов. А структура нейронной сети (количество нейронов, количество слоев) контролирует гибкость сети. То насколько точно она может подстроится под данные. При этом в геохимии совсем точная подстройка не нужна. Важно выявить закономерности.

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

Рисунок2

Рис. 2. Принципиальная схема Самоорганизующейся сети Кохонена. 4х3 нейрона = 12 нейронов.

image Рис. 3. Открываем данные и запускаем модуль нейросетевого анализа. Данные можно использовать сырые, без предварительного логарифмирования. Но явные выбросы все равно лучше убрать.

image Рис. 4 Выбираем кластерный анализ

image Рис. 5. Выбираем переменные во вкладке Quick (Быстро). В данном модуле можно выбрать категориальные входные переменные. Например, возраст пород из которых отобрана проба.

image Рис. 6 Переходим во вторую вкладку Sampling (Подвыборки). Нейронные сети разбивают первоначальную выборку на три подвыборки:

  1. Обучающую. По ней производится обучение нейронной сети и подстройка весов;
  2. Тестовую. Она так же используется в процессе обучения и проверяет не переробучилась ли сеть;
  3. Проверочная выборка. Она не используется в процессе обучения, а служит лишь для оценки точности сети на “новых” данных. То есть ее возможность предсказания.

Оставим по умолчанию. Жмем ОК.

image Рис. 7 Во вкладке Quick (Kohonen), задаем количество нейронов и их структуру. Поскольку нейроны обучают соседей, то расположение нейронов тоже важно. Либо 4 нейрона расположить квадратом, либо цепочкой. Для начала выбираем 5х5. Не стремитесь сделать огромные сети. Помните, что важно выявить общие закономерности, а не сразу все-все решить.

image Рис. Во вкладке Kohonen Training (Обучение сети) самый важный параметр Neighborhoods (Соседи) – то сколько соседей обучает нейрон. Оставим по умолчанию. Жмем ОК.

image Рис. 9. Сеть обучается и выводится окно результатов. Сразу переходим во вкладку Kohonen (graph). Тут показывается все 25 нейронов и то какое количество обучающих проб попало в каждый. Считается необходимым, что бы каждый нейрон описал какую-то часть данных. Не должно быть пустых нейронов. Пики представленные бурым красным цветом показывают сколько проб описал данный нейрон. В целом, тут выделяются три пика. Скорее всего у нас три кластера. Жмем Cancel, Cancel и переходим в первую вкладку выбора структуры сети.

image Рис. 10. Выбираем цепочку нейронов из трех штук. Каждый нейрон опишет свой кластер.

image Рис. 11. Перейдем во вкладку Обучение сети и выберем, что бы каждый нейрон влиял только на одного соседа. Связанные кластеры получатся. Тут стоит поэксперементировать. Если влияние на соседей, то врядли получится уловить переходные области.

image Рис. 12. Получаем результат. Каждый нейрон описал изрядное количество данных.

image Рис. 13. Перейдем в первую вкладку окна результатов Predictions (Предсказание). Выведем результаты по каждой пробе с координатами.

image Рис. 14. Получаем выходную табличку. Что бы построить график из данных в ней, необходимо сделать табличку активной. Выделяем, щелкаем правой клавишей мышки и выбираем пункт Active Input (Активный Ввод). Тут как и в методе k-средних имеется столбец с “расстоянием” пробы до кластера (нейрона). Чем меньше число, тем лучше. Если число очень высокое, то это либо выброс, либо совсем отдельный кластер.

image Рис. 15. Строим карту кластеров. Об этом можете прочитать тут. Конечно эти графики лучше строить в ArcGIS или в Surfer. Делать описание с учетом геол.карты. К сожалению тут я не могу много об этом писать. Но скажу лишь то, что кластеризация нейронной сетью выдала аналогичный результат, что и Иерархическая кластеризация и k-средних. Далее можно построить графики типа Ящик-с –усами и дать заключение о специализации кластеров. Поскольку эту выборку я кластеризую уже в третий раз, то не привожу их. Смотрите предыдущие посты.

Дополнительно построим карту значений активации. Значение активации – это как раз там сумма элементов преобразованная нелинейной функцией.

image Рис. 16. Карта распределения значений активации наблюдений. На юге площади выделяется группа проб с высокими значениями активации. Стоит отдельно рассмотреть их по моноэлементным картам и другим параметрам.

image Рис. 17. Сохраняем структуру нейронной сети. Что бы всегда можно было к ней вернутся.

image Рис. 18. Когда запускам модуль нейросетевого анализа, слева находится окно в котором можно открыть уже созданную нейронную сеть. Например, вы изучили эталонный объект, создали по нему нейронную сеть и хотите прогнать через нее пробы с другой площади. Вуаля.

Удачи.

По нейронным сетям рекомендую прочитать:

  1. Хайкин Саймон Нейронные сети: полный курс, 2-е издание. : Пер. с англ. – М. : Издательский дом “Вильямс”, 2006. – 1104 с. : ил. – Парал. тит. англ. ISBN 5-8459-0890-6 (рус)
  2. Нейронные сети. STATISTICA Neural Networks: Методология и технология современного анализа данных/ Под редакцией В.П. Боровикова. – 2-е изд., перераб. и доп. – М.: Горячая линия – Телеком, 2008. – 292 с., ил. ISBN 978-5-9912-0015-8

Вторая книга отличается от модуля в Statistica 10, но тоже подойдет.

Комментариев нет:

Отправить комментарий