Нейронные сети. Statistica Neural Networks

Как это работает? 

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

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

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

Шаг 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)

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

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

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

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

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

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

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

Нейронные сети возникли из исследований в области искусственного интеллекта, а именно, из попыток воспроизвести способность биологических нервных систем обучаться и исправлять ошибки, моделируя низкоуровневую структуру мозга (Patterson, 1996). Основной областью исследований по искусственному интеллекту в 60-е - 80-е годы были экспертные системы. Такие системы основывались на высокоуровневом моделировании процесса мышления (в частности, на представлении, что процесс нашего мышления построен на манипуляциях с символами). Скоро стало ясно, что подобные системы, хотя и могут принести пользу в некоторых областях, не ухватывают некоторые ключевые аспекты человеческого интеллекта. Согласно одной из точек зрения, причина этого состоит в том, что они не в состоянии воспроизвести структуру мозга. Чтобы создать искусственных интеллект, необходимо построить систему с похожей архитектурой.

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

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

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

За определенную историю наблюдения за больными, накопился массив данных, которые сохранены в таблице системы STATISTICA. Вид соответствующей Таблицы данных представлен на Рисунке 6.

Рисунок 6. Фрагмент таблицы исходных данных

Целью исследования является построение нейросетевой модели, которая по заданному набору исходных данных (данные обследований больного, результаты анализов, лечение до поступления), на основе назначенного в стационаре лечения выдавала бы прогноз его лечения (значений приём в стационаре И-АПФАРА, БАБ, БКК, диуретиков, препаратов центрального действия) с достаточной точностью.

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

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

Зависимость между переменными есть;

Зависимость определенно нелинейная;

О явном виде зависимости сказать что-либо сложно,

выручают нейросетевые алгоритмы. Рассмотрим способ решения данной задачи в модуле STATISTICA Neural Networks.

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

Модуль Neural Networks системы STATISTICA включает в себя процедуру, организующую поиск нужной конфигурации сети. Эта процедура заключается в построении и тестировании большого количества сетей с разными архитектурами и послудующем выборе из них той сети, которая лучше всего подходит для решения поставленной задачи. Данный инструмент называется Intelligent Problem Solver. Для запуска модуля Neural Networks необходимо воспользоваться одноименной командой основного меню системы STATISTICA - Statistics. (рисунок 7)

Рисунок 7. Запуск модуля Neural Networks

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

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

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

Модуль Neural Networks системы STATISTICA включает в себя уникальную процедуру, организующую поиск нужной конфигурации сети. Данный инструмент называется Intelligent Problem Solver. Воспользуемся этим инструментом и осуществим поиск нейронной сети, которая будет способна к решению нашей задачи.

Рисунок 8. Стартовая панель модуля Neural Networks

Во вкладке Quick (Быстрый) данного диалогового окна в разделе Problem Type (Класс задач) предлагается осуществить выбор того класса задач, с которым мы столкнулись. Нашей целью является построение многомерной зависимости или, другими словами, многомерной нелинейной регрессии. Значит, в разделе Problem Type - Класс задач следует указать Regression (Регрессия).

Определившись с классом задач, необходимо указать переменные для проведения Анализа. Для того чтобы выбрать переменные, воспользуемся кнопкой Variables. При нажатии данной кнопки появляется диалоговое окно Select input (independent), output (dependent) and selector variables (Укажите входные (независимые), выходные (зависимые) и группирующие переменные). В данном диалоговом окне необходимо задать два списка переменных. Continuous outputs (Непрерывные выходящие), в нашем случае, - это переменные Приём в стационаре И-АПФ/АРА, Приём в стационаре БАБ, Приём в стационаре БКК, Приём в стационаре диуретиков и приём в стационае препаратов центрального действия . Continuous inputs (Непрерывные входящие), в нашем примере, - это с 1 по 61 исходный параметр.

Рисунок 9. Выбор переменных для анализа

В разделе Select analysis (Выбор анализа) доступны две опции Intelligent Problem Solver и Custom Network Designer. Для автоматического подбора параметров нейронной сети требуется первая опция, которая устанавливается по умолчанию. Для продолжения Анализа необходимо нажать кнопку OK.

На следующем шаге появляется диалоговое окно настройки процедуры Intelligent Problem Solver.

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

В разделе Networks tested (Количество тестируемых сетей) укажем 100, Networks retained (Количество сохраненных сетей) -- 10 (Рисунок 10)

На вкладке Types указывается, какие типы нейронных сетей будут использованы в процессе тестирования. Для решения задачи нелинейной регрессии больше всего подходит многослойный персептрон, поэтому выбираем сети, отмеченные на рисунке 11.

Рисунок 10. Задание количества тестируемых сетей

Рисунок 11. Выбор архитектуры сети

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

Рисунок 12. Указание размеров обучающей, контрольной и тестовой выборок

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

Состояние алгоритма поиска отображается в диалоговом окне IPS Training In Progress (Процесс поиска сети).

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

  • Пре- и пост-процессирование, включая выбор данных, кодирование номинальных значений, шкалирование, нормализация, удаление пропущенных данных с интерертацией для классификации, регрессия и задачи временных рядов;
  • Исключительная простота в использовании плюс непревзойденная аналитическая мощность; так например, не имеющий аналогов Мастер решений проведет пользователя через все этапы созадния различных нейронных сетей и выберет наилучшую (эта задача, в противном случае, решается длительным путем "проб и ошибок" и требует основательного знания теории);
  • Мощные разведочные и аналитические технологии , в том числе Анализ главных компонент и Понижение размерности для выбора нужных входных переменных в разведочном (нейросетевом) анализе данных (выбор нужных входных переменных для нейронных сетей часто занимает длительное время; система STATISTICA Neural Networks может выполнять эту работу за пользователя);
  • Самые современные, оптимизированные и мощные алгоритмы обучения сети (включая методы сопряженных градиентов и Левенберга-Маркара) ; полный контроль над всеми параметрами, влияющими на качество сети, такими как функции активации и ошибок, сложность сети;
  • Поддержка ансамблей нейросетей и нейросетевых архитектур практически неограниченного размера, созданных в Наборах сетей - Network Sets ; выборочное обучение нейросетевых сегментов; объединение, и сохранение наборов сетей в отдельных файлах;
  • Полная интеграция с системой STATISTICA ; все результаты, графики, отчеты и т.д. могут быть в дальнейшем модифицированы с помощью мощных графических и аналитических инструментов STATISTICA (например, для проведения анализа предсказанных остатков, создания подробного отчета и т.п.);
  • Полная интеграция с мощными автоматическими инструментами STATISTICA ; запись полноценных макросов для любых анализов; создание собственных нейро-сетевых анализов и приложений с помощью STATISTICA Visual Basic , вызов STATISTICA Neural Networks из любого приложения, поддерживающего технологию СОМ (например, автоматическое проведение нейро-сетевого анализа в таблице MS Excel или объединение нескольких пользовательских приложений, написанных на С++, С#, Java и т.д.).


STATISTICA Neural Networks в нейросетевых вычислениях:

  • Использование нейронных сетей подразумевает гораздо большее, чем просто обработку данных нейросетевыми методами.
  • STATISTICA Neural Networks предоставляет разнообразные функциональные возможности, для работы с очень сложными задачами, включающие не только новейшие Архитектуры Нейронных Сетей и Алгоритмы обучения , но также и новые подходы в Отборе Входных Данных и Построении Сети . Кроме того, разработчики программного обеспечения и пользователи, экспериментирующие с настройками приложений, оценят тот факт, что после проведения заданных экспериментов в простом и интуитивно понятном интерфейсе STATISTICA Neural Networks , нейросетевые анализы могут быть объединены в пользовательском прилоложении. Это достигается либо с помощью библиотеки СОМ-функций STATISTICA , которая полностью отражает все фунциональные возможности программы, либо с помощью кода на языке С (С++, С#) или Visual Basic , который генерируется программой и помогает запустить полностью обученную нейронную сеть или сетевой ансамбль.

Исходные данные

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

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

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


Алгоритмы понижения размерности:

  • В STATISTICA Neural Networks реализованы обратный и прямой алгоритмы пошагового выбора. Кроме того, нейро-генетический агоритм отбора входных данных сочетает в себе возможности генетических алгоритмов и PNN/GRNN (PNN - вероятностные нейронные сети, GRNN - обобщенно-регрессионые нейронные сети) для автоматического поиска оптимальных комбинаций входных переменных, в том числе и в тех случаях, когда между ними имеются корреляции и нелинейные зависимости. Почти мгновенная скорость обучения по PNN/GRNN-алгоритму не только дает возможность применить Нейро-Генетический алгоритм отбора входных данных , но и, позволяет Вам (пользуясь имеющимися в Редакторе данных системы STATISTICA Neural Networks удобными средствами подавления незначимых переменных) в реальном времени проводить собственные эксперименты на чувствительность данных. STATISTICA Neural Networks содержит также встроенную систему Анализа главных компонент (АГК, и ассоциативные сети для "нелинейного АГК") , позволяющую понижать размерность исходных данных. Заметим, что огромное разнообразие статистических методов для понижения размерности данных доступны в базовой системе STATISTICA .


Шкалирование данных и преобразование номинальных значений:

  • Перед тем, как данные будут введены в сеть, они должны быть определенным образом подготовлены. Столь же важно, чтобы выходные данные можно было правильно интерпретировать. В STATISTICA Neural Networks имеется возможность автоматического масштабирования входных и выходных данных (в том числе шкалирование по минимальному/максимальному значениям и по среднему/стандартному отклонению); также могут быть автоматически перекодированы переменные с номинальными значениями (например, Пол={Муж,Жен}), в том числе по методу 1-из-N кодирования. STATISTICA Neural Networks содержит также средства работы с пропущенными данными. Реализованы такие функции нормировки, как "единичная сумма" , "победитель получает все" и "вектор единичной длины" . Имеются средства подготовки и интерпретации данных, специально предназначенные для анализа временных рядов. Большое разнообразие аналогичных средств реализовано также в базовой системе STATISTICA .
  • В задачах классификации имеется возможность установить доверительные интервалы, которые STATISTICA Neural Networks использует затем для отнесения наблюдений к тому или иному классу. В сочетании со специальной реализованной в STATISTICA Neural Networks функцией активации Софтмакс и кросс-энтропийными функциями ошибок это дает принципиальный теоретико-вероятностный подход к задачам классификации.

Выбор нейросетевой модели, Сетевые ансамбли

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


В системе STATISTICA Neural Networks реализованы все основные типы нейронных сетей, используемые при решении практических задач, в том числе:

  • многослойные персептроны (сети с прямой передачей сигнала);
  • сети на радиальных базисных функциях;
  • самоорганизующиеся карты Кохонена;
  • вероятностные (байесовские) нейронные сети;
  • обобщенно-регресионные нейронные сети;
  • сети главных компонент;
  • сети для кластеризации;
  • линейные сети.
Также, в системе STATISTICA Neural Networks реализованы Сетевые ансамбли , формируемые из случайных (но значимых) комбинаций вышеперечисленных сетей. Существует еще одно удобное средство: вы можете связать сети, чтобы они запускались последовательно. Это полезно при препроцессировании для нахождении решений с минимальной стоимостью.

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

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

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

Для улучшения производительности в пакете STATISTICA Neural Networks представлены многочисленные опции настройки сети. Так, Вы можете задать линейный выходной слой сети в задачах регрессии или функцию активации типа софтмакс в задачах вероятностного оценивания и классификации. Если в Ваших данных много выбросов, то при обучении сети можно заменить стандартную функцию ошибок на менее чувствительную функцию "городских кварталов" . В системе также реализованы основанные на моделях теории информации кросс-энтропийные функции ошибок и ряд специальных функций активации, в том числе: ступенчатая, пилообразная и синусоидальная.


Мастер решений (автоматически оценивает задачу и выбирает несколько сетей различной архитектуры) :

  • Составной частью пакета STATISTICA Neural Network s является Мастер решений - Intelligent Problem Solver , который оценивает множество нейронных сетей различной архитектуры и сложности и выбирает выбирает сети наилучшей архитектуры для данной задачи.
  • Мастер способен строить сети для данных с независимыми наблюдениями (стандартные регрессионнные сети, сети классификации или смешанные) равно как и сети, предназначенные для прогнозирования будущих значений некоторой переменной на основе уже имеющихся значений этой же переменной (сети с временными рядами).
  • Значительное время при создании нейронной сети уходит на выбор соответствующих переменных и оптимизацию архитектуры сети методом эвристического поиска. STATISTICA Neural Networks берет эту работу на себя и автоматически проводит эвристический поиск за вас. Эта процедура учитывает входную размерность, тип сети, размеры сети и требуемые выходные функции кодирования.
  • В ходе поиска вы можете задать число откликов, получаемых в процессе обучения. При установке режима максимальной детализации Мастер решени й будет отображать архитектуру и уровни качества для каждой тестируемой сети.
  • Мастер решений является чрезвычайно эффективным инструментом пр ииспользовании сложных техник, позволяя автоматически находить наилучшую архитектуру сети. Вместо того, чтобы тратить многие часы на сидение перед компьютером, предоставьте системе STATISTICA Neural Networks сделать эту работу за Вас.
  • Автоматический конструктор сети можно также использовать в процессе разработки модели, когда модуль STATISTICA Neural Networks, совместно с другими модулями базовой системы STATISTICA , применяется для выявления наиболее значимых переменных (например, наилучших предикторов для последующего их включения и тестирования в какой-либо модели Нелинейного оценивания - Nonlinear Estimation ).


Обучение нейронной сети:

  • Успех Ваших экспериментов по поиску наилучшего типа и архитектуры сети существенным образом зависит от качества и скорости алгоритмов обучения сети. В системе STATISTICA Neural Networks реализованы самые лучшие на сегодняшний день обучающие алгоритмы.
  • Для обучения многослойных персептронов в системе STATISTICA Neural Networks реализован, прежде всего, метод обратного распространения - с меняющимися во времени скоростью обучения и коэффициентом инерции, перемешиванием наблюдений перед очередным шагом алгоритма и добавлением аддитивного шума для робастного обобщения. Помимо этого, в системе STATISTICA Neural Networks реализованы два быстрых алгоритма второго порядка - методы сопряженных градиентов и Левенберга-Маркара . Последний представляет собой необычайно мощный современный алгоритм нелинейной оптимизации, и специалисты очень рекомендуют им пользоваться. В то же время, область применения этого метода ограничена случаями относительно небольших по размеру сетей с одним выходным нейроном, а для более громоздких задач в пакете STATISTICA Neural Networks имеется метод сопряженных градиентов. Как правило, и тот и другой алгоритм сходятся быстрее, чем метод обратного распространения, и при этом обычно выдают более подходящее решение.
  • Итеративный процесс обучения сети в системе STATISTICA Neural Networks сопровождается автоматическим отображением текущей ошибки обучения и вычисляемой независимо от нее ошибки на проверочном множестве, при этом показывается и график суммарной ошибки. Вы можете прервать обучение в любой момент, просто нажав кнопку. Кроме того, имеется возможность задать условия остановки, при выполнении которых обучение будет прервано; таким условием может быть, например, достижение определенного уровня ошибки, или стабильный рост проверочной ошибки на протяжении заданного числа проходов - "эпох" (что свидетельствует о так называемом переобучении сети). Если переобучение имеет место, это не должно заботить пользователя: STATISTICA Neural Networks автоматически запоминает экземпляр наилучшей сети, полученной в процессе обучения, и к этому варианту сети всегда можно обратиться, нажав соответствующую кнопку. После того, как обучение сети завершено, Вы можете проверить качество ее работы на отдельном тестовом множестве.
  • В пакете STATISTICA Neural Networks реализован также целый ряд алгоритмов обучения для других сетей других архитектур. Параметры радиальных сплайнов и коэффициенты сглаживания у сетей на радиальной базисной функции и обобщенно-регрессионных сетей могут выбираться по таким алгоритмам, как: обучение Кохонена , подвыборка, метод K-средних , методы изотропии и ближайших соседей. Нейроны линейного выходного слоя у сетей на радиальной базисной функции, как и у линейных сетей, полностью оптимизируются методом сингулярного разложения (SVD) .
  • Создание гибридных структур сетей. В системе STATISTICA Neural Networks имеется возможность создавать сети смешанной структуры. Например, у модифицированной сети на радиальной базисной функции первый слой нейронов может обучаться по алгоритму Кохонен а, а второй -нелинейный слой - методом Левенберга-Маркара .


Тестирование нейронной сети:

  • После того, как сеть обучена, нужно проверить качество ее работы и определить характеристики. Для этого в пакете STATISTICA Neural Networks имеется набор экранных статистик и графических средств.
  • В том случае, если заданы несколько моделей (сетей и ансамблей), то (если это возможно) STATISTICA Neural Network s отобразит сравнительные результаты (например, построит кривые отклика нескольких моделей на одном графике, или представит предикторы нескольких моделей в одной таблице). Это свойство очень полезно для сравнения различных моделей, обучаемых на одном наборе данных.
  • Все статистики вычисляются раздельно для обучающего, проверочного и тестового множеств. Все веса и параметры активации доступны в виде удобного текстового файла, который одним щелчком мыши можно преобразовать в таблицу результатов системы STATISTICA . Результаты опытов по отдельным наблюдениям или по всему набору данных также можно просмотреть в виде таблицы STATISTICA и использовать в дальнейших анализах или графиках.
  • Автоматически вычисляются следующие итоговые статистики: среднеквадратичная ошибка сети, так называемая матрица несоответствий (confusion matrix) для задач классификации (где суммируются все случаи правильной и неправильной классификации) и доля объясненной регрессии для задач регрессии. Сеть Кохонена имеет окно Топологической карты , в котором можно визуально наблюдать активации элементов сети, а также изменять метки наблюдений и узлов в процессе анализа данных. Имеется также окно Частоты выигрышей, позволяющее мгновенно локализовать кластеры в топологической карте. Кластерный анализ можно выполнять с помощью сочетания сети стандартной архитектуры со специальной кластерной диаграммой системы STATISTICA Neural Networks . Например, Вы можете обучить сеть для анализа главных компонент и графически изобразить данные в проекции на две первых компоненты.

Редактирование, модификация и последовательное соединение нейронных сетей

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

Готовые решения (пользовательские приложения, использующие STATISTICA Neural Networks):

  • Простой и удобный интерфейс системы STATISTICA Neural Networks позволяет Вам быстро создавать нейросетевые приложения для решения Ваших задач.
  • Возможна такая ситуация, когда необходимо встроить эти решения в уже имеющуюся систему, например, сделать их частью более широкой вычислительной среды (это могут быть процедуры, разработанные отдельно и встроенные в корпоративную вычислительную систему).
  • Обученные нейронные сети могут быть применены к новым наборм данных (для предсказания) несколькими способами: Можно сохранить обученную сеть или ансамбль сетей (например, для вычисления среднего предсказания на основе нескольких архитектур) и затем применить ее к новому набору данных (для предсказания, предсказанной классификации или прогнозирования); Можно использовать генератор кода для автоматического создания программного кода на языке С (С++, C#) или Visual Basic и в дальнейшем использовать его для предсказания новых данных в любой программной среде visual basic или С++ (C#) , т.е. внедрить полностью обученную нейронную сеть в ваше приложение. В заключение, все функциональные возможности системы STATISTICA , включая STATISTICA Neural Networks могут быть использованы в качестве СОМ объектов (Component Object Model) в других приложениях (например, Java, MS Excel и т.д.). Например, вы можете внедрить автоматические анализы, созданные в STATISTICA Neural Networks в таблицы MS Excel .


Перечень алгоритмов обучения:

  • Обратное распространение;
  • Левенберга-Маркара;
  • Сопряженных градиентов;
  • Квази-Ньютоновский;
  • Быстрое распространение;
  • Дельта-дельта-с-чертой;
  • Псевдо-обратный;
  • Обучение Кохонена;
  • Пометка ближайших классов;
  • Обучающий векторный квантователь;
  • Радиальная (под)выборка;
  • Метод K-средних;
  • Метод К-ближайших соседей (KNN);
  • Установка изотропных отклонений;
  • Установка явных отклонений;
  • Вероятностная нейронная сеть;
  • Обобщенно-регрессионнаянейронная сеть;
  • Генетический алгоритм отбора входных данных;
  • Пошаговый прямой или обратный отбор входных данных.

Требования к системе

Система STATISTICA Neural Networks может работать даже на относительно слабых или старых компьютерах. Однако, поскольку многие процедуры пакета требуют больших объемов вычислений, настоятельно рекомендуется использовать процессор Pentium с 32 мегабайтами оперативной памяти.


Ограничения в размерах сетей:

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


Электронное руководство:

  • В составе системы STATISTICA Neural Networks имеется хорошо иллюстрированный учебник, содержащий полное и понятное введение в нейронные сети, а также примеры. Из любого диалогового окна доступна система подробных контекстно-зависимых справок.


Генератор исходного кода:

  • Генератор исходного кода является дополнительным продуктом, который позволяет пользователям легко создавать собственные приложения на базе системы STATISTICA Neural Networks . Этот дополнительный продукт создает исходный системный код нейросетевой модели (в виде файла на языке C, C++, C#) , который можно отдельно скомпилировать и интегрировать в вашу программу для свободного распространения. Этот продукт разработан специально для корпоративных системных разработчиков, а также тех пользователей, кому необходимо преобразовать высокооптимизированные процедуры, созданные в STATISTICA Neural Networks во внешние приложения для решения сложных аналитических задач.

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

Промышленность:

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


Маркетинг:

  • Прогнозирование цен на золото;
  • Прогнозирование цен на сырье;
  • Торговля путем прямой рассылки.


Финансы:

  • Оценка кредитоспособности (классическая задача - по анкетным данным определить, надежен ли данный заемщик).
  • Прогнозирование финансовых временных рядов.


Геологоразведка:

  • Повышение эффективности процесса добычи полезных ископаемых (выделение значимых факторов, влияющих на показатели эффективности добычи).


Другие отрасли:

  • Оптическое распознавание символов, включая распознавание подписи;
  • Обработка изображений;
  • Прогнозирование хаотических временных рядов;
  • Медицинская диагностика;
  • Синтез речи;
  • Лингвистический анализ.
Для создания набора обучающих данных используется встроенный редактор данных (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 с.