Читайте также: |
|
Поскольку автоматический конструктор сети требует много времени для работы, мы возьмем сокращенный вариант задачи про ирисы всего с двадцатью обучающими и двадцатью контрольными наблюдениями.
В разделе Формирование уменьшенного набора данных описано, как создать уменьшенный вариант файла данных про ирисы.
В одном из диалоговых окон для автоматического создания сети можно выбрать типы сетей, которые будут анализироваться. Они упорядочены в порядке возрастания сложности обучения. Линейные (Linear) сети почти не требуют обучения и включены сюда потому, что дают хорошую точку отсчета для сравнения эффективности различных методов. Сети PNN и GRNN также довольно просты, радиальные базисные функции
(Radial Basis Functions) устроены несколько сложнее, а трех- и четырех-слойные многослойные персептроны (Multilayer Perceptrons) - это очень сложные конструкции. Выберите в этом окне те типы сетей, которые вы хотели бы попробовать.
Автоматический конструктор сети использует немного разные алгоритмы для построения сетей PNN, GRNN, радиальных базисных функций и MLP различных типов. Однако в любом случае алгоритм будет итеративным и состоящим из двух этапов: сначала грубо выбирается подходящая конфигурация, затем она точно «настраивается».
Для трехслойного MLP поиск сводится к выбору числа элементов в скрытом слое. По существу, это линейный поиск для функции, содержащей помехи (при разных прогонах обучения сети, даже с одним и тем же числом элементов, могут получаться немного различные результаты). На первом этапе применяется тактика «захвата в вилку»: предполагается, что сеть должна содержать не менее одного и не более чем заданное число скрытых элементов, которое определяется эвристически по числу имеющихся обучающих наблюдений; затем применяется деление пополам для поиска оптимального числа в этом диапазоне. Поскольку поиск происходит при наличии шума, на этом этапе не обязательно будет найден абсолютный минимум, и поэтому на втором этапе алгоритм переключается на один из вариантов метода «отжига», в котором последовательно пробуется различное число скрытых элементов и поиск концентрируется на наиболее перспективных участках. Обычно первый этап завершается самое большее после десяти - пятнадцати итераций, а второй этап может продолжаться неограниченное время.
Алгоритмы, применяемые для PNN и GRNN сетей очень схожи, при этом для определения подходящего коэффициента сглаживания применяется алгоритм одномерного поиска. Алгоритмы для сетей RBF и четырехслойных MLP устроены несколько сложнее, поскольку поиск здесь происходит не на отрезке прямой, а на двумерной сетке (в случае сетей RBF в результате поиска определяется как число элементов, так и коэффициент сглаживания).
Одна из трудностей, связанных с таким алгоритмом поиска, заключается в том, что, вообще говоря, сеть большого размера может давать такое же качество результата, как и небольшая и, следовательно, более предпочтительная сеть. Как мы уже знаем, слишком большие по размеру сети страдают от переобучения, и если в задаче есть контрольное множество, то алгоритм имеет возможность это определить. Однако, по естественным соображениям эффективности, алгоритм обучения MLP (спуск по сопряженным градиентам) используется здесь в варианте с ранней остановкой (т.е. он останавливается, как только контрольная ошибка начинает расти), и тем самым в момент остановки обучение находится в наилучшем состоянии из достигнутых к тому времени. Вследствие этого применяемый алгоритм оказывается менее чувствительным к переобучению, чем это можно было ожидать.
Чтобы учесть эти обстоятельства, можно задать специальный коэффициент Штраф за элемент - Unit Penalty. Он определяет величину штрафа, которая умножается на число элементов в сети и прибавляется к ее ошибке перед решением вопроса о том, какая сеть лучше. Тем самым сеть с большим числом элементов должна оправдать свой размер, т.е. давать существенно меньшую ошибку. Даже очень маленький коэффициент (например, 0,001) будет оказывать серьезное влияние на то, чтобы при прочих равных предпочтение отдавалось сетям, чьи размеры меньше.
На нашей небольшой учебной задаче этот алгоритм можно прогнать в интерактивном режиме. Задайте значение параметра Штраф за элемент -Unit Penalty равным 0,001 и выберите типы сетей Линейные - Linear, Радиальные базисные функции - Radial Basis Functions и Трехслойные многослойные персептроны - Three Layer Multilayer Perceptrons.
По завершении работы алгоритма вновь созданная наилучшая сеть будет загружена вместо текущей сети (если таковая была).
Дата добавления: 2015-11-30; просмотров: 27 | Нарушение авторских прав