Боровиков В.П. - Нейронные сети (778916), страница 51
Текст из файла (страница 51)
Предварительно, конечно, необходимо определить переменные и выбрать для них подходящий метод преобразования, а также архитектуру сети. 278 Гпввв 9. Краткое рукововсвво Чтобы перейти к диалогу задания параметров анализа необходимо на стартовом окне нажать кнопку ОК. В зависимости от того, каким инструментом мы пользуемся, опция по выбору типа сети будст на вкладке Тин сети (для Мастера решений) или на вкладке Быстрый (Конструктор сетей). Если рсшастся задача моделирования временного ряда, то при использовании любого инструмента будет доступна вкладка Временные ряды. В Мастере решений на этой вкладке устанавливаются границы для окна прогноза (т.е.
числа наблюдений, которые используются для прогнозирования на одно наблюдение вперед). В Конструкторе сетей на данной вкладке доступны опции для задания точного значения окна прогноза и параметр количества шагов вперед. В задачах, не связанных с временными рядами, данные опции недоступны. В задачах анализа временных рядов количество шагов вперед берется равным 1 или больше (чаще всего 1, что соответствует прогнозу на один шаг вперед), а временное окно — числу предыдуших значений ряда, по которым будет прогнозироваться его следующее значение. Кроме того, в задачах анализа временных рядов перед запуском соответствующего инструмента следует выбрать переменную, содержащую значения временного ряда, как входную и выходную одновременно, поскольку вы собираетесь предсказывать следующие значения переменной по ее же предыдущим значениям.
Если строится многослойный персептрон, то можно менять число слоев в сети; для сетей других типов этот параметр менять нельзя (за одним исключением: вероятностная сеть может состоять из трех или четырех слоев в зависимости от того, входит ли в нее матрица потерь). В опции Правка (доступна для инструмента Конструктор сетей в диалоге задания параметров сети) выдается информация о переменных пре- и постпроцессирования, включая их имена и определения, а также функцию преобразования, которая используется для подготовки данных к подаче на вход нейронной сети. Можно менять способ подстановки пропущенных значений и управляющие параметры преобразования.
Как правило, предлагаемые по умолчанию значения оказываются вполне подходящими. В этом же диалоге показаны текущие параметры архитектуры сети: число элементов в каждом слое и (ссли прокрутить таблицу вправо) ширина слоев. Количество входных и выходных переменных обычно жестко связано с числом входных и выходных переменных пре- и постпроцессирования, функцией преобразования и (в задачах анализа временных рядов) размером временного окна.
Программа БТАТ1БТ1СА Нейронные сети сама определяет соответствующие параметры и выводит их серым цветом, показывая тем самым, что редактировать их нельзя. Количество промежуточных слоев можно менять произвольно по своему усмотрению, однако обычно программа предлагает для них эвристичсски определенные разумные значения по умолчанию.
Ширина слоя не несет никакого функционального смысла за исключением выходного слоя сети Кохонена и, как правило, игнорируется. 279 нейронные сева. ЗтАт!зт!сА неига! не!вогез Для того чтобы создать сеть, имея уже загруженный набор обучающих данных, обычно бывает достаточно: 1) Задать типы переменных в стартовом окне (Входные или Выходные). 2) Выбрать тип сети и временные ряды. 3) Задать значения параметров Временное окно и Прогноз вперед (только в задачах анализа временных рядов). 4) Задать число слоев (только для многослойных персептронов).
5) Задать число скрытых элементов (если используется Конструктор сетей). 6) Задать число элементов и ширину выходного слоя (только для сетей Кохонена). 7) Нажать ОХ. Реяактцроеанме сетей После того, как сеть построена, ее конструкцию можно изменять с помощью инструмента Редактор моделей. При этом менять можно все параметры, использованные при ее построении, а также ряд дополнительных характеристик. Инструмент также позволяет менять имена и определения входных и выходных переменных, их функции и параметры преобразования и методы замены пропущенных значений.
Также здесь имеются возможности для добавления новых и удаления уже существующих переменньгх и изменения параметров временного ряда (Временное окно и Прогноз вперед). Этими возможностями пользуются редко. Кроме того, редактор пре- и постпроцессирования дает возможность менять параметры классификации, которые не задаются при построении сети, в то время как при работе может возникнуть необходимость их корректировки. Значения параметров классификации используются только при решении задач классификации, т.е. когда, по крайней мере, одна из выходных переменных является номинальной. При работе сети программа БТАТПТУСА Нейронные сети принимает решение по классификации, основываясь на значениях этих выходных переменных.
Так, если имеется номинальная выходная переменная с тремя возможными значениями и применяется кодирование 1-из-У, программа должна решать, следует ли, например, трактовать выходной вектор (О 03 0 98 0 02) как принадлежность ко второму классу (рис. 9. 5). Этот вопрос решается заданием порогов принятия и отвержения. При кодировании методом 1-из-крещение о классификации принимается, если одно из У выходных значений превысит порог принятия, а остальные окажутся ниже порога отвержения; если это условие не выполняется, то результат считается неопределенным (и выдается как пропущенное значение).
При установленных в программе по умолчанию значениях порога принятия (0,95) и отвержения (0,05) приведенный выше пример действительно будет отнесен ко 280 Гоава 9. Краткое руководство Рас. 9.5 второму классу. Выбор менее жестких порогов даст более результативную классификацию, но может привести к большему проценту ошибок. Способ интерпретации значений параметров Принять и Отвергнуть зависит от типа сети. Для некоторых типов сетей (например, сетей Кохонена) большие значения приводят к большим ошибкам, а решение о классификации принимается, если выходное значение оказалось ниже порога принятия (рис.
9.6 и 9.7). Редактор сети дает возможность менять некоторые другие параметры сети. Так, можно изменить тип функции ошибок, которая используется при обучении сети и для оценки качества ее работы. Можно также выбрать конкретные слои сети и изменить в них функции активации и постсинаптические потенциальные (РБР) функции. Имеется также возможность добавлять или Рас. 9.6 281 Неаронные оепа. ЗТАТ!ЗТ!СА Неже! Неаеогйв Рвс.
9.7 удалять элементы сети. Как правило, это можно делать только с промежуточными слоями, поскольку входные и выходные элементы привязаны к переменным пре- и постпроцессирования (при добавлении нли удалении переменных будут добавляться или удаляться соответствующис элементы).
Исключение составляют сети Кохонена, где можно добавлять и удалять выходные элементы. Чтобы добавить или удалить скрытые элементы, нужно зайти на вкладку Слои и удалить элементы скрытого слоя. Можно также использовать средства вырезания, копирования и вставки столбцов таблицы весов, котору!о можно редактировать на вкладке Веса.
Все это позволяет экспериментировать с различными архитектурами сетей, не создавая сеть каждый раз заново. Из сети можно удавить некоторый слой целиком. Это требуется в редких случаях, например, для отделения препроцессирующей половины автоассоциатнвной сети при понижении размерности. В таблице вссов показаны все веса и пороги либо для выделенного слоя, либо дчя всей сети, При желании веса и пороги можно редактировать непосредственно, однако это весьма нехарактерно (значення весов устанавливаются алгоритмами обучения). Эти данные выводятся главным образом для того, чтобы значения вссов можно было переслать в другую программу для дальнейшего анализа. ОБУЧЕНИЕ СЕТЕЙ После того, как сеть построена, ее нужно обучить на имеющихся данных. В пакете о ТАГ1о ПСА Нейронные сети для обучения сетей каждого типа имеются специальные алгоритмы, сгруппированные по типам в меню Обучение (эти параметры доступны только при использовании Конструктора сетей).
282 Гпава 9. Кравков руководспво вяноеоспойный персептрон Для обучения многослойнььх персептронов в пакете БТАГ1БГ1СА Нейронные сети реализовано пять различных алгоритмов обучения. Это хорошо известный алгоритм обратного распространения, быстрые методы второго порядка— спуск по сопряженным градиентам и Лсвенберга-Маркара, а также методы быстрого распространения и «дельта-дельта с чертой» (прсдставляющие собой вариации метода обратного распространения, которые в некоторых случаях работают быстрее). Все эти методы являются итерационными и способы их применения во многом схожи. В большинстве ситуаций следует остановиться на методе сопряженных градиентов, так как здесь обучение происходит значительно быстрее (иногда на порядок величины), чем методом обратного распространения.
Последний следует предпочесть только в том случае, когда в очень сложной задаче требуется быстро найти удовлетворительное решение, нли когда данных очень много (порядка десятков тысяч наблюдений) и даже есть известный их избыток. Метод Левенберга-Маркара для некоторых типов задач может оказаться гораздо эффективнее метода сопряженных градиентов, но его можно использовать только в сетях с одним выходом, среднеквадратичной функцией ошибок н не очень большим числом весов, так что фактически область его применения ограничивается небольшими по объему задачами регрессии. Итерационное обучение Алгоритм итерационного обучения последовательно проходит ряд так называемых эпох, на каждой из которых на вход сети подается — наблюдение за наблюдением — весь набор обучающих данных, вычисляются ошибки и по ним корректируются веса сети.
Алгоритмы этого класса подвержены нежелательному явлению переобучения (когда сеть хорошо учится выдавать те же выходные значения, что и в обучающем множестве, но оказывается неспособной обобщить закономсрносп на новые данные). Поэтому качество работы сети следует проверять на каждой эпохе с помощью специального контрольного множества (кросс-проверка). За ходом обучения можно следить в окне График ошибки обучения, где на графике изображается среднеквадратичная ошибка на обучающем множестве на данной эпохе.
В случае, если включена кросс-проверка, выводится также среднеквадратичная ошибка на контрольном множестве. С помощью расположенных под графиком элементов управления можно менять масштаб изображения, а если график целиком не помещается в окне, под ним появляются линсйки прокрутки (рис. 9.8).
Если требуется сопоставить рсзультаты различных прогонов обучения, то нужно нажать кнопку Дололпшпельно в окне обучения, а затем снова на- 283 нейронные сепв. зтАтшт!сА перга! не!вола Рис. 9.8 жать кнопку Обучить (повторное нажатие кнопки Обучить без инициализации просто продолжит обучение сети с того места, где оно было прервано). По окончании обучения с помощью кнопок, расположенных над полем условных обозначений, график можно переслать в систему БТАГ1БТ1СА (кнопка Я, ок, ~).















