Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум_нейрон_сети.doc
Скачиваний:
22
Добавлен:
22.11.2019
Размер:
1.59 Mб
Скачать

3. Применение программного пакета statistica neural networks (snn)

SNN является обширной, мощной и быстрой средой построения и анализа нейросетевых моделей [10].

Программа предоставляет разнообразные функциональные возможности для работы с очень сложными задачами, включающими не только новейшие архитектуры нейронных сетей и алгоритмы обучения, но также и новые подходы в отборе входных данных и построении сети. Кроме того, после проведения заданных экспериментов в простом и понятном виде программы нейросетевые анализы могут быть объединены в новом пользовательском приложении с помощью библиотеки СОМ-функций STATISTICA, которая полностью отражает все функциональные возможности программы, либо с помощью кода на языке С (С++, С#) или Visual Basic, который генерируется программой и помогает запустить полностью обученную нейронную сеть или сетевой ансамбль [9].

Для построения нейронной сети в программе необходимо выбрать переменные, которые влияют на результат, числовые или номинальные. Переменные других типов следует преобразовать в указанные типы либо объявить незначащими. Необходимо иметь порядка сотен или тысяч наблюдений; чем больше в задаче переменных, тем больше нужно наблюдений. Между количеством наблюдений и количеством параметров существует зависимость: с ростом количества переменных количество требуемых наблюдений растет нелинейно, но согласно эвристическим правилам, связывающим число необходимых наблюдений с размером сети, число наблюдений должно быть в десять раз больше числа связей в сети. Но существует такое понятие, как «проклятие размерности», когда каждый дополнительный входной элемент сети – это новая размерность в пространстве данных; наблюдения «несут» в себе небольшую информацию, являются нелинейными. При «проклятии размерности» невозможно правильно определить

веса категорий.

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

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

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

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

Независимые переменные обрабатываются как входные переменные для нейронных сетей. Эти переменные относят к независимым, так как в рамках нейросетевых архитектур эти переменные не предсказываются по зависимым или каким-либо еще другим переменным.

Непрерывные переменные обычно описывают непрерывные значения, такие как, например, вес или рост.

Категориальные переменные – переменные, содержащие целочисленные или текстовые значения, которые идентифицируют класс или группу, к которой принадлежит наблюдение [10]. Категориальные переменные относятся к группирующим переменным или переменным с классами. Типичным примером категориальной переменной может служить Пол с двумя значениями, группами или классами Муж и Жен.

В программе могут быть использованы методы решения с помощью инструмента Мастера решений или Конструктора сетей.

Мастер решений одновременно ищет оптимальные сети разных

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

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

Для выбора типа сети необходимо определить:

  • число входов и выходов, передаточные функции;

  • каким образом следует соединить их между собой (определить зависимость между переменными);

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

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

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

Результат обучения зависит от ошибок проверочных и обучающих данных, если на проверочных данных ошибка уменьшается, то сеть действительно выполняет обобщение. Если ошибка на обучающих данных продолжает уменьшаться, а ошибка на тестовых данных увеличивается, значит сеть перестала выполнять обобщение и просто «запоминает» обучающие данные. Это явление называется переобучением сети (оверфиттингом). В процессе обучения могут проявиться проблемы – паралич или попадание сети в локальный минимум поверхности ошибок, в таких случаях обучение обычно прекращают.

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

Выборка – множество случаев (испытуемых, объектов, событий,

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

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

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

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

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

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

Радиальная. Радиальные постсинаптические элементы вычисляют

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

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

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

Деление. Эта функция специально предназначена для использования в регрессионных сетях, и ее не следует использовать где-либо еще. Она ожидает, что один из входных весов равен +1, другой –1, а все остальные – нулю.

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

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

Пока две специально выбранные входные переменные изменяются (и выводятся вдоль осей X и Y графика), значения остальных переменных сети также должны быть заданы. Это заданные фиксированные значения, и они относятся к «фиксированным независимым». Таким образом, поверхность отклика на самом деле представляет собой двумерный срез N-мерной поверхности отклика, где N – число входных переменных.

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

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

Если все ИНС в ансамбле имеют общий выход, то такой ансамбль оценивает значение для этого выхода, комбинируя выходные значения из отдельных сетей. В задачах классификации (с номинальными выходами) прогнозы комбинируются согласно алгоритму «победитель забирает все» – в качестве выхода используется самый общий класс. В спорном случае на выход поступает «неизвестный» класс. В задачах регрессии (с числовыми переменными) общие прогнозы получаются с помощью процедуры усреднения. В обоих случая используются веса нейронных сетей (обычно все веса равны 1.0).

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

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

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

Существует несколько применений ансамблей:

  • ансамбли легко объединяют ИНС, которые строят прогнозы для

связанных переменных. При этом необязательно, чтобы все такие переменные объединялись в одну сеть. Составные выходы нейронных сетей часто страдают от смешивания скрытых нейронов и строят в итоге неэффективные прогнозы. Используя ансамбль, каждый выход можно предсказать по отдельности;

  • ансамбли предоставляют хороший метод противодействия переобучению и улучшают обобщающие способности. Усреднение прогнозов по всем моделям с различной структурой и/или обучение на основе различных множеств данных позволяет уменьшить дисперсию модели, не увеличивая смещение модели. Таким образом, ансамбли можно эффективно сочетать с технологиями построения выборок. Теоретически доказано, что ожидаемая производительность ансамбля не меньше средней производительности его членов;

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

В программе Statistica на вкладке Сети/Ансамбли для доступа к опциям просмотра сетей и ансамблей можно сохранить в файле сети (.snn) или использовать опцию Открыть файл сети, чтобы открыть существующий файл сети в текущей рабочей области.

Архитектура сети содержит тип сети, число входных и выходных переменных, число слоев и число элементов в каждом слое. Общий формат строки представляет собой:

<тип> <входы>:<слой1>–<слой2>–<слой3>:<выходы>, где число слоев может изменяться. Например, архитектура MLP 2:2–3–1:1 обозначает многослойный персептрон с двумя входными и одной выходной переменными и тремя слоями по 2, 3 и 1 элементу соответственно. Для простых сетей число входных и выходных переменных может соответствовать числу нейронов в входном и выходном слоях, но так бывает не всегда [10].