Пакет статистика нейронные сети. Продукты STATISTICA. Геостатистика. Теория и практика

Для создания набора обучающих данных используется встроенный редактор данных (File/New/Data Set ) либо загружается файл данных *.sta с диска. В случае создания файла в Microsoft Excel *.csv необходимо провести конвертирование формата данных в формат *.sta (операция проводится автоматически при открытии файла данных).

После открытия данных ST Neural Networks предложит функцию автоматического построения (окно Intelligent Problem Solver ). На данном этапе необходимо отказаться от данной функции (Cancel ).

При открытии нового файла в ST Neural Networks все переменные считаются входными. Необходимо указать выходные переменные. Щелкните правой кнопкой мыши в поле с названием выходных переменных в окне Data Set Editor , в появившемся контекстном меню выберите Output, цвет заголовка столбца изменится на голубой.

Все наблюдения необходимо поделить на два множества: обучающее (служит для обучения НС) и контрольное (необходимо для оценки хода обучения).

Во втором поле Cases окна Data Set Editor укажите размер контрольного множества (обычно на него отводится половина всего набора данных), нажмите Enter. Строки, содержащие контрольные наблюдения, отмечены красным цветом (находятся в конце списка наблюдений). Затем, командой перемешать (Shuffle) (Edit → Cases → Shuffle →Train and Verify ), все наблюдения случайным образом распределяются по различным типам.

Для создания сети используется пункт меню File → New → Network . При этом появляется окно редактора сети (рисунок 11).

Сеть с заданными параметрами и структурой создается после нажатия кнопки Create.

Параметры Steps и Lookahead используются только в задачах временных рядов и в данной работе не используются.

Обучение сети.

Для сетей каждого типа используются специальные алгоритмы обучения, которые находятся в пункте меню Train . При выборе алгоритма предлагается определить параметры обучения. Например, при обучении многослойного персептрона методом обратного распространения (Train → Multilayer Perceptrons → Back Propagation) задаются в соответствующем окне (рисунок 12).

Рисунок 12 – Окно редактора параметров обучения

Epochs - Эпохи. Задает число циклов обучения, которые проходятся при одном нажатии клавиши Train. Значение по умолчанию 100.

Learning rate - Скорость обучения, задает величину шага при изменении весов: при недостаточной скорости алгоритм медленно сходится, при увеличении скорости обучения алгоритм работает быстрее, но в некоторых задачах это может привести к неустойчивости (особенно если данные зашумлены). Для быстрого и грубого обучения подойдут значения от 0,1 до 0,6; для достижения точной сходимости требуются меньшие значения (например, 0,01 или даже 0,001, если эпох много тысяч). Иногда полезно уменьшать скорость в процессе обучения.

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

Shuffle Cases - Перемешивать наблюдения. При использовании этой функции порядок, в котором наблюдения подаются на вход сети, меняется в каждой новой итерации. Это добавляет в обучение некоторый шум, так что ошибка может испытывать небольшие колебания. Однако при этом меньше вероятность того, что алгоритм «застрянет», и общие показатели его работы обычно улучшаются.

Cross-verification (кросс-проверка) - Стандартный способ обучения нейронных сетей заключается в том, что сеть обучается на одном из множеств, а на другом проверяется результат; таким образом, контрольное множество для обучения не используется. Это дает независимый способ проверки того, научилась ли сеть чему-нибудь полезному.

Reinitialize - сброс настраиваемых параметров сети, полученных на предыдущем цикле обучения, или для предыдущей сети.

Запуск алгоритма обучения производится нажатием кнопки Train . Каждый раз при нажатии кнопки Train алгоритм совершает N циклов обучения, где N – количество циклов обучения, определяемое в Epochs.

На графике (Statistics → Training Error Graph ) можно наблюдать изменение ошибки сети в ходе обучения. Training Error Graph– это отображение среднеквадратичной ошибки выхода на всем обучающем множестве.

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

При изменении параметров сети перед обучением необходимо сбросить весовые коэффициенты (настроенные параметры) предыдущей сети. Для MLP–сети кнопкой Reinitialize.

В пакете STATISTICA Neural Networks предусмотрено автоматическое запоминание лучшей сети во время эксперимента. Для восстановления значений наилучшей сети вызовите меню Train→ Auxiliary→ Best Network .

Для просмотра результатов обучения сети используется функция Options в окне Network Set Editor , в появившемся окне нужно нажать Add (добавить). При этом в окне Network Set Editor добавится информационная строка для сети: тип сети, среднеквадратичная ошибка сети (RMS error), количество входов сети, число скрытых элементов в сети, коэффициент регрессии, использованные методы обучения (если в списке Detail shown выбрано Verbose- подробный).

Для расчета данных с помощью сети используется пункт меню Run: Data Set – расчет для всех данных исходного файла;

Single Case – расчет одного наблюдений;

One-off – расчет для произвольного входного вектора.

Расчет производится при нажатии кнопки Run соответствующего окна.

Запускается, как и в предыдущем случае, но в таблицах выводится только фактическое выходное значение.

Откройте меню Run →One-off , введите входные значения, для которых необходимо спрогнозировать выходное, нажмите Run .

Просмотр весовых коэффициентов синаптических связей нейронов возможен в окне Network Editor (рисунок 13) (Edit→Network… ). Значение Theshold – пороговое значение, которое вычитается от входного значения нейрона. Значение VAR1 (на рисунке 13) – весовой коэффициент связи.

Номер слоя задается в поле Layer. В данном окне можно просмотреть (задать) функцию активации нейрона каждого слоя (поле Act fn).


Рисунок 13 – Окна просмотра параметров обученной сети

Просмотр выходных значений нейронов в слое в окне Network Activations (Run → Activations … ). Расчет для строки данных (указана в поле Case No ) по нажатию кнопки Run.

В пакете STATISTICA Neural Networks предусмотрена возможность автоматического определения структуры лучшей сети для набора обучающих данных (функция доступна через File→New→Intelleigent Problem Solver ).

Алгоритм работы сети в пакете STATISTICA Neural Networks .

1 Нормализация входных данных:

,

где - коэффициент нормализации; , максимальное и минимальное значения j- й переменной обучающей выборки; i – номер строки обучающей выборки.

Примечание - Для просмотра и анализа данных обучающей выборки удобно использовать функцию Edit → Cases → Shuffle →Group Sets.

2 Распределение входного вектора на следующий слой с соответствующим весовым коэффициентом (см. Edit→Network… ).

3 Вычитание порогового значения на каждом нейроне (см. Edit→Network… поле Theshold ).

4 Вычисление функции активации нейрона (результат см. Run → Activations … ).

5 Повтор шагов для всех слоев сети.

6 Вычисление выхода сети с учетом коэффициента нормализации:

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

Контрольные вопросы

1 Что такое нейронная сеть и каковы ее основные свойства?

2 Какова структура нейрона?

3 Какие функции активации могут быть использованы в нейронных сетях?

4 Какие требования предъявляются к функциям активации?

5 Какие функции выполняет входной слой в многослойной сети?

6 Можно ли обучить нейронную сеть без скрытого слоя?

7 В чем заключается обучение нейронных сетей?

8 Почему один из алгоритмов обучения получил название «алгоритм обратного распространения»?

9 Чем отличается обучение с учителем от обучения без учителя?

10 Почему входные и выходные сигналы нейронной сети должны быть нормированы, т.е. приведены к диапазону ?

Список литературы

1 Fogelman Soulie F. Neural networks, state of the art, neural computing. -London: IBC Technical Services, 1991.

2 Горбань А. Нейроинформатика и ее приложения // Открытые системы. -1998. -№ 4 – 5. -С. 36 - 41.

3 Роберт Хехт-Нильсен. Нейрокомпьютинг: история, состояние, перспективы // Открытые системы. -1998. -№ 4-5. -С. 23 - 28.

4 Розенблатт Ф. Принципы нейродинамики. Персептроны и теория механизмов мозга. -М.: Мир, 1965.

5 Гордиенко Е.К., Лукьяница А.А. Искусственные нейронные сети. I Основные определения и модели// Изв. РАН. Техническая кибернетика. -1994. -№ 5. -С. 79 - 92.

6 Короткий С.Г. Нейронные сети: алгоритм обратного распространения. -BYTE/Россия. -2000. -№ 5. -С. 26-29.

7 Свешников С.В., Шквар А.М. Нейротехнические системы обработки информации. -Киев: Наукова думка, 1983. -222 с.

8 Интеллектуальные системы управления с использованием нейронных сетей: учеб. пособие. / В.И. Васильев, Б.Г. Ильясов, С.С. Валеев и др.; Уфимск. гос. авиац. техн. ун-т. Уфа, 1997. -92 с.

9 Куликов Г.Г., Брейкин Т.В., Арьков В.Ю. Интеллектуальные информационные системы: учеб. пособие / Уфимск. гос. авиац. техн. ун-т. -Уфа, 1999. -129 с.

10 Короткий С.Г. Нейронные сети: основные положения // BYTE/Россия. -2000. -№ 5. -С. 18-21.

11 Интеллектуальные системы обработки информации на основе нейросетевых технологий: учеб. пособие. / Ю.И. Зозуля, Уфимск. гос. авиац. техн. ун-т. –Уфа. -2000. -138 с.

Пакет Statistica Neural Networks (SNN)

  1. Открыть файл данных Series_g из имеющихся в пакете данных. Файл содержит единственную переменную, определяющую объем перевозок на протяжении нескольких лет с помесячной регистрацией данных. (При открытии этого файла появляется еще ряд таблиц, относящихся к опции интеллектуального решателя, которые на данной стадии надо закрыть, оставив только таблицу исходных данных).
  2. Задать тип переменной «входная – выходная» следующим образом: выделить переменную щелчком по заголовку таблицы, нажать правую клавишу мыши и выбрать из меню опцию Input / Output (Входная / выходная). При этом имя переменной высветится зеленым цветом.
  3. Создать новую сеть с помощью диалогового окна Create Network (Создать сеть). Для этого последовательно нажать: File – New – Network (Файл – новый – сеть). На экране монитора – диалоговое окно (рис. 1).

Рис. 1. Диалоговое окно создания сети

В задаче прогноза временного ряда сеть должна знать, сколько копий одной переменной она должна взять и как далеко вперед она должна прогнозировать значение переменной. В данной задаче принять параметр Steps (Временное окно) равным 12, т. к. данные представляют собой ежемесячные наблюдения, а параметр Lookahead (Горизонт) – равным 1.

  1. Выбрать в качестве типа сети Multilayer Perceptron (Многослойный персептрон) и принять число слоев сети равным 3. После этого нажать кнопку Advice (Совет), в результате чего программа автоматически установит число нейронов во всех трех слоях сети: 12 – 6 – 1 (рис. 2).

Рис. 2. Диалоговое окно после установки параметров сети

После этого нажать кнопку Create (Создать).

  1. При создании сети программа SNN автоматически присвоит первым 12 наблюдениям из файла данных тип Ignore (Неучитываемые). При дальнейшем обучении и работе сети в задаче анализа временного ряда каждый подаваемый ей на вход блок данных содержит данные, относящиеся к нескольким наблюдениям. Весь такой блок приписывается тому наблюдению, которое содержит значение выходной переменной. Вследствие этого первые 12 наблюдений на самом деле не игнорируются, а являются входами первого блока данных временного ряда, который соответствует наблюдению №13. На самом деле программа строит преобразованный набор данных, в котором число наблюдений на 12 меньше, но данные в каждое наблюдение берутся из 13 последовательных строк исходного файла.

Созданная сеть показана на рис. 3.

Рис. 3. Трехслойный персептрон

  1. В окне исходных данных «Data Set Editor» задать 66 обучающих (Training) и 66 контрольных (Verification) наблюдений (рис. 4), после чего нажать кнопку перемешивания строк следующим образом: через меню Edit – Cases Shuffle – All (Редактирование – Случаи – Перемешать – Все) .
  2. Обучить сеть методом Левенберга-Маркара, для чего необходимо нажать: Train Multilayer Perceptron – Levenberg-Marquardt (Обучить – Многослойный персептрон – Левенберг-Маркар). Процедура обучения занимает несколько секунд (зависит от типа процессора). Метод Левенберга-Маркара является одним из надежных и быстрых алгоритмов обучения, однако его применение связано с определенными ограничениями:

Рис. 4. Окно исходных данных с разделенными наблюдениями

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

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

Диалоговое окно метода Левенберга-Маркара показано на рис. 5.

Рис. 5. Диалоговое окно метода Левенберга-Маркара

Основные элементы окна:

  • Epochs (Число эпох) – задается число эпох, в течение которых алгоритм будет прогоняться. На каждой эпохе через сеть пропускается все обучающее множество, а затем происходит корректировка весов.
  • Cross-Verification (Кросс-проверка) – при отмеченной позиции качество выдаваемого сетью результата проверяется на каждой эпохе по контрольному множеству (если оно задано). При выключенной позиции контрольные наблюдения игнорируются, даже если они присутствуют в файле данных.
  • Train (Обучить) – При каждом нажатии кнопки алгоритм прогоняется через заданное число эпох.
  • Reinitialize (Переустановить) – перед новым запуском обучения следует нажать кнопку переустановки, т. к. при этом заново случайным образом устанавливаются веса сети.
  • Jog Weights (Встряхивание весов) – при возможном застревании алгоритма в локальном минимуме данная опция добавляет к каждому весу небольшую величину.
  1. Построить проекцию временного ряда, для чего через Run – Times Series Projection (Запуск – Проекция временного ряда) открыть соответствующее окно (рис. 6).

Рис. 6. Окно проекции временного ряда

Описание диалогового окна

  • Start (Начало) – указывает, должна ли проекция временного ряда начинаться с некоторого номера наблюдений (Case No) в файле данных или с отдельного наблюдения.
  • Case No (Номер наблюдения) – при проекции временного ряда из файла данных указывается номер наблюдения с выходным значением, с которого надо начинать.
  • Length (Длина) – число шагов, на которое будет проектироваться прогноз.
  • Variable (Переменная) – указывается переменная, которая будет проектироваться.
  1. С помощью обученной сети можно выполнить проекцию временного ряда. Вначале сеть отработает на первых 12 входных значениях, в результате чего будет получен прогноз следующего значения. Затем спрогнозированное значение вместе с предыдущими 11 входными величинами вновь подается на вход сети, и последняя выдает прогноз очередного значения.

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

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

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

  1. Провести прогнозирование ряда с использованием интеллектуального решателя (третья кнопка слева в верхнем ряду). В этом случае необходимо ответить на ряд вопросов в режиме диалога:
  • Выбрать основную версию (рис. 7) и нажать Next.

Рис. 7. Выбор основной версии

  • Определить тип задачи (стандартная или временной ряд). Здесь нужно отметить временной ряд (рис. 8).

Рис. 8. Выбор типа задачи

  • Установить период наблюдений, равный 12 месяцам (рис. 9).

Рис. 9. Установка периода наблюдений

  • Выбрать зависимую и независимую переменные, в качестве которых служит одна и та же переменная Series.
  • Определить время расчетной процедуры, равное 2 мин (рис. 10).

Рис. 10. Установка времени расчетной процедуры

  • Указать количество сохраняемых сетей и действия при их сохранении (рис. 11).

Рис. 11. Действия по выбору сетей

  • Выбрать формы представления результатов (рис. 12) и нажать Finish.

Рис. 12. Выбор формы представления результатов

В результате использования интеллектуального решателя прогноз получается гораздо точнее, так как обучаемая сеть намного ближе к исходному ряду (рис. 13).

Рис. 13. Прогноз с помощью интеллектуального решателя

Задание

Построить смоделированный временной ряд из пакета Statistica следующим образом:

  • Создать новый файл, состоящий из 20 строк и 2 столбцов.
  • Через меню Data – Variable Specs (Данные – описание переменной) ввести в окно формул выражение =vnormal(rnd(1);1;3).
  • Смоделировать 20 значений случайной нормально распределенной величины с математическим ожиданием, равным 1, и среднеквадратичным отклонением, равным 3. Эти 20 значений определяют переменную Var 1. Перевести их к целому типу данных, установив в окне описания переменной в качестве Type значение Integer.
  • Перейти к переменной Var 2 следующим образом: первое значение Var 2 равно первому значению переменной Var 1; второе значение Var 2 равно сумме первых двух значений переменной Var 1; третье значение переменной Var 2 равно сумме первых трех значений переменной Var 1 и т. д.
  • Скопировать переменную Var 2 и перейти в пакет SNN, разместив скопированные данные в новом созданном файле.
  • Провести прогнозирование полученного ряда с помощью нейронной сети.

Версия для печати

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

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

Итак, прежде всего, запустим нейронные сети.

Шаг 1. Вы начинаете со стартовой панели (посмотрите на рис. 1).

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

Рис. 1. Стартовая панель STATISTICA Automated Neural Networks (SANN)

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

Нажав кнопку ОК , перейдем к диалоговому окну выбора данных.

Рис. 2. Диалоговое окно Нейронные сети - Отбор данных - вкладка Быстрый

Шаг 2. На вкладке Быстрый следует выбрать необходимые переменные для анализа. Переменные могут быть непрерывными и категориальными, зависимыми и независимыми; кроме того, наблюдения могут принадлежать разным выборкам.


Рис. 3. Окно выбора переменных

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

Рис. 4. Диалоговое окно Нейронные сети - Отбор данных - вкладка Быстрый

На вкладке Подвыборки (ПНС и АНС) следует задать желаемое разбиение данных на подвыборки: обучающую, контрольную и тестовую. Разбиение можно задавать случайным образом, а можно фиксировать с помощью дополнительной переменной кодов.

В данном случае будем использовать случайное разбиение.

Рис. 5. Диалоговое окно Нейронные сети - Отбор данных - вкладка Подвыборки (АНС и ПНС)

Вкладка Подвыборки (ПНС и АНС) предназначена для первых двух стратегий: Автоматизированная нейронная сеть (АНС) и Пользовательская нейронная сеть (ПНС) ; а вкладке Создание подвыборок используется для последней стратегии: Метод многократных подвыборок.

Нажимаем ОК и переходим к шагу задания параметров архитектуры.

Шаг 3. На вкладке Быстрый диалогового окна Автоматизированные нейронные сети необходимо указать тип сети, количество скрытых нейронов, количество обучаемых и сохраняемых сетей, а также тип используемых функций ошибок.

Программа предлагает следующие типы сетей: многослойные персептроны и сети радиальных базисных функций.

Рис. 6. Диалоговое окно Автоматизированные нейронные сети - вкладка Быстрый

Рис. 7. Диалоговое окно Автоматизированные нейронные сети - вкладка Функции активации для МЛП

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

Но в нашем случае мы это использовать не будем.

Рис. 8. Диалоговое окно Автоматизированные нейронные сети - вкладка Затухание

Теперь можно перейти к шагу обучения нейронных сетей.

Шаг 4. Запустите процедуру обучения нейронных сетей, нажав кнопку ОК .

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

Рис. 9. Диалоговое окно Обучение нейронной сети

Программа автоматически переходит к следующему шагу.

Шаг 5. Анализ результатов. В окне результатов вы можете проанализировать полученные решения. Программа отберет лучшие сети и покажет качество решения.

Рис. 10. Диалоговое окно Нейронные сети - Результаты - вкладка Предсказанные

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

Рис. 11. Диалоговое окно Активация модели

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

Рис. 12. Таблица наблюдаемых и предсказанных значений

Или посмотреть матрицу ошибок классификации на тестовой выборке:

Рис. 13. Матрица классификаций

Шаг 6. Сохраните лучшие сети с целью дальнейшего использования, например, для автоматического построения прогнозов.

Для дальнейшего запуска, сети сохраняются в формате PMML.

Рис. 14. Диалоговое окно Нейронные сети - Результаты - Сохранение сетей

Рис. 15. Стандартное окно сохранения файла сети

Шаг 7. Запуск сохраненных моделей на новых данных. Итак загружаем новые данные, но чтобы переменные совпадали с переменными в моделях.

Чтобы запустить модель на новых данных, можно на стартовой панели (рис. 1) выбрать опцию Загрузить модели из предыдущих анализов и нажить кнопу Загрузить сети.

Рис. 16. Стандартное окно выбора файла сети

Получаем:

Рис. 17. Стартовая панель STATISTICA Automated Neural Networks (SANN)

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

Именно таков типичный сценарий исследования в пакете

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

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

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

    Весах нейронов;

    Функции активации;

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

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

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

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

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

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

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

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

    Обучающую. По ней производится обучение нейронной сети и подстройка весов;

    Тестовую. Она так же используется в процессе обучения и проверяет не переробучилась ли сеть;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рис. 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, но тоже подойдет.