Боровиков В.П. - Нейронные сети (778916), страница 34
Текст из файла (страница 34)
При этом работа алгоритма может занимать весьма длительное время, поскольку он перебирает множество различных вариантов архитектур. Однако времени у него уйдет нс большс, чем у человека, выполняющсго ту жс ссрию экспсримснтов, а прсимущсство этого метода в том, что в процессе работы он нс требует присутствия пользователя. Кроме того, этот алгоритм осуществляет псрсбор гораздо большего числа вариантов, чем способсн вытсрпсть человек, и, как следствие, ого результаты часто оказываются лучше.
Примечаггие. В версии програмлгы БТАТ1БТ1СА 1г1еита! №ггеок1гв 6.1 функцигг ивтомагпического констр>пакора сеппг и мастера по поспгроениго сепгеи обьедггггеггы в новой функции Маспгер решений. Запуск автоматцческоао конструктора сети Поскольку автоматичоский конструктор сети требует много времени для работы, мы возьмсм сокращенный вариант задачи про ирисы всего с 20-ю обучагощими и 20-ю контрольными наблюдениями. В раздслс «Формнрованис умсньшснного набора данных» описано, как создать умсньшснный вариант файла данных про ирисы. В одном из диалоговых окон для автоматического создания сети можно выбрать типы сотой, которые будут анализироваться.
Они упорядочены в порядке возрастания сложности обучсния. Линейные г',Ьгггеак) сети почти нс трсбуют обучения и включены сюда потому, что дают хорошую точку отсчста для сравнения эффективности различных методов, Рг ггч- и ОВХХ-ости также довольно просты, радиальныс базисныс функции устроены несколько сложнсс, а трех- и четырехслойные многослойные псрссптроны — это очень сложныс конструкции. Выберите в этом окнс тс типы остей, которые вы хотели бы попробовать. Автоматический конструктор сети используст немного разные алгоритмы для постросния Р|чХ- и ОКХХ-сетей, радиальных базисных функций и МЛП различных типов. Однако в любом случае алгоритм будет итеративным и состоящим из двух этапов: сначала грубо выбирается подходящая конфигурация, затем она точно «настраивастся».
Для трехслойного МЛП поиск сводится к выбору числа элементов в скрытом слое. По сущсству, это линейный поиск для функции, содсржащсй помехи г',при разных прогонах обучения ости, даже с одним и тем жс числом элсмснтов, могут получаться немного различныс результаты). На первом этапе примснястся тактика «захвата в вилку»: предполагается, что сеть должна содсржать нс мснсс одного и нс более чсм заданное число скрытых элсмснтов, которое опрсдслястся эвристичсски по числу имсющихся обучающих 162 Гпааа 6. папьневшие аозможносви нейронных ситес наблюдений; затем применяется деление пополам для поиска оптимального числа в этом диапазоне. Поскольку поиск происходит при наличии шума, на этом этапе необязательно будет найден абсолютный минимум, и поэтому на втором этапе алгоритм переключается на один из вариантов метода «отжига», в котором последовательно пробуется различное число скрытых элементов, и поиск концентрируется на наиболее перспективных участках.
Обычно первый этап завершается самое большее после 10 — 15 итераций, а второй этап может продолжаться неограниченное время. Рис. 6.12 неароиные свого. зтАТщт!СА неога! неьвогкв Алгоритмы, применяемые для РМЧ- и ОКНМ-сетей, очень схожи, при этом для определения подходящего коэффициента сглаживания применяется алгоритм одномерного поиска. Алгоритмы для РБФ-сетей н четырехслойных МЛП устроены несколько сложнее, поскольку поиск здесь происходит не на отрезке прямой, а на двумерной сетке (в случае РБФ-сетей в результате поиска определяется как число элементов, так и коэффициент сглаживания).
Одна из трудностей, связанных с таким алгоритмом поиска, заключается в том, что, вообще говоря, сеть большого размера может давать такое же качество результата, как и небольшая и, следовательно, более предпочтительна. Как мы уже знаем, слишком большие по размеру сети страдают от переобучения, и если в задаче есть контрольное множество, то алгоритм имеет возможность это определить. Однако, по естественным соображениям эффективности алгоритм обучения МЛП (спуск по сопряженным градиентам) используется здесь в варианте с ранней остановкой (т.е. он останавливается, как только контрольная ошибка начинает расти), и тем самым в момент остановки обучение находится в наилучшем состоянии из достигнутых к тому времени.
Вследствие этого применяемый алгоритм оказывается менее чувствительным к переобучению, чем можно было оиащать. Чтобы учесть эти обстоятельства, можно задать Критерий выбора сохраняемой сети (см. вкладку Сохранить стартового окна Мастера решений) (рис. 6.14 — 6.16). С помощью параметра Баланс между ошибкой и сложностью можно назначить штраф, который умножается на число элементов в сети и прибавляется к ее ошибке перед решением вопроса о том, какая сеть лучше. Сеть с большим числом элементов должна оправдать свой размер, т.е. давать существенно меньшую ошибку. Таким образом, при прочих равных предпочтение будет отдаваться сетям, чьи размеры меньше.
На нашей небольшой учебной задаче этот алгоритм можно прогнать в интерактивном режиме. Выберите типы сетей Линейные, Радиальные Базисные функции и Трехслойные многослойные иерсептроны. По завершении работы алгоритма наилучшие созданные сети будут сохранены. ГЕНЕТИЧЕСКИЙ АПГОРИТМ ОТБОРА ВХОДНЫХ САННЫХ Обсуж9енце Один из самых трудных вопросов, который приходится решать разработчику нейросетевых приложений, — это вопрос о том, какие данные взять в качестве входных для нейронной сети. Этот вопрос сложен в силу сразу нескольких причин. 164 Гпава 6. цапьнейшое еозможноспю иейронных сетей ° Чаще всего при применении нейронных сетей в реальных задачах заранее не бывает точно известно, как прогнозируемый показатель связан с имеющимися данными. Поэтому собирают больше разнообразных данных, среди которых предположительно есть и важные и такие, чья ценность неизвестна или сомнительна.
° В задачах нелинейной природы среди параметров могут быть взаимозависимые и избыточные. Например, может случиться так, что каждый из двух параметров сам по себе ничего не значит, но оба они вместе несут чрезвычайно полезную информацию; это же может относиться к совокупности из нескольких параметров. Сказанное означает, что попытки ранжировать параметры по степени важности могут быль неправильными в принципе. ° Из-за «проклятня размерности» иногда лучше просто убрать некоторые переменные, в том числе и несущие значимую информацию, чтобы хоть как-то уменьшить число входных переменных, а значит и сложность задачи, и размеры сети. Вопреки здравому смыслу, такой прием иногда действительно улучшает способность сети к обобщению (В1айор, 1995). Единственный способ получить полнуюгаранппо того, что входные данные выбраны наилучшим образом, состоит в том, чтобы перепробовать все возможные варианты входных наборов данных и архитектур сетей и выбрать из них наилучший. На практике это сделать невозможно из-за огромного количества вариантов.
Можно попытаться поэкспериментировать в среде пакета БТ Жеига1 лГепеог1Гв — последовательно строить сети с различными наборами входных переменных, чтобы постепенно составить себе картину того, какие же входные переменные действительно нужны. Можно воспользоваться методом регуляризации весов по Вигенду (РУе1йет1 В'е1дЫ Яеяи1аг1хайон) и в окне Редактор сети — Мегпог1с Ес(1гог посмотреть, у каких входных переменных выходящие веса сделаны нулевыми (это говорит о том, что данная переменная игнорируется). Самое действенное средство решения данного вопроса в пакете ЮТФеига! Хеоил 1гв — это Генетический алгоритм отбора входных данных — бепеас А1йог1йт 1при1 Бе!еса)оп.
Этот алгоритм выполняет большое число экспериментов с различными комбинациями входных данных, строит для каждой из иих вероятностную либо обобщенно-регрессионную сеть, оценивает ее результаты и использует их в дальнейшем поиске наилучшего варианта. Генетические алгоритмы являются очень эффективным инструментом поиска в комбинаторных задачах как раз такого типа (где требуется принимать ряд взаимосвязанных решений «Да1Нет»). Этот метод требует большого времени счета (обычно приходится строить и проверять многие тысячи сетей), 166 Меаронныв севы. ЗТАТ)ЗТ!СА Меяа! иванова однако реализованная в пакете БТ Феига! УегпюМз его комбинация с быстро обучающимися сетями типа РХХ10КХХ позволяет ускорить его работу настолько, насколько это вообще возможно.
Вьизопненце апзорцпзма Прогонять этот алгоритм мы будем на модифицированном варианте усеченного набора данных про ирисы, в который мы добавим новые входные переменные, не несущие никакой информации. Начнем с того, что загрузим файл данных про ирисы (1г1Ыаквга). Сделаем так, чтобы обучающие и контрольные наблюдения выбирались случайным образом, Далее добавим три новые переменные в открытую таблицу после переменной РЕТА1Я~Ш Для этого выделим переменную 1ИБТУРЕ, щелкнем на правую кнопку мыши и выберем пункт Добавить переменные.... Далее, зададим значения переменных единицами. Так как они очевидным образом не несут в себе никакой информации, следует ожидать, что Генетический алгоритм отбора входных данных — СА Упри! Яе1есйоп удалит их.
Запускаем модуль Нейронные сети. В качестве типа задачи указываем Каассификация. Обычным образом задаем переменные. Далее переходим на вкладку Дополнительно и выбираем инструмент Понижение размерности (рис. 6.13). Рве. 6.13 В появившемся диалоговом окне на вкладке Быстрый указываем Генетический алгоритм, переходим на вкладку Генетический алгоритм (рис. 6. 14). Эго окно содержит много управляющих параметров.















