Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
attachments_16-10-2012_20-40-13 / Пояснения по задаче регрессии.doc
Скачиваний:
27
Добавлен:
09.04.2015
Размер:
644.1 Кб
Скачать

19

Решение задачи общей нелинейной регрессии в системе statistica Neural Networks

 http://www.statsoft.ru/statportal/tabID__32/MId__141/ModeID__0/PageID__160/DesktopDefault.aspx

Постановка задачи

Рассматривается реальный физический процесс, который, достаточно хорошо описывается пятью переменными в виде z = f (x,y, factor1, factor2), где

z - зависимая переменная, показатель выхода процесса; x - первая непрерывная независимая переменная; y - вторая непрерывная независимая переменная; factor1 - первый независимый фактор, принимающий всего два значения m и s; factor2 - второй независимый фактор, принимающий всего два значения l и d.

За историю наблюдения за процессом накопился массив данных, которые сохранены в таблице системы STATISTICA. - Рис.1.

 

Рис.1. Таблица исходных данных о процессе.

 

Цельисследования - построение математической модели физического процесса на основе исходных данных, которая по заданной четверке значений (x, y, factor1, factor2) выдавала бы отклик z с точностью не хуже 5%.

Нейросетевые алгоритмы хороши, когда:

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

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

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

 Универсальных правил выбора топологиинейронной сети для решения той или иной задачинет.

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

В 1988 году обобщили теорему Колмогорова и показали, что:

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

Поиск нужной конфигурации сети:

  • в Модуле Neural NetworksсистемыSTATISTICA

  • инструмент “Intelligent Problem Solver”

Запуск модуля Neural Networks:

  • воспользуемся одноименной командой

  • основное меню системы STATISTICA - Statistics.

  • Команда Neural Networks

  • вызов стартовой панели модуля STATISTICA Neural Networks (SNN).

 Разделы.

Раздел Problem Types.

Рис.3. Стартовая панель модуля SNN.

 

  • Во вкладке Quick - Быстрыйдоступны три, наиболее часто используемые опции.

  • В разделе Problem Type - Класс задач– выбрать класс задач.

  • Построение многомернойзависимости– это построениемногомерной регрессии=>

  • Класс задачследует указатьRegression - Регрессия.

доступны классы задач:

  • Regression - Регрессия

  • Classification – Классификация

  • Time series - Прогнозирование временных рядов

  • Cluster analysis - Кластерный анализ.

Указать переменные для проведения Анализа:

  • кнопка Variables =>

  • появляется диалоговое окно Select input (independent), output (dependent) and selector variables =- Укажите входные (независимые), выходные (зависимые) и группирующие переменные.

Задать три списка переменных:

  • Continuous outputs - Непрерывные выходящие, в нашем случае, - это переменная z.

  • Continuous inputs - Непрерывные входящие, в нашем примере, - это переменные x и y.

  • Categorical inputs - Категориальные входящие, у нас это переменные Factor1 и Factor2.

Раздел Subset variable - Разбиение на подмножества:

  • необязателен для заполнения

  • служит для выбора переменной, в которой содержатся коды для разбиения данных на:

    • обучающее

    • контрольное

    • тестовое множества.

 

Рис.4. Выбор переменных для Анализа.

 

Раздел Select analysis - Выбор анализ:

доступны 2 опции:

  • Intelligent Problem Solver- нам требуется, устанавливается по умолчанию

  • Custom Network Designer

Нажмем кнопку OK.

Появляется окно настройки процедурыIntelligent Problem Solver:

  • окно содержит большое количество опций, распределенных в различных вкладках

  • нам понадобится вкладка Quick - Быстрыйи её разделOptimization Time - Время оптимизации(содержит группу опций, отвечающих за время исполнения алгоритма поиска нейронной сети)

  • 2 возможности:

1)задать количество сетей, которые необходимо протестировать (подходят ли они для решения задачи);

вручную задать время выполнения алгоритма. Для этого необходимо воспользоваться опцией Hours/Minutes - Часы/Минуты.

Воспользуемся 1-й опцией. В разделе Optimization Time - Время оптимизациив разделеNetworks tested - Количество тестируемых сетейукажем 100.

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

 

Для запуска процедуры поиска сетей нажмем ОК.

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

 

Рис.6. Процесс поиска сети.

 

  • информация о времени исполнения алгоритма

  • о рассмотренных нейронных сетях

Цель алгоритма поиска:

  • перебор ряда нейросетевых конфигураций

  • выбор наилучшей с точки зрения:

    • минимума ошибки на выходе сети и

    • максимума её производительности

Сети необходимо:

      • Обучать

      • рассчитывать их ошибки и производительности

      • эти показатели сравнивать

Каждая нейронная конфигурация описывается строкой в информационном поле диалогового окна. Показатели:

  • Profile - Тип сети

  • Train (Select, Test) Performance - Производительность сети на обучающем (контрольном, тестовом) множестве

  • rain Error - Ошибка обучения.

Раздел Profile - Тип сетиописывает:

  • топология нейронной сети = её класс (персептрон, сеть RBF и т.д.)

  • количество входных и выходных переменных

  • количество скрытых слоев

  • число элементов на каждом скрытом слое.

Алгоритм поиска сетиразбивает (по умолчанию) все множество наблюдений на:

  • Training – Обучающее

  • Selection – Контрольное:

  • Test - Тестовое

Training – Обучающее - обучение сети = изменение весовых коэф. каждого из нейронов пропорционально ошибке на выходе

Selection – Контрольное:

контрольное множество в процедуре изменения весов нейронов не участвует

служит для кросс – проверки - контроля способности сети к обобщению данных, на которых она не обучалась

На каждом шаге алгоритма обучения:

  • рассчитывается ошибка для всего набора наблюдений из контрольного множества

  • сравнивается с ошибкой на обучающем множестве

  • Как правило, ошибка на контрольном множестве превышает ошибку на обучающем множестве, так как:

  • алгоритм обучения нацелен на минимизацию ошибки на выходе сети

Если наблюдается рост ошибки на контрольном множестве и её уменьшениена обучающем множестве:

  • сеть "зазубрила" предъявленные ей наблюдения

  • не способна к обобщению

  • такое состояние называется переобучением- переобучения надо избегать.

Алгоритм Intelligent Problem Solver:

  • самостоятельно отслеживает переобучение

  • при завершении обучения возвращает сеть в наилучшее состояние (Retain Best Network - Восстановить наилучшую сеть).

Test - Тестовоемножества:

  • не участвует в обучении вообще

  • после завершения обучения исп-ся для:

    • расчета производительности полученной сети

    • её ошибки на данных, о которых "ей вообще ничего неизвестно".

Хорошая сеть:

  • ошибка одинаково мала на всех трех подмножествах.

Производительность сети в задаче регрессии– это:

  • отношениестандартного отклонения ошибок сетикстандартному отклонению исходных данных (SD-ratio).

  • Эмпирическое правилогласит, что еслиSD-ratioне превышает значения 0.2, сеть подобрана хорошо.

  • Производительность рассчитывается для каждого из трех подмножеств

  • разброс значений производительности на каждом из подмножеств д.б. небольшим.

 

Рис.7. Диалоговое окно результатов поиска сети.

 

Итог:

  • отобрана сеть - трехслойный персептрон

  • 8 нейронов на скрытом слое

  • производительностью 0.07.

Выбор нужной сети из списка, предлагаемого Intelligent Problem Solver:

  • окно Results - Результаты

  • кнопка Select Models - Выбрать модели

  • В появившемся диалоговом окне подсветить нужную нейронную сеть

  • нажать ОК

Посмотреть иллюстрацию выбранной сети:

  • Вкладка Advanced - Дополнительнодиалогового окна результатов.

  • кнопка Network Illustration

 

Рис.8. Иллюстрация выбранной нейронной сети.

 

Построить графикзависимости наблюдаемых значений выходной переменной z от предсказанных значений – отражает качество работы нейронной сети:

  • вкладка Plots – Графики

  • кнопка Graph X versus Y - График X от Y

  • предварительно указав в качестве X - axis - Observed - Наблюдаемые, Y - axis - Predicted - Предсказанные.

Рис.9. График зависимости предсказанных значений Z от наблюдаемых Z.

 

Для хорошей модели:

  • точки этого графика должны располагаться как можно ближе к прямой, лежащей под углом 45 градусов к осям координат.

  • На первый взгляд, так оно и происходит.

Рассмотрим численные результаты:

  • Вкладка Predictions - Прогнозыдиалогового окна результатов

  • кнопка Predictions - Прогнозыдля просмотра результатов работы нейронной сети на всем наборе данных

  • =>(см. Рис.10) - не все так хорошо, как хотелось бы:

 

Рис.10. Таблица результатов прогона всего набора данных через нейронную сеть.

 

  • нулевые значения z - ошибки колоссальны

  • значения z, не превышающие 100 - результаты сильно противоречивы

  • большие значения z порядка 1000 – рез-ты хорошие

Итог:

требуемой погрешности 5% на всех данных достичь не удалось.

Причины заблуждения:

  • Значения переменной z изменяются от 0 до 10000

  • При расчете статистик производительности основную роль сыграли именно "большие" данные

  • кричащая ошибка в области малых чисел была утеряна в результате усреднения всех ошибок.

Более точно посмотреть график:

  • воспользуемся опцией Zoom – Увеличить -расположена на графич. панели инструментов (панель видна при активном графическом документеSTATISTICA) в области малых значений z на графике (см. Рис.11).

 

Рис.11. График зависимости предсказанных значений Z от наблюдаемых Z в области малых значений Z.

 

  • Отчетливо видно отсутствие какой-либо зависимостимежду наблюдаемыми и предсказанными значениями.

  • имеются основания полагать, что функция изучаемого физического процесса не является непрерывной =>

  • получили противоречащий теореме Колмогорова о полноте результат

  • в некоторых областях пространства независимых переменных функция процесса ведет себя непрерывно (область больших значения z)

  • желательно такие области локализовать

  • Для этого осуществим разбиение данных на однородные группы, или проведем кластеризацию.

 

Соседние файлы в папке attachments_16-10-2012_20-40-13