Боровиков В.П. - Нейронные сети (778916), страница 36
Текст из файла (страница 36)
6. 16 Ряс. 6.17 171 Нейронные сете, ЯТАТ!ЗТ!СА Неога! Не«веже Программа ЯТ Меига/ Фе~и огкз может начать проекцию временного ряда с блока данных, заданного в поле Начать с наблюдения. Мы примем вариант по умолчанию, при котором проекция начинается с первого возможного блока значений (так что прогноз можно будет сравнить со всеми фактическими данными). Здесь же можно указать, какая из выходных переменных (если их несколько) будет изображена на графике (в нашей задаче мы имеем всего одну выходную переменную, так что выбора нет).
Второй управляющий параметр, который нужно выбрать — это Длина проекции. В нашем временном ряду 144 наблюдения, 12 из которых будут фактически удалены при препроцессировании, поэтому сравнивать результаты можно будет самое большее на 132 шагах. Однако можно проектировать ряд и за границы имеющихся данных, только при этом не с чем будет сравнивать результат. Установим параметр Длина проекции равным 250 и нажмем кнопку График временного ряда.
Результат окажется весьма разочаровывающим. Хотя на начальном отрезке ряда прогноз сети очень хороший, к концу его он становится все хуже и хуже, в конце концов, функция превращается в горизонтальную линию. Причина этого явления в том, что в выходном слое сети использовалась логистическая функция активации. Она обладает «срезающим» свойством, не позволяющим сети экстраполировать данные. В большинстве случаев это качество весьма полезно, но рассматриваемый временной ряд имеет отчетливый линейный тренд, и прогноз должен его учесть.
Нажимаем ОК. При этом возвращаемся к исходному диалоговому окну БТАГ1БТ1СА Нейронные сети. Далее на вкладке Дополнительно укажем инструмент Редактор моделей и нажмем ОК. На вкладке Сеои выберем третий слой и введем для параметра Функция активации значение Линейного роста и снова обучим сеть. В таком варианте сеть работает гораздо лучше, и проекция получается вполне успешной на много месяцев вперед, И все ясе, в конце концов, произойдет ее насыщение за счет насыщения логистических функций предыдущих слоев. Область прогноза можно увеличить также с помощью функций окна Переменные в Редакторе сети (пре- и постпроцессирование), изменив значения Мин/средн.
и Макс/ст.откл. так, чтобы процедура масштабирования использовала меньшую часп области отклика логистической функции (тем самым оставляя больше возможностей для экстраполяции). Например, можно задать значения Минlсредн. и Макс/ст.откл. 10,4; 0,61 для входной переменной и (0,25; 0,75) для выходной. Этим мы добьемся от сети немного лучший результат, в то время как более радикальное вмешательство может привести к тому, что восприимчивость сети при обучении уменьшится слишком сильно. В любом случае слишком далекий прогноз не может быть адекватным— более или менее надежными можно считать цифры прогноза на год илн два, 172 Гпааа 6.
Папьнейшие возможности нейронных сетей а все что дальше — сомнительно. Этот пример показал нам, что не следует бездумно применять сеть в таких ситуациях, где ей потребуется экстраполировать за область известных данных. Один из возможных выходов здесь в том, чтобы предварительно преобразовать данные к более удобному виду. В нашем примере мы могли бы высказать предположение, что в даннььх имеется линейный тренд (и сезонные колебания). Тренд можно удалить с помощью линейной модели, а затем для оценки остатка применить какую-то более сложную нейросетевую модель, Давайте сделаем это.
Сначала нужно создать новую сеть и выбрать для нее тип Линейная. После обучения мы обнаруживаем, что эта сеть делает довольно хороший прогноз и разумно проектирует ряд вперед. Выберем Остатки на диалоговом окне Результаты. В столбце таблицы выходных значений справа выводится ошибка, т.е. разность между ожидаемыми и прогнозируемыми значениями. Затем с помощью Конструктора сетей создайте новую сеть — многослойный персептрон с тремя слоями — и обучите его методом сопряженных градиентов или Левенберга-Маркара, чтобы оценить остатки. Проекцию временного ряда интерпретировать теперь гораздо труднсс. Однако сели перейти на вкладку Быстрый или Описательные и нажать кнопку Описательные статистики, можно посмотреть на долю объясненной дисперсии. У авторов этого текста параметр Отношение ст.откл.— ЯЮ.
Лабо получился равным 0,24, т.е. многослойный персептрон на три четверти предсказал остаток ряда. Это означает, что исходный набор данных имел во многом нелинейную структуру. Итак, можно использовать гибридные модели, где сначала строится линейный прогноз, а затем он уточняется путем оценки остатка с применением многослойного персептрона. Гпава 7 ПРАКТИЧЕСКИЕ СОВЕТЫ ПО РЕШЕНИЮ ЗАДАЧ В этой главе будет рассказано, как применять пакет БТ Хеига! !Уе~и огкз для решения задач.
Мы затронем следующие темы: подготовка данных и их препроцессирование, выбор архитектуры сети и настройка ее параметров. Следует отметить, что эти разделы теории нейронных сетей развиты недостаточно, и материал этой главы скорее отражает мнение авторов, чем общепринятую точку зрения. Мы настоятельно рекомендуем читателю не полагаться исключительно на те советы, которые будут даны в этой главе, и обращаться к другим источникам информации.
Необходимо также иметь в виду, что эффективность методов может зависеть от особенностей конкретной задачи. В пакете БТ №ига! №!иогкв реализован ряд новейших инструментов, предназначенных для решения указанных проблем. Это Мастер рпиений и Гвнепщческий алгорипья отбора входных данных — Селе!!с А!лог!!!пп Упри! Яе!есг!оп. Однако даже эти методы, отражающие самое современное состояние вопроса, не гарантируют отыскания оптимального решения.
Как правило, они позволяют получить просто хороший вариант ответа. ПРЕОСТАВПЕНИЕ йАННЫХ Обсуждение Первое, с чем сталкивается пользователь при работе с нейронными сетями, — представление данных в нужном виде. Сеть умеет обрабатывать только числовые значения; более того, она воспринимает значения только из определенного диапазона. Ваши данные, однако, могут включать номинальные переменные, указывающие на принадлежность к одному из нескольких классов, даты, целочисленные значения и текстовые строки, а также числовые переменные, меняющиеся в самых различ- 1?4 Гпава Х Пракпические совевы по решеквю запач ных диапазонах.
Чтобы справиться с этими сложностями, в системе БТ Меига1 №Ги оп~и предусмотрен ряд средств пре- и постпроцессирования для автоматического преобразования типов данных. Преясгпавпенне переменных Обычно переменные разных типов представляются в программах следующим образом.
Непрерывные (числовые) значения. Представляются одной вещественной переменной. Все вопросы, связанные и диапазоном значений, решаются в системе БТ №ига1 №~иог1и путем масштабирования (шкалирования), которое является составной частью процедуры пре- и постпроцессирования. Целочисленные. Представляются в вещественном эквиваленте.
Даты и время. Преобразуются в числовые значения вычислением положения момента времени относительно заданного начала отсчета. Номинальные переменные (атрибуты). В БТ Иеига1 №Гп огкз имеют специальное представление как номинальные переменные. Специальные средства позволяют преобразовывать их к виду, понятному для нейронной сети. Пример номинальной переменной: Род — СепЫег = (Муж — Ма1е, Жен— Рета!е).
Номинальные переменные с двумя состояниями, принимающие два значения, представляются в бинарном виде (переменной соответствует один элемент сети, который активируется или нет в зависимости от значения переменной). Любую номинальную переменную можно записать методом кодирования 1-из-М: при этом одной номинальной переменной соответствует 111 элементов сети (здесь М вЂ” число различных номинальных значений переменной), один из которых бывает активен, а остальные — нет.
Кодирование методом 1-из-и†это стандартный способ записи номинальных переменных, которые могут принимать более двух значений. Для переменных, принимающих только два значения, стандартным является бинарное представление, хотя можно использовать и кодирование 1-из-М (за одним исключением: выходная переменная вероятностной нейронной сети всегда кодируется методом 1-из-М, даже если у нес всего два возможных состояния).















