Боровиков В.П. - Нейронные сети (778916), страница 14
Текст из файла (страница 14)
Разумеется, вовсс не любую задачу можно решить с помощью нейронной сети. Если вы хотите определить результаты лотереи, тираж которой состоится через неделю, зная свой размер обуви, то едва ли это получится, поскольку эти показатели никак не связаны друг с другом. Многие финансовые структуры уже используют нейронные сети нли экспериментируют с ними с целью прогнозирования ситуации на фондовом рынке, и похоже, что любой тренд, прогнозируемый с помощью нейронных методов, всякий раз уже бывает «дисконтирован» рынком, и поэтому (к сожалению) зту задачу вам тоже вряд ли удастся решить. Итак, мы приходим ко второму важному условию применения нейронных сетей: вы должны знать(или хотя бы иметь серьезные подозрения), что между известными входными значениями и неизвестными выходами имеется связь.
Эта связь может бьггь искажена шумом, но она до.пжна существовать (так, едва ли можно ожидать, что по данным из примера с прогнозированием цен акций можно построить абсолютно точный прогноз, поскольку на цену влияют и другис факторы, нс прсдставленныс во входном наборе данных, и кроме того, в задаче присутствует элемент случайности). Как правило, нейронная сеть используется тогда, когда неизвестен точный вид связей мехсду входами и выходами, — если бы он был известен, то связь можно было бы моделировать непосредственно. Другая существенная особенность нейронных сетей состоит в том, что зависимость между входом и выходом находится в процессе обучения ости.
Для обучения нейронных сетей применяются алгоритмы двух типов (разные типы сетей используют разные типы обучения): управляемое («обученно с учителем») и неуправляемое («без учнтсля»). Чаще всего применяется обучение с учителем, н именно этот мстод мы сейчас рассмотрим (о неуправляемом обучснни будет рассказано позже). Гневе 4. Общив обзор небронных сеозеа Для управляемого обучения сети пользователь должен подготовить набор обучающих данных. Эти данные представляют собой примеры входных данных и соответствующих им выходов.
Сеть учится устанавливать связь между первыми и вторыми. Обычно обучающие данные берутся из исторических сведений. В рассмотренных выше примерах это могут быть предыдущие значения цен акций и индекса ЕТБЕ, сведения о прошлых заемщиках — их анкетные данные и то, успешно ли они выполнили свои обязательства, примеры положений робота и его правильной реакции. Затем нейронная сеть обучается с помощью того или иного алгоритма управляемого обучения (наиболее известным из них является метод обратного распространения, предложенный в работс Кшпе!паг1, 1986), при котором имеющиеся данные используются для корректировки весов и пороговых значений сети таким образом, чтобы минимизировать ошибку прогноза на обучающем множестве.
Если сеть обучена хорошо, она приобретает способность моделировать (неизвестную) функцию, связываюшу|о значения входных и выходных переменных, и впоследствии такую сеть можно использовать для прогнозирования в ситуации, когда выходныс значения неизвестны. Сбор данных дпя нейронной сепзц Если задача будет решаться с помощью нейронной сети, то необходимо собрать данные для обучения. Обучающий набор данных представляет собой ряд наблюдений, для которых указаны значения входных и выходных переменных. Первый вопрос, который нужно решить, — какие псременные использовать и сколько (и каких) наблюдений собрать.
Выбор перемснных (по крайней мсре, первоначальный) осуществляется интуитивно. Ваш опьгг работы в данной предметной области поможет определить, какие переменныс являются важными. При работе с пакетом 8Т №ига! №гжоИи вы можете произвольно выбирать переменные и отменять предыдущий выбор; кроме того, система 8Т №иги! №!зеог!гю умеет сама опытным путем отбирать полезныс входы. Для начала имеет смысл включить все псременныс, которые, по вашему мнению, могут влиять на результат, а на последующих этапах сократить это множество.
Нсйронныс ссти могут работать с числовыми данными, лежащими в определенном ограниченном диапазоне. Это создает проблемы в тех случаях, когда данные имеют нестандартный масштаб, включают пропущенные значения или являются нсчисловыми. В пакете оТ№иги! №гног!гк имеются средства, позволяющие справиться со всеми этими трудностями. Числовые данные масштабируются в подходящий для сети диапазон, а пропущенные значсния можно заменить средним значснисм (или другой статистикой) этой переменной по всем имеющимся обучающим примерам (В1вЬор, 1995).
Более трудной задачей является работа с данными цсчислового характера. Чаше вссго нсчнсловыс данные бывают представлены в виде поминальных Нейронные репа. ЗТАТ!ЗТ!СА перга! Неаеогке псремснных типа Пол — Бенг1ег = (Муж — Ма1е, Жеп — Гета1е). Переменные с номинальными значсниями можно представить в числовом виде, и в систсме БТ№пга1 МегногКзнмсются средства для работы с такими данными. Однако нсйронныс сети не дают хороших результатов при работе с номинальными переменными, которые могут принимать много разных значений.
Пусть, напримср, мы хотим научить нейронную ость оценивать стоимость объектов недвижимости при условии, что цена дома очень сильно зависит от того, в каком районе города он расположсн. Если город разделен на несколько десятков районов, имеющих собственные названия, сстествснно было бы ввссти для обозначения района псрсменную с номинальными значениями. К сожалению, в этом случас обучить нейронную сеть будет очень трудно, и вмссто этого лучшс присвоить каждому району опрсдспснный рсйтинг (основываясь на экспсртных оценках). Нечисловыс данные других типов можно либо преобразовать в числовую форму, либо нс включать в анализа.
Значения дат и времени, если они нужны, можно преобразовать в числовые значения, вычитая из них начальную дату (врсмя). Обозначения денежных сумм преобразовать совсем несложно. С произвольными текстовыми полями (напрнмср, фамилиями людей) работать нельзя. Вопрос о том, сколько наблюдсний нужно имсть для обучсния сети, часто оказывастся нспростым. Извсстсн ряд эвристических правил, увязывающих число нсобходимых наблюдений с размсрами сети. Простейшее из них гласит, что число наблюдений должно быть в десять раз больше числа связей в сети. На самом дслс это число зависит также от (заранее неизвестной) сложности того отображения, которое нейронная сеть стремится воспроизвести.
С ростом количества псрсмснных количество требуемых наблюдений растст нелинсйно, так что ужс при довольно небольшом числс переменных (например, 50) может потрсбоваться огромное число наблюдений. Эта трудность известна как «проклятие размерности», и мы обсудим ес дальшс в этой главе. Для большинства рсальных задач, как правило, достаточно нескольких сотсн или тысяч наблюдений. Для особо сложных задач можст потребоваться сшс большсс количсство, однако очень рсдко может встрститься ~даже тривиальная) з щача, гдс хватило бы менее сотни наблюдений. Если данных меньше, чсм здссь сказано, то на самом деле у вас недостаточно информации для обучения сети и лучшсс, что можно сделать в такой ситуации, это попробовать подогнать к данным нскоторую лннсйную модель.
В пакетс БТ №ига! №гн ог1гз реализованы средства для подгонки линсйных модслсй (см. материал про линсйныс сети). Во многих реальных задачах приходится имсть дело с нс вполнс достовсрнымн данными. Значсния некоторых переменных могут быть нскажсны шумом илн частично отсутствовать. Пакет ЮТУеига! №гн ог1гз имсст специальные средства для работы с пропущенными значсниями (они могут быть 78 Гнева 4. Общиб обзор небронных оео>еб заменены срсдними значениями этой псрсмснной или другими ес статистиками), так что ссли данных нс так уж много, то можно включить в рассмотрснис наблюдсния с пропущснными данными (хотя, конечно, лучше этого избегать). Нейронные сети в цслом устойчивы к шумам, однако у этой устойчивости есть предел.
Напримср, выбросы, т.е. значения, лсжащие очень далеко от области нормальных значсний нскоторой псрсмснной, могут исказить результат обучения. В таких случаях лучшс всего постараться обнаружить и удалить эти выбросы (либо путем удаления соответствующих наблюдений, либо путем преобразования выбросов в пропущенныс значения). Если выбросы выявить трудно, то можно воспользоваться процедурами пакста БТ№ига! №!и огиз и сделать процссс обучсния устойчивым к выбросам (с помощью функции ошибок типа «городских кварталов»; см. В!зЬор, 1995). Однако такое устойчивое к выбросам обучснис, как правило, монсе эффсктивно, чсм стандартное.















