Если ошибка сети на контрольном множестве стала расти это означает что

Главная / Искусственный интеллект и робототехника / Основы теории нейронных сетей / Тест 5

Главная / Искусственный интеллект и робототехника /
Основы теории нейронных сетей / Тест 5

Упражнение 1:


Номер 1

К переобучению склонны сети с:

Ответ:

(1) большим числом весов 

(2) большим числом слоев 

(3) малым числом весов 

(4) малым числом слоев 


Номер 2

Какая сеть может оказаться недостаточно гибкой, для того чтобы смоделировать имеющуюся зависимость?

Ответ:

(1) сеть с большим числом весов 

(2) сеть с большим числом слоев 

(3) сеть с малым числом весов 

(4) сеть с малым числом слоев 


Номер 3

Проблема переобучения заключается в:

Ответ:

(1) слишком близкой подгонке к имеющимся значениям обучающего множества 

(2) увеличении точности вычислений за счет большого увеличения необходимого для обучения времени 

(3) минимизации локальных ошибок в ущерб минимизации глобальной ошибки 


Номер 4

Если сеть имеет очень большое число нейронов в скрытых слоях, то:

Ответ:

(1) возможно переобучение сети 

(2) сеть может оказаться недостаточно гибкой для решения поставленной задачи 

(3) время, необходимое на обучение сети, минимально 


Номер 5

Если сеть имеет небольшое число нейронов в скрытых слоях, то:

Ответ:

(1) возможно переобучение сети 

(2) сеть может оказаться недостаточно гибкой для решения поставленной задачи 

(3) время, необходимое на обучение сети, может оказаться очень большим 


Упражнение 2:


Номер 1

При методе кросс-проверки считается, что множество обучающихся пар некорректно разделено на две части, если:

Ответ:

(1) в начале работы ошибки сети на обучающем и контрольном множествах существенно отличаются 

(2) в начале работы ошибка сети на обучающем и контрольном множествах практически не отличались 

(3) ошибка сети на обучающем множестве убывает быстрее, чем на контрольном множестве 


Номер 2

При методе кросс-проверки считается, что множество обучающихся пар корректно разделено на две части, если:

Ответ:

(1) в начале работы ошибки сети на обучающем и контрольном множествах существенно отличаются 

(2) в начале работы ошибки сети на обучающем и контрольном множествах практически не отличались 

(3) ошибка сети на обучающем множестве убывает быстрее, чем на контрольном множестве 


Номер 3

При методе кросс-проверки считается, что сеть начала переобучаться, если:

Ответ:

(1) ошибка сети на контрольном множестве стала расти 

(2) ошибка сети на контрольном множестве перестала убывать 

(3) алгоритм обратного распространения зациклился 


Номер 4

Механизм контрольной кросс-проверки необходим для того, чтобы:

Ответ:

(1) оградить сеть от возможности переобучения 

(2) проверить точность вычислений, производимых сетью 

(3) определить оптимальное число слоев и нейронов 


Номер 5

Механизм контрольной кросс-проверки заключается в:

Ответ:

(1) разделении множества обучающих пар на две части для поочередного запуска алгоритма обратного распространения то на одной, то на другой части 

(2) резервировании части обучающих пар и использовании их для независимого контроля процесса обучения 

(3) циклическом использовании множества обучающих пар 


Упражнение 3:


Номер 1

Если сеть слишком близко подгоняет выходные значения к имеющимся обучающим значениям, то:

Ответ:

(1) сеть может попасть в локальный минимум 

(2) может возникнуть паралич сети 

(3) процесс сходимости начнет происходить слишком медленно 


Номер 2

Сеть начала переобучаться, если:

Ответ:

(1) ошибка сети на контрольном множестве стала расти 

(2) контрольное множество задано некорректно 

(3) в сети имеется слишком много скрытых слоев 


Номер 3

Тестовое множество необходимо для:

Ответ:

(1) тестирования уже отлаженной сети 

(2) тестирования сети после отработки контрольного множества 

(3) тестирования сети после каждого цикла обучения 


Номер 4

Чем тестовое множество отличается от контрольного множества?

Ответ:

(1) тестовое множество используется только один раз 

(2) тестовое множество является подмножеством контрольного множества 

(3) тестовое множество используется всякий раз, когда ошибка сети на контрольном множестве начинает расти 


Номер 5

Если ошибка сети на контрольном множестве стала расти, это означает, что:

Ответ:

(1) сеть начала переобучаться 

(2) контрольное множество задано некорректно 

(3) в сети недостает слоев или нейронов для решения данной задачи 


Упражнение 4:


Номер 1

Дискриминантной функцией называется:

Ответ:

(1) функция, равная единице в той области пространства объектов, где располагаются объекты из нужного класса, и равная нулю вне этой области 

(2) активационная функция, используемая в многослойном персептроне 

(3) функция, моделирующая пространство решений данной задачи 


Номер 2

Если нейронная сеть не содержит скрытых элементов, то она:

Ответ:

(1) моделирует одинарный «сигмовидный склон» 

(2) служит классификатором только в линейно-отделимых задачах 

(3) моделирует конечное число «сигмовидных склонов» 


Номер 3

Если сеть содержит один промежуточный слой, то она моделирует:

Ответ:

(1) один «сигмовидный склон» 

(2) по одному «сигмовидному склону» для каждого скрытого элемента 

(3) одну выпуклую «взвешенность» 


Номер 4

Если сеть содержит два промежуточных слоя, то она моделирует:

Ответ:

(1) по одному «сигмовидному склону» для каждого скрытого элемента 

(2) одну выпуклую «взвешенность» 

(3) по одной выпуклой «взвешенности» для каждого скрытого элемента первого слоя 

(4) по одной выпуклой «взвешенности» для каждого скрытого элемента второго слоя 


Номер 5

Для решения любой задачи классификации достаточно иметь:

Ответ:

(1) многослойный персептрон с двумя промежуточными слоями 

(2) многослойный персептрон с тремя промежуточными слоями 

(3) многослойный персептрон с достаточно большим числом скрытых элементов 


Упражнение 5:


Номер 1

Паралич сети может наступить, когда:

Ответ:

(1) весовые значения становятся очень большими 

(2) весовые значения становятся очень маленькими 

(3) размер шага становится очень большой 

(4) размер шага становится очень маленький 


Номер 2

Чтобы избежать паралича сети, необходимо:

Ответ:

(1) уменьшить весовые значения 

(2) увеличить весовые значения 

(3) уменьшить размер шага 

(4) увеличить размер шага 


Номер 3

Если размер шага очень мал, то:

Ответ:

(1) процесс сходимости происходит слишком медленно 

(2) может возникнуть паралич сети 

(3) может возникнуть постоянная неустойчивость сети 


Номер 4

Если размер шага очень большой, то:

Ответ:

(1) процесс сходимости происходит слишком медленно 

(2) может возникнуть паралич сети 

(3) может возникнуть постоянная неустойчивость сети 


Номер 5

Если сеть находится в постоянно меняющейся внешней среде, то:

Ответ:

(1) процесс обучения может никогда не сойтись 

(2) может возникнуть паралич сети 

(3) процесс обучения станет происходить слишком медленно 


Всегда ли обученная сеть ДАП является устойчивой?

Перейти

Алгоритм обучения персептрона – это:

Перейти

В аналого-цифровом преобразователе весовые значения интерпретируют:

Перейти

Задачей комплексных узлов является:

Перейти

Если ошибка сети на контрольном множестве стала расти, это означает, что:

Перейти

Вопрос о выборе шага при применении процедуры обучения решается следующим образом:

Перейти

Какое минимальное количество слоев должна иметь нейронная сеть, для того чтобы к ней возможно было применить алгоритм обратного распространения?

Перейти

Если матрица весов не является симметричной, то будет ли данная сеть обратного распространения устойчивой?

Перейти

Лотарально-тормозящая связь используется :

Перейти

Если случайные изменения весовых значений очень малы, то:

Перейти

Весовые значения тормозящих нейронов из области связи задаются так, чтобы:

Перейти

Если нейронная сеть не содержит скрытых элементов, то она:

Перейти

Всегда ли в статистических алгоритмах обучения производится изменение весовых значений?

Перейти

Метод выпуклой комбинации заключается в том, что в начале процесса обучения всем весам слоя Кохонена присваиваются:

Перейти

«Победителем» считается нейрон Кохонена

Перейти

Можем ли мы за конечное число шагов после запуска алгоритма обучения персептрона сказать, что персептрон не может обучиться данной задаче?

Перейти

Что называется обучающей выборкой для обучения персептрона?

Перейти

Информация, поступающая из предыдущего слоя неокогнитрона, подается

Перейти

Есть ли вероятность того, что в алгоритме разобучения сеть «забудет» правильный образ?

Перейти

Комбинирование методов распространения Коши и обратного распространения заключается в:

Перейти

Если параметр сходства выбрать неоправданно низким, то:

Перейти

Фаза поиска считается неуспешно завершенной, если:

Перейти

Алгоритм обучения Кохонена является:

Перейти

Что такое «неподатливое» множество образов?

Перейти

При обучении слоя Кохонена процесс обучения состоит в:

Перейти

Выходом входной звезды Гроссберга является:

Перейти

Стохастическим методом обучения называется:

Перейти

«Обучение без учителя» характеризуется отсутствием:

Перейти

Метод импульса заключается в:

Перейти

При обучении когнитрона обучаются:

Перейти

Что является входом искусственного нейрона?

Перейти

Матричное умножение XW вычисляет:

Перейти

Можно ли построить однослойную нейронную сеть с обратными связями?

Перейти

«Обучение с учителем» это:

Перейти

Выходом персептрона являются:

Перейти

Персептронной представимостью называется:

Перейти

Однонейронным персептроном размерность разделяемого пространства определяется

Перейти

В однонейронном персептроне размерность разделяющей гиперплоскости определяется:

Перейти

Может ли персептрон Розенблатта выделять ограниченную область в пространстве решений?

Перейти

Однослойный персептрон решает задачи:

Перейти

Подаем на вход персептрона вектор a. В каком случае весовые значения нужно уменьшать?

Перейти

Теорема о сходных персептронах утверждает, что:

Перейти

Если данный персептрон заменить персептроном с целочисленными весами, то:

Перейти

Скрытым слоем обобщенного многослойного персептрона называется:

Перейти

Если до начала процедуры обучения по алгоритму обратного распространения все весовые значения сети сделать равными, то

Перейти

Какие из перечисленных ниже шагов в алгоритме обратного распространения являются шагами «обратного прохода»?

Перейти

При обучении выходного нейрона величина δ является:

Перейти

Добавление нейронного смещения позволяет:

Перейти

Если сеть имеет очень большое число нейронов в скрытых слоях, то:

Перейти

Механизм контрольной кросс-проверки необходим для того, чтобы:

Перейти

Если сеть слишком близко подгоняет выходные значения к имеющимся обучающим значениям, то:

Перейти

Если сеть содержит один промежуточный слой, то она моделирует:

Перейти

Если сеть находится в постоянно меняющейся внешней среде, то:

Перейти

Если данный нейрон Кохонена является «победителем», то его значение OUT

Перейти

В процессе обучения слоя Кохонена «победителем» объявляется нейрон

Перейти

Метод коррекции весов пропорционально входу заключается в:

Перейти

Если в алгоритме обучения сети встречного распространения на вход сети подается вектор x, то желаемым выходом является

Перейти

Способна ли сеть встречного распространения аппроксимировать обратимые функции?

Перейти

При стохастическом методе обучения изменения весовых значений сохраняются, если

Перейти

При обучении сеть не сможет выбраться из локального минимума, если:

Перейти

Какова роль искусственной температуры при Больцмановском обучении?

Перейти

Какая из перечисленных ниже проблем сходимости возникает в алгоритме обратного распространения?

Перейти

Метод изменений сигналов OUT заключается в том, что:

Перейти

Отсутствие обратных связей гарантирует:

Перейти

Если сеть Хопфилда нашла среди запомненных ею образцов, образец соответствующий данному входному вектору, то сеть должна :

Перейти

Если два образца сильно похожи, то:

Перейти

Сколько нейронов должна содержать сеть Хемминга для того чтобы она могла запомнить n образцов?

Перейти

Память называется ассоциативной, если извлечение необходимой информации происходит по:

Перейти

При ортогонализации исходных образов отрицательным фактором является:

Перейти

Алгоритмы разобучения применяются для:

Перейти

Метод машины Больцмана позволяет сети Хопфилда:

Перейти

В алгоритме обучения обобщенной машины Больцмана вычисление закрепленных вероятностей начинается после:

Перейти

Задачей аналого-цифрового преобразователя является то, что:

Перейти

Автоассоциативность памяти обусловлена:

Перейти

В какой зависимости находятся веса синаптических связей, исходящих из первого слоя нейронов, от весов синаптических связей, исходящих из второго слоя нейронов?

Перейти

Способность ДАП к обобщению заключается в:

Перейти

Сеть ДАП называется конкурирующей, если:

Перейти

Почему изученные ранее нейронные сети не обладают свойством стабильности-пластичности?

Перейти

Шаблоном критических черт называется:

Перейти

В сети АРТ запомненный образ подвергается изменению:

Перейти

Из слоя распознавания информация поступает в:

Перейти

В начальный момент времени выходом слоя сравнения является

Перейти

Фаза распознавания инициализируется:

Перейти

В фазе сравнения блок сброса:

Перейти

Суть алгоритма медленного обучения в том, что:

Перейти

Характеристика «прямого доступа» заключается в том, что:

Перейти

Величиной NET нейрона когнитрона является:

Перейти

Весовые значения тормозящих нейронов:

Перейти

Если возбуждающие и тормозящие входы данного нейрона достаточно велики, то его выходной сигнал OUT будет вычисляться по формуле:

Перейти

При предъявлении на вход обученного когнитрона некоторого вектора

Перейти

Латеральное торможение данный нейрон получает:

Перейти

Рецептивной областью данного простого узла называется:

Перейти

Различные узлы в одной плоскости простых узлов реагируют:

Перейти

При использовании неокогнитрона как классификатора, можем ли мы классифицировать образы независимо от их позиции, ориентации, размера и т.п.?

Перейти

При каких из ниже перечисленных условий, в алгоритме обучения неокогнитрона «без учителя» происходит обучение данной синоптической связи?

Перейти

В алгоритме Хэбба величина изменения синоптической связи между двумя нейронами зависит:

Перейти

Выходом выходной звезды Гроссберга является

Перейти

Обучение персептрона считается законченным, когда:

Перейти

В статистических алгоритмах обучения величина изменения синоптической связи между двумя нейронами зависит:

Перейти

Самоорганизующиеся сети используются для:

Перейти

Если статическая сеть Хопфилда обладает низкой искусственной температурой, то более вероятными становятся:

Перейти

Способность неокогнитрона к самовосстановлению выражается в:

Перейти

В чем заключается отличие АРТ-1 от АРТ-2?

Перейти

Что означает величина NET?

Перейти

В алгоритме обучения Кохонена, увеличивая пороговое значение расстояния между входным вектором и весовыми значениями нейрона, мы можем добиться:

Перейти

Обучение слоя Кохонена является:

Перейти

Непрерывная сеть Хопфилда является устойчивой, если:

Перейти

Сеть с обратным распространением называется неустойчивой, если:

Перейти

Суть алгоритма быстрого обучения в том, что:

Перейти

Теорема о двухслойности персептрона утверждает, что:

Перейти

Какими должны быть весовые значения тормозящих синаптических связей?

Перейти

Тестовое множество необходимо для:

Перейти

Если параметр сходства выбрать неоправданно высоким, то:

Перейти

Задача сети Хопфилда заключается в

Перейти

Дискриминантной функцией называется:

Перейти

Что такое множество весовых значений нейрона?

Перейти

Сетью без обратных связей называется сеть,

Перейти

Входным слоем сети называется:

Перейти

Сети прямого распространения — это:

Перейти

Обучением называют:

Перейти

Алгоритм обучения персептрона завершает свою работу, когда

Перейти

Если на данной обучающей паре символ персептрона не совпадает с нужным ответом, то:

Перейти

Теорема о «зацикливании» персептрона утверждает, что:

Перейти

Какая сеть может оказаться недостаточно гибкой, для того чтобы смоделировать имеющуюся зависимость?

Перейти

При методе кросс-проверки считается, что множество обучающихся пар корректно разделено на две части, если:

Перейти

Чем тестовое множество отличается от контрольного множества?

Перейти

Если размер шага очень большой, то:

Перейти

По принципу «победитель забирает все» действуют:

Перейти

Задачей слоя Кохонена является:

Перейти

Целевой функцией называется:

Перейти

Для какого алгоритма необходимо гораздо большее время сходимости?

Перейти

Сеть с обратным распространением называется устойчивой, если:

Перейти

Если среди запомненных сетью Хопфилда образцов не существует образца, подходящего для данного входного вектора, то:

Перейти

Если сеть Хопфилда содержит n нейронов, то она может запомнить примерно:

Перейти

Задачей распознавания образов называется:

Перейти

Метод обучения сети называется локальным, если:

Перейти

Обучение обобщенной машины Больцмана является:

Перейти

Гетероассоциативность ДАП достигается путем:

Перейти

Сеть ДАП достигает стабильного состояния, когда:

Перейти

Долговременной памятью сети ДАП называется:

Перейти

Пластичностью называется способность памяти:

Перейти

Шаблон критических черт используется, когда:

Перейти

Если входной вектор не соответствует ни одному из запомненных образов, то

Перейти

В слой сравнения информация поступает из:

Перейти

В момент времени, отличный от начального, выходом слоя распознавания является

Перейти

Перед началом процесса обучения сети АРТ все весовые значения, являющиеся входными для слоя распознавания принимают:

Перейти

В фазе распознавания свертка вычисляется при помощи скалярного произведения

Перейти

Всегда ли по окончании фазы поиска входному вектору сопоставляется некоторый нейрон из слоя распознавания?

Перейти

В алгоритме обучения сети АРТ процедура самомасштабирования необходима для того, чтобы:

Перейти

Если в процессе обучения на вход сети АРТ подавать повторяющиеся последовательности обучающих векторов, то:

Перейти

Когнитрон является:

Перейти

Выходом тормозящего пресиноптического нейрона является:

Перейти

Обучение тормозящего входа возбуждающего нейрона

Перейти

Приращение веса возбуждающего входа данного постсиноптического нейрона зависит от:

Перейти

В чем заключается главный недостаток процедуры латерального торможения?

Перейти

Слой неокогнитрона состоит из

Перейти

Каждая плоскость простых узлов реагирует

Перейти

Простой узел возбуждается, если:

Перейти

Чем различаются комплексные узлы, лежащие в разных слоях неокогнитрона?

Перейти

Какой тип обучения можно использовать при обучении неокогнитрона?

Перейти

В алгоритме сигнального обучения Хэбба величина синоптической связи между двумя нейронами зависит :

Перейти

В алгоритме обучения выходной звезды Гроссберга величина синоптической связи между двумя нейронами зависит

Перейти

Алгоритм обучения персептрона является:

Перейти

Почему для статистических алгоритмов обучения распределение Коши является более приемлемым, чем распределение Больцмана?

Перейти

В алгоритме обучения Кохонена величина синоптической связи между двумя нейронами зависит:

Перейти

Добавление к коррекции веса значения, пропорционального величине предыдущего изменения веса, используется при методе:

Перейти

Обучение сети ДАП происходит:

Перейти

В алгоритме обучения обобщенной машины Больцмана закрепленные вероятности вычисляются, когда:

Перейти

Чем отличается обучение скрытого нейрона от обучения выходного нейрона?

Перейти

При каком алгоритме обучения обучающее множество состоит только из входных векторов?

Перейти

Выпуклой областью называется:

Перейти

В методе измерений сигнала OUT роль дополнительной сжимающей функции заключается в…

Перейти

Устойчивость процесса поиска заключается в том, что:

Перейти

В фазе сравнения в слое сравнения возбуждаются те нейроны, которым соответствуют:

Перейти

Пусть F — обратимая функция и F(x)=y. Если сеть встречного распространения обучена аппроксимировать эту функцию, то, если на вход подать только вектор x , на выходе мы получим:

Перейти

В каждом слое неокогнитрона

Перейти

Сколько слоев полноценных нейронов используется в сети Хопфилда?

Перейти

Какие весовые значения должны быть навешаны на сеть до начала процедуры обучения?

Перейти

В алгоритме обучения с учителем сравнение реального выхода с желаемым происходит:

Перейти

В каком случае сигнал OUT совпадает с сигналом NET для данного нейрона когнитрона?

Перейти

Входом персептрона являются:

Перейти

Синаптические связи называются тормозящими, если :

Перейти

Внутренней памятью нейрона называется:

Перейти

Метод дифференциального обучения Хэбба заключается в том, что в нем для изменения синоптических связей учитываются:

Перейти

Месторасположением узла в данной плоскости простых узлов определяется

Перейти

Механизм контрольной кросс-проверки заключается в:

Перейти

Если сеть содержит два промежуточных слоя, то она моделирует:

Перейти

При обучении слоя Кохонена подстраиваются весовые значения:

Перейти

Пусть F — обратимая функция и F(x)=y. Если сеть встречного распространения обучена аппроксимировать эту функцию, то, если на вход подать только вектор y, на выходе мы получим:

Перейти

Какие сети характеризуются отсутствием памяти?

Перейти

В каком случае персептрон может обучиться решать данную задачу?

Перейти

Если блок сброса выработал сигнал сброса, то:

Перейти

Активационная функция применяется для:

Перейти

Слоем нейронной сети называется множество нейронов,

Перейти

Как происходит обучение нейронной сети?

Перейти

Персептроном Розенблатта называется:

Перейти

Какая из следующих функций непредставима персептроном?

Перейти

В однонейронном персептроне длина входного вектора характеризует:

Перейти

Подаем на вход персептрона вектор а. В каком случае весовые значения нужно увеличивать?

Перейти

Входным слоем обобщенного многослойного персептрона называется:

Перейти

Какие из перечисленных ниже шагов в алгоритме обратного распространения являются шагами «прохода вперед»?

Перейти

Алгоритм обратного распространения заканчивает свою работу, когда:

Перейти

При методе кросс-проверки считается, что сеть начала переобучаться, если:

Перейти

Если размер шага очень мал, то:

Перейти

Детерминистским методом обучения называется:

Перейти

Если случайные изменения весовых значений очень велики, то:

Перейти

В чем преимущество метода Коши перед Больцмановским методом обучения?

Перейти

Для какого алгоритма скорость обучения более высокая?

Перейти

Сеть называется сетью с обратными связями, если:

Перейти

Состоянием сети Хопфилда называется :

Перейти

Какая сеть требует меньших затрат вычислительных ресурсов?

Перейти

При методе отказа от симметрии синапсов отрицательным фактором является:

Перейти

В алгоритме разобучения в качестве степени забывания выбирают достаточно малое число для того, чтобы:

Перейти

В алгоритме обучения обобщенной машины Больцмана вычисление незакрепленных вероятностей начинается после:

Перейти

В сети ДАП выходы второго слоя нейронов являются:

Перейти

Если на вход ДАП подать частично обнуленный вектор, то сеть выдаст также частично обнуленный ассоциированный с ним вектор?

Перейти

Кодированием ассоциаций называется:

Перейти

Сеть ДАП называется негомогенной, если:

Перейти

Если входной вектор соответствует одному из запомненных образов, то:

Перейти

Из слоя сравнения информация поступает в:

Перейти

В фазе сравнения значение приемника 1 устанавливается равным:

Перейти

Фаза поиска считается успешно завершенной, если:

Перейти

Областью связанности данного нейрона называется:

Перейти

Принцип «элитного обучения» когнитрона заключается в том, что:

Перейти

Стратегия обучения когнитрона заключается в том, что:

Перейти

Каким образом можно уменьшить количество слоев когнитрона, не причинив ущерба его вычислительным свойствам?

Перейти

Каждой плоскости простых узлов сопоставлено:

Перейти

Каждый узел в плоскости простых узлов получает вход:

Перейти

Сколько слоев полноценных нейронов имеет сеть Хэмминга?

Перейти

Когда алгоритм обучения персептрона зацикливается?

Перейти

Способна ли одна и та же плоскость простых узлов реагировать как на заданный образ, так и на его произвольный поворот?

Перейти

В каждом слое неокогнитрона выходы из массива простых плоскостей поступают на вход

Перейти

Кодирование ассоциаций — это:

Перейти

Метод интерполяции заключается в:

Перейти

Если на данной обучающей паре сигнал персептрона совпал с нужным ответом, то нужно

Перейти

Активационная функция называется «сжимающей», если

Перейти

В алгоритме обучения обобщенной машины Больцмана изменение весовых значений:

Перейти

При обучении сети встречного распространения обучающей парой является:

Перейти

При стохастическом методе обучения , если целевая функция увеличивается, то:

Перейти

Хорошо обученная входная звезда Гроссберга способна реагировать:

Перейти

Где в нейронной сети хранится информация о классификации образов?

Перейти

В статической сети Хопфилда вероятность изменения веса является функцией от:

Перейти

Чем реакция комплексного узла на данный входной образ отличается от реакции простого узла, лежащего в том же слое?

Перейти

Активационной функцией называется:

Перейти

Пусть при обучении Коши сделанное изменение весовых значений увеличило целевую функцию. Всегда ли сделанное изменение скидывается?

Перейти

Проблема локализованности памяти АРТ заключается в том, что:

Перейти

Представима ли персептроном любая интуитивно вычислимая задача?

Перейти

Перед началом процесса обучения сети АРТ все весовые значения, являющиеся выходными для слоя распознавания принимают:

Перейти

Что означает величина OUT?

Перейти

В каком случае многослойные сети не могут привести к увеличению вычислительной мощности по сравнению с однослойной сетью?

Перейти

Сети с обратными связями это:

Перейти

Сколько слоев должна иметь нейронная сеть, умеющая выделять выпуклые области?

Перейти

Сколько нейронов должен иметь первый слой нейронной сети, умеющей выделять шестиугольник?

Перейти

Запускаем обучающий вектор Х. В каком случае весовые значения не нужно изменять?

Перейти

Обобщенным многослойным персептроном называется:

Перейти

Сигналом ошибки данного выходного нейрона называется:

Перейти

Метод ускорения сходимости заключается в:

Перейти

К переобучению склонны сети с:

Перейти

Сеть встречного распространения считается обученной, если:

Перейти

Метод «имитации отжига» заключается в

Перейти

Пусть при Больцмановском обучении сделанное изменение весовых значений увеличило целевую функцию. Данное изменение не скидывается, если:

Перейти

Какая из перечисленных ниже проблем локальных минимумов возникает в алгоритме обратного распространения?

Перейти

При комбинированном методе распределения Коши и обратного распространения изменение веса сохраняется, если:

Перейти

Если в данной сети найдутся нейроны, которые на этапе функционирования возбуждаются более, чем один раз, то:

Перейти

Ортогонализация исходных образов позволяет:

Перейти

Если статическая сеть Хопфилда обладает большой искусственной температурой, то более вероятными становятся:

Перейти

В алгоритме обучения обобщенной машины Больцмана незакрепленные вероятности вычисляются, когда:

Перейти

Память называется автоассоциативной, если:

Перейти

В каком случае сеть ДАП превращается в сеть Хопфилда?

Перейти

Сеть ДАП называется асинхронной, если:

Перейти

Фаза поиска инициализируется, если:

Перейти

Предусмотрена ли в алгоритме обучения когнитрона процедура сбрасывания сильно больших весовых значений?

Перейти

Если области связи нейронов имеют постоянный размер во всех слоях, то:

Перейти

Статистические методы обучения являются:

Перейти

В алгоритме обучения Кохонена обучению подвергаются:

Перейти

Если в обучающее множество входит множество сходных между собой векторов, то сеть должна научиться:

Перейти

Функция называется линейно неразделимой, если:

Перейти

Сеть ДАП называется адаптивной, если:

Перейти

Рецептивные области узлов каждой плоскости простых узлов

Перейти

Сеть начала переобучаться, если:

Перейти

Значение активационной функции является:

Перейти

Дендритами называются:

Перейти

При обучении скрытого нейрона величина δ является:

Перейти

Сколько слоев должна иметь нейронная сеть, умеющая выделять квадрат?

Перейти

Сколько слоев имеет персептрон Розенблатта?

Перейти

Нейронная сеть является обученной, если:

Перейти

В алгоритме обратного распространения при «проходе вперед»

Перейти

Чтобы избежать паралича сети, необходимо:

Перейти

Принцип работы слоя Кохонена заключается в том, что:

Перейти

Модификация алгоритма обучения методом «чувства справедливости» заключается в:

Перейти

В чем состоит минус метода ограничения диапазона изменений весовых значений?

Перейти

Метод отказа от симметрии синапсов позволяет:

Перейти

В методе машины Больцмана изменение состояний нейронов обусловлено:

Перейти

К какому типу памяти относится ДАП?

Перейти

Завершает ли сеть работу, если выходы второго слоя стабилизировались, а выходы первого слоя продолжают изменяться?

Перейти

Обладает ли сеть Хопфилда свойством стабильности-пластичности?

Перейти

Процесс лотерального торможения обеспечивает, что

Перейти

Если тормозящий вход данного нейрона слишком мал, то выходной сигнал OUT будет вычисляться по формуле:

Перейти

После окончания алгоритма обучения информация о «шаблоне» данного класса образов хранится:

Перейти

В алгоритме обучения персептрона величина изменения синоптической связи между двумя нейронами зависит

Перейти

Выходным слоем обобщенного многослойного персептрона называется:

Перейти

Метод импульса позволяет:

Перейти

Обучение сети встречного распространения является:

Перейти

Если в процессе обучения некоторый вес был обнулен, то:

Перейти

Работа блока сброса заключается в:

Перейти

Со всеми ли нейронами предыдущего слоя связан данный нейрон когнитрона?

Перейти

В чем преимущество негомогенной сети ДАП перед гомогенной?

Перейти

Если сеть Хэмминга в каждом слое содержит по n нейронов, то сколько образцов она способна запомнить?

Перейти

В каком случае после завершения алгоритма обучения можно сделать вывод, что данный персептрон не смог обучиться?

Перейти

Обучающей парой называется пара векторов,…

Перейти

Если к обучающему множеству добавить новые вектора, вызовет ли это необходимость переучивать когнитрон заново или нет?

Перейти

При каком алгоритме обучения обучающее множество состоит как из входных, так и из выходных векторов?

Перейти

Что называется «эпохой» в алгоритме обучения персептрона?

Перейти

Все ли нейроны многослойного персептрона возможно обучить?

Перейти

В алгоритме обратного распространения при «проходе вперед»

Перейти

При методе кросс-проверки считается, что множество обучающихся пар некорректно разделено на две части, если:

Перейти

Метод аккредитации заключается в:

Перейти

Если на вход обученной сети встречного распространения подать частично обнуленный вектор, то на выходе мы получим:

Перейти

При каком условии сеть обратного распространения является устойчивой?

Перейти

Стабильностью называется способность памяти:

Перейти

Правило двух третьих заключается в том, что:

Перейти

Алгоритм обучения сети АРТ является…

Перейти

В каждом слое неокогнитрона выходы из массива комплексных плоскостей поступают на вход

Перейти

При обучении персептрона предполагается обучение:

Перейти

На вход однослойного персептрона подается вектор (a1…an). В каком случае выходом будет нулевой вектор?

Перейти

Значением NET нейрона слоя Гроссберга является:

Перейти

Сколько слоев должна иметь нейронная сеть, умеющая выделять невыпуклые области?

Перейти

Персептрон Розенблатта решает задачи:

Перейти

Сколько слоев может содержать персептрон?

Перейти

Если в непрерывной сети Хопфилда коэффициент, определяющий крутизну сигмовидной функции, взять достаточно большим, то:

Перейти

Синапсами называются:

Перейти

Способность персептрона решать определенную задачу называется:

Перейти

Для решения любой задачи классификации достаточно иметь:

Перейти

Задача сети Хэмминга заключается в:

Перейти

Сколько нейронов необходимо для реализации задачи коммивояжера, где n — число городов?

Перейти

Сколько функциональных модулей включает в себя сеть АРТ?

Перейти

После окончания алгоритма обучения в нейроне слоя распознавания запоминается информация, являющаяся:

Перейти

Рецепторной областью комплексного узла называется:

Перейти

В статистических алгоритмах обучения искусственная температура используется для:

Перейти

Обучающим множеством называется:

Перейти

В чем основное отличие ассоциативной памяти от адресной?

Перейти

Пусть при Больцмановском обучении сделанное изменение весовых значений увеличило целевую функцию. Всегда ли сделанное изменение скидывается?

Перейти

В алгоритме обучения Хэбба предполагается обучение:

Перейти

Если сеть имеет небольшое число нейронов в скрытых слоях, то:

Перейти

Входная звезда Гроссберга используется для:

Перейти

Задачей сети АРТ является:

Перейти

В начальный момент времени выходом слоя распознавания является:

Перейти

Сколько булевых функций от двух переменных можно представить персептроном?

Перейти

В задаче коммивояжера каждый город представляется:

Перейти

Память называется гетероассоциативной, если:

Перейти

Теория обучения Хэбба подразумевает:

Перейти

Обучение слоя Гроссберга является:

Перейти

Кратковременной памятью сети ДАП называется:

Перейти

Область связи пресиноптического тормозящего нейрона:

Перейти

Приращение веса тормозящего входа данного постсиноптического нейрона зависит от:

Перейти

Можно ли построить двухслойную нейронную сеть, выделяющую неограниченную область?

Перейти

Алгоритм обратного распространения работает, пока:

Перейти

Для какого алгоритма более опасен сетевой паралич?

Перейти

Самоадаптацией алгоритма обучения сети АРТ называется:

Перейти

При обучении неокогнитрона обучаются:

Перейти

Какая активационная функция используется в персептроне?

Перейти

Сеть Хопфилда заменяется на сеть Хэмминга, если:

Перейти

Однонейронный персептрон с двумя входами:

Перейти

Проблема переобучения заключается в:

Перейти

Каждый слой неокогнитрона состоит из:

Перейти

Стратегия избежания локальных минимумов при сохранении стабильности заключается в

Перейти

Метод восстановления ассоциаций заключается в том, что:

Перейти

Метод обучения Уидроу-Хоффа отличается от метода обучения персептрона

Перейти

Искусственный нейрон

Перейти

Паралич сети может наступить, когда:

Перейти

Говорят, что в сети АРТ возник адаптивный резонанс, если:

Перейти

Какой должна быть активационная функция, для того чтобы возможно было применять алгоритм обратного распространения?

Перейти

ОПИСАНИЯ ЛАБОРАТОРНЫХ РАБОТ ПО КУРСУ ННСУИД

ВВЕДЕНИЕ …………………………………………………………………………………………

3

1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ КУРСА ……………………………………………..

4

1.1. Основы искусственных нейронных сетей ……………………………………

4

1.2.Основы генетических алгоритмов………………………………………………..

7

1.3. Основы нечёткой логики…………………………………………………………..

12

1.4. Основы нейро-нечётких систем…………………………………………………

23

2. ОПИСАНИЯ ЛАБОРАТОРНЫХ РАБОТ…………………………………………

33

Лабораторная работа №1. Изучение основ применения искусственных

нейронных сетей …………………………………………………………………………….

33

Лабораторная работа №2. Изучение основ применения генетических

алгоритмов ……………………………………………………………………………………..

39

Лабораторная работа № 3. Изучение основ применения нечёткой

логики…………………………………………………………………………………………….

41

Лабораторная работа №4. Изучение основ применения нейро-нечётких

систем …………………………………………………………………………………………….

43

2

ВВЕДЕНИЕ

В настоящее время всё большее распространение приобретают разработки в области управления и обработки информации, основанные на математических аппаратах искусственных нейронных сетей, нечёткой логики, генетических алгоритмов.

Среди задач обработки информации одной из немаловажных задач, которая может быть решена с применением указанными выше подходов является задача диагностики технических систем.

Цель учебного пособия – познакомить читателя с основами применения современных подходов в задачах управления и диагностики технических систем на примере выполнения лабораторных работ.

Выполнение лабораторных работ предусмотрено в программном пакете MatLab, широко распространённом и хорошо себя зарекомендовавшим во многих инженерных приложениях, что позволит получить полезный для практической работы навык.

3

1.ТЕОРЕТИЧЕСКИЕ ОСНОВЫ КУРСА

1.1.Основы искусственных нейронных сетей

1.1.1.Принципы функционирования

Под искусственными нейронными сетями (ИНС) подразумеваются вычислительные структуры, которые моделируют простые биологические процессы, обычно ассоциируемые с процессами человеческого мозга. Они представляют собой распараллеленные системы, способные к обучению и адаптации путем анализа положительных и отрицательных воздействий. Элементарным преобразователем в данных сетях является искусственный нейрон или просто нейрон, названный так по аналогии с биологическим.

Нейрон — это составная часть нейронной сети. Нейрон состоит из умножителей (синапсов), сумматора и нелинейного преобразователя.

При помощи синапсов осуществляется связь между нейронами. При этом входной сигнал нейрона умножается на число, характеризующее силу связи, — вес синапса.

Сумматор осуществляет сложение сигналов, поступающих по синаптическим связям от других нейронов, и внешних входных сигналов. Нелинейный преобразователь реализует нелинейную функцию одного аргумента — выхода сумматора. Эта функция называется функцией активации нейрона. Нейрон в целом реализует скалярную функцию векторного аргумента.

Математическая модель нейрона может быть описана следующими соотношениями

swi xi b

i1n

yf (s)

Вобщем случае входной сигнал, весовые коэффициенты и значения смещения могут принимать действительные значения. Выход нейрона у определяется видом функции активации f(s) и может быть как действительным, так и целым. Во многих практических задачах входы,

4

веса и смещения могут принимать лишь некоторые фиксированные значения

Таким образом, нейрон полностью описывается своими весами wi и передаточной функцией f(s). Для заданного набора чисел (вектора) xi в качестве входов, нейрон формирует некоторое число у на выходе.

Процесс функционирования ИНС зависит от значений синаптических связей. Поэтому, задав определенную структуру ИНС, необходимо найти значения всех переменных весовых коэффициентов (некоторые синаптические связи могут быть постоянными).

Этот этап называется обучением ИНС, и от того, насколько качественно он будет выполнен, зависит способность сети решать поставленные перед ней проблемы во время функционирования.

1.1.2.Обучение ИНС

Математически процесс обучения может быть описан следующим образом.

В процессе функционирования нейронная сеть формирует выходной сигнал Y, соответствующий входному сигналу X, реализуя некоторую функцию Y = G(X).

Пусть решением некоторой задачи является функция Y = F(X),

которая представлена известными парами входных-выходных данных

(X1, Y1), (X2, Y2), …, (XN, YN), где Yk = F(Xk) (k = 1, 2, …N).

Процесс обучения заключается в поиске функции G, близкой к F в смысле некоторой функции ошибки Е.

Если выбраны множество обучающих примеров — пар (Xk, Yk) (где k = 1,2,…, N) и способ вычисления функции ошибки Е, то обучение нейронной сети превращается в задачу многомерной оптимизации, имеющую очень большую размерность. Т.к. функция Е может иметь произвольный вид, обучение в общем случае — многоэкстремальная невыпуклая задача оптимизации.

Для решения этой задачи могут быть использованы следующие (итерационные) алгоритмы:

алгоритмы локальной оптимизации с вычислением частных производных первого порядка;

алгоритмы локальной оптимизации с вычислением частных производных первого и второго порядка;

стохастические алгоритмы оптимизации;

алгоритмы глобальной оптимизации.

К первой группе относятся: градиентный алгоритм (метод скорейшего спуска); методы с одномерной и двумерной оптимизацией целевой функции в направлении антиградиента; метод сопряженных

5

градиентов; методы, учитывающие направление антиградиента на нескольких шагах алгоритма.

Ко второй группе относятся: метод Ньютона, методы оптимизации с разреженными матрицами Гессе, квазиньютоновские методы, метод Гаусса Ньютона, метод Левенберга-Марквардта и др.

Стохастическими методами являются: поиск в случайном направлении, имитация отжига, метод Монте-Карло (численный метод статистических испытаний).

Задачи глобальной оптимизации решаются с помощью перебора значений переменных, от которых зависит целевая функция (функция ошибки Е).

1.1.3.Переобучение и обобщение

Вотсутствие полной и бесконечно большой обучающей выборки на самом деле, минимизируется не «истинная» ошибка на поверхности ошибок в заранее неизвестной модели явления, а только ошибка относительно имеющихся данных.

Сильнее всего это различие проявляется в явлении слишком близкой подгонки параметров ИНС под данные обучающей выборки, называемом переобучением. Это явление хорошо иллюстрируется на примере аппроксимации посредством полиномов.

Графики полиномов могут иметь различную форму. При этом, чем выше его степень, тем более сложной может быть эта форма. Полиномиальная кривая (модель) может быть подогнана под конкретные данные и таким образом объяснить существующую зависимость.

При этом данные могут быть зашумлены, поэтому нельзя считать, что самая лучшая модель задается кривой, которая в точности проходит через все имеющиеся точки данных. Полином низкого порядка может быть недостаточно гибким средством для аппроксимации данных, в то время как полином высокого порядка может оказаться чересчур гибким,

ибудет точно следовать данным, принимая при этом замысловатую форму, не имеющую никакого отношения к форме настоящей зависимости.

Нейронная сеть сталкивается с точно такой же трудностью. ИНС с большим числом весов моделируют более сложные функции и, следовательно, склонны к переобучению. ИНС с небольшим числом весов может оказаться недостаточно гибкой, чтобы смоделировать имеющуюся зависимость.

Для борьбы с переобучением используется механизм контрольной кросс-проверки, при котором часть обучающих наблюдений резервируется и в обучении не используется. Вместо этого она

6

используется для независимого контроля результата в процессе осуществления обучения сети.

В самом начале обучения ошибки сети на обучающем и контрольном множествах будут одинаковыми (если они существенно отличаются, то, вероятно, разбиение всех наблюдений на два множества было неоднородным). По мере того как сеть обучается, ошибка обучения будет убывать, и, пока обучение уменьшает действительную функцию ошибок, ошибка на контрольном множестве также будет убывать. Если же контрольная ошибка перестала убывать или даже стала расти, это означает, что сеть начала слишком близко аппроксимировать данные и обучение следует остановить. Этот эффект слишком точной аппроксимации в процессе обучения и называется переобучением. Если такое случилось, то обычно советуют уменьшить число скрытых элементов и/или слоев, ибо сеть является слишком мощной для данной задачи. Если же сеть, наоборот, была взята недостаточно богатой для того, чтобы моделировать имеющуюся зависимость, то переобучения, скорее всего, не произойдет, и обе ошибки — обучения и проверки — не достигнут достаточного уровня малости.

1.2.Основы генетических алгоритмов

1.2.1. Генетические алгоритмы и традиционные методы оптимизации

Генетический алгоритм представляет собой метод, отражающий естественную эволюцию методов решения проблем, и в первую очередь задач оптимизации. Генетические алгоритмы — это процедуры поиска, основанные на механизмах естественного отбора и наследования. В них используется эволюционный принцип выживания наиболее приспособленных особей.

Генетические алгоритмы отличаются от традиционных методов оптимизации несколькими базовыми элементами. В частности, они:

1)обрабатывают не значения параметров самой задачи, а их закодированную форму;

2)осуществляют поиск решения исходя не из единственной точки,

аиз их некоторой популяции;

3)используют только целевую функцию, а не ее производные либо иную дополнительную информацию,

4)применяют вероятностные, а не детерминированные правила

вывода.

7

1.2.2.Основные понятия генетических алгоритмов

Втеории генетических алгоритмов используются определения, заимствованные из генетики Например, речь идет о популяции особей, а в качестве базовых понятий

применяются ген, хромосома, генотип, фенотип, аллель.

Также используются соответствующие этим терминам определения из технического лексикона, в частности, цель, двоичная последовательность, структура.

Популяция — это конечное множество особей.

Особи, входящие в популяцию, в генетических алгоритмах представляются хромосомами с закодированными в них множествами параметров задачи, т.е. решений, которые иначе называются точками в пространстве поиска. В некоторых работах особи называются организмами.

Хромосомы (другие названия — цепочки или кодовые последовательности) — это упорядоченные последовательности генов.

Ген (также называемый свойством, знаком или детектором) — это атомарный элемент генотипа, в частности, хромосомы.

Генотип или структура — это набор хромосом данной особи. Следовательно, особями популяции могут быть генотипы либо единичные хромосомы (в довольно распространенном случае, когда генотип состоит из одной хромосомы).

Фенотип — это набор значений, соответствующих данному генотипу, т.е. декодированная структура или множество параметров задачи (решение, точка пространства поиска).

Аллель — это значение конкретного гена, также определяемое как

значение свойства или вариант свойства.

Локус или позиция указывает место размещения данного гена в хромосоме (цепочке). Множество позиций генов — это локи.

Очень важным понятием в генетически алгоритмах считается

функция приспособленности (fitness function), иначе называемая функцией оценки:

Представляет меру приспособленности данной особи в популяции. Играет важнейшую роль, поскольку позволяет оценить степень приспособленности конкретных особей в популяции и выбрать из них наиболее приспособленные (т.е. имеющие наибольшие значения функции приспособленности) в соответствии с эволюционным принципом выживания «сильнейших» (лучше всего приспособившихся). Оказывает сильное влияние на функционирование генетических

алгоритмов и должна иметь точное и корректное определение.

8

Взадачах оптимизации функция приспособленности, как правило, оптимизируется (точнее говоря, максимизируется) и называется целевой функцией. В задачах минимизации целевая функции преобразуется, и проблема сводится к максимизации.

Втеории управления функция приспособленности может принимать вид функции погрешности, а в теории игр — стоимостной функции. На каждой итерации генетического алгоритма приспособленность каждой особи данной популяции оценивается при помощи функции приспособленности, и на этой основе создается следующая популяция особей

Очередная популяция в генетическом алгоритме называется поколением, а к вновь создаваемой популяции особей применяется термин «новое поколение» или «поколение потомков».

1.2.3. Классический генетический алгоритм

Основной (классический) генетический алгоритм (также называемый элементарным или простым генетическим алгоритмом) состоит из следующих шагов:

1)инициализация, или выбор исходной популяции хромосом;

2)оценка приспособленности хромосом в популяции;

3)проверка условий остановки алгоритма;

4)селекция хромосом;

5)применение генетических операторов;

6)формирование новой популяции;

7)выбор «наилучшей» хромосомы,

Формирование исходной популяции заключается в случайном выборе заданного количества хромосом (особей), представляемых двоичными последовательностями фиксированной длины.

Оценивание приспособленности хромосом заключается в расчете функции приспособленности для каждой хромосомы этой популяции. Чем больше значение этой функции, тем выше «качество» хромосомы. Форма функции приспособленности зависит от характера решаемой задачи. Предполагается, что функция приспособленности всегда принимает неотрицательные значения и. кроме того, что для решения оптимизационной задачи требуется максимизировать эту функцию. Если исходная форма функции приспособленности не удовлетворяет этим условиям, то выполняется соответствующее преобразование (например, задачу минимизации функции можно легко свести к задаче максимизации).

Определение условий остановки генетического алгоритма зависит от его конкретного применения. В оптимизационных задачах, если

9

известно максимальное (или минимальное) значение функции приспособленности, то остановка алгоритма может произойти после достижения ожидаемого оптимального значения, возможно — с заданной точностью. Остановка алгоритма также может произойти в случае, когда его выполнение не приводит к улучшению уже достигнутого значения. Алгоритм может быть остановлен по истечении определенного времени выполнения либо после выполнения заданного количества итераций. Если условие остановки выполнено, то производится переход к завершающему этапу выбора «наилучшей» хромосомы. В противном случае на следующем шаге выполняется селекция.

Селекция хромосом заключается в выборе (по рассчитанным на втором этапе значениям функции приспособленности) тех хромосом, которые будут участвовать в создании потомков для следующей популяции, т.е. для очередного поколения. Такой выбор производится согласно принципу естественного отбора, по которому наибольшие шансы на участие в создании новых особей имеют хромосомы с наибольшими значениями функции приспособленности. Существуют различные методы селекции. Наиболее популярным считается так называемый метод рулетки (roulette wheel selection), который свое название получил по аналогии с известной азартной игрой. Каждой хромосоме может быть сопоставлен сектор колеса рулетки, величина которого устанавливается пропорциональной значению функции приспособленности данной хромосомы. Поэтому чем больше значение функции приспособленности, тем больше сектор на колесе рулетки.

Всё колесо рулетки соответствует сумме значений функций приспособленности всех хромосом рассматриваемой популяции. Каждой хромосоме, обозначаемой chi, для i = 1, 2,…, N (где N обозначает численность популяции) соответствует сектор колеса v(chi), выраженный в процентах согласно формуле

v(chi ) ps (chi ) 100%,

где ps (chi ) NF (chi ) .

F (chi )

i 1

причем F(chi) — значение функции приспособленности хромосомы chi, а рs(chi) вероятность селекции хромосомы chi. Селекция хромосомы может быть представлена как результат поворота колеса рулетки, поскольку «выигравшая» (т.е. выбранная) хромосома относится к выпавшему сектору этого колеса.

10

Например, сигмоид с экспонентой преобразуется к виду: У(з) = -0,5+ 1 (1.23) 1+е Рассмотрим вопрос о емкости нейронной сети, т. е. числа образов, предъявляемых на ее входы, которые она способна научиться распознавать. Для сетей с числом слоев больше двух, этот вопрос остается открытым. Для сетей с двумя слоями, детерминистская емкость сети Ск оценивается следующим образом: — <С < — )ой( — ~, ~ю ~и (е (1. 24) гп гп (,т!’ где (.„— число подстраиваемых весов, гп — число нейронов в выходном слое.

Данное выражение получено с учетом некоторых ограничений. Во-первых, число входов и и нейронов в скрытом слое ( должно удовлетворять неравенству (и+~) > гп. Во-вторых, („дп > 1000. Однако приведенная оценка выполнена для сетей с пороговыми активационными функциями нейронов, а емкость сетей с гладкими активационными функциями, например (1.23), обычно больше. Кроме того, термин детерминистский означает, что полученная оценка емкости подходит для всех входных образов, которые могут быть представлены и входами. В действительности распределение входных образов, как правило, обладает некоторой регулярностью, что позволяет нейронной сети проводить обобщение и, таким образом, увеличивать реальную емкость.

Так как распределение образов, в общем случае, заранее не известно, можно говорить о реальной емкости только предположительно, но обычно она раза в два превышает детерминистскую емкость. Вопрос о емкости нейронной сети тесно связан с вопросом о требуемой мощности выходного слоя сети, выполняющего окончательную классификацию образов. Например, для разделения множества входных образов по двум классам достаточно одного выходного нейрона. При этом каждый логический уровень («1» и «О») будет обозначать отдельный класс.

На двух выходных нейронах с пороговой функцией активации можно закодировать уже четыре класса. Для повышения достоверности классификации желательно ввести избыточность путем выделения каждому классу одного нейрона в выходном слое или, что еще лучше, нескольких, каждый из которых обучается определять принадлежность образа к классу со своей степенью достоверности, например: высокой, средней и низкой. Такие нейронные сети позволяют проводить классификацию входных образов, объединенных в нечеткие (размытые или пересекающиеся) множества.

Это свойство приближает подобные сети к реальным условиям функционирования биологических нейронных сетей. Рассматриваемая нейронная сеть имеет несколько «узких мест». Во-первых, в процессе большие положительные или отрицательные значения весов могут сместить рабочую точку на сигмоидах нейронов в область насыщения. Малые величины производной от логистической функции приведуг в соответствии с (1 15) и (1.16) к остановке обучения, что парализует сеть. Во-вторых, применение метода градиентного спуска не гарантирует нахождения глобального минимума целевой функции. Это тесно связано вопросом выбора скорости обучения. Приращения весов и, следовательно, скорость обучения для нахождения экстремума должны быть бесконечно малыми, однако в этом случае обучение будет 30 происходить неприемлемо медленно С другой стороны, слишком большие коррекции весов могут привести к постоянной неустойчивости процесса обучения.

Поэтому в качестве коэффициента скорости обучения и обычно выбирается число меньше 1 (например, О,1), которое постепенно уменьшается в процессе обучения Кроме того, для исключения случайных попаданий сети в локальные минимумы иногда, после стабилизации значений весовых коэффициентов, и кратковременно значительно увеличивают, чтобы начать градиентный спуск из новой точки. Если повторение этой процедуры несколько раз приведет сеть в одно и то же состояние, можно предположить, что найден глобальный минимум. Существует другой метод исключения локальных минимумов и паралича сети, заключающийся в применении стохастических нейронных сетей.

Дадим изложенному геометрическую интерпретацию. В алгоритме обратного распространения вычисляется вектор градиента поверхности ошибок. Этот вектор указывает направление кратчайшего спуска по поверхности из текущей точки, движение по которому приводит к уменьшению ошибки. Последовательность уменьшающихся шагов приведет к минимуму того или иного типа Трудность здесь представляет вопрос подбора длины шагов. При большой величине шага сходимость будет более быстрой, но имеется опасность перепрыгнуть через решение или в случае сложной формы поверхности ошибок уйти в неправильном направлении, например, продвигаясь по узкому оврагу с крутыми склонами, прыгая с одной его стороны на другую. Напротив, при небольшом шаге и верном направлении потребуется очень много итераций.

На практике величина шага берется пропорциональной крутизне склона, так что алгоритм замедляет ход вблизи минимума. Правильный выбор скорости обучения зависит от конкретной задачи и обычно делается опытным путем. Эта константа может также зависеть от времени, уменьшаясь по мере продвижения алгоритма. Обычно этот алгоритм видоизменяется таким образом, чтобы включать слагаемое импульса (ипи инерции). Это способствует продвижению в фиксированном направлении, поэтому, если было сделано несколько шагов в одном и том же направлении, то алгоритм увеличивает скорость, что иногда позволяет избежать локального минимума, а также быстрее проходить плоские участки.

На каждом шаге алгоритма на вход сети поочередно подаются все обучающие примеры, реальные выходные значения сети сравниваются с требуемыми значениями, и вычисляется ошибка. Значение ошибки, а также градиента поверхности ошибок исполь- 31 зуется для корректировки весов, после чего все действия повторяются. Процесс обучения прекращается либо когда пройдено определенное количество эпох, либо когда ошибка достигнет некоторого определенного малого уровня, либо когда ошибка перестанет уменьшаться. Рассмотрим проблемы обобщения и переобучения нейронной сети более подробно Обобщение — это способность нейронной сети делать точный прогноз на данных, не принадлежащих исходному обучающему множеству.

Переобучение же представляет собой чрезмерно точную подгонку, которая имеет место, если алгоритм обучения работает слишком долго, а сеть слишком сложна для такой задачи или для имеющегося объема данных. Продемонстрируем проблемы обобщения и переобучения на примере аппроксимации некоторой зависимости не нейронной сетью, а посредством полиномов, при этом суть явления будет абсолютно та же. Графики полиномов могут иметь различную форму, причем, чем выше степень и число членов, тем более сложной может быть эта форма. Для исходных данных можно подобрать полиномиальную кривую (модель) и получить, таким образом, объяснение имеющейся зависимости.

Данные могут быть зашумлены, поэтому нельзя считать, что лучшая модель в точности проходит через все имеющиеся точки. Полином низкого порядка может лучше объяснять имеющуюся зависимость, однако, быть недостаточно гибким средством для аппроксимации данных, в то время как полином высокого порядка может оказаться чересчур гибким, но будет точно следовать данным, принимая при этом замысловатую форму, не имеющую никакого отношения к настоящей зависимости. Нейронные сети сталкивается с такими же трудностями. Сети с большим числом весов моделируют более сложные функции и, следовательно, склонны к переобучению.

Сети же с небольшим числом весов могут оказаться недостаточно гибкими, чтобы смоделировать имеющиеся зависимости. Например, сеть без скрытых слоев моделирует лишь обычную линейную функцию. Как же выбрать правильную степень сложности сети? Почти всегда более сложная сеть дает меньшую ошибку, но это может свидетельствовать не о хорошем качестве модели, а о переобучении сети. Выход состоит в использовании контрольной кросс-проверки. Для этого резервируется часть обучающей выборки, которая используется не для обучения сети по алгоритму обратного распространения ошибки, а для независимого контроля результата в ходе алгоритма.

В начале работы ошибка сети на обучающем и 32 контрольном множествах будет одинаковой. По мере обучения сети ошибка обучения убывает, как и ошибка на контрольном множестве. Если же контрольная ошибка перестала убывать или даже стала расти, это указывает на то, что сеть начала слишком близко аппроксимировать данные (переобучилась) и обучение следует остановить.

Если это случилось, то следует уменьшить число скрытых элементов и/или слоев, ибо сеть является слишком мощной для данной задачи. Если же обе ошибки (обучения и кросс- проверки) не достигнут достаточного малого уровня, то переобучения, естественно не произошло, а сеть, напротив, является недостаточно мощной для моделирования имеющейся зависимости. Описанные проблемы приводят к тому, что при практической работе с нейронными сетями приходится экспериментировать с большим числом различных сетей, порой обучая каждую из них по несколько раз и сравнивая полученные результаты.

Главным показателем качества результата является здесь контрольная ошибка. При этом, в соответствии с общесистемным принципом, из двух сетей с приблизительно равными ошибками контроля имеет смысл выбрать ту, которая проще. Необходимость многократных экспериментов приводит к тому, что контрольное множество начинает играть ключевую роль в выборе модели и становится частью процесса обучения. Тем самым ослабляется его роль как независимого критерия качества модели. При большом числе экспериментов есть большая вероятность выбрать удачную сеть, дающую хороший результат на контрольном множестве.

Однако для того чтобы придать окончательной модели должную надежность, часто (когда объем обучающих примеров это позволяет) поступают следующим образом; резервируют тестовое множество примеров. Итоговая модель тестируется на данных из этого множества, чтобы убедиться, что результаты, достигнутые на обучающем и контрольном множествах примеров, реальны, а не являются артефактами процесса обучения.

Разумеется, для того чтобы хорошо играть свою роль, тестовое множество должно быть использовано только один раз: если его использовать повторно для корректировки процесса обучения, то оно фактически превратится в контрольное множество. С целью ускорения процесса обучения сети предложены многочисленные модификации алгоритма обратного распространения ошибки, связанные с использованием различных функций ошибки, процедур определения направления и величин шага. 1) Функции ошибки: ° интегральные функции ошибки по всей совокупности обучающих примеров; 33 ° функции ошибки целых и дробных степеней 2) Процедуры определения величины шага на каждой шперации ° дихотомия; ° инерционные соотношения (см выше); ° отжиг 3) Процедуры определения направления шага: ° с использованием матрицы производных второго порядка (метод Ньютона); ° с использованием направлений на нескольких шагах (партан метод).

Явление переобучения

Одна из наиболее серьезных трудностей при обучении сети заключается в том, что в ряде случаев мы минимизируем не ту ошибку, которую на самом деле нужно минимизировать; требуется минимизировать ошибку, которая появляется в сети, когда на нее подаются совершенно новые наблюдения. Весьма важно, чтобы нейронная сеть обладала способностью приспосабливаться к этим новым наблюдениям. Что же происходит на самом деле? Сеть обучается минимизировать ошибку на некотором ограниченном обучающем множестве. Это не отвечает требованиям теории о наличии идеального и бесконечно большого обучающего множества. И это не соответствует той реальной ситуации, когда надо минимизировать конкретную функцию ошибок для заранее неизвестной модели.

Это порождает проблему, которая известна как явление переобучения. Обратимся к задаче аппроксимации некоторой функции многочленом [1]. Графики многочленов часто имеют весьма замысловатые формы, и чем выше степень многочлена, тем сложнее их форма. Если имеется некоторый набор данных, то можно поставить цель подобрать для него аппроксимирующий многочлен и таким образом получить подходящую математическую модель для этого набора данных. Поскольку исходные данные, как правило, заданы с погрешностями, то нельзя считать, что лучшая модель задается кривой, которая проходит точно через заданные точки. Многочлен низкого порядка может оказаться достаточно грубым для аппроксимации данных, в то время как многочлен высокого порядка может точно следовать данным, принимая при этом весьма замысловатую форму, не имеющую никакого отношения к форме истинной зависимости. Последняя ситуация и демонстрирует то, что называетсяявлением переобучения.

При работе с нейронными сетями пользователь сталкивается с той же проблемой. Сети с большим количеством весов позволяют воспроизводить очень сложные функции, и в этом смысле они склонны к переобучению. Сеть же с небольшим количеством весов может оказаться недостаточно гибкой, чтобы смоделировать имеющуюся зависимость. Например, однослойная линейная сеть способна воспроизводить только линейные функции. Если использовать многослойные линейные сети, то ошибка всегда будет меньше, но это может свидетельствовать не о хорошем качестве модели, а о том, что проявляется явление переобучения.

Для того чтобы выявить эффект переобучения, используется механизм контрольной проверки. Часть обучающих наблюдений резервируется как контрольные наблюдения и не используется при обучении сети. Вместо этого по мере работы алгоритма эти наблюдения применяются для независимого контроля результата. Вначале ошибка сети на обучающем и контрольном множествах будет одинаковой; если они существенно отличаются, то, вероятно, это означает, что разбиение наблюдений на 2 множества не обеспечило их однородность. По мере обучения сети ошибка убывает, и, пока обучение уменьшает функцию ошибок, ошибка на контрольном множестве также будет убывать. Если же контрольная ошибка перестала убывать или стала расти, это указывает на то, что сеть начала слишком близко следовать исходным данным и обучение следует остановить. В этом случае следует уменьшить количество нейронов или слоев, ибо сеть является слишком мощной для решения данной задачи. Если же, наоборот, сеть имеет недостаточную мощность, чтобы воспроизвести имеющуюся зависимость, то явление переобучения скорее всего наблюдаться не будет и обе ошибки – обучения и проверки – не достигнут достаточно малого уровня.

Возникающие при работе с нейронными сетями проблемы отыскания глобального минимума или выбора размера сети приводят к тому, что при практической работе приходится экспериментировать с большим числом сетей различных конфигураций, порой обучая каждую из них несколько раз и сравнивая полученные результаты. Главным критерием выбора в этих случаях является контрольная погрешность. При этом применяется правило, согласно которому из двух нейронных сетей с приблизительно равными контрольными погрешностями следует выбирать ту, которая проще.

Необходимость многократных экспериментов ведет к тому, что контрольное множество начинает играть ключевую роль в выборе модели нейронной сети, т. е. становится частью процесса обучения. Тем самым его роль как независимого критерия качества модели ослабляется, поскольку при большом числе экспериментов возникает рискпереобучениянейронной сети на контрольном множестве. Для того чтобы гарантировать надежность выбираемой модели сети, резервируют еще одно –тестовоемножество наблюдений. Итоговая модель тестируется на данных из этого множества, чтобы убедиться, что результаты, достигнутые на обучающем и контрольном множествах реальны. Разумеется, для того чтобы хорошо играть свою роль, тестовое множество должно быть использовано только 1 раз: если его использовать повторно для корректировки процесса обучения, то оно фактически превратится в контрольное множество.

Итак, процедура построения нейронной сети состоит из следующих шагов:

выбора начальной конфигурации сети; например, в виде одного слоя с числом нейронов, равным 1/2 общего количества входов и выходов;

моделирования и обучения сети с оценкой контрольной ошибки и использованием дополнительных нейронов или промежуточных слоев;

выявления эффекта переобучения и корректировки конфигурации сети.

Источник

Переобучение и обобщение

Одна из наиболее серьёзных трудностей изложенного подхода заключается в том, что таким образом мы минимизируем не ту ошибку, которую на самом деле нужно минимизировать, — ошибку, которую можно ожидать от сети, когда ей будут подаваться совершенно новые наблюдения. Иначе говоря, мы хотели бы, чтобы нейронная сеть обладала способностью обобщать результат на новые наблюдения. В действительности сеть обучается минимизировать ошибку на обучающем множестве, и в отсутствие идеального и бесконечно большого обучающего множества это совсем не то же самое, что минимизировать «настоящую» ошибку на поверхности ошибок в заранее неизвестной модели явления (Bishop, 1995).

Сильнее всего это различие проявляется в проблеме переобучения, или слишком близкой подгонки. Это явление проще будет продемонстрировать не для нейронной сети, а на примере аппроксимации посредством полиномов, — при этом суть явления абсолютно та же.

Полином (или многочлен) — это выражение, содержащее только константы и целые степени независимой переменной. Вот примеры:

Графики полиномов могут иметь различную форму, причём чем выше степень многочлена (и, тем самым, чем больше членов в него входит), тем более сложной может быть эта форма. Если у нас есть некоторые данные, мы можем поставить цель подогнать к ним полиномиальную кривую (модель) и получить таким образом объяснение для имеющейся зависимости. Наши данные могут быть зашумлены, поэтому нельзя считать, что самая лучшая модель задается кривой, которая в точности проходит через все имеющиеся точки. Полином низкого порядка может быть недостаточно гибким средством для аппроксимации данных, в то время как полином высокого порядка может оказаться чересчур гибким, и будет точно следовать данным, принимая при этом замысловатую форму, не имеющую никакого отношения к форме настоящей зависимости (рис.11.10).

Рис. 11.10. Полином высокого порядка

Нейронная сеть сталкивается с точно такой же трудностью. Сети с большим числом весов моделируют более сложные функции и, следовательно, склонны к переобучению. Сеть же с небольшим числом весов может оказаться недостаточно гибкой, чтобы смоделировать имеющуюся зависимость. Например, сеть без промежуточных слоёв на самом деле моделирует обычную линейную функцию.

Как же выбрать «правильную» степень сложности для сети? Почти всегда более сложная сеть дает меньшую ошибку, но это может свидетельствовать не о хорошем качестве модели, а о переобучении.

Ответ состоит в том, чтобы использовать механизм контрольной кросс-проверки. Мы резервируем часть обучающих наблюдений и не используем их в обучении по алгоритму обратного распространения. Вместо этого, по мере работы алгоритма, они используются для независимого контроля результата. В самом начале работы ошибка сети на обучающем и контрольном множестве будет одинаковой (если они существенно отличаются, то, вероятно, разбиение всех наблюдений на два множества было неоднородно). По мере того, как сеть обучается, ошибка обучения, естественно, убывает, и, пока обучение уменьшает действительную функцию ошибок, ошибка на контрольном множестве также будет убывать. Если же контрольная ошибка перестала убывать или даже стала расти, это указывает на то, что сеть начала слишком близко аппроксимировать данные и обучение следует остановить (в пакете ST Neural Networks можно задать автоматическую остановку обучения при появлении эффекта переобучения). Это явление чересчур точной аппроксимации в процессе обучения и называется переобучением. Если такое случилось, то обычно советуют уменьшить число скрытых элементов и/или слоев, ибо сеть является слишком мощной для данной задачи. Если же сеть, наоборот, была взята недостаточно богатой для того, чтобы моделировать имеющуюся зависимость, то переобучения, скорее всего, не произойдет, и обе ошибки — обучения и проверки — не достигнут достаточного уровня малости.

Описанные проблемы с локальными минимумами и выбором размера сети приводят к тому, что при практической работе с нейронными сетями, как правило, приходится экспериментировать с большим числом различных сетей, порой обучая каждую из них по нескольку раз (чтобы не быть введённым в заблуждение локальными минимумами) и сравнивая полученные результаты. Главным показателем качества результата является здесь контрольная ошибка. При этом, в соответствии с общенаучным принципом, согласно которому при прочих равных следует предпочесть более простую модель, из двух сетей с приблизительно равными ошибками контроля имеет смысл выбрать ту, которая меньше.

Необходимость многократных экспериментов ведёт к тому, что контрольное множество начинает играть ключевую роль в выборе модели, то есть становится частью процесса обучения. Тем самым ослабляется его роль как независимого критерия качества модели — при большом числе экспериментов есть риск выбрать «удачную» сеть, дающую хороший результат на контрольном множестве. Для того, чтобы придать окончательной модели должную надежность, часто (по крайней мере, когда объём обучающих данных это позволяет) поступают так: резервируют ещё одно — тестовое множество наблюдений. Итоговая модель тестируется на данных из этого множества, чтобы убедиться, что результаты, достигнутые на обучающем и контрольном множествах реальны, а не являются артефактами процесса обучения. Разумеется, для того чтобы хорошо играть свою роль, тестовое множество должно быть использовано только один раз: если его использовать повторно для корректировки процесса обучения, то оно фактически превратится в контрольное множество.

Итак, построение сети (после выбора входных переменных) состоит из следующих шагов:

Выбрать начальную конфигурацию сети (например, один промежуточный слой с числом элементов в нём, равным полусумме числа входов и числа выходов — Наставник (Network Advisor) пакета ST Neural Networks предлагает такую конфигурацию по умолчанию).

Провести ряд экспериментов с различными конфигурациями, запоминая при этом лучшую сеть (в смысле контрольной ошибки). В пакете ST Neural Networks предусмотрено автоматическое запоминание лучшей сети во время эксперимента. Для каждой конфигурации следует провести несколько экспериментов, чтобы не получить ошибочный результат из-за того, что процесс обучения попал в локальный минимум.

Если в очередном эксперименте наблюдается недообучение (сеть не выдаёт результат приемлемого качества), попробовать добавить дополнительные нейроны в промежуточный слой (слои). Если это не помогает, попробовать добавить новый промежуточный слой.

Если имеет место переобучение (контрольная ошибка стала расти), попробовать удалить несколько скрытых элементов (а возможно и слоёв).

Многократное повторение эвристических экспериментов в лучшем случае довольно утомительно, и поэтому в пакет ST Neural Networks включён специальный алгоритм автоматического поиска, который сам проделает эти действия. Автоматический конструктор сети — Automatic Network Designer проведет эксперименты с различным числом скрытых элементов, для каждой пробной архитектуры сети выполнит несколько прогонов обучения, отбирая при этом наилучшую сеть по показателю контрольной ошибки с поправкой на размер сети. В Автоматическом конструкторе сети реализованы сложные алгоритмы поиска, в том числе метод «искусственного отжига» (simulated annealing, Kirkpatrick et al., 1983), с помощью которых можно перепробовать сотни различных сетей, выделяя из них особо перспективные, либо быстро находить «грубое и простое» решение.

На всех предыдущих этапах существенно использовалось одно предположение. А именно, обучающее, контрольное и тестовое множества должны быть репрезентативными (представительными) с точки зрения существа задачи (более того, эти множества должны быть репрезентативными каждое в отдельности). Известное изречение программистов «garbage in, garbage out» («мусор на входе — мусор на выходе») нигде не справедливо в такой степени, как при нейросетевом моделировании. Если обучающие данные не репрезентативны, то модель, как минимум, будет не очень хорошей, а в худшем случае — бесполезной. Имеет смысл перечислить ряд причин, которые ухудшают качество обучающего множества:

Будущее непохоже на прошлое. Обычно в качестве обучающих берутся исторические данные. Если обстоятельства изменились, то закономерности, имевшие место в прошлом, могут больше не действовать.

Следует учесть все возможности. Нейронная сеть может обучаться только на тех данных, которыми она располагает. Предположим, что лица с годовым доходом более $100,000 имеют высокий кредитный риск, а обучающее множество не содержало лиц с доходом более $40,000 в год. Тогда едва ли можно ожидать от сети правильного решения в совершенно новой для нее ситуации.

Сеть обучается тому, чему проще всего обучиться. Классическим (возможно, вымышленным) примером является система машинного зрения, предназначенная для автоматического распознавания танков. Сеть обучалась на ста картинках, содержащих изображения танков, и на ста других картинках, где танков не было. Был достигнут стопроцентно «правильный» результат. Но когда на вход сети были поданы новые данные, она безнадежно провалилась. В чем же была причина? Выяснилось, что фотографии с танками были сделаны в пасмурный, дождливый день, а фотографии без танков — в солнечный день. Сеть научилась улавливать (очевидную) разницу в общей освещенности. Чтобы сеть могла результативно работать, ее следовало обучать на данных, где бы присутствовали все погодные условия и типы освещения, при которых сеть предполагается использовать — и это еще не говоря о рельефе местности, угле и дистанции съемки и т.д.

Несбалансированный набор данных. Коль скоро сеть минимизирует общую погрешность, важное значение приобретает пропорции, в которых представлены данные различных типов. Сеть, обученная на 900 хороших и 100 плохих примерах будет искажать результат в пользу хороших наблюдений, поскольку это позволит алгоритму уменьшить общую погрешность (которая определяется в основном хорошими случаями). Если в реальной популяции хорошие и плохие объекты представлены в другой пропорции, то результаты, выдаваемые сетью, могут оказаться неверными. Хорошим примером служит задача выявления заболеваний. Пусть, например, при обычных обследованиях в среднем 90% людей оказываются здоровыми. Сеть обучается на имеющихся данных, в которых пропорция здоровые/больные равна 90/10. Затем она применяется для диагностики пациентов с определённым жалобами, среди которых это соотношение уже 50/50. В этом случае сеть будет ставить диагноз чересчур осторожно и не распознает заболевание у некоторых больных. Если же, наоборот, сеть обучить на данных «с жалобами», а затем протестировать на «обычных» данных, то она будет выдавать повышенное число неправильных диагнозов о наличии заболевания. В таких ситуациях обучающие данные нужно скорректировать так, чтобы были учтены различия в распределении данных (например, можно повторять редкие наблюдения или удалить часто встречающиеся), или же видоизменить решения, выдаваемые сетью, посредством матрицы потерь (Bishop, 1995). Как правило, лучше всего постараться сделать так, чтобы наблюдения различных типов были представлены равномерно, и соответственно этому интерпретировать результаты, которые выдаёт сеть.

Как обучается многослойный персептрон

Мы сможем лучше понять, как устроен и как обучается многослойный персептрон (MLP), если выясним, какие функции он способен моделировать. Вспомним, что уровнем активации элемента называется взвешенная сумма его входов с добавленным к ней пороговым значением. Таким образом, уровень активации представляет собой простую линейную функцию входов. Эта активация затем преобразуется с помощью сигмоидной ( имеющей S-образную форму) кривой.

Комбинация линейной функции нескольких переменных и скалярной сигмоидной функции приводит к характерному профилю «сигмоидного склона», который выдает элемент первого промежуточного слоя MLP. На приведенном рисунке (рис.11.11) соответствующая поверхность изображена в виде функции двух входных переменных.

Рис. 11.11. Функция двух входных переменных

Элемент с большим числом входов выдаёт многомерный аналог такой поверхности. При изменении весов и порогов меняется и поверхность отклика. При этом может меняться как ориентация всей поверхности, так и крутизна склона. Большим значениям весов соответствует более крутой склон. Так, например, если увеличить все веса в два раза, то ориентация не изменится, а наклон будет более крутым.

В многослойной сети подобные функции отклика комбинируются друг с другом с помощью последовательного взятия их линейных комбинаций и применения нелинейных функций активации. На этом рисунке изображена типичная поверхность отклика для сети с одним промежуточным слоем, состоящим из двух элементов, и одним выходным элементом, для классической задачи «исключающего или» (Xor). Две разных сигмоидных поверхности объединены в одну поверхность, имеющую форму буквы «U».

Перед началом обучения сети весам и порогам случайным образом присваиваются небольшие по величине начальные значения. Тем самым отклики отдельных элементов сети имеют малый наклон и ориентированы хаотично — фактически они не связаны друг с другом. По мере того, как происходит обучение, поверхности отклика элементов сети вращаются и сдвигаются в нужное положение, а значения весов увеличиваются, поскольку они должны моделировать отдельные участки целевой поверхности отклика.

В задачах классификации выходной элемент должен выдавать сильный сигнал в случае, если данное наблюдение принадлежит к интересующему нас классу, и слабый — в противоположном случае. Иначе говоря, этот элемент должен стремиться смоделировать функцию, равную единице в той области пространства объектов, где располагаются объекты из нужного класса, и равную нулю вне этой области. Такая конструкция известна как дискриминантная функция в задачах распознавания. «Идеальная» дискриминантная функция должна иметь плоскую структуру, так чтобы точки соответствующей поверхности располагались либо на нулевом уровне, либо на высоте единица.

Если сеть не содержит скрытых элементов, то на выходе она может моделировать только одинарный «сигмоидный склон»: точки, находящиеся по одну его сторону, располагаются низко, по другую — высоко. При этом всегда будет существовать область между ними (на склоне), где высота принимает промежуточные значения, но по мере увеличения весов эта область будет сужаться.

Такой сигмоидный склон фактически работает как линейная дискриминантная функция. Точки, лежащие по одну сторону склона, классифицируются как принадлежащие нужному классу, а лежащие по другую сторону — как не принадлежащие. Следовательно, сеть без скрытых слоёв может служить классификатором только в линейно-отделимых задачах (когда можно провести линию — или, в случае более высоких размерностей, — гиперплоскость, разделяющую точки в пространстве признаков).

Сеть, содержащая один промежуточный слой, строит несколько сигмоидных склонов — по одному для каждого скрытого элемента, — и затем выходной элемент комбинирует из них «возвышенность». Эта возвышенность получается выпуклой, т.е. не содержащей впадин. При этом в некоторых направлениях она может уходить на бесконечность (как длинный полуостров). Такая сеть может моделировать большинство реальных задач классификации (рис.11.12).

Рис. 11.12. Моделирование сети с одним промежуточным слоем

На этом рисунке показана поверхность отклика, полученная многослойным персептроном для решения задачи исключающего или: хорошо видно, что она выделяет область пространства, расположенную вдоль диагонали.

Сеть с двумя промежуточными слоями строит комбинацию из нескольких таких возвышенностей. Их будет столько же, сколько элементов во втором слое, и у каждой из них будет столько сторон, сколько элементов было в первом скрытом слое. После небольшого размышления можно прийти к выводу, что, используя достаточное число таких возвышенностей, можно воспроизвести поверхность любой формы — в том числе с впадинами и вогнутостями.

Как следствие наших рассмотрений мы получаем, что, теоретически, для моделирования любой задачи достаточно многослойного персептрона с двумя промежуточными слоями (в точной формулировке этот результат известен как теорема Колмогорова). При этом может оказаться и так, что для решения некоторой конкретной задачи более простой и удобной будет сеть с еще большим числом слоев. Однако, для решения большинства практических задач достаточно всего одного промежуточного слоя, два слоя применяются как резерв в особых случаях, а сети с тремя слоями практически не применяются.

В задачах классификации очень важно понять, как следует интерпретировать те точки, которые попали на склон или лежат близко от него. Стандартный выход здесь состоит в том, чтобы для пороговых значений установить некоторые доверительные пределы (принятия или отвержения), которые должны быть достигнуты, чтобы данных элемент считался «принявшим решение». Например, если установлены пороги принятия/отвержения 0.95/0.05, то при уровне выходного сигнала, превосходящем 0.95 элемент считается активным, при уровне ниже 0.05 — неактивным, а в промежутке – «неопределённым».

Имеется и более тонкий (и, вероятно, более полезный) способ интерпретировать уровни выходного сигнала: считать их вероятностями. В этом случае сеть выдает несколько большую информацию, чем просто «да/нет»: она сообщает нам, насколько (в некотором формальном смысле) мы можем доверять её решению. Разработаны (и реализованы в пакете ST Neural Networks) модификации метода MLP, позволяющие интерпретировать выходной сигнал нейронной сети как вероятность, в результате чего сеть по существу учится моделировать плотность вероятности распределения данного класса. При этом, однако, вероятностная интерпретация обоснована только в том случае, если выполнены определенные предположения относительно распределения исходных данных (конкретно, что они являются выборкой из некоторого распределения, принадлежащего к семейству экспоненциальных распределений; Bishop, 1995). Здесь, как и ранее, может быть принято решение по классификации, но, кроме того, вероятностная интерпретация позволяет ввести концепцию «решения с минимальными затратами».

Источник

Макеты страниц

В многослойных нейронных сетях оптимальные выходные значения нейронов всех слоев, кроме последнего, как правило, неизвестны трех- или более слойный персептрон уже невозможно обучить, руководствуясь только величинами ошибок на выходах сети

Один из вариантов решения этой проблемы — разработка наборов выходных сигналов, соответствующих входным, для каждого слоя нейронной сети, что, конечно, является очень трудоемкой операцией и не всегда осуществимо Второй вариант — динамическая подстройка весовых коэффициентов синапсов, в ходе которой выбираются, как правило, наиболее слабые связи и изменяются на малую величину в ту или иную сторону, а сохраняются только те изменения, которые повлекли уменьшение ошибки на выходе всей сети Очевидно, что данный метод, несмотря на

кажущуюся простоту, требует громоздких рутинных вычислений И, наконец, третий, более приемлемый вариант — распространение сигналов ошибки от выходов нейронной сети к ее входам, в направлении, обратном прямому распространению сигналов в обычном режиме работы Этот алгоритм обучения получил название процедуры обратного распространения ошибки (error back propagation) Именно он рассматривается ниже

Алгоритм обратного распространения ошибки — это итеративный градиентный алгоритм обучения, который используется с целью минимизации среднеквадратичного отклонения текущих от требуемых выходов многослойных нейронных сетей с последовательными связями

Согласно методу наименьших квадратов, минимизируемой целевой функцией ошибки нейронной сети является величина

где — реальное выходное состояние нейрона у выходного слоя нейронной сети при подаче на ее входы образа, требуемое выходное состояние этого нейрона

Суммирование ведется по всем нейронам выходного слоя и по всем обрабатываемым сетью образам Минимизация методом градиентного спуска обеспечивает подстройку весовых коэффициентов следующим образом

где — весовой коэффициент синаптической связи, соединяющей нейрон слоя нейроном слоя — коэффициент скорости обучения,

В соответствии с правилом дифференцирования сложной функции

где — взвешенная сумма входных сигналов нейрона аргумент активационной функции Так как производная активационной функции должна быть определена на всей оси абсцисс, то функция единичного скачка и прочие активационные функции с неоднородностями не подходят для рассматриваемых нейронных сетей В них применяются такие гладкие функции, как гиперболический тангенс или классический сигмоид с экспонентой (см табл 1 1) Например, в случае гиперболического тангенса

Третий множитель равен выходу нейрона предыдущего слоя

Что касается первого множителя в (1.11), он легко раскладывается следующим образом:

Здесь суммирование по выполняется среди нейронов слоя Введя новую переменную:

получим рекурсивную формулу для расчетов величин слоя из величин более старшего слоя

Для выходного слоя:

Теперь можно записать (1.10) в раскрытом виде:

Иногда для придания процессу коррекции весов некоторой инерционности, сглаживающей резкие скачки при перемещении по поверхности целевой функции, (1.17) дополняется значением изменения веса на предыдущей итерации.

где коэффициент инерционности; номер текущей итерации.

Таким образом, полный алгоритм обучения нейронной сети с помощью процедуры обратного распространения строится следующим образом.

ШАГ 1. Подать на входы сети один из возможных образов и в режиме обычного функционирования нейронной сети, когда сигналы распространяются от входов к выходам, рассчитать значения последних. Напомним, что:

где — число нейронов в слое с учетом нейрона с постоянным выходным состоянием задающего смещение; вход нейрона у слоя

где — сигмоид,

где компонента вектора входного образа.

ШАГ 2. Рассчитать для выходного слоя по формуле (1.16).

Рассчитать по формуле (1.17) или (1.18) изменения весов слоя Q.

ШАГ 3. Рассчитать по формулам (1.15) и (1.17) (или (1.15) и соответственно для всех остальных слоев, .

ШАГ 4. Скорректировать все веса в нейронной сети:

ШАГ 5. Если ошибка сети существенна, перейти на шаг 1. В противном случае — конец.

Сети на шаге 1 попеременно в случайном порядке предъявляются все тренировочные образы, чтобы сеть, образно говоря, не забывала одни по мере запоминания других.

Из выражения (1.17) следует, что когда выходное значение стремится к нулю, эффективность обучения заметно снижается. При двоичных входных векторах в среднем половина весовых коэффициентов не будет корректироваться, поэтому область возможных значений выходов нейронов желательно сдвинуть в пределы что достигается простыми модификациями логистических функций. Например, сигмоид с экспонентой преобразуется к виду:

Рассмотрим вопрос о емкости нейронной сети, т. е. числа образов, предъявляемых на ее входы, которые она способна научиться распознавать. Для сетей с числом слоев больше двух, этот вопрос остается открытым. Для сетей с двумя слоями, детерминистская емкость сети оценивается следующим образом:

где — число подстраиваемых весов, — число нейронов в выходном слое.

Данное выражение получено с учетом некоторых ограничений. Во-первых, число входов и нейронов в скрытом слое должно удовлетворять неравенству Во-вторых, Однако приведенная оценка выполнена для сетей с пороговыми активационными функциями нейронов, а емкость сетей с гладкими активационными функциями, например (1.23), обычно больше. Кроме того, термин детерминистский означает, что полученная оценка емкости подходит для всех входных образов, которые могут быть представлены входами. В действительности распределение входных образов, как правило, обладает некоторой регулярностью, что позволяет нейронной сети проводить обобщение и, таким образом, увеличивать реальную емкость. Так как распределение образов, в общем случае, заранее не известно, можно говорить о реальной емкости только предположительно, но обычно она раза в два превышает детерминистскую емкость.

Вопрос о емкости нейронной сети тесно связан с вопросом о требуемой мощности выходного слоя сети, выполняющего окончательную классификацию образов. Например, для разделения множества входных образов по двум классам достаточно одного выходного нейрона. При этом каждый логический уровень будет обозначать отдельный класс. На двух выходных нейронах с пороговой функцией активации можно закодировать уже четыре класса. Для повышения достоверности классификации желательно ввести избыточность путем выделения каждому классу одного нейрона в выходном слое или, что еще лучше, нескольких, каждый из которых обучается определять принадлежность образа к классу со своей степенью достоверности, например: высокой, средней и низкой. Такие нейронные сети позволяют проводить классификацию входных образов, объединенных в нечеткие (размытые или пересекающиеся) множества. Это свойство приближает подобные сети к реальным условиям функционирования биологических нейронных сетей.

Рассматриваемая нейронная сеть имеет несколько «узких мест». Во-первых, в процессе большие положительные или отрицательные значения весов могут сместить рабочую точку на сигмоидах нейронов в область насыщения. Малые величины производной от логистической функции приведут в соответствии с (1.15) и (1.16) к остановке обучения, что парализует сеть. Во-вторых, применение метода градиентного спуска не гарантирует нахождения глобального минимума целевой функции. Это тесно связано вопросом выбора скорости обучения. Приращения весов и, следовательно, скорость обучения для нахождения экстремума должны быть бесконечно малыми, однако в этом случае обучение будет

происходить неприемлемо медленно. С другой стороны, слишком большие коррекции весов могут привести к постоянной неустойчивости процесса обучения. Поэтому в качестве коэффициента скорости обучения 1] обычно выбирается число меньше 1 (например, 0,1), которое постепенно уменьшается в процессе обучения. Кроме того, для исключения случайных попаданий сети в локальные минимумы иногда, после стабилизации значений весовых коэффициентов, 7 кратковременно значительно увеличивают, чтобы начать градиентный спуск из новой точки. Если повторение этой процедуры несколько раз приведет сеть в одно и то же состояние, можно предположить, что найден глобальный минимум.

Существует другой метод исключения локальных минимумов и паралича сети, заключающийся в применении стохастических нейронных сетей.

Дадим изложенному геометрическую интерпретацию.

В алгоритме обратного распространения вычисляется вектор градиента поверхности ошибок. Этот вектор указывает направление кратчайшего спуска по поверхности из текущей точки, движение по которому приводит к уменьшению ошибки. Последовательность уменьшающихся шагов приведет к минимуму того или иного типа. Трудность здесь представляет вопрос подбора длины шагов.

При большой величине шага сходимость будет более быстрой, но имеется опасность перепрыгнуть через решение или в случае сложной формы поверхности ошибок уйти в неправильном направлении, например, продвигаясь по узкому оврагу с крутыми склонами, прыгая с одной его стороны на другую. Напротив, при небольшом шаге и верном направлении потребуется очень много итераций. На практике величина шага берется пропорциональной крутизне склона, так что алгоритм замедляет ход вблизи минимума. Правильный выбор скорости обучения зависит от конкретной задачи и обычно делается опытным путем. Эта константа может также зависеть от времени, уменьшаясь по мере продвижения алгоритма.

Обычно этот алгоритм видоизменяется таким образом, чтобы включать слагаемое импульса (или инерции). Это способствует продвижению в фиксированном направлении, поэтому, если было сделано несколько шагов в одном и том же направлении, то алгоритм увеличивает скорость, что иногда позволяет избежать локального минимума, а также быстрее проходить плоские участки.

На каждом шаге алгоритма на вход сети поочередно подаются все обучающие примеры, реальные выходные значения сети сравниваются с требуемыми значениями, и вычисляется ошибка. Значение ошибки, а также градиента поверхности ошибок

используется для корректировки весов, после чего все действия повторяются. Процесс обучения прекращается либо когда пройдено определенное количество эпох, либо когда ошибка достигнет некоторого определенного малого уровня, либо когда ошибка перестанет уменьшаться.

Рассмотрим проблемы обобщения и переобучения нейронной сети более подробно. Обобщение — это способность нейронной сети делать точный прогноз на данных, не принадлежащих исходному обучающему множеству. Переобучение же представляет собой чрезмерно точную подгонку, которая имеет место, если алгоритм обучения работает слишком долго, а сеть слишком сложна для такой задачи или для имеющегося объема данных.

Продемонстрируем проблемы обобщения и переобучения на примере аппроксимации некоторой зависимости не нейронной сетью, а посредством полиномов, при этом суть явления будет абсолютно та же.

Графики полиномов могут иметь различную форму, причем, чем выше степень и число членов, тем более сложной может быть эта форма. Для исходных данных можно подобрать полиномиальную кривую (модель) и получить, таким образом, объяснение имеющейся зависимости. Данные могут быть зашумлены, поэтому нельзя считать, что лучшая модель в точности проходит через все имеющиеся точки. Полином низкого порядка может лучше объяснять имеющуюся зависимость, однако, быть недостаточно гибким средством для аппроксимации данных, в то время как полином высокого порядка может оказаться чересчур гибким, но будет точно следовать данным, принимая при этом замысловатую форму, не имеющую никакого отношения к настоящей зависимости.

Нейронные сети сталкивается с такими же трудностями. Сети с большим числом весов моделируют более сложные функции и, следовательно, склонны к переобучению. Сети же с небольшим числом весов могут оказаться недостаточно гибкими, чтобы смоделировать имеющиеся зависимости. Например, сеть без скрытых слоев моделирует лишь обычную линейную функцию.

Как же выбрать правильную степень сложности сети? Почти всегда более сложная сеть дает меньшую ошибку, но это может свидетельствовать не о хорошем качестве модели, а о переобучении сети.

Выход состоит в использовании контрольной кросс-проверки. Для этого резервируется часть обучающей выборки, которая используется не для обучения сети по алгоритму обратного распространения ошибки, а для независимого контроля результата в ходе алгоритма. В начале работы ошибка сети на обучающем и

контрольном множествах будет одинаковой. По мере обучения сети ошибка обучения убывает, как и ошибка на контрольном множестве. Если же контрольная ошибка перестала убывать или даже стала расти, это указывает на то, что сеть начала слишком близко аппроксимировать данные (переобучилась) и обучение следует остановить. Если это случилось, то следует уменьшить число скрытых элементов и/или слоев, ибо сеть является слишком мощной для данной задачи. Если же обе ошибки (обучения и кросспроверки) не достигнут достаточного малого уровня, то переобучения, естественно не произошло, а сеть, напротив, является недостаточно мощной для моделирования имеющейся зависимости.

Описанные проблемы приводят к тому, что при практической работе с нейронными сетями приходится экспериментировать с большим числом различных сетей, порой обучая каждую из них по несколько раз и сравнивая полученные результаты. Главным показателем качества результата является здесь контрольная ошибка. При этом, в соответствии с общесистемным принципом, из двух сетей с приблизительно равными ошибками контроля имеет смысл выбрать ту, которая проще.

Необходимость многократных экспериментов приводит к тому, что контрольное множество начинает играть ключевую роль в выборе модели и становится частью процесса обучен-ия. Тем самым ослабляется его роль как независимого критерия качества модели. При большом числе экспериментов есть большая вероятность выбрать удачную сеть, дающую хороший результат на контрольном множестве. Однако для того чтобы придать окончательной модели должную надежность, часто (когда объем обучающих примеров это позволяет) поступают следующим образом: резервируют тестовое множество примеров. Итоговая модель тестируется на данных из этого множества, чтобы убедиться, что результаты, достигнутые на обучающем и контрольном множествах примеров, реальны, а не являются артефактами процесса обучения. Разумеется, для того чтобы хорошо играть свою роль, тестовое множество должно быть использовано только один раз: если его использовать повторно для корректировки процесса обучения, то оно фактически превратится в контрольное множество.

С целью ускорения процесса обучения сети предложены многочисленные модификации алгоритма обратного распространения ошибки, связанные с использованием различных функций ошибки, процедур определения направления и величин шага.

1) Функции ошибки:

• интегральные функции ошибки по всей совокупности обучающих примеров;

• функции ошибки целых и дробных степеней

2) Процедуры определения величины шага на каждой итерации

• дихотомия;

• инерционные соотношения (см выше);

• отжиг.

3) Процедуры определения направления шага.

• с использованием матрицы производных второго порядка (метод Ньютона);

• с использованием направлений на нескольких шагах (партан метод).

1

Оглавление

  • Введение
  • Часть I. ТЕОРИЯ
  • 1.1. Биологический нейрон
  • 1.2. Структура и свойства искусственного нейрона
  • 1.3. Классификация нейронных сетей и их свойства
  • 1.3.1. Теорема Колмогорова-Арнольда
  • 1.3.2. Работа Хехт-Нильсена
  • 1.3.3. Следствия из теоремы Колмогорова-Арнольда – Хехт-Нильсена
  • 1.4. Постановка и возможные пути решения задачи обучения нейронных сетей
  • 1.4.1. Обучение с учителем. Алгоритм обратного распространения ошибки
  • 1.4.2. Обучение без учителя
  • 1.5. Настройка числа нейронов в скрытых слоях многослойных нейронных сетей в процессе обучения
  • 1.5.2. Конструктивные алгоритмы
  • 1.6. Краткое обобщение материалов главы
  • 1.6.2. Обучение нейронной сети
  • 1.6.3. Применение обученной нейронной сети
  • Глава 2. ОСНОВНЫЕ КОНЦЕПЦИИ НЕЙРОННЫХ СЕТЕЙ
  • 2.1. Ассоциативная память нейронных сетей
  • 2.2. Персептроны
  • 2.3. Нейронные сети встречного распространения
  • 2.4. Оптимизирующие нейронные сети
  • 2.4.2. Нейронные сети Хэмминга
  • 2.5. Двунаправленная ассоциативная память
  • 2.6. Сети адаптивной резонансной теории
  • 2.7. Когнитрон
  • 2.8. Неокогнитрон
  • 3.1. Нечеткая информация
  • 3.1.2. Операции над нечеткими множествами
  • 3.1.3. Нечеткие и лингвистические переменные
  • 3.1.4. Нечеткие отношения
  • 3.2. Нечеткий логический вывод
  • 3.3. Эффективность нечетких систем принятия решений
  • 3.4. Синтез нечетких нейронных сетей
  • 3.4.2. Алгоритмы обучения и использования нечетких нейронных сетей
  • 3.5. Нечеткий классификатор
  • 3.6. Генетические алгоритмы
  • 3.6.2. Что такое генетический алгоритм
  • 3.6.3. Обучение нечетких нейронных сетей на основе генетических алгоритмов
  • 3.6.4. Особенности генетических алгоритмов
  • Часть II. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
  • Глава 4. ОСНОВНЫЕ ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ ПРОГРАММ МОДЕЛИРОВАНИЯ НЕЙРОННЫХ СЕТЕЙ
  • 4.1. Общие сведения о программах моделирования нейронных сетей
  • 4.2. Характеристики современных нейропакетов
  • Глава 5. ПРОГРАММЫ МОДЕЛИРОВАНИЯ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ
  • 5.2. Нейропакет НейроПро (NeuroPro)
  • 5.3. Нейропакет QwikNet32
  • 5.4. Нейропакет Neural Planner
  • 5.5. Нейропакет BrainMaker
  • 5.6. Нейропакет MPIL
  • 5.7. Нейропакет Braincel
  • 5.8. Нейропакет Excel Neural Package
  • 5.9. Пакет Fuzzy Logic Toolbox
  • Часть III. ПРИМЕНЕНИЕ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ
  • Глава 6. ПРИМЕРЫ ПРИМЕНЕНИЯ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ
  • 6.2. Анализ данных социологического опроса
  • 6.3. Выявление показателей, влияющих на валовую прибыль предприятия
  • 6.4. Задача об ирисах Фишера
  • 6.5. Задача о землекопах
  • 6.6. Аппроксимация функции
  • 6.7. Нейросетевая экспертная система
  • 6.8. Прогнозирование на финансовом рынке
  • 6.9. Сжатие информации
  • 6.10. Компактное представление информации репликативными нейронными сетями
  • 6.11. Кратко о других задачах
  • П.1. Основные парадигмы нейронных сетей
  • П.2. Алгоритмы обучения нейронных сетей
  • П.3. Глоссарий
  • Список литературы

Электронный учебник Statsoft

Нейронные сети


  • Введение
  • Параллели из биологии
  • Базовая искусственная
    модель
  • Применение нейронных сетей
  • Сбор данных для нейронной
    сети

    • Выводы
  • Пре/пост процессирование
  • Многослойный персептрон (MLP)
    • Обучение многослойного
      персептрона
    • Алгоритм обратного
      распространения
    • Переобучение и обобщение
    • Отбор данных
    • Как обучается многослойный
      персептрон
    • Другие алгоритмы обучения
      многослойного персептрона
  • Радиальная базисная функция
  • Вероятностная нейронная сеть
  • Обобщенно-регрессионная
    нейронная сеть
  • Линейная сеть
  • Сеть Кохонена
  • Решение задач
    классификации в пакете ST: Neural Networks

    • Таблица статистик
      классификации
  • Решение задач регрессии в
    пакете ST: Neural Networks
  • Прогнозирование временных
    рядов в пакете ST: Neural Networks
  • Отбор переменных и понижение
    размерности

Многие понятия, относящиеся к методам
нейронных сетей, лучше всего объяснять на
примере конкретной нейронно-сетевой программы.
Поэтому в данном разделе будет много ссылок на
пакет STATISTICA Neural Networks ( сокращенно, ST Neural Networks,
нейронно-сетевой пакет фирмы StatSoft),
представляющий собой реализацию всего набора
нейросетевых методов анализа данных.


Введение

В последние несколько лет мы наблюдаем взрыв
интереса к нейронным
сетям, которые успешно применяются в самых
различных областях — бизнесе, медицине, технике,
геологии , физике. Нейронные сети вошли в
практику везде, где нужно решать задачи
прогнозирования, классификации или управления.
Такой впечатляющий успех определяется
несколькими причинами:

  • Богатые возможности.  Нейронные
    сети — исключительно мощный метод
    моделирования, позволяющий воспроизводить
    чрезвычайно сложные зависимости. В частности,
    нейронные сети нелинейны по свой природе
    (смысл этого понятия подробно разъясняется далее
    в этой главе). На протяжение многих лет линейное
    моделирование было основным методом
    моделирования в большинстве областей, поскольку
    для него хорошо разработаны процедуры
    оптимизации. В задачах, где линейная
    аппроксимация неудовлетворительна (а таких
    достаточно много), линейные модели работают
    плохо. Кроме того, нейронные сети справляются с
    «проклятием размерности«, которое не
    позволяет моделировать линейные зависимости в
    случае большого числа переменных
  • Простота в использовании.  Нейронные сети
    учатся на примерах. Пользователь нейронной
    сети подбирает представительные данные, а затем
    запускает алгоритм обучения, который
    автоматически воспринимает структуру данных.
    При этом от пользователя, конечно, требуется
    какой-то набор эвристических знаний о том, как
    следует отбирать и подготавливать данные,
    выбирать нужную архитектуру сети и
    интерпретировать результаты, однако уровень
    знаний, необходимый для успешного применения
    нейронных сетей, гораздо скромнее, чем, например,
    при использовании традиционных методов
    статистики.

Нейронные сети привлекательны с интуитивной
точки зрения, ибо они основаны на примитивной
биологической модели нервных систем. В будущем
развитие таких нейро-биологических моделей
может привести к созданию действительно
мыслящих компьютеров. Между тем уже
«простые» нейронные
сети, которые строит система ST Neural Networks ,
являются мощным оружием в арсенале специалиста
по прикладной статистике.

Параллели из
биологии

Нейронные сети возникли из исследований в
области искусственного интеллекта, а именно, из
попыток воспроизвести способность
биологических нервных систем обучаться и
исправлять ошибки, моделируя низкоуровневую
структуру мозга (Patterson, 1996). Основной областью
исследований по искусственному интеллекту в 60-е —
80-е годы были экспертные системы. Такие системы
основывались на высокоуровневом моделировании
процесса мышления (в частности, на представлении,
что процесс нашего мышления построен на
манипуляциях с символами). Скоро стало ясно, что
подобные системы, хотя и могут принести пользу в
некоторых областях, не ухватывают некоторые
ключевые аспекты человеческого интеллекта.
Согласно одной из точек зрения, причина этого
состоит в том, что они не в состоянии
воспроизвести структуру мозга. Чтобы создать
искусственных интеллект, необходимо построить
систему с похожей архитектурой.

Мозг состоит из очень большого числа
(приблизительно 10,000,000,000) нейронов,
соединенных многочисленными связями (в среднем
несколько тысяч связей на один нейрон,
однако это число может сильно колебаться).
Нейроны — это специальная клетки, способные
распространять электрохимические сигналы.
Нейрон имеет разветвленную структуру ввода
информации (дендриты), ядро и разветвляющийся
выход (аксон). Аксоны клетки соединяются с
дендритами других клеток с помощью синапсов. При
активации нейрон посылает электрохимический
сигнал по своему аксону. Через синапсы этот
сигнал достигает других нейронов, которые могут
в свою очередь активироваться. Нейрон
активируется тогда, когда суммарный уровень
сигналов, пришедших в его ядро из дендритов,
превысит определенный уровень (порог активации).

.Интенсивность сигнала, получаемого нейроном (а
следовательно и возможность его активации),
сильно зависит от активности синапсов. Каждый
синапс имеет протяженность, и специальные
химические вещества передают сигнал вдоль него.
Один из самых авторитетных исследователей
нейросистем, Дональд Хебб, высказал постулат, что
обучение заключается в первую очередь в
изменениях «силы» синаптических связей.
Например, в классическом опыте Павлова, каждый
раз непосредственно перед кормлением собаки
звонил колокольчик, и собака быстро научилась
связывать звонок колокольчика с пищей.
Синаптические связи между участками коры
головного мозга, ответственными за слух, и
слюнными железами усилились, и при возбуждении
коры звуком колокольчика у собаки начиналось
слюноотделение.

Таким образом, будучи построен из очень
большого числа совсем простых элементов (каждый
из которых берет взвешенную сумму входных
сигналов и в случае, если суммарный вход
превышает определенный уровень, передает дальше
двоичный сигнал), мозг способен решать
чрезвычайно сложные задачи. Разумеется, мы не
затронули здесь многих сложных аспектов
устройства мозга, однако интересно то, что
искусственные     нейронные
сети способны достичь замечательных
результатов, используя модель, которая ненамного
сложнее, чем описанная выше.

Базовая
искусственная модель

Чтобы отразить суть биологических нейронных
систем, определение искусственного нейрона
дается следующим образом:

  • Он получает входные сигналы (исходные данные
    либо выходные сигналы других нейронов нейронной
    сети) через несколько входных каналов. Каждый
    входной сигнал проходит через соединение,
    имеющее определенную интенсивность (или вес);
    этот вес соответствует синаптической активности
    биологического нейрона. С каждым нейроном
    связано определенное пороговое значение.
    Вычисляется взвешенная сумма входов, из нее
    вычитается пороговое значение и в результате
    получается величина активации нейрона (она
    также называется пост-синаптическим
    потенциалом нейрона — PSP).
  • Сигнал активации преобразуется с помощью функции активации
    (или передаточной функции) и в результате
    получается выходной сигнал нейрона.

.Если при этом использовать ступенчатую функцию активации
(т.е., выход нейрона равен нулю, если вход
отрицательный, и единице, если вход нулевой или
положительный), то такой нейрон
будет работать точно так же, как описанный выше
естественный нейрон (вычесть пороговое значение
из взвешенной суммы и сравнить результат с нулем
— это то же самое, что сравнить взвешенную сумму с
пороговым значением). В действительности, как мы
скоро увидим, пороговые функции редко
используются в искусственных нейронных сетях.
Учтите, что веса могут быть отрицательными, — это
значит, что синапс оказывает на нейрон не
возбуждающее, а тормозящее воздействие (в мозге
присутствуют тормозящие нейроны).

Это было описание отдельного нейрона. Теперь
возникает вопрос: как соединять нейроны друг с
другом? Если сеть предполагается для чего-то
использовать, то у нее должны быть входы
(принимающие значения интересующих нас
переменных из внешнего мира) и выходы (прогнозы
или управляющие сигналы). Входы и выходы
соответствуют сенсорным и двигательным нервам —
например, соответственно, идущим от глаз и в руки.
Кроме этого, однако, в сети может быть еще много
промежуточных (скрытых) нейронов, выполняющих
внутренние функции. Входные, скрытые и выходные
нейроны должны быть связаны между собой.

Ключевой вопрос здесь — обратная связь
(Haykin, 1994). Простейшая сеть имеет структуру прямой передачи
сигнала: Сигналы проходят от входов через
скрытые элементы и в конце концов приходят на
выходные элементы. Такая структура имеет
устойчивое поведение. Если же сеть рекуррентная
(т.е. содержит связи, ведущие назад от более
дальних к более ближним нейронам), то она может
быть неустойчива и иметь очень сложную динамику
поведения. Рекуррентные сети представляют
большой интерес для исследователей в области нейронных
сетей, однако при решении практических задач,
по крайней мере до сих пор, наиболее полезными
оказались структуры прямой передачи, и именно
такой тип нейронных сетей моделируется в пакете ST
Neural Networks
.

.Типичный пример сети
с прямой передачей сигнала показан на рисунке.
Нейроны регулярным образом организованы в слои.
Входной слой служит просто для ввода значений
входных переменных. Каждый из скрытых и выходных
нейронов соединен со всеми элементами
предыдущего слоя. Можно было бы рассматривать
сети, в которых нейроны связаны только с
некоторыми из нейронов предыдущего слоя; однако,
для большинства приложений сети с полной
системой связей предпочтительнее, и именно такой
тип сетей реализован в пакете ST Neural Networks.

[Neural Network Example]

При работе (использовании) сети во входные
элементы подаются значения входных переменных,
затем последовательно отрабатывают нейроны
промежуточных и выходного слоев. Каждый из них
вычисляет свое значение активации, беря
взвешенную сумму выходов элементов предыдущего
слоя и вычитая из нее пороговое значение. Затем
значение активации преобразуются с помощью функции активации,
и в результате получается выход нейрона.
После того, как вся сеть отработает, выходные
значения элементов выходного слоя принимаются
за выход всей сети в целом.

Применение нейронных
сетей

В предыдущем разделе в несколько упрощенном
виде было описано, как нейронная
сеть преобразует входные сигналы в выходные.
Теперь возникает следующий важный вопрос: как
применить нейронную сеть к решению конкретной
задачи?

Класс задач, которые можно решить с помощью
нейронной сети, определяется тем, как сеть работает
и тем, как она обучается. При работе
нейронная сеть принимает значения входных
переменных и выдает значения выходных
переменных. Таким образом, сеть можно применять в
ситуации, когда у Вас имеется определенная
известная информация, и Вы хотите из нее получить
некоторую пока не известную информацию (Patterson, 1996;
Fausett, 1994). Вот некоторые примеры таких задач:

Прогнозирование на фондовом рынке. Зная
цены акций за последнюю неделю и сегодняшнее
значение индекса FTSE, спрогнозировать завтрашнюю
цену акций.

Предоставление кредита. Требуется
определить, высок ли риск предоставления кредита
частному лицу, обратившемуся с такой просьбой. В
результате разговора с ним известен его доход,
предыдущая кредитная история и т.д.

Управление. Нужно определить что должен
делать робот (повернуться направо или налево,
двигаться вперед и т.д.), чтобы достичь цели;
известно изображение, которое передает
установленная на роботе видеокамера.

Разумеется, вовсе не любую задачу можно решить
с помощью нейронной
сети. Если Вы хотите определить результаты
лотереи, тираж которой состоится через неделю,
зная свой размер обуви, то едва ли это получится,
поскольку эти вещи не связаны друг с другом. На
самом деле, если тираж проводится честно, то не
существует такой информации, на основании
которой можно было бы предсказать результат.
Многие финансовые структуры уже используют
нейронные сети или экспериментируют с ними с
целью прогнозирования ситуации на фондовом
рынке, и похоже, что любой тренд, прогнозируемый с
помощью нейронных методов, всякий раз уже бывает
«дисконтирован» рынком, и поэтому (к
сожалению) эту задачу Вам тоже вряд ли удастся
решить.

Итак, мы приходим ко второму важному условию
применения нейронных сетей: Вы должны знать (или
хотя бы иметь серьезные подозрения), что между
известными входными значениями и неизвестными
выходами имеется связь. Эта связь может быть
искажена шумом (так, едва ли можно ожидать, что по
данным из примера с прогнозированием цен акций
можно построить абсолютно точный прогноз,
поскольку на цену влияют и другие факторы, не
представленные во входном наборе данных, и кроме
того в задаче присутствует элемент случайности),
но она должна существовать.

Как правило, нейронная
сеть используется тогда, когда неизвестен
точный вид связей между входами и выходами, — если
бы он был известен, то связь можно было бы
моделировать непосредственно. Другая
существенная особенность нейронных сетей
состоит в том, что зависимость между входом и
выходом находится в процессе обучения сети. Для
обучения нейронных сетей применяются алгоритмы
двух типов (разные типы сетей используют разные
типы обучения): управляемое («обучение с
учителем») и не управляемое («без
учителя»). Чаще всего применяется обучение с
учителем, и именно этот метод мы сейчас
рассмотрим (о неуправляемом
обучении будет рассказано позже).

Для управляемого
обучения сети пользователь должен подготовить
набор обучающих данных. Эти данные
представляют собой примеры входных данных и
соответствующих им выходов. Сеть учится
устанавливать связь между первыми и вторыми.
Обычно обучающие данные берутся из исторических
сведений. В рассмотренных выше примерах это
могут быть предыдущие значения цен акций и
индекса FTSE, сведения о прошлых заемщиках — их
анкетные данные и то, успешно ли они выполнили
свои обязательства, примеры положений робота и
его правильной реакции.

Затем нейронная
сеть обучается с помощью того или иного
алгоритма управляемого
обучения (наиболее известным из них является
метод обратного
распространения, предложенный в работе Rumelhart et
al., 1986), при котором имеющиеся данные используются
для корректировки весов и пороговых значений
сети таким образом, чтобы минимизировать ошибку
прогноза на обучающем множестве. Если сеть
обучена хорошо, она приобретает способность
моделировать (неизвестную) функцию, связывающую
значения входных и выходных переменных, и
впоследствии такую сеть можно использовать для
прогнозирования в ситуации, когда выходные
значения неизвестны.

Сбор данных для
нейронной сети

Если задача будет решаться с помощью нейронной
сети, то необходимо собрать данные для
обучения. Обучающий набор данных представляет
собой набор наблюдений, для которых указаны
значения входных и выходных переменных.
Первый вопрос, который нужно решить, — какие
переменные использовать и сколько (и каких)
наблюдений собрать.

Выбор переменных (по крайней мере
первоначальный) осуществляется интуитивно. Ваш
опыт работы в данной предметной области поможет
определить, какие переменные являются важными.
При работе с пакетом ST Neural Networks Вы можете
произвольно выбирать переменные и отменять
предыдущий выбор; кроме того, система ST Neural Networks
умеет сама опытным путем отбирать полезные
переменные. Для начала имеет смысл включить все
переменные, которые, по Вашему мнению, могут
влиять на результат — на последующих этапах мы
сократим это множество.

Нейронные сети могут работать с числовыми
данными, лежащими в определенном ограниченном
диапазоне. Это создает проблемы в случаях, когда
данные имеют нестандартный масштаб, когда в них
имеются пропущенные
значения, и когда данные являются нечисловыми.
В пакете ST Neural Networks имеются средства,
позволяющие справиться со всеми этими
трудностями. Числовые данные масштабируются в
подходящий для сети диапазон, а пропущенные
значения можно заменить на среднее значение (или
на другую статистику) этой переменной по всем
имеющимся обучающим примерам (Bishop, 1995).

Более трудной задачей является работа с
данными нечислового характера. Чаще всего
нечисловые данные бывают представлены в виде
номинальных переменных типа Пол  = {Муж ,
Жен }. Переменные с номинальными значениями
можно представить в числовом виде, и в системе ST
Neural Networks
имеются средства для работы с такими
данными. Однако, нейронные
сети не дают хороших результатов при работе с
номинальными переменными, которые могут
принимать много разных значений.

Пусть, например, мы хотим научить нейронную
сеть оценивать стоимость объектов недвижимости.
Цена дома очень сильно зависит от того, в каком
районе города он расположен. Город может быть
подразделен на несколько десятков районов,
имеющих собственные названия, и кажется
естественным ввести для обозначения района
переменную с номинальными значениями. К
сожалению, в этом случае обучить нейронную сеть
будет очень трудно, и вместо этого лучше
присвоить каждому району определенный рейтинг
(основываясь на экспертных оценках).

Нечисловые данные других типов можно либо
преобразовать в числовую форму, либо объявить
незначащими. Значения дат и времени, если они
нужны, можно преобразовать в числовые, вычитая из
них начальную дату (время). Обозначения денежных
сумм преобразовать совсем несложно. С
произвольными текстовыми полями (например,
фамилиями людей) работать нельзя и их нужно
сделать незначащими.

Вопрос о том, сколько наблюдений нужно иметь
для обучения сети, часто оказывается непростым.
Известен ряд эвристических правил, увязывающих
число необходимых наблюдений с размерами сети
(простейшее из них гласит, что число наблюдений
должно быть в десять раз больше числа связей в
сети). На самом деле это число зависит также от
(заранее неизвестной) сложности того
отображения, которое нейронная сеть стремится
воспроизвести. С ростом количества переменных
количество требуемых наблюдений растет
нелинейно, так что уже при довольно небольшом
(например, пятьдесят) числе переменных может
потребоваться огромное число наблюдений. Эта
трудность известна как «проклятие
размерности», и мы обсудим ее дальше в этой
главе.

Для большинства реальных задач бывает
достаточно нескольких сотен или тысяч
наблюдений. Для особо сложных задач может
потребоваться еще большее количество, однако
очень редко может встретиться (даже тривиальная)
задача, где хватило бы менее сотни наблюдений.
Если данных меньше, чем здесь сказано, то на самом
деле у Вас недостаточно информации для обучения
сети, и лучшее, что Вы можете сделать — это
попробовать подогнать к данным некоторую линейную модель. В
пакете ST Neural Networks реализованы средства для
подгонки линейных моделей (см. раздел про
линейные сети, а также материал по модулю Множественная регрессия системы STATISTICA).

Во многих реальных задачах приходится иметь
дело с не вполне достоверными данными. Значения
некоторых переменных могут быть искажены шумом
или частично отсутствовать. Пакет ST Neural Networks имеет
специальные средства работы с пропущенными
значениями (они могут быть заменены на среднее
значение этой переменной или на другие ее
статистики), так что если у Вас не так много
данных, Вы можете включить в рассмотрение случаи
с пропущенными значениями (хотя, конечно, лучше
этого избегать). Кроме того, нейронные
сети в целом устойчивы к шумам. Однако у этой
устойчивости есть предел. Например, выбросы, т.е.
значения, лежащие очень далеко от области
нормальных значений некоторой переменной, могут
исказить результат обучения. В таких случаях
лучше всего постараться обнаружить и удалить эти
выбросы (либо удалив соответствующие наблюдения,
либо преобразовав выбросы в пропущенные
значения). Если выбросы выявить трудно, то можно
воспользоваться имеющимися в пакете ST Neural Networks возможностями
сделать процесс обучения устойчивым к выбросам
(с помощью функции
ошибок типа «городских кварталов»; см. Bishop,
1995), однако такое устойчивое к выбросам обучение,
как правило, менее эффективно, чем стандартное.

Выводы

Выбирайте такие переменные, которые, как Вы
предполагаете, влияют на результат.

С числовыми и номинальными переменными в
пакете ST Neural Networks можно работать
непосредственно. Переменные других типов
следует преобразовать в указанные типы или
объявить незначащими.

Для анализа нужно иметь порядка сотен или тысяч
наблюдений; чем больше в задаче переменных, тем
больше нужно иметь наблюдений. Пакет ST Neural Networks имеет
средства для распознавания значимых переменных,
поэтому включайте в рассмотрение переменные, в
значимости которых Вы не уверены.

В случае необходимости можно работать с
наблюдениями, содержащими пропущенные значения.
Наличие выбросов в данных может создать
трудности. Если возможно, удалите выбросы. Если
данных достаточное количество, уберите из
рассмотрения наблюдения с пропущенными
значениями.

Пре/пост
процессирование

Всякая нейронная
сеть принимает на входе числовые значения и
выдает на выходе также числовые значения.
Передаточная функция для каждого элемента сети
обычно выбирается таким образом, чтобы ее входной
аргумент мог принимать произвольные значения,
а выходные значения лежали бы в строго
ограниченном
диапазоне («сплющивание»).
При этом, хотя входные значения могут быть
любыми, возникает эффект насыщения, когда
элемент оказывается чувствительным лишь к
входным значениям, лежащим в некоторой
ограниченной области. На этом рисунке
представлена одна из наиболее распространенных
передаточных функций — так называемая логистическая
функция (иногда ее также называют сигмоидной функцией,
хотя если говорить строго, это всего лишь один из
частных случаев сигмоидных — т.е. имеющих форму
буквы S — функций). В этом случае выходное значение
всегда будет лежать в интервале (0,1), а область
чувствительности для входов чуть шире интервала
(-1,+1). Данная функция является гладкой, а ее
производная легко вычисляется — это
обстоятельство весьма существенно для работы
алгоритма обучения сети (в этом также кроется
причина того, что ступенчатая функция для этой
цели практически не используется).

[Neural Network Example]

Коль скоро выходные значения всегда
принадлежат некоторой ограниченной области, а
вся информация должна быть представлена в
числовом виде, очевидно, что при решении реальных
задач методами нейронных сетей требуются этапы
предварительной обработки — пре-процессирования
— и заключительной обработки —
пост-процессирования данных (Bishop, 1995).
Соответствующие средства имеются в пакете ST
Neural Networks
. Здесь нужно рассмотреть два вопроса:

Шкалирование. Числовые значения должны
быть приведены в масштаб, подходящий для сети.
Обычно исходные данные масштабируются по
линейной шкале. В пакете ST Neural Networks реализованы
алгоритмы минимакса и среднего/стандартного
отклонения, которые автоматически находят
масштабирующие параметры для преобразования
числовых значений в нужный диапазон.

В некоторых случаях более подходящим может
оказаться нелинейное шкалирование (например,
если заранее известно, что переменная имеет экспоненциальное
распределение, имеет смысл взять ее логарифм).
Нелинейное шкалирование не реализовано в модуле ST
Neural Networks
. Вы можете прошкалировать переменную
средствами преобразования даных базовой системы
STATISTICA, а затем работать с ней в модуле ST Neural
Networks
.

Номинальные переменные. Номинальные
переменные могут быть двузначными
(например, Пол ={Муж, Жен}) или
многозначными (т.е. принимать более двух значений
или состояний). Двузначную номинальную
переменную легко преобразовать в числовую
(например, Муж = 0, Жен = 1). С
многозначными номинальными переменными дело
обстоит сложнее. Их тоже можно представить одним
числовым значением (например, Собака = 0, Овца
= 1, Кошка = 2), однако при этом возникнет
(возможно) ложное упорядочивание значений
номинальной переменной: в рассмотренном примере Овца
окажется чем-то средним между Собакой и Кошкой.
Существует более точный способ, известный как
кодирование 1-из-N,
в котором одна номинальная переменная
представляется несколькими числовыми
переменными. Количество числовых переменных
равно числу возможных значений номинальной
переменной; при этом всякий раз ровно одна из N
переменных принимает ненулевое значение
(например, Собака = {1,0,0}, Овца = {0,1,0},
Кошка = {0,0,1}). В пакете ST Neural Networks имеются
возможности преобразовывать как двух-, так и
многозначные номинальные переменные для
последующего использования в нейронной сети. К
сожалению, номинальная переменная с большим
числом возможных состояний потребует при
кодировании методом 1-из-N очень большого
количества числовых переменных, а это приведет к
росту размеров сети и создаст трудности при ее
обучении. В таких ситуациях возможно (но не
всегда достаточно) смоделировать номинальную
переменную с помощью одного числового индекса,
однако лучше будет попытаться найти другой
способ представления данных.

Задачи прогнозирования можно разбить на два
основных класса: классификация
и регрессия.

В задачах классификации нужно бывает
определить, к какому из нескольких заданных
классов принадлежит данный входной набор.
Примерами могут служить предоставление кредита
(относится ли данное лицо к группе высокого или
низкого кредитного риска), диагностика раковых
заболеваний (опухоль, чисто), распознавание
подписи (поддельная, подлинная). Во всех этих
случаях, очевидно, на выходе требуется всего одна
номинальная переменная. Чаще всего (как в этих
примерах) задачи классификации бывают двузначными,
хотя встречаются и задачи с несколькими
возможными состояниями.

В задачах регрессии
требуется предсказать значение переменной,
принимающей (как правило) непрерывные числовые
значения: завтрашнюю цену акций, расход топлива в
автомобиле, прибыли в следующем году и т.п.. В
таких случаях в качестве выходной требуется одна
числовая переменная.

Нейронная
сеть может решать одновременно несколько
задач регрессии и/или классификации,
однако обычно в каждый момент решается только
одна задача. Таким образом, в большинстве случаев
нейронная сеть будет иметь всего одну выходную
переменную; в случае задач классификации со
многими состояниями для этого может
потребоваться несколько выходных элементов
(этап пост-процессирования отвечает за
преобразование информации из выходных элементов
в выходную переменную).

В пакете ST Neural Networks для решения всех этих
вопросов реализованы специальные средства пре- и
пост-процессирования, которые позволяют
привести сырые исходные данные в числовую форму,
пригодную для обработки нейронной
сетью, и преобразовать выход нейронной сети
обратно в формат входных данных. Нейронная сеть
служит «прослойкой»между пре- и
пост-процессированием, и результат выдается в
нужном виде (например, в задаче классификации
выдается название выходного класса). Кроме того,
в пакете ST Neural Networks пользователь может (если
пожелает) получить прямой доступ к внутренним
параметрам активации сети.

Многослойный
персептрон (MLP)

Вероятно, эта архитектура сети
используется сейчас наиболее часто. Она была
предложена в работе Rumelhart, McClelland (1986) и подробно
обсуждается почти во всех учебниках по нейронным
сетям (см., например, Bishop, 1995). Вкратце этот тип
сети был описан выше. Каждый элемент сети строит
взвешенную сумму своих входов с поправкой в виде
слагаемого и затем пропускает эту величину
активации через передаточную функцию, и таким
образом получается выходное значение этого
элемента. Элементы организованы в послойную
топологию с прямой
передачей сигнала. Такую сеть легко можно
интерпретировать как модель вход-выход, в
которой веса и пороговые значения (смещения)
являются свободными параметрами модели. Такая
сеть может моделировать функцию практически
любой степени сложности, причем число слоев и
число элементов в каждом слое определяют
сложность функции. Определение числа
промежуточных слоев и числа элементов в них
является важным вопросом при конструировании MLP (Haykin, 1994; Bishop,
1995).

Количество входных и выходных элементов
определяется условиями задачи. Сомнения могут
возникнуть в отношении того, какие входные
значения использовать, а какие нет, — к этому
вопросу мы вернемся позже. Сейчас будем
предполагать, что входные переменные выбраны
интуитивно и что все они являются значимыми.
Вопрос же о том, сколько использовать
промежуточных слоев и элементов в них, пока
совершенно неясен. В качестве начального
приближения можно взять один промежуточный слой,
а число элементов в нем положить равным
полусумме числа входных и выходных элементов.
Опять-таки, позже мы обсудим этот вопрос
подробнее.

Обучение
многослойного персептрона

После того, как определено число слоев и число
элементов в каждом из них, нужно найти значения
для весов и порогов сети, которые бы
минимизировали ошибку прогноза, выдаваемого
сетью. Именно для этого служат алгоритмы
обучения
. С использованием собранных
исторических данных веса и пороговые значения
автоматически корректируются с целью
минимизировать эту ошибку. По сути этот процесс
представляет собой подгонку модели, которая
реализуется сетью, к имеющимся обучающим данным.
Ошибка для конкретной конфигурации сети
определяется путем прогона через сеть всех
имеющихся наблюдений и сравнения реально
выдаваемых выходных значений с желаемыми
(целевыми) значениями. Все такие разности
суммируются в так называемую функцию ошибок,
значение которой и есть ошибка сети. В качестве функции ошибок чаще
всего берется сумма
квадратов ошибок, т.е. когда все ошибки
выходных элементов для всех наблюдений
возводятся в квадрат и затем суммируются. При
работе с пакетом ST Neural Networks пользователю
выдается так называемая среднеквадратичная
ошибка (RMS) — описанная
выше величина нормируется на число наблюдений и
переменных, после чего из нее извлекается
квадратный корень — это очень хорошая мера
ошибки, усредненная по всему обучающему
множеству и по всем выходным элементам.

В традиционном моделировании (например, линейном
моделировании) можно алгоритмически
определить конфигурацию модели, дающую
абсолютный минимум для указанной ошибки. Цена,
которую приходится платить за более широкие
(нелинейные) возможности моделирования с помощью
нейронных
сетей, состоит в том, что, корректируя сеть с
целью минимизировать ошибку, мы никогда не можем
быть уверены, что нельзя добиться еще меньшей
ошибки.

В этих рассмотрениях оказывается очень
полезным понятие поверхности ошибок. Каждому из
весов и порогов сети (т.е. свободных параметров
модели; их общее число обозначим через N)
соответствует одно измерение в многомерном
пространстве. N+1-е измерение соответствует
ошибке сети. Для всевозможных сочетаний весов
соответствующую ошибку сети можно изобразить
точкой в N+1-мерном пространстве, и все такие точки
образуют там некоторую поверхность — поверхность
ошибок
. Цель обучения нейронной сети состоит в
том, чтобы найти на этой многомерной поверхности
самую низкую точку.

В случае линейной модели с суммой квадратов
в качестве функции ошибок эта поверхность ошибок
будет представлять собой параболоид (квадрику) —
гладкую поверхность, похожую на часть
поверхности сферы, с единственным минимумом. В
такой ситуации локализовать этот минимум
достаточно просто.

В случае нейронной сети поверхность ошибок
имеет гораздо более сложное строение и обладает
рядом неприятных свойств, в частности, может
иметь локальные
минимумы (точки, самые низкие в некоторой своей
окрестности, но лежащие выше глобального
минимума), плоские участки, седловые точки и
длинные узкие овраги.

Аналитическими средствами невозможно
определить положение глобального минимума на
поверхности ошибок, поэтому обучение нейронной
сети по сути дела заключается в исследовании
поверхности ошибок. Отталкиваясь от случайной
начальной конфигурации весов и порогов (т.е.
случайно взятой точки на поверхности ошибок),
алгоритм обучения постепенно отыскивает
глобальный минимум. Как правило, для этого
вычисляется градиент (наклон) поверхности ошибок
в данной точке, а затем эта информация
используется для продвижения вниз по склону. В
конце концов алгоритм останавливается в нижней
точке, которая может оказаться всего лишь
локальным минимумом (а если повезет — глобальным
минимумом).

Алгоритм обратного
распространения

Самый известный вариант алгоритма обучения нейронной
сети — так называемый алгоритм обратного
распространения (back propagation; см. Patterson, 1996; Haykin, 1994;
Fausett, 1994). Существуют современные алгоритмы
второго порядка, такие как метод сопряженных
градиентов и метод Левенберга-Маркара
(Bishop, 1995; Shepherd, 1997) (оба они реализованы в пакете ST
Neural Networks
), которые на многих задачах работают
существенно быстрее (иногда на порядок). Алгоритм
обратного распространения наиболее прост
для понимания, а в некоторых случаях он имеет
определенные преимущества. Сейчас мы опишем его,
а более продвинутые алгоритмы рассмотрим позже.
Разработаны также эвристические модификации
этого алгоритма, хорошо работающие для
определенных классов задач, — быстрое
распространение (Fahlman, 1988) и Дельта-дельта
с чертой (Jacobs, 1988) — оба они также реализованы в
пакете ST Neural Networks.

В алгоритме обратного распространения
вычисляется вектор градиента поверхности
ошибок. Этот вектор указывает направление
кратчайшего спуска по поверхности из данной
точки, поэтому если мы «немного» продвинемся
по нему, ошибка уменьшится. Последовательность
таких шагов (замедляющаяся по мере приближения к
дну) в конце концов приведет к минимуму того или
иного типа. Определенную трудность здесь
представляет вопрос о том, какую нужно брать
длину шагов.

При большой длине шага сходимость будет более
быстрой, но имеется опасность перепрыгнуть через
решение или (если поверхность ошибок имеет особо
вычурную форму) уйти в неправильном направлении.
Классическим примером такого явления при
обучении нейронной
сети является ситуация, когда алгоритм очень
медленно продвигается по узкому оврагу с крутыми
склонами, прыгая с одной его стороны на другую.
Напротив, при маленьком шаге, вероятно, будет
схвачено верное направление, однако при этом
потребуется очень много итераций. На практике
величина шага берется пропорциональной крутизне
склона (так что алгоритм замедляет ход вблизи
минимума) с некоторой константой, которая
называется скоростью
обучения. Правильный выбор скорости обучения
зависит от конкретной задачи и обычно
осуществляется опытным путем; эта константа
может также зависеть от времени, уменьшаясь по
мере продвижения алгоритма.

Обычно этот алгоритм видоизменяется таким
образом, чтобы включать слагаемое импульса (или
инерции). Этот член способствует продвижению в
фиксированном направлении, поэтому если было
сделано несколько шагов в одном и том же
направлении, то алгоритм «увеличивает
скорость», что (иногда) позволяет избежать
локального минимума, а также быстрее проходить
плоские участки.

Таким образом, алгоритм действует итеративно, и
его шаги принято называть эпохами.
На каждой эпохе на вход сети поочередно подаются
все обучающие наблюдения, выходные значения сети
сравниваются с целевыми значениями и
вычисляется ошибка. Значение ошибки, а также
градиента поверхности ошибок используется для
корректировки весов, после чего все действия
повторяются. Начальная конфигурация сети
выбирается случайным образом, и процесс обучения
прекращается либо когда пройдено определенное
количество эпох, либо когда ошибка достигнет
некоторого определенного уровня малости, либо
когда ошибка перестанет уменьшаться
(пользователь может сам выбрать нужное условие остановки).

Переобучение и
обобщение

Одна из наиболее серьезных трудностей
изложенного подхода заключается в том, что таким
образом мы минимизируем не ту ошибку, которую на
самом деле нужно минимизировать, — ошибку,
которую можно ожидать от сети, когда ей будут
подаваться совершенно новые наблюдения. Иначе
говоря, мы хотели бы, чтобы нейронная сеть
обладала способностью обобщать результат
на новые наблюдения. В действительности сеть
обучается минимизировать ошибку на обучающем
множестве, и в отсутствие идеального и
бесконечно большого обучающего множества это
совсем не то же самое, что минимизировать
«настоящую» ошибку на поверхности ошибок в
заранее неизвестной модели явления (Bishop, 1995).

Сильнее всего это различие проявляется в
проблеме переобучения,
или слишком близкой
подгонки. Это явление проще будет
продемонстрировать не для нейронной
сети, а на примере аппроксимации посредством
полиномов, — при этом суть явления абсолютно та
же.

Полином (или многочлен) — это выражение,
содержащее только константы и целые степени
независимой переменной. Вот примеры:

y=2x+3
y=3x2+4x+1

Графики полиномов могут иметь различную форму,
причем чем выше степень многочлена (и, тем самым,
чем больше членов в него входит), тем более
сложной может быть эта форма. Если у нас есть
некоторые данные, мы можем поставить цель
подогнать к ним полиномиальную кривую (модель) и
получить таким образом объяснение для имеющейся
зависимости. Наши данные могут быть зашумлены,
поэтому нельзя считать, что самая лучшая модель
задается кривой, которая в точности проходит
через все имеющиеся точки. Полином низкого
порядка может быть недостаточно гибким
средством для аппроксимации данных, в то время
как полином высокого порядка может оказаться
чересчур гибким, и будет точно следовать данным,
принимая при этом замысловатую форму, не имеющую
никакого отношения к форме настоящей
зависимости (см. рис.).

[Neural Network Example]

Нейронная сеть сталкивается с точно такой же
трудностью. Сети с большим числом весов
моделируют более сложные функции и,
следовательно, склонны к переобучению. Сеть же с
небольшим числом весов может оказаться
недостаточно гибкой, чтобы смоделировать
имеющуюся зависимость. Например, сеть без
промежуточных слоев на самом деле моделирует
обычную линейную функцию.

Как же выбрать «правильную» степень
сложности для сети? Почти всегда более сложная
сеть дает меньшую ошибку, но это может
свидетельствовать не о хорошем качестве модели,
а о переобучении.

Ответ состоит в том, чтобы использовать
механизм контрольной кросс-проверки. Мы
резервируем часть обучающих наблюдений и не
используем их в обучении по алгоритму обратного
распространения. Вместо этого, по мере работы
алгоритма, они используются для независимого
контроля результата. В самом начале работы
ошибка сети на обучающем и контрольном множестве
будет одинаковой (если они существенно
отличаются, то, вероятно, разбиение всех
наблюдений на два множества было неоднородно). По
мере того, как сеть обучается, ошибка обучения,
естественно, убывает, и, пока обучение уменьшает
действительную функцию
ошибок, ошибка на контрольном множестве также
будет убывать. Если же контрольная ошибка
перестала убывать или даже стала расти, это
указывает на то, что сеть начала слишком близко
аппроксимировать данные и обучение следует
остановить (в пакете ST Neural Networks можно задать
автоматическую остановку обучения при появлении
эффекта переобучения).
Это явление чересчур
точной аппроксимации в процессе обучения и
называется переобучением. Если такое случилось,
то обычно советуют уменьшить число скрытых
элементов и/или слоев, ибо сеть является слишком
мощной для данной задачи. Если же сеть, наоборот,
была взята недостаточно богатой для того, чтобы
моделировать имеющуюся зависимость, то
переобучения, скорее всего, не произойдет, и обе
ошибки — обучения и проверки — не достигнут
достаточного уровня малости.

Описанные проблемы с локальными минимумами и
выбором размера сети приводят к тому, что при
практической работе с нейронными
сетями, как правило, приходится
экспериментировать с большим числом различных
сетей, порой обучая каждую из них по нескольку
раз (чтобы не быть введенным в заблуждение
локальными минимумами) и сравнивая полученные
результаты. Главным показателем качества
результата является здесь контрольная ошибка.
При этом, в соответствии с общенаучным принципом,
согласно которому при прочих равных следует
предпочесть более простую модель, из двух сетей с
приблизительно равными ошибками контроля имеет
смысл выбрать ту, которая меньше.

Необходимость многократных экспериментов
ведет к тому, что контрольное множество начинает
играть ключевую роль в выборе модели, то есть
становится частью процесса обучения. Тем самым
ослабляется его роль как независимого критерия
качества модели — при большом числе
экспериментов есть риск выбрать «удачную»
сеть, дающую хороший результат на контрольном
множестве. Для того, чтобы придать окончательной
модели должную надежность, часто (по крайней
мере, когда объем обучающих данных это позволяет)
поступают так: резервируют еще одно — тестовое
множество наблюдений. Итоговая модель
тестируется на данных из этого множества, чтобы
убедиться, что результаты, достигнутые на
обучающем и контрольном множествах реальны, а не
являются артефактами процесса обучения.
Разумеется, для того чтобы хорошо играть свою
роль, тестовое множество должно быть
использовано только один раз: если его
использовать повторно для корректировки
процесса обучения, то оно фактически превратится
в контрольное множество.

Итак, построение сети (после выбора входных
переменных) состоит из следующих шагов:

  • Выбрать начальную конфигурацию сети (например,
    один промежуточный слой с числом элементов в нем,
    равным полусумме числа входов и числа выходов — Наставник
    (Network Advisor
    ) пакета ST Neural Networks предложит Вам
    такую конфигурацию по умолчанию).
  • Провести ряд экспериментов с различными
    конфигурациями, запоминая при этом лучшую сеть (в
    смысле контрольной ошибки). В пакете ST Neural Networks предусмотрено
    автоматическое запоминание лучшей сети во время
    эксперимента. Для каждой конфигурации следует
    провести несколько экспериментов, чтобы не
    получить ошибочный результат из-за того, что
    процесс обучения попал в локальный минимум.
  • Если в очередном эксперименте наблюдается
    недообучение (сеть не выдает результат
    приемлемого качества), попробовать добавить
    дополнительные нейроны в промежуточный слой
    (слои). Если это не помогает, попробовать добавить
    новый промежуточный слой.
  • Если имеет место переобучение
    (контрольная ошибка стала расти), попробовать
    удалить несколько скрытых элементов (а возможно
    и слоев).

Многократное повторение эвристических
экспериментов в лучшем случае довольно
утомительно, и поэтому в пакет ST Neural Networks включен
специальный алгоритм автоматического поиска,
который проделает эти действия за Вас. Автоматический
конструктор сети — Automatic Network Designer
проведет
эксперименты с различным числом скрытых
элементов, для каждой пробной архитектуры сети
выполнит несколько прогонов обучения, отбирая
при этом наилучшую сеть по показателю
контрольной ошибки с поправкой на размер сети. В Автоматическом
конструкторе сети
реализованы сложные
алгоритмы поиска, в том числе метод «искусственного
отжига
» (simulated annealing, Kirkpatrick et al., 1983), с помощью
которых можно перепробовать сотни различных
сетей, выделяя из них особо перспективные, либо
быстро находить «грубое и простое» решение.

Отбор данных

На всех предыдущих этапах существенно
использовалось одно предположение. А именно,
обучающее, контрольное и тестовое множества
должны быть репрезентативными
(представительными) с точки зрения существа
задачи (более того, эти множества должны быть
репрезентативными каждое в отдельности).
Известное изречение программистов «garbage in, garbage
out» («мусор на входе — мусор на выходе»)
нигде не справедливо в такой степени, как при
нейросетевом моделировании. Если обучающие
данные не репрезентативны, то модель, как
минимум, будет не очень хорошей, а в худшем случае
— бесполезной. Имеет смысл перечислить ряд
причин, которые ухудшают качество обучающего
множества:

Будущее непохоже на прошлое. Обычно в
качестве обучающих берутся исторические данные.
Если обстоятельства изменились, то
закономерности, имевшие место в прошлом, могут
больше не действовать.

Следует учесть все возможности. Нейронная
сеть может обучаться только на тех данных,
которыми она располагает. Предположим, что лица с
годовым доходом более $100,000 имеют высокий
кредитный риск, а обучающее множество не
содержало лиц с доходом более $40,000 в год. Тогда
едва ли можно ожидать от сети правильного
решения в совершенно новой для нее ситуации.

Сеть обучается тому, чему проще всего
обучиться.
Классическим (возможно,
вымышленным) примером является система
машинного зрения, предназначенная для
автоматического распознавания танков. Сеть
обучалась на ста картинках, содержащих
изображения танков, и на ста других картинках,
где танков не было. Был достигнут стопроцентно
«правильный» результат. Но когда на вход
сети были поданы новые данные, она безнадежно
провалилась. В чем же была причина? Выяснилось,
что фотографии с танками были сделаны в
пасмурный, дождливый день, а фотографии без
танков — в солнечный день. Сеть научилась
улавливать (очевидную) разницу в общей
освещенности. Чтобы сеть могла результативно
работать, ее следовало обучать на данных, где бы
присутствовали все погодные условия и типы
освещения, при которых сеть предполагается
использовать — и это еще не говоря о рельефе
местности, угле и дистанции съемки и т.д.

Несбалансированный набор данных. Коль
скоро сеть минимизирует общую погрешность,
важное значение приобретает пропорции, в которых
представлены данные различных типов. Сеть,
обученная на 900 хороших и 100 плохих примерах будет
искажать результат в пользу хороших наблюдений,
поскольку это позволит алгоритму уменьшить
общую погрешность (которая определяется в
основном хорошими случаями). Если в реальной
популяции хорошие и плохие объекты представлены
в другой пропорции, то результаты, выдаваемые
сетью, могут оказаться неверными. Хорошим
примером служит задача выявления заболеваний.
Пусть, например, при обычных обследованиях в
среднем 90% людей оказываются здоровыми. Сеть
обучается на имеющихся данных, в которых
пропорция здоровые/больные равна 90/10. Затем она
применяется для диагностики пациентов с
определенным жалобами, среди которых это
соотношение уже 50/50. В этом случае сеть будет
ставить диагноз чересчур осторожно и не
распознает заболевание у некоторых больных. Если
же, наоборот, сеть обучить на данных «с
жалобами», а затем протестировать на
«обычных» данных, то она будет выдавать
повышенное число неправильных диагнозов о
наличии заболевания. В таких ситуациях обучающие
данные нужно скорректировать так, чтобы были
учтены различия в распределении данных
(например, можно повторять редкие наблюдения или
удалить часто встречающиеся), или же
видоизменить решения, выдаваемые сетью,
посредством матрицы
потерь (Bishop, 1995). Как правило, лучше всего
постараться сделать так, чтобы наблюдения
различных типов были представлены равномерно, и
соответственно этому интерпретировать
результаты, которые выдает сеть.

Как обучается
многослойный персептрон

Мы сможем лучше понять, как устроен и как
обучается многослойный
персептрон (MLP), если выясним, какие функции он
способен моделировать. Вспомним, что уровнем
активации элемента называется взвешенная сумма
его входов с добавленным к ней пороговым
значением. Таким образом, уровень активации
представляет собой простую линейную функцию
входов. Эта активация затем преобразуется с
помощью сигмоидной ( имеющей S-образную форму)
кривой.

[Neural Network Example]

Комбинация линейной функции нескольких
переменных и скалярной сигмоидной функции
приводит к характерному профилю «сигмоидного
склона», который выдает элемент первого
промежуточного слоя MLP (На
приведенном здесь рисунке соответствующая
поверхность изображена в виде функции двух
входных переменных. Элемент с большим числом
входов выдает многомерный аналог такой
поверхности). При изменении весов и порогов
меняется и поверхность отклика. При этом может
меняться как ориентация всей поверхности, так и
крутизна склона. Большим значениям весов
соответствует более крутой склон. Так например,
если увеличить все веса в два раза, то ориентация
не изменится, а наклон будет более крутым.

[Neural Network Example]

В многослойной сети подобные функции отклика
комбинируются друг с другом с помощью
последовательного взятия их линейных комбинаций
и применения нелинейных функций активации.
На этом рисунке изображена типичная поверхность
отклика для сети с одним промежуточным слоем,
состоящим из двух элементов, и одним выходным
элементом, для классической задачи
«исключающего или» (Xor). Две разных
сигмоидных поверхности объединены в одну
поверхность, имеющую форму буквы «U».

Перед началом обучения сети весам и порогам
случайным образом присваиваются небольшие по
величине начальные значения. Тем самым отклики
отдельных элементов сети имеют малый наклон и
ориентированы хаотично — фактически они не
связаны друг с другом. По мере того, как
происходит обучение, поверхности отклика
элементов сети вращаются и сдвигаются в нужное
положение, а значения весов увеличиваются,
поскольку они должны моделировать отдельные
участки целевой поверхности отклика.

В задачах классификации
выходной элемент должен выдавать сильный сигнал
в случае, если данное наблюдение принадлежит к
интересующему нас классу, и слабый — в
противоположном случае. Иначе говоря, этот
элемент должен стремиться смоделировать
функцию, равную единице в той области
пространства объектов, где располагаются
объекты из нужного класса, и равную нулю вне этой
области. Такая конструкция известна как дискриминантная
функция
в задачах распознавания.
«Идеальная» дискриминантная функция должна
иметь плоскую структуру, так чтобы точки
соответствующей поверхности располагались либо
на нулевом уровне, либо на высоте единица.

Если сеть не содержит скрытых элементов, то на
выходе она может моделировать только одинарный
«сигмоидный склон»: точки, находящиеся по
одну его сторону, располагаются низко, по другую —
высоко. При этом всегда будет существовать
область между ними (на склоне), где высота
принимает промежуточные значения, но по мере
увеличения весов эта область будет сужаться.

Такой сигмоидный склон фактически работает как
линейная дискриминантная функция. Точки, лежащие
по одну сторону склона, классифицируются как
принадлежащие нужному классу, а лежащие по
другую сторону — как не принадлежащие.
Следовательно, сеть без скрытых слоев может
служить классификатором только в
линейно-отделимых задачах (когда можно провести
линию — или, в случае более высоких размерностей, —
гиперплоскость, разделяющую точки в
пространстве признаков).

Сеть, содержащая один промежуточный слой,
строит несколько сигмоидных склонов — по одному
для каждого скрытого элемента, — и затем выходной
элемент комбинирует из них «возвышенность».
Эта возвышенность получается выпуклой, т.е. не
содержащей впадин. При этом в некоторых
направлениях она может уходить на бесконечность
(как длинный полуостров). Такая сеть может
моделировать большинство реальных задач классификации.

[Neural Network Example]

На этом рисунке показана поверхность отклика,
полученная многослойным
персептроном для решения задачи исключающего
или: хорошо видно, что она выделяет область
пространства, расположенную вдоль диагонали.

Сеть с двумя промежуточными слоями строит
комбинацию из нескольких таких возвышенностей.
Их будет столько же, сколько элементов во втором
слое, и у каждой из них будет столько сторон,
сколько элементов было в первом скрытом слое.
После небольшого размышления можно прийти к
выводу, что, используя достаточное число таких
возвышенностей, можно воспроизвести поверхность
любой формы — в том числе с впадинами и
вогнутостями.

Как следствие наших рассмотрений мы получаем,
что, теоретически, для моделирования любой
задачи достаточно многослойного
персептрона с двумя промежуточными слоями (в
точной формулировке этот результат известен как
теорема Колмогорова). При этом может оказаться и
так, что для решения некоторой конкретной задачи
более простой и удобной будет сеть с еще большим
числом слоев. Однако, для решения большинства
практических задач достаточно всего одного
промежуточного слоя, два слоя применяются как
резерв в особых случаях, а сети с тремя слоями
практически не применяются.

В задачах классификации
очень важно понять, как следует интерпретировать
те точки, которые попали на склон или лежат
близко от него. Стандартный выход здесь состоит в
том, чтобы для пороговых значений установить
некоторые доверительные
пределы (принятия или отвержения), которые
должны быть достигнуты, чтобы данных элемент
считался «принявшим решение». Например, если
установлены пороги принятия/отвержения 0.95/0.05, то
при уровне выходного сигнала, превосходящем 0.95
элемент считается активным, при уровне ниже 0.05 —
неактивным, а в промежутке —
«неопределенным».

Имеется и более тонкий (и, вероятно, более
полезный) способ интерпретировать уровни
выходного сигнала: считать их вероятностями. В
этом случае сеть выдает несколько большую
информацию, чем просто «да/нет»: она сообщает
нам, насколько (в некотором формальном смысле) мы
можем доверять ее решению. Разработаны (и
реализованы в пакете ST Neural Networks) модификации
метода MLP, позволяющие интерпретировать выходной
сигнал нейронной
сети как вероятность, в результате чего сеть по
существу учится моделировать плотность
вероятности распределения данного класса. При
этом, однако, вероятностная интерпретация
обоснована только в том случае, если выполнены
определенные предположения относительно
распределения исходных данных (конкретно, что
они являются выборкой из некоторого
распределения, принадлежащего к семейству экспоненциальных
распределений; Bishop, 1995). Здесь, как и ранее,
может быть принято решение по классификации, но,
кроме того, вероятностная интерпретация
позволяет ввести концепцию «решения с
минимальными затратами».

Другие алгоритмы
обучения MLP

Выше было описано, как с помощью алгоритма обратного
распространения осуществляется градиентный спуск
по поверхности ошибок. Вкратце дело происходит
так: в данной точке поверхности находится
направление скорейшего спуска, затем делается
прыжок вниз на расстояние, пропорциональное
коэффициенту скорости обучения и крутизне
склона, при этом учитывается инерция, те есть
стремление сохранить прежнее направление
движения. Можно сказать, что метод ведет себя как
слепой кенгуру — каждый раз прыгает в
направлении, которое кажется ему наилучшим. На
самом деле шаг спуска вычисляется отдельно для
всех обучающих наблюдений, взятых в случайном
порядке, но в результате получается достаточно
хорошая аппроксимация спуска по совокупной
поверхности ошибок. Существуют и другие
алгоритмы обучения MLP, однако все они
используют ту или иную стратегию скорейшего
продвижения к точке минимума.

В некоторых задачах бывает целесообразно
использовать такие — более сложные — методы
нелинейной оптимизации. В пакете ST Neural Networks реализованы
два подобных метода: методы спуска по
сопряженным градиентам и Левенберга
-Маркара
(Bishop, 1995; Shepherd, 1997), представляющие
собой очень удачные варианты реализации двух
типов алгоритмов: линейного поиска и
доверительных областей.

Алгоритм линейного поиска действует следующим
образом: выбирается какое-либо разумное
направление движения по многомерной
поверхности. В этом направлении проводится
линия, и на ней ищется точка минимума (это
делается относительно просто с помощью того или
иного варианта метода деления отрезка пополам);
затем все повторяется сначала. Что в данном
случае следует считать «разумным
направлением»? Очевидным ответом является
направление скорейшего спуска (именно так
действует алгоритм обратного
распространения). На самом деле этот вроде бы
очевидный выбор не слишком удачен. После того,
как был найден минимум по некоторой прямой,
следующая линия, выбранная для кратчайшего
спуска, может «испортить» результаты
минимизации по предыдущему направлению (даже на
такой простой поверхности, как параболоид, может
потребоваться очень большое число шагов
линейного поиска). Более разумно было бы выбирать
«не мешающие друг другу » направления спуска
— так мы приходим к методу сопряженных
градиентов (Bishop, 1995).

Идея метода состоит в следующем: поскольку мы
нашли точку минимума вдоль некоторой прямой,
производная по этому направлению равна нулю.
Сопряженное направление выбирается таким
образом, чтобы эта производная и дальше
оставалась нулевой — в предположении, что
поверхность имеет форму параболоида (или, грубо
говоря, является «хорошей и гладкой «). Если
это условие выполнено, то для достижения точки
минимума достаточно будет N эпох. На реальных, сложно
устроенных поверхностях по мере хода алгоритма
условие сопряженности портится, и тем не менее
такой алгоритм, как правило, требует гораздо
меньшего числа шагов, чем метод обратного
распространения, и дает лучшую точку минимума
(для того, чтобы алгоритм обратного
распространения точно установился в некоторой
точке, нужно выбирать очень маленькую скорость обучения).

Метод доверительных областей основан на
следующей идее: вместо того, чтобы двигаться в
определенном направлении поиска, предположим,
что поверхность имеет достаточно простую форму,
так что точку минимума можно найти (и прыгнуть
туда) непосредственно. Попробуем смоделировать
это и посмотреть, насколько хорошей окажется
полученная точка. Вид модели предполагает, что
поверхность имеет хорошую и гладкую форму
(например, является параболоидом), — такое
предположение выполнено вблизи точек минимума.
Вдали от них данное предположение может сильно
нарушаться, так что модель будет выбирать для
очередного продвижения совершенно не те точки.
Правильно работать такая модель будет только в
некоторой окрестности данной точки, причем
размеры этой окрестности заранее неизвестны.
Поэтому выберем в качестве следующей точки для
продвижения нечто промежуточное между точкой,
которую предлагает наша модель, и точкой, которая
получилась бы по обычному методу градиентного спуска.
Если эта новая точка оказалась хорошей,
передвинемся в нее и усилим роль нашей модели в
выборе очередных точек; если же точка оказалась
плохой, не будем в нее перемещаться и увеличим
роль метода градиентного спуска при выборе
очередной точки (а также уменьшим шаг). В
основанном на этой идее методе Левенберга-Маркара
предполагается, что исходное отображение
является локально линейным (и тогда поверхность
ошибок будет параболоидом).

Метод Левенберга-Маркара (Levenberg, 1944; Marquardt,
1963; Bishop, 1995) — самый быстрый алгоритм обучения из
всех, которые реализованы в пакете ST Neural Networks,
но, к сожалению, на его использование имеется ряд
важных ограничений. Он применим только для сетей
с одним выходным элементом, работает только с функцией
ошибок сумма квадратов и требует памяти
порядка W**2 (где W — количество весов у
сети; поэтому для больших сетей он плохо
применим). Метод сопряженных
градиентов почти так же эффективен, как и этот
метод, и не связан подобными ограничениями.

При всем сказанном метод обратного
распространения
также сохраняет свое
значение, причем не только для тех случаев, когда
требуется быстро найти решение (и не требуется
особой точности). Его следует предпочесть, когда
объем данных очень велик, и среди данных есть
избыточные. Благодаря тому, что в методе обратного
распространения
корректировка ошибки
происходит по отдельным случаям, избыточность
данных не вредит (если, например, приписать к
имеющемуся набору данных еще один точно такой же
набор, так что каждый случай будет повторяться
дважды, то эпоха будет
занимать вдвое больше времени, чем раньше, однако
результат ее будет точно таким же, как от двух
старых, так что ничего плохого не произойдет).
Методы же Левенберга-Маркара и сопряженных
градиентов
проводят вычисления на всем наборе
данных, поэтому при увеличении числа наблюдений
продолжительность одной эпохи сильно растет, но
при этом совсем не обязательно улучшается
результат, достигнутый на этой эпохе (в
частности, если данные избыточны; если же данные
редкие, то добавление новых данных улучшит
обучение на каждой эпохе). Кроме того, обратное
распространение
не уступает другим методам в
ситуациях, когда данных мало, поскольку в этом
случае недостаточно данных для принятия очень
точного решения (более тонкий алгоритм может
дать меньшую ошибку обучения, но контрольная
ошибка у него, скорее всего, не будет меньше).

Кроме уже перечисленных, в пакете ST Neural Networks имеются
две модификации метода обратного
распространения — метод быстрого
распространения (Fahlman, 1988) и дельта-дельта
с чертой (Jacobs, 1988), — разработанные с целью
преодолеть некоторые ограничения этого подхода.
В большинстве случаев они работают не лучше, чем обратное
распространение
, а иногда и хуже (это зависит
от задачи). Кроме того, в этих методах
используется больше управляющих параметров, чем
в других методах, и поэтому ими сложнее
пользоваться. Мы не будем описывать это методы
подробно в данной главе.

Радиальная базисная
функция

В предыдущем разделе было описано, как многослойный
персептрон моделирует функцию отклика с
помощью функций «сигмоидных склонов » — в
задачах классификации
это соответствует разбиению пространства
входных данных посредством гиперплоскостей.
Метод разбиения пространства гиперплоскостями
представляется естественным и интуитивно
понятным, ибо он использует фундаментальное
простое понятие прямой линии.

Столь же естественным является подход,
основанный на разбиении пространства
окружностями или (в общем случае) гиперсферами.
Гиперсфера задается своим центром и радиусом.
Подобно тому, как элемент MLP реагирует (нелинейно)
на расстояние от данной точки до линии
«сигмоидного склона», в сети, построенной на радиальных
базисных функциях (Broomhead and Lowe, 1988; Moody and Darkin, 1989;
Haykin, 1994), элемент реагирует (нелинейно) на
расстояние от данной точки до «центра»,
соответствующего этому радиальному элементу.
Поверхность отклика радиального элемента
представляет собой гауссову
функцию (колоколообразной формы), с вершиной в
центре и понижением к краям. Наклон гауссова
радиального элемента можно менять подобно тому,
как можно менять наклон сигмоидной кривой в MLP
(см. рис.).

[Neural Network Example]

Элемент многослойного персептрона полностью
задается значениями своих весов и порогов,
которые в совокупности определяют уравнение
разделяющей прямой и скорость изменения функции
при отходе от этой линии. До действия сигмоидной функции активации
уровень активации такого элемента определяется
гиперплоскостью, поэтому в системе ST Neural Networks такие
элементы называется линейными (хотя функция
активации, как правило, нелинейна). В отличие от
них, радиальный элемент задается своим центром и
«радиусом». Положение точки в N-мерном
пространстве определяется N числовыми
параметрами, т.е. их ровно столько же, сколько
весов у линейного элемента, и поэтому координаты
центра радиального элемента в пакете ST Neural Networks
хранятся как «веса». Его радиус (отклонение) хранится
как «порог». Следует отчетливо понимать, что
«веса» и «пороги» радиального элемента
принципиально отличаются от весов и порогов
линейного элемента, и если забыть об этом, термин
может ввести Вас в заблуждение. Радиальные веса
на самом деле представляют точку, а радиальный
порог — отклонение.

Сеть типа радиальной
базисной функции (RBF) имеет промежуточный слой
из радиальных элементов, каждый из которых
воспроизводит гауссову
поверхность отклика. Поскольку эти функции
нелинейны, для моделирования произвольной
функции нет необходимости брать более одного
промежуточного слоя. Для моделирования любой
функции необходимо лишь взять достаточное число
радиальных элементов. Остается решить вопрос о
том, как следует скомбинировать выходы скрытых
радиальных элементов, чтобы получить из них
выход сети. Оказывается, что достаточно взять их
линейную комбинацию (т.е. взвешенную сумму
гауссовых функций). Сеть RBF имеет выходной слой,
состоящий из элементов с линейными функциями активации
(Haykin, 1994; Bishop, 1995).

Сети RBF имеют ряд преимуществ перед сетями MLP.
Во-первых, как уже сказано, они моделируют
произвольную нелинейную функцию с помощью всего
одного промежуточного слоя, и тем самым
избавляют нас от необходимости решать вопрос о
числе слоев. Во-вторых, параметры линейной
комбинации в выходном слое можно полностью
оптимизировать с помощью хорошо известных
методов линейного
моделирования, которые работают быстро и не
испытывают трудностей с локальными минимумами,
так мешающими при обучении MLP. Поэтому сеть
RBF обучается очень быстро (на порядок быстрее MLP).

С другой стороны, до того, как применять
линейную оптимизацию в выходном слое сети RBF,
необходимо определить число радиальных
элементов, положение их центров и величины отклонений.
Соответствующие алгоритмы, хотя и работают
быстрее алгоритмов обучения MLP, в меньшей степени
пригодны для отыскания субоптимальных решений. В
качестве компенсации,  Автоматический
конструктор сети
пакета ST Neural Networks сможет
выполнить за Вас все необходимые действия по
экспериментированию с сетью.

Другие отличия работы RBF от MLP связаны с
различным представлением пространства модели:
«групповым» в RBF и «плоскостным» в MLP.

Опыт показывает, что для правильного
моделирования типичной функции сеть RBF, с ее
более эксцентричной поверхностью отклика,
требует несколько большего числа элементов.
Конечно, можно специально придумать форму
поверхности, которая будет хорошо
представляться первым или, наоборот, вторым
способом, но общий итог оказывается не в пользу
RBF. Следовательно, модель, основанная на RBF, будет
работать медленнее и потребует больше памяти,
чем соответствующий MLP (однако она
гораздо быстрее обучается, а в некоторых случаях
это важнее).

С «групповым» подходом связано и неумение
сетей RBF экстраполировать свои выводы за область
известных данных. При удалении от обучающего
множества значение функции отклика быстро
спадает до нуля. Напротив, сеть MLP выдает более
определенные решения при обработке сильно
отклоняющихся данных. Достоинство это или
недостаток — зависит от конкретной задачи, однако
в целом склонность MLP к некритическому экстраполированию
результата считается его слабостью.
Экстраполяция на данные, лежащие далеко от
обучающего множества, — вещь, как правило, опасная
и необоснованная.

Сети RBF более чувствительны к «проклятию
размерности» и испытывают значительные
трудности, когда число входов велико. Мы обсудим
этот вопрос ниже.

Как уже говорилось, обучение RBF-сети происходит
в несколько этапов. Сначала определяются центры
и отклонения для
радиальных элементов; после этого
оптимизируются параметры линейного выходного
слоя.

Расположение центров должно соответствовать
кластерам, реально присутствующим в исходных
данных. Рассмотрим два наиболее часто
используемых метода.

Расположение центров должно соответствовать
кластерам, реально присутствующим в исходных
данных. Рассмотрим два наиболее часто
изпользуемых метода.

Выборка из выборки. В качестве центров
радиальных элементов берутся несколько случайно
выбранных точек обучающего множества. В силу
случайности выбора они «представляют»
распределение обучающих данных в статистическом
смысле. Однако, если число радиальных элементов
невелико, такое представление может быть
неудовлетворительным (Haykin, 1994).

Алгоритм K-средних. Этот алгоритм (Bishop, 1995)
стремится выбрать оптимальное множество точек,
являющихся центроидами кластеров в обучающих
данных. При K радиальных элементах их центры
располагаются таким образом, чтобы:

  • Каждая обучающая точка «относилась» к
    одному центру кластера и лежала к нему ближе, чем
    к любому другому центру;
  • Каждый центр кластера был центроидом множества
    обучающих точек, относящихся к этому кластеру.

После того, как определено расположение
центров, нужно найти отклонения. Величина
отклонения (ее также называют сглаживающим
фактором) определяет, насколько «острой»
будет гауссова
функция. Если эти функции выбраны слишком
острыми, сеть не будет интерполировать данные
между известными точками и потеряет способность
к обобщению. Если же гауссовы функции взяты
чересчур широкими, сеть не будет воспринимать
мелкие детали. На самом деле сказанное — еще одна
форма проявления дилеммы пере/недообучения. Как
правило, отклонения
выбираются таким образом, чтобы колпак каждой
гауссовой функций захватывал «несколько»
соседних центров. Для этого имеется несколько
методов:

Явный. Отклонения задаются пользователем.

Изотропный. Отклонение берется одинаковым
для всех элементов и определяется эвристически с
учетом количества радиальных элементов и объема
покрываемого пространства (Haykin, 1994).

K ближайших соседей. Отклонение каждого
элемента устанавливается (индивидуально) равным
среднему расстоянию до его K ближайших
соседей (Bishop, 1995). Тем самым отклонения будут
меньше в тех частях пространства, где точки
расположены густо, — здесь будут хорошо
учитываться детали, — а там, где точек мало,
отклонения будут большими (и будет производится
интерполяция).

После того, как выбраны центры и отклонения,
параметры выходного слоя оптимизируются с
помощью стандартного метода линейной
оптимизации — алгоритма псевдообратных матриц (сингулярного
разложения) (Haykin, 1994; Golub and Kahan, 1965).

Могут быть построены различные гибридные
разновидности радиальных
базисных функций. Например, выходной слой
может иметь нелинейные функции активации,
и тогда для его обучения используется какой-либо
из алгоритмов обучения многослойных
персептронов, например метод обратного
распространения. Можно также обучать
радиальный (скрытый) слой с помощью алгоритма обучения
сети Кохонена — это еще один способ разместить
центры так, чтобы они отражали расположение
данных.

Вероятностная
нейронная сеть

В предыдущем разделе, говоря о задачах классификации, мы
кратко упомянули о том, что выходы сети можно с
пользой интерпретировать как оценки вероятности
того, что элемент принадлежит некоторому классу,
и сеть фактически учится оценивать функцию
плотности вероятности. Аналогичная полезная
интерпретация может иметь место и в задачах регрессии — выход сети
рассматривается как ожидаемое значение модели в
данной точке пространства входов. Это ожидаемое
значение связано с плотностью вероятности
совместного распределения входных и выходных
данных.

Задача оценки плотности вероятности (p.d.f.) по
данным имеет давнюю историю в математической
статистике (Parzen, 1962) и относится к области
байесовой статистики. Обычная статистика по
заданной модели говорит нам, какова будет
вероятность того или иного исхода (например, что
на игральной кости шесть очков будет выпадать в
среднем одном случае из шести). Байесова
статистика переворачивает вопрос вверх ногами:
правильность модели оценивается по имеющимся
достоверным данным. В более общем плане, байесова
статистика дает возможность оценивать плотность
вероятности распределений параметров модели по
имеющимся данных. Для того, чтобы минимизировать
ошибку, выбирается модель с такими параметрами,
при которых плотность вероятности будет
наибольшей.

При решении задачи классификации
можно оценить плотность вероятности для каждого
класса, сравнить между собой вероятности
принадлежности различным классам и выбрать
наиболее вероятный. На самом деле именно это
происходит, когда мы обучаем нейронную
сеть решать задачу классификации — сеть
пытается определить (т.е. аппроксимировать)
плотность вероятности.

Традиционный подход к задаче состоит в том,
чтобы построить оценку для плотности
вероятности по имеющимся данным. Обычно при этом
предполагается, что плотность имеет некоторый
определенный вид (чаще всего — что она имеет
нормальное распределение). После этого
оцениваются параметры модели. Нормальное
распределение часто используется потому, что
тогда параметры модели (среднее
и стандартное
отклонение) можно оценить аналитически. При
этом остается вопрос о том, что предположение о
нормальности не всегда оправдано.

Другой подход к оценке плотности вероятности
основан на ядерных оценках (Parzen, 1962; Speckt, 1990;
Speckt, 1991; Bishop, 1995; Patterson, 1996). Можно рассуждать так:
тот факт, что наблюдение расположено в данной
точке пространства, свидетельствует о том, что в
этой точке имеется некоторая плотность
вероятности. Кластеры из близко лежащих точек
указывают на то, что в этом месте плотность
вероятности большая. Вблизи наблюдения имеется
большее доверие к уровню плотности, а по мере
отдаления от него доверие убывает и стремится к
нулю. В методе ядерных оценок в точке,
соответствующей каждому наблюдению, помещается
некоторая простая функция, затем все они
складываются и в результате получается оценка
для общей плотности вероятности. Чаще всего в
качестве ядерных функций берутся гауссовы функции (с
формой колокола). Если обучающих примеров
достаточное количество, то такой метод дает
достаточно хорошее приближение к истинной
плотности вероятности.

Метод аппроксимации плотности вероятности с
помощью ядерных функций во многом похож на метод радиальных
базисных функций, и таким образом мы
естественно приходим к понятиям вероятностной нейронной сети
(PNN) и обобщенно-регрессионной
нейронной сети (GRNN) (Speckt 1990, 1991). PNN-сети
предназначены для задач классификации, а GRNN —
для задач регрессии.
Сети этих двух типов представляют собой
реализацию методов ядерной аппроксимации,
оформленных в виде нейронной
сети.

Сеть PNN имеет по меньшей мере три слоя:
входной, радиальный и выходной. Радиальные
элементы берутся по одному на каждое обучающее
наблюдение. Каждый из них представляет гауссову функцию с
центром в этом наблюдении. Каждому классу
соответствует один выходной элемент. Каждый
такой элемент соединен со всеми радиальными
элементами, относящимися к его классу, а со всеми
остальными радиальными элементами он имеет
нулевое соединение. Таким образом, выходной
элемент просто складывает отклики всех
элементов, принадлежащих к его классу. Значения
выходных сигналов получаются пропорциональными
ядерным оценкам вероятности принадлежности
соответствующим классам, и пронормировав их на
единицу, мы получаем окончательные оценки
вероятности принадлежности классам.

Базовая модель PNN-сети
может иметь две модификации.

В первом случае мы предполагаем, что пропорции
классов в обучающем множестве соответствуют их
пропорциям во всей исследуемой популяции (или
так называемым априорным
вероятностям). Например, если среди всех людей
больными являются 2%, то в обучающем множестве для
сети, диагностирующей заболевание, больных
должно быть тоже 2%. Если же априорные вероятности
будут отличаться от пропорций в обучающей
выборке, то сеть будет выдавать неправильный
результат. Это можно впоследствии учесть (если
стали известны априорные
вероятности), вводя поправочные коэффициенты
для различных классов.

Второй вариант модификации основан на
следующей идее. Любая оценка, выдаваемая сетью,
основывается на зашумленных данных и неизбежно
будет приводить к отдельным ошибкам
классификации (например, у некоторых больных
результаты анализов могут быть вполне
нормальными). Иногда бывает целесообразно
считать, что некоторые виды ошибок обходятся
«дороже» других (например, если здоровый
человек будет диагностирован как больной, то это
вызовет лишние затраты на его обследование, но не
создаст угрозы для жизни; если же не будет
выявлен действительный больной, то это может
привести к смертельному исходу). В такой ситуации
те вероятности, которые выдает сеть, следует
домножить на коэффициенты потерь, отражающие
относительную цену ошибок классификации. В
пакете ST Neural Networks в вероятностную
нейронную сеть может быть добавлен четвертый
слой, содержащий матрицу
потерь. Она умножается на вектор оценок,
полученный в третьем слое, после чего в качестве
ответа берется класс, имеющий наименьшую оценку
потерь. (Матрицу потерь можно добавлять и к
другим видам сетей, решающих задачи классификации.)

Вероятностная нейронная сеть имеет
единственный управляющий параметр обучения,
значение которого должно выбираться
пользователем, — степень сглаживания (или
отклонение гауссовой
функции). Как и в случае RBF-сетей, этот параметр
выбирается из тех соображений, чтобы шапки »
определенное число раз перекрывались»: выбор
слишком маленьких отклонений приведет к
«острым» аппроксимирующим функциям и
неспособности сети к обобщению, а при слишком
больших отклонениях будут теряться детали.
Требуемое значение несложно найти опытным путем,
подбирая его так, чтобы контрольная ошибка была
как можно меньше. К счастью, PNN-сети
не очень чувствительны к выбору параметра
сглаживания.

Наиболее важные преимущества PNN-сетей состоят в
том, что выходное значение имеет вероятностный
смысл (и поэтому его легче интерпретировать), и в
том, что сеть быстро обучается. При обучения
такой сети время тратится практически только на
то, чтобы подавать ей на вход обучающие
наблюдения, и сеть работает настолько быстро,
насколько это вообще возможно.

Существенным недостатком таких сетей является
их объем. PNN-сеть фактически вмещает в себя все
обучающие данные, поэтому она требует много
памяти и может медленно работать.

PNN-сети особенно полезны при пробных
экспериментах (например, когда нужно решить,
какие из входных переменных использовать), так
как благодаря короткому времени обучения можно
быстро проделать большое количество пробных
тестов. В пакете ST Neural Networks PNN-сети
используются также в Нейро-генетическом
алгоритме отбора входных данных — Neuro-Genetic Input
Selection
, который автоматически находит значимые
входы (будет описан ниже).

Обобщенно-регрессионная
нейронная сеть

Обобщенно-регрессионная
нейронная сеть (GRNN) устроена аналогично
вероятностной нейронной сети (PNN), но она
предназначена для решения задач регрессии, а не
классификации (Speckt, 1991; Patterson, 1996; Bishop, 1995). Как и в
случае PNN-сети, в точку расположения каждого
обучающего наблюдения помещается гауссова
ядерная функция. Мы считаем, что каждое
наблюдение свидетельствует о некоторой нашей
уверенности в том, что поверхность отклика в
данной точке имеет определенную высоту, и эта
уверенность убывает при отходе в сторону от
точки. GRNN-сеть копирует внутрь себя все обучающие
наблюдения и использует их для оценки отклика в
произвольной точке. Окончательная выходная
оценка сети получается как взвешенное среднее
выходов по всем обучающим наблюдениям, где
величины весов отражают расстояние от этих
наблюдений до той точки, в которой производится
оценивание (и, таким образом, более близкие точки
вносят больший вклад в оценку).

Первый промежуточный
слой сети GRNN состоит из
радиальных элементов. Второй промежуточный слой
содержит элементы, которые помогают оценить
взвешенное среднее. Для этого используется
специальная процедура. Каждый выход имеет в этом
слое свой элемент, формирующий для него
взвешенную сумму. Чтобы получить из взвешенной
суммы взвешенное среднее, эту сумму нужно
поделить на сумму весовых коэффициентов.
Последнюю сумму вычисляет специальный элемент
второго слоя. После этого в выходном слое
производится собственно деление (с помощью
специальных элементов «деления»). Таким
образом, число элементов во втором промежуточном
слое на единицу больше, чем в выходном слое. Как
правило, в задачах регрессии
требуется оценить одно выходное значение, и,
соответственно, второй промежуточный слой
содержит два элемента.

Можно модифицировать GRNN-сеть таким образом,
чтобы радиальные элементы соответствовали не
отдельным обучающим случаям, а их кластерам. Это
уменьшает размеры сети и увеличивает скорость
обучения. Центры для таких элементов можно
выбирать с помощью любого предназначенного для
этой цели алгоритма (выборки из выборки, K-средних
или Кохонена), и программа ST Neural Networks соответствующим
образом корректирует внутренние веса.

Достоинства и недостатки у сетей GRNN в основном такие же, как
и у сетей PNN — единственное
различие в том, что GRNN используются в задачах регрессии, а PNN — в
задачах классификации.
GRNN-сеть обучается почти мгновенно, но может
получиться большой и медленной (хотя здесь, в
отличие от PNN, не обязательно иметь по одному
радиальному элементу на каждый обучающий пример,
их число все равно будет большим). Как и сеть RBF,
сеть GRNN не обладает способностью
экстраполировать данные.

Линейная сеть

Согласно общепринятому в науке принципу, если
более сложная модель не дает лучших результатов,
чем более простая, то из них следует предпочесть
вторую. В терминах аппроксимации отображений
самой простой моделью будет линейная, в которой
подгоночная функция определяется
гиперплоскостью. В задаче классификации
гиперплоскость размещается таким образом, чтобы
она разделяла собой два класа (линейная
дискриминантная функция); в задаче регрессии
гиперплоскость должна проходить через заданные
точки. Линейная модель обычно записывается с
помощью матрицы NxN и вектора смещения размера
N.

На языке нейронных
сетей линейная модель представляется сетью
без промежуточных слоев, которая в выходном слое
содержит только линейные элементы (то есть
элементы с линейной функцией активации).
Веса соответствуют элементам матрицы, а пороги —
компонентам вектора смещения. Во время работы
сеть фактически умножает вектор входов на
матрицу весов, а затем к полученному вектору
прибавляет вектор смещения.

В пакете ST Neural Networks имеется возможность создать
линейную сеть и обучить ее с помощью
стандартного алгоритма линейной оптимизации,
основанного на псевдообратных
матрицах (SVD) (Golub and Kahan, 1965). Разумеется, метод
линейной оптимизации реализован также в модуле Множественная регрессия системы STATISTICA;
однако, линейные сети пакета ST Neural Networks имеют
то преимущество, что здесь Вы можете в единой
среде сравнивать такие сети с «настоящими» нейронными
сетями.

Линейная сеть является хорошей точкой отсчета
для оценки качества построенных Вами нейронных
сетей. Может оказаться так, что задачу,
считавшуюся очень сложной, можно успешно не
только нейронной сетью, но и простым линейным
методом. Если же в задаче не так много обучающих
данных, то, вероятно, просто нет оснований
использовать более сложные модели.

Сеть Кохонена

Сети Кохонена принципиально отличаются от всех
других типов сетей, реализованных в пакете ST
Neural Networks
. В то время как все остальные сети
предназначены для задач с управляемым
обучением, сети
Кохонена главным образом рассчитана на неуправляемое
обучение (Kohonen, 1982; Haykin, 1994; Patterson, 1996; Fausett, 1994).

При управляемом обучении наблюдения,
составляющие обучающие данные, вместе с входными
переменными содержат также и соответствующие им
выходные значения, и сеть должна восстановить
отображение, переводящее первые во вторые. В
случае же неуправляемого
обучения обучающие данные содержат только
значения входных переменных.

На первый взгляд это может показаться странным.
Как сеть сможет чему-то научиться, не имея
выходных значений? Ответ заключается в том, что сеть Кохонена
учится понимать саму структуру данных.

Одно из возможных применений таких сетей —
разведочный анализ данных. Сеть Кохонена может
распознавать кластеры в данных, а также
устанавливать близость классов. Таким образом
пользователь может улучшить свое понимание
структуры данных, чтобы затем уточнить
нейросетевую модель. Если в данных распознаны
классы, то их можно обозначить, после чего сеть
сможет решать задачи классификации.
Сети Кохонена можно использовать и в тех задачах
классификации, где классы уже заданы, — тогда
преимущество будет в том, что сеть сможет выявить
сходство между различными классами.

Другая возможная область применения —
обнаружение новых явлений. Сеть Кохонена
распознает кластеры в обучающих данных и относит
все данные к тем или иным кластерам. Если после
этого сеть встретится с набором данных,
непохожим ни на один из известных образцов, то
она не сможет классифицировать такой набор и тем
самым выявит его новизну.

Сеть Кохонена
имеет всего два слоя: входной и выходной,
составленный из радиальных элементов (выходной
слой называют также слоем топологической карты).
Элементы топологической карты располагаются в
некотором пространстве — как правило двумерном (в
пакете ST Neural Networks реализованы также
одномерные сети Кохонена).

Обучается сеть Кохонена методом
последовательных приближений. Начиная со
случайным образом выбранного исходного
расположения центров, алгоритм постепенно
улучшает его так, чтобы улавливать кластеризацию
обучающих данных. В некотором отношении эти
действия похожи на алгоритмы выборки из выборки
и K-средних, которые используются для размещения
центров в сетях RBF и GRNN, и
действительно, алгоритм Кохонена можно
использовать для размещения центров в сетях этих
типов. Однако, данный алгоритм работает и на
другом уровне.

Помимо того, что уже сказано, в результате
итеративной процедуры обучения сеть
организуется таким образом, что элементы,
соответствующие центрам, расположенным близко
друг от друга в пространстве входов, будут
располагаться близко друг от друга и на топологической карте.
Топологический слой сети можно представлять
себе как двумерную решетку, которую нужно так
отобразить в N-мерное пространство входов,
чтобы по возможности сохранить исходную
структуру данных. Конечно же, при любой попытке
представить N-мерное пространство на
плоскости будут потеряны многие детали; однако,
такой прием иногда полезен, так как он позволяет
пользователю визуализировать данные, которые
никаким иным способом понять невозможно.

Основной итерационный алгоритм Кохонена
последовательно проходит одну за другой ряд эпох, при этом на каждой
эпохе он обрабатывает каждый из обучающих
примеров, и затем применяет следующий алгоритм:

  • Выбрать выигравший нейрон (то
    есть тот, который расположен ближе всего к
    входному примеру);
  • Скорректировать выигравший нейрон так, чтобы он
    стал более похож на этот входной пример (взяв
    взвешенную сумму прежнего центра нейрона и
    обучающего примера).

В алгоритме при вычислении взвешенной суммы
используется постепенно убывающий коэффициент скорости обучения, с
тем чтобы на каждой новой эпохе коррекция
становилась все более тонкой. В результате
положение центра установится в некоторой
позиции, которая удовлетворительным образом
представляет те наблюдения, для которых данный нейрон
оказался выигравшим.

Свойство топологической упорядоченности
достигается в алгоритме с помощью
дополнительного использования понятия окрестности.
Окрестность — это несколько нейронов, окружающих
выигравший нейрон. Подобно скорости обучения,
размер окрестности убывает со временем, так что
вначале к ней принадлежит довольно большое число
нейронов (возможно, почти вся топологическая карта);
на самых последних этапах окрестность
становится нулевой (т.е. состоящей только из
самого выигравшего нейрона). На самом деле в
алгоритме Кохонена корректировка применяется не
только к выигравшему нейрону, но и ко всем
нейронам из его текущей окрестности.

Результатом такого изменения окрестностей является
то, что изначально довольно большие участки сети
«перетягиваются» — и притом заметно — в
сторону обучающих примеров. Сеть формирует
грубую структуру топологического порядка, при
которой похожие наблюдения активируют группы
близко лежащих нейронов на топологической карте.
С каждой новой эпохой скорость обучения и
размер окрестности
уменьшаются, тем самым внутри участков карты
выявляются все более тонкие различия, что в конце
концов приводит к тонкой настройке каждого
нейрона. Часто обучение умышленно разбивают на
две фазы: более короткую, с большой скоростью
обучения и большими окрестностями, и более
длинную с малой скоростью обучения и нулевыми
или почти нулевыми окрестностями.

После того, как сеть обучена распознаванию
структуры данных, ее можно использовать как
средство визуализации при анализе данных. С
помощью данных, выводимых в окне Частоты выигрышей — Win
Frequencies
, (где для каждого нейрона
подсчитывается, сколько раз он выигрывал при
обработке обучающих примеров), можно определить,
разбивается ли карта на отдельные кластеры.
Можно также обрабатывать отдельные наблюдения и
смотреть, как при этом меняется топологическая карта,
— это позволяет понять, имеют ли кластеры какой-то
содержательный смысл (как правило при этом
приходится возвращаться к содержательному
смыслу задачи, чтобы установить, как соотносятся
друг с другом кластеры наблюдений). После того,
как кластеры выявлены, нейроны топологической
карты помечаются содержательными по смыслу
метками (в некоторых случаях помечены могут быть
и отдельные наблюдения). После того, как
топологическая карта в описанном здесь виде
построена, на вход сети можно подавать новые
наблюдения. Если выигравший при этом нейрон
был ранее помечен именем класса, то сеть
осуществляет классификацию.
В противном случае считается, что сеть не приняла
никакого решения.

При решении задач классификации в сетях Кохонена
используется так называемый порог
доступа. Ввиду того, что в такой сети уровень
активации нейрона есть расстояние от него до
входного примера, порог доступа играет роль
максимального расстояния, на котором происходит
распознавание. Если уровень активации
выигравшего нейрона превышает это пороговое
значение, то сеть считается не принявшей
никакого решения. Поэтому, когда все нейроны
помечены, а пороги установлены на нужном уровне,
сеть Кохонена может служить как детектор новых
явлений (она сообщает о непринятии решения
только в том случае, если поданный ей на вход
случай значительно отличается от всех
радиальных элементов).

Идея сети Кохонена возникла по аналогии с
некоторыми известными свойствами человеческого
мозга. Кора головного мозга представляет собой
большой плоский лист (площадью около 0.5 кв.м.;
чтобы поместиться в черепе, она свернута
складками) с известными топологическими
свойствами (например, участок, ответственный за
кисть руки, примыкает к участку, ответственному
за движения всей руки, и таким образом все
изображение человеческого тела непрерывно
отображается на эту двумерную поверхность).

Решение задач
классификации в пакете ST Neural Networks

В задаче классификации
сеть должна отнести каждое наблюдение к одному
из нескольких классов (или, в более общем случае,
оценить вероятность принадлежности наблюдения к
каждому из классов). В пакете ST Neural Networks для
классификации используется номинальная
выходная переменная — различные ее значения
соответствуют различным классам.

В пакете ST Neural Networks классификацию можно
осуществлять с помощью сетей следующих типов: многослойного
персептрона, радиальной
базисной функции, сети Кохонена, вероятностной нейронной сети
и линейной сети. Единственная из сетей пакета ST
Neural Networks ,
не предназначенная для задач классификации, — это обобщенно-регрессионная
сеть (на самом деле, если Вы потребуете, GRNNs
будет пытаться это сделать, но мы этого не
рекомендуем).

Номинальные переменные представляются в
пакете ST Neural Networks в одном из двух видов (
первый из них годится только для переменных с
двумя значениями): 1) бинарном (два
состояния) и 2) один-из-N.
При бинарном представлении переменной
соответствует один узел сети, при этом значение
0.0 означает активное состояние, а 1.0 — неактивное.
При кодировании 1-из-N на каждое состояние
выделяется один элемент, так что каждое
конкретное состояние представляется как 1.0 в
соответствующем элементе и 0.0 во всех других.

Номинальные входные переменные в пакете ST Neural
Networks
могут быть преобразованы одним из этих
методов как на этапе обучения сети, так и при ее
работе. Целевые выходные значения для элементов,
соответствующих номинальным переменным, также
легко определяются во время обучения. Несколько
большие усилия требуются на то, чтобы по
результатам работы сети определить выходной
класс.

Каждый из выходных элементов будет содержать
числовые значения в интервале от 0.0 до 1.0. Чтобы
уверенно определить класс по набору выходных
значений, сеть должна решить, «достаточно ли
близки» они к нулю или единице. Если такой
близости не наблюдается, класс считается
«неопределенным».

Кроме того, в пакете ST Neural Networks для
интерпретации выходных значений используются доверительные
уровни (пороги принятия и отвержения). Эти
пороговые значения можно корректировать, чтобы
заставить сеть быть более или, наоборот, менее
«решительной» при объявлении класса. Схемы
здесь немного различаются для случаев бинарного
и 1-из-N
представлений:

Бинарное. Если выходное значение элемента
превышает порог
принятия, то выбирается класс 1.0. Если выходное
значение лежит ниже порога отвержения,
выбирается класс 0.0. Если выходное значение лежит
между порогами, класс считается не определенным.

Один -из-N. Определенный класс выбирается
только в том случае, если значение
соответствующего выходного элемента выше порога
принятия, а всех остальных выходных элементов —
ниже порога отвержения. Если же данное условие не
выполнено, класс не определяется.

При кодировании методом 1-из-N имеет место
одна особенность. На первый взгляд кажется, что
«наиболее решительной» будет сеть с порогами
принятия и отвержения,
равными 0.5. Это действительно так для бинарного
кодирования, но уже не так для кодирования 1-из-N.
Можно сделать так, чтобы порог принятия был ниже
порога отвержения, и наиболее решительной будет
сеть, у которой порог принятия 0.0 , а порог
отвержения 1.0. При такой, на первый взгляд
странной настройке сети элемент с наивысшим
уровнем активации будет определять класс вне
зависимости от того, что происходит в других
элементах. Вот точная схема действия алгоритма
определения класса в пакете ST Neural Networks:

  • Выбирается элемент с наивысшим выходным
    сигналом. Если его выходной сигнал выше или равен
    порогу
    принятия, а выходные сигналы всех остальных
    элементов ниже порога отвержения, то в качестве
    ответа выдать класс, определяемый этим
    элементом.

При пороге принятия 0.0 выходной сигнал
выигравшего элемента всегда будет принят, а при пороге
отвержения 1.0 все остальные элементы неизбежно
будут отвергнуты, и поэтому алгоритм сводится к
простому выбору выигравшего элемента. Если же
оба пороговых значения — принятия и отвержения —
установить на уровне 0.5, сеть вполне может
остаться в нерешительности (в случаях, когда у
победителя результат ниже 0.5 или у кого-то из
проигравших — выше 0.5).

Хотя для понимания описанной процедуры
требуются определенные усилия, после того, как Вы
к ней привыкнете, Вы сможете устанавливать для
задачи различные тонкие условия. Например,
уровни принятия/отвержения, равные 0.3/0.7 ,
означают следующее: «выбрать класс,
соответствующий выигравшему элементу, при
условии, что его выход был не ниже 0.3 и ни у какого
другого элемента активация не превышала 0.7» —
другими словами, для того, чтобы решение было
принято, победитель должен показать заметный
уровень активации, а проигравшие — не слишком
высокий.

Все сказанное относится к механизму выбора
класса для большинства типов сетей: MLP, RBF,
линейных сетей и PNN (одно
исключение: в PNN-сети нельзя использовать бинарное
кодирование, и даже бинарные номинальные
выходные переменные оцениваются с помощью
кодирования 1-из-N
). В отличие от них, сеть
Кохонена действует совершенно иначе.

В сети Кохонена выигравшим элементом топологической карты
(выходного слоя) является тот, у которого самый
высокий уровень активации (он измеряет
расстояние от входного примера до точки,
координаты которой хранятся в элементе сети).
Некоторые или даже все элементы топологической
карты могут быть помечены именами классов. Если
это расстояние достаточно мало, то данный случай
причисляется к соответствующему классу (при
условии, что указано имя класса). В пакете ST Neural
Networks
значение порога
принятия — это наибольшее расстояние, на
котором принимается положительное решение о классификации
наблюдения. Если же входной случай лежит от
выигравшего элемента на более далеком
расстоянии или если выигравший элемент не был
помечен (или если его метка не соответствует ни
одному из значений выходной номинальной
переменной), то случай остается
нерасклассифицированным. Порог
отвержения в сетях Кохонена не используется.

В наших рассмотрениях мы предполагали, что
«положительному» решению о классификации
должно соответствовать значение, близкое к 1.0, а
«отрицательному» — близкое к 0.0. Это
действительно так в том случае, если на выходе
используются логистические функции активации.
Кроме того, это удобно, поскольку вероятность
может принимать значения от 0.0 до 1.0. Однако, в
некоторых ситуациях может оказаться более
удобным использовать другой диапазон. Иногда
применяется обратная упорядоченность, так что
положительное решение соответствует малым
выходным значениям. Пакет ST Neural Networks поддерживает
любой из этих вариантов работы.

Вначале в качестве границ диапазона для каждой
переменной используются значения
минимум/среднее и максимум/стандартное
отклонение. Для логистической выходной функции
активации хорошими значениями по умолчанию
являются 0.0 и 1.0. Некоторые авторы советуют
использовать в качестве функции активации
гиперболический тангенс, который принимает
значения в интервале (-1.0,+1.0) . Таким приемом можно
улучшить обучение, потому что эта функция (в
отличие от логистической)
симметрична. В этом случае нужно изменить
значения минимум/среднее и максимум/стандартное
отклонение, и программа ST Neural Networks автоматически
будет правильно интерпретировать классы.

Обратная упорядоченность, как правило,
применяется в двух ситуациях. Одну из них мы
только что обсудили: это сети Кохонена, в
которых выходное значение есть мера удаленности,
и ее малое значение соответствует большему
доверию. Вторая ситуация возникает при
использовании матрицы
потерь (которая может быть добавлена в вероятностную сеть на
этапе ее построения или вручную — к сетям других
типов). Если используется матрица потерь, то
выходы сети означают ожидаемые потери от выбора
того или иного класса, и цель заключается в том,
чтобы выбрать класс с наименьшими потерями.
Упорядоченность можно обратить, объявив
выходной сигнал не уровнем доверия, а мерой
ошибки. В таком случае порог
принятия будет ниже порога
отвержения.

Таблица статистик
классификации

При выборе порогов принятия/отвержения и
оценке способностей сети к классификации очень
помогает информация, содержащаяся в окне Статистики
классификации — Classification Statistics
. В нем
указывается, сколько наблюдений было
классифицировано правильно, сколько неправильно
или вообще не классифицировано. Кроме того,
выдается информация о том, сколько наблюдений
каждого класса было отнесено к другим классам.
Все эти данные выдаются отдельно для обучающего,
контрольного и тестового множеств.

Решение задач
регрессии в пакете ST Neural Networks

В задачах регрессии
целью является оценка значения числовой
(принимающей непрерывный диапазон значений)
выходной переменной по значениям входных
переменных. Задачи регрессии в пакете ST Neural
Networks
можно решать с помощью сетей следующих
типов: многослойный
персептрон, радиальная
базисная функция, обобщенно-регрессионная
сеть и линейная сеть. При этом выходные данные
должны иметь стандартный числовой (не
номинальный) тип.

Особую важность для регрессии имеют
масштабирование (шкалирование) выходных
значений и эффекты экстраполяции.

Нейронные
сети наиболее часто используемых архитектур
выдают выходные значения в некотором
определенном диапазоне (например, на отрезке [0,1]
в случае логистической функции активации).
Для задач классификации
это не создает трудностей. Однако для задач регрессии совершенно
очевидно, что тут есть проблема, и некоторые ее
детали оказываются весьма тонкими. Сейчас мы
обсудим возникающие здесь вопросы.

Для начала применим алгоритм масштабирования,
чтобы выход сети имел «приемлемый» диапазон.
Простейшей из масштабирующих функций пакета ST
Neural Networks
является минимаксная
функция: она находит минимальное и максимальное
значение переменной по обучающему множеству и
выполняет линейное преобразование (с
применением коэффициента масштаба и смещения),
так чтобы значения лежали в нужном диапазоне (как
правило, на отрезке [0.0,1.0]). Если эти действия
применяются к числовой (непрерывной) выходной
переменной, то есть гарантия, что все обучающие
значения после преобразования попадут в область
возможных выходных значений сети, и
следовательно сеть может быть обучена. Кроме
того, мы знаем, что выходы сети должны находиться
в определенных границах. Это обстоятельство
можно считать достоинством или недостатком —
здесь мы приходим к вопросам экстраполяции.

Посмотрим на рисунок.

[Neural Network Example]

Мы стремимся оценить значение Y по значению X.
Необходимо аппроксимировать кривую, проходящую
через заданные точки. Вероятно, вполне
подходящей для этого покажется кривая,
изображенная на графике — она (приблизительно)
имеет нужную форму и позволяет оценить значение Y
в случае, если входное значение лежит в
интервале, который охватывается сплошной частью
кривой — в этой области возможна интерполяция.

Но что делать, если входное значение
расположено существенно правее имеющихся точек?
В таких случаях возможны два подхода к оценке
значения Y. Первый вариант — экстраполяция: мы
продолжаем подогнанную кривую вправо. Во втором
варианте мы говорим, что у нас нет достаточной
информации для осмысленной оценки этого
значения, и потому в качестве оценки мы принимаем
среднне значение всех выходов (в отсутствие
какой-либо информации это может оказаться лучшим
выходом из положения).

Предположим, например, что мы используем
многослойный персептрон (MLP). Применение минимакса по описанной
выше схеме весьма ограничительно. Во-первых,
кривая не будет экстраполироваться, как бы
близко мы не находились к обучающим данным (в
действительности же, если мы лишь чуть-чуть вышли
за область обучающих данных, экстраполяция
вполне оправдана). Во-вторых, оценка по среднему
также не будет выполняться: вместо этого будет
браться минимум или максимум смотря по тому,
росла или убывала в этом месте оцениваемая
кривая.

Чтобы избежать этих недостатков в MLP
используется ряд приемов:

Во-первых, логистическую функцию активации
в выходном слое можно заменить на линейную,
которая не меняет уровня активации (N.B.: функции
активации меняются только в выходном слое; в промежуточных слоях
по-прежнему остаются логистические и
гиперболические функции активации). Линейная
функция активации не насыщается, и поэтому
способна экстраполировать (при этом
логистические функции предыдущих уровней
все-таки предполагают насыщение на более высоких
уровнях). Линейные функции активации в MLP могут вызвать
определенные вычислительные трудности в
алгоритме обратного
распространения, поэтому при его
использовании следует брать малые (менее 0.1) скорости обучения.
Описанный подход пригоден для целей
экстраполяции.

Во-вторых, можно изменить целевой диапазон минимаксной
масштабирующей функции (например, сделать его
[0.25,0.75]). В результате обучающие наблюдения будут
отображаться в уровни, соответствующие средней
части диапазона выходных значений. Интересно
заметить, что если этот диапазон выбран
маленьким, и обе его границы находятся вблизи
значения 0.5, то он будет соответствовать среднему
участку сигмоидной кривой, на котором она
«почти линейна», — тогда мы будем иметь
практически ту же схему, что и в случае линейного
выходного слоя. Такая сеть сможет выполнять экстраполяцию в
определенных пределах, а затем будет насыщаться.
Все это можно хорошо себе представить так:
экстраполяция допустима в определенных
границах, а вне их она будет пресекаться.

Если применяется первый подход и в выходном
слое помещены линейные элементы, то может
получиться так, что вообще нет необходимости
использовать алгоритм масштабирования,
поскольку элементы и без масштабирования могут
выдавать любой уровень выходных сигналов. В
пакете ST Neural Networks имеется возможность для
большей эффективности вообще отключить все
масштабирования. Однако, на практике полный
отказ от масштабирования приводит к трудностям в
алгоритмах обучения. Действительно, в этом
случае разные веса сети работают в сильно
различающихся масштабах, и это усложняет
начальную инициализацию весов и (частично)
обучение. Поэтому мы не рекомендуем Вам
отключать масштабирование, за исключением тех
случаев, когда диапазон выходных значений очень
мал и расположен вблизи нуля. Это же соображение
говорит в пользу масштабирования и при
пре-процессировании в MLP-сетях (при котором, в
принципе, веса первого промежуточного слоя можно
легко корректировать, добиваясь этим любого
нужного масштабирования).

До сих пор в нашем обсуждении мы уделяли
основное внимание тому, как в задачах регрессии применяются
сети MLP, и в особенности тому, как сети такого типа
ведут себя в смысле экстраполяции.
Сети, в которых используются радиальные элементы
(RBF и GRNN), работают
совершенно иначе и о них следует поговорить
отдельно.

Радиальные сети по самой своей природе
неспособны к экстраполяции. Чем дальше входной
пример расположен от точек, соответствующих
радиальным элементам, тем меньше становятся
уровни активации радиальных элементов и (в конце
концов) тем меньше будет выходной сигнал сети.
Входной пример, расположенный далеко от центров
радиальных элементов, даст нулевой выходной
сигнал. Стремление сети не экстраполировать
данные можно считать достоинством (это зависит
от предметной области и Вашего мнения), однако
убывание выходного сигнала (на первый взгляд)
достоинством не является. Если мы стремимся
избегать экстраполяции, то для входных точек,
отличающихся большой степенью новизны, в
качестве выхода мы, как правило, хотим иметь
усредненное значение.

Для радиальных сетей в задачах регрессии этого можно
достичь с помощью масштабирующей функции
среднее/стандартное отклонение. Обучающие
данные масштабируются таким образом, чтобы
среднее выходное значение равнялось 0.0, а все
другие значения были бы промасштабированы на
стандартное отклонение выходных сигналов. При
обработке входных точек, лежащих вне областей
действия радиальных элементов, выходной сигнал
сети будет приблизительно равен среднему
значению.

Качество работы сети в задаче регрессии можно
проверить несколькими способами.

Во-первых, сети можно сообщить выходное
значение, соответствующее любому наблюдению (или
какому-то новому наблюдению, который Вы хотели бы
проверить). Если это наблюдение содержалось в
исходных данных, то выдается значение разности
(невязки).

Во-вторых, могут быть получены итоговые
статистики. К ним относятся среднее значение и
стандартное отклонение, вычисленные для
обучающих данных и для ошибки прогноза. В общем
случае среднее значение ошибки прогноза будет
очень близко к нулю (в конце концов, нулевое
среднее для ошибки прогноза можно получить,
попросту оценив среднее значение обучающих
данных и вовсе не обращаясь к значениям входных
переменных). Наиболее важным показателем
является стандартное отклонение ошибки
прогноза. Если оно не окажется существенно
меньше стандартного отклонения обучающих
данных, это будет означать, что сеть работает не
лучше, чем простая оценка по среднему. Далее, в
пакете ST Neural Networks пользователю выдается
отношение стандартного отклонения ошибки
прогноза к стандартному отклонению обучающих
данных. Если оно существенно меньше единицы
(например, ниже 0.1), то это говорит о хорошем
качестве регрессии.
Это регрессионное отношение (точнее, величину
единица минус это отношение) иногда называют
долей объясненной дисперсии модели.

В-третьих, можно вывести изображение
поверхности отклика. На самом деле, разумеется,
эта поверхность представляет собой N+1-мерный
объект, где N — число входных элементов, а
оставшееся измерение соответствует высоте точки
на поверхности. Понятно, что непосредственно
визуально представить такую поверхность при N
большем двух невозможно (а реально N всегда
больше двух). Тем не менее, в пакете ST Neural Networks Вы
можете выводить срезы поверхности отклика по
любым двум входным переменным. При этом значения
всех остальных входных переменных фиксируются, и
меняются только два выбранные. Всем остальным
переменным можно придать любое значение по
своему усмотрению (по умолчанию система ST Neural
Networks
возьмет для них средние значения).
Значения двух исследуемых переменных можно
менять в произвольном диапазоне (по умолчанию — в
диапазоне изменения обучающих данных).

Прогнозирование
временных рядов в пакете ST Neural Networks

В задачах анализа временных рядов целью
является прогноз будущих значений переменной,
зависящей от времени, на основе предыдущих
значений ее и/или других переменных (Bishop, 1995)

Как правило, прогнозируемая переменная
является числовой, поэтому прогнозирование
временных рядов — это частный случай регрессии. Однако такое
ограничение не заложено в пакет ST Neural Networks,
так что в нем можно прогнозировать и временные
ряды номинальных (т.е. классифицирующих)
переменных.

Обычно очередное значение временного ряда
прогнозируется по некоторому числу его
предыдущих значений (прогноз на один шаг вперед
во времени). В пакете ST Neural Networks можно
выполнять прогноз на любое число шагов. После того, как
вычислено очередное предполагаемое значение,
оно подставляется обратно и с его помощью (а
также предыдущих значений) получается следующий
прогноз — это называется проекцией временного
ряда. В пакете ST Neural Networks можно осуществлять
проекцию временного ряда и при пошаговом
прогнозировании. Понятно, что надежность такой
проекции тем меньше, чем больше шагов вперед мы
пытаемся предсказать. В случаях, когда требуется
совершенно определенная дальность прогноза,
разумно будет специально обучить сеть именно на
такую дальность.

В пакете ST Neural Networks для решения задач
прогноза временных рядов можно применять сети
всех типов (тип сети должен подходить, в
зависимости от задачи, для регрессии или классификации). Сеть
конфигурируется для прогноза временного ряда
установкой параметров Временное
окно — Steps
и Горизонт
— Lookahead
. Параметр Временное окно задает
число предыдущих значений, которые следует
подавать на вход, а параметр Горизонт указывает,
как далеко нужно строить прогноз. Количество
входных и выходных переменных может быть
произвольным. Однако, чаще всего в качестве
входной и одновременно (с учетом горизонта)
выходной выступает единственная переменная. При
конфигурировании сети для анализа временных
рядов изменяется метод пре-процессирования
данных (извлекаются не отдельные наблюдения, а их
блоки), но обучение и работа сети происходят
точно так же, как и в задачах других типов.

В задачах анализа временных рядов обучающее
множество данных, как правило, бывает
представлено значениями одной переменной,
которая является входной/выходной (т.е. служит
для сети и входом, и выходом).

В задачах анализа временных рядов особую
сложность представляет интерпретация понятий
обучающего, контрольного и тестового множеств, а
также неучитываемых данных. В обычной ситуации
каждое наблюдение рассматривается независимо, и
никаких вопросов здесь не возникает. В случае же
временного ряда каждый входной или выходной
набор составлен из данных, относящихся к
нескольким наблюдениям, число которых задается
параметрами сети Временное
окно — Steps
и Горизонт
— Lookahead
. Из этого следуют два обстоятельства:

Категория, которое будет отнесен набор,
определяется категорией выходного наблюдения.
Например, если в исходных данных первые два
наблюдения не учитываются, а третье объявлено
тестовым, и значения параметров Временное окно и
Горизонт равны соответственно 2 и 1, то
первый используемый набор будет тестовым, его
входы будут браться из первых двух наблюдений, а
выход — из третьего. Таким образом, первые два
наблюдения, хотя и помечены как не учитываемые,
используются в тестовом множестве. Более того,
данные одного наблюдения могут использоваться
сразу в трех наборах, каждый из которых может
быть обучающим, контрольным или тестовым. Можно
сказать, что данные «растекаются» по
обучающему, контрольному и тестовому множествам.
Чтобы полностью разделить эти множества,
пришлось бы сформировать отдельные блоки
обучающих, контрольных и тестовых наблюдений,
отделенные друг от друга достаточным числом
неучитываемых наблюдений.

Несколько первых наблюдений можно
использовать только в качестве входных данных.
При выборе наблюдений во временном ряду номер
наблюдения всегда соответствует выходному
значению. Поэтому первые несколько наблюдений
вообще невозможно выбрать (для этого были бы
нужны еще несколько наблюдений, расположенных
перед первым наблюдением в исходных данных), и
они автоматически помечаются как неучитываемые.

Отбор переменных и
понижение размерности

До сих пор, говоря о построении и
конструировании сети, мы предполагали, что
входной и выходной слои заданы, то есть, что мы
уже знаем, какие переменные будут подаваться на
вход сети, и что будет ее выходом. То, какие
переменные будут выходными, известно всегда (по
крайней мере в случае управляемого
обучения). Что же касается входных переменных,
их правильный выбор порой представляет большие
трудности (Bishop, 1995). Часто мы не знаем заранее,
какие из входных переменных действительно
полезны для решения задачи, и выбор хорошего
множества входов бывает затруднен целым рядом
обстоятельств:

  • Проклятие размерности. Каждый
    дополнительный входной элемент сети — это новая
    размерность в пространстве данных. С этой точки
    зрения становится понятно следующее: чтобы
    достаточно плотно «заселить» N-мерное
    пространство и «увидеть» структуру данных,
    нужно иметь довольно много точек. Необходимое
    число точек быстро возрастает с ростом
    размерности пространства (грубо говоря, как 2**N
    для большинства методов). Большинство типов нейронных
    сетей (в частности, многослойный персептрон MLP)
    в меньшей степени страдают от проклятия
    размерности, чем другие методы, потому что сеть
    умеет следить за проекциями участков
    многомерного пространства в пространства малой
    размерности (например, если все веса, выходящие
    из некоторого входного элемента, равны нулю, то
    MLP-сеть полностью игнорирует эту входную
    переменную). Тем не менее, проклятие размерности
    остается серьезной проблемой, и качество работы
    сети можно значительно улучшить, исключив
    ненужные входные переменные. На самом деле, чтобы
    уменьшить эффект проклятия размерности иногда
    бывает целесообразно исключить даже те входные
    переменные, которые несут в себе некоторою
    (небольшую) информацию.
  • Внутренние зависимости между переменными. Было
    бы очень хорошо, если бы каждую переменную —
    кандидата на то, чтобы служить входом сети, можно
    было бы независимо оценить на «полезность»,
    а затем отобрать самые полезные переменные. К
    сожалению, как правило, это бывает невозможно
    сделать, и две или более взаимосвязанных
    переменных могут вместе нести существенную
    информацию, которая не содержится ни в каком их
    подмножестве. Классическим примером может
    служить задача с двумя спиралями, в которой точки
    данных двух классов расположены вдоль двух
    переплетающихся двумерных спиралей. Ни одна из
    переменных в отдельности не несет никакой
    полезной информации (классы будут выглядеть
    совершенно перемешанными), но глядя на обе
    переменные вместе, классы легко разделить. Таким
    образом, в общем случае переменные нельзя
    отбирать независимо.
  • Избыточность переменных. Часто бывает так,
    что одна и та же информация в большей или меньшей
    степени повторяется в разных переменных.
    Например, данные о росте и весе человека, как
    правило, несут в себе сходную информацию,
    поскольку они сильно коррелированы. Может
    оказаться так, что в качестве входов достаточно
    взять лишь часть из нескольких коррелированных
    переменных, и этот выбор может быть произвольным.
    В таких ситуациях вместо всего множества
    переменных лучше взять их часть — этим мы
    избегаем проклятия размерности.

Итак, выбор входных переменных — это
исключительно важный этап при построении нейронной
сети. Перед тем, как непосредственно начинать
работать с пакетом ST Neural Networks , имеет смысл
произвести предварительный отбор переменных,
используя при этом свои знания в предметной
области и стандартные статистические критерии.
Затем, уже средствами пакета ST Neural Networks можно
будет попробовать различные комбинации входных
переменных. В пакете ST Neural Networks имеется
возможность «игнорировать» некоторые
переменные, так что полученная сеть не будет
использовать их в качестве входов. Можно
поочередно экспериментировать с различными
комбинациями входов, строя всякий раз новые
варианты сетей.

При таком экспериментировании очень полезными
оказываются вероятностные и
обобщенно-регрессионные сети. Несмотря на то, что
они работают медленнее более компактных MLP и RBF
сетей, они обучаются почти мгновенно, и это важно,
поскольку при переборе большого числа
комбинаций входных переменный приходится каждый
раз строить новые сети. Кроме того, PNN и GRNN (как и RBF) — это
радиальные сети (в первом слое они имеют
радиальные элементы, и аппроксимирующие функция
строятся в виде комбинаций гауссовых функций).
При отборе входных переменных это является
преимуществом, поскольку радиальные сети в
меньшей степени страдают от проклятия
размерности, чем сети, построенные на линейных
элементах.

Чтобы понять причину этого, рассмотрим, что
произойдет, если мы добавим в сеть новую,
возможно совершенно несущественную входную
переменную. Сеть на линейных элементах, например MLP, может
научиться присваивать весам, идущим от этой
переменной, нулевые значения, что означает
игнорирование переменной (реально это
происходит так: изначально малые веса этой
переменной так и остаются малыми, а веса
содержательных входных переменных меняются
нужным образом). Радиальная сеть типа PNN или GRNN не может позволить
себе такую роскошь: кластеры, образующиеся в
пространстве небольшого числа существенных
переменных, будут «размазаны» по
направлениям несущественных размерностей — для
учета разброса по несущественным направлениям
требуется большее число элементов. Сеть, в
большей степени страдающая от наличия плохих
входных данных, имеет преимущество, когда мы
стремимся избавиться то этих плохих данных.

Поскольку описанный процесс
экспериментирования занимает много времени, в
пакете ST Neural Networks имеется инструмент, который
может сделать это за Вас. Для выбора подходящей
комбинации входных переменных здесь
используется так называемый генетический
алгоритм (Goldberg, 1989). Генетические алгоритмы
хорошо приспособлены для задач такого типа,
поскольку они позволяют производить поиск среди
большого числа комбинаций при наличии
внутренних зависимостей в переменных.

Существует и другой подход к проблеме
размерности, который может использоваться как
альтернатива или как дополнение к методам отбора
переменных: это понижение
размерности. Суть его состоит в том, что
исходная совокупность переменных преобразуется
в новую совокупность, состоящую из меньшего
числа переменных, но при этом (как мы надеемся)
содержащую по возможности всю информацию,
заложенную в исходных данных. В качестве примера
рассмотрим данные, все точки которых расположены
на некоторой плоскости в трехмерном
пространстве. Истинная размерность данных
равна двум (поскольку вся информация на самом
деле содержится в двумерном подпространстве).
Если мы сумеем обнаружить эту плоскость, то на
вход нейронной
сети можно будет подавать входные данные
меньшей размерности, и будет больше шансов на то,
что такая сеть будет работать правильно.

Самый распространенный метод понижения
размерности — это анализ главных
компонент (Bishop, 1995; см. также  Факторный
анализ
). Метод состоит в следующем: к данным
применяется линейное преобразование, при
котором направлениям новых координатных осей
соответствуют направления наибольшего разброса
исходных данных. Как правило, уже первая
компонента отражает большую часть информации,
содержащейся в данных. Поскольку анализ главных
компонент (АГК) представляет собой линейный
метод, его можно реализовать с помощью линейной
сети, и в пакете ST Neural Networks предусмотрена
возможность обучать линейную сеть для
выполнения АГК. Очень часто метод АГК выделяет из
многомерных исходных данных совсем небольшое
число компонент, сохраняя при этом структуру
информации.

Один из недостатков метода главных
компонент (АГК) состоит в том, что это чисто
линейный метод, и из-за этого он может не
учитывать некоторые важные характеристики
структуры данных. В пакете ST Neural Networks реализован
также вариант «нелинейного АГК», основанный
на использовании так называемой автоассоциативной
сети (Bishop, 1995; Fausett, 1994; Bouland and Kamp, 1988). Это такая нейронная
сеть, которую обучают выдавать в качестве
выходов свои собственные входные данные, но при
этом в ее промежуточном слое содержится меньше
нейронов, чем во входном и выходном слоях.
Поэтому, чтобы восстановить свои входные данные,
сеть должна научиться представлять их в более
низкой размерности. Сеть «впихивает»
наблюдения в формат промежуточного слоя и только
потом выдает их на выходе. После обучения
автоассоциативной сети ее внешний интерфейс
может быть сохранен и использован для понижения
размерности. Как правило, в качестве
автоассоциативной сети берется многослойный
персептрон с тремя промежуточными
слоями. При этом средний слой отвечает за
представление данных в малой размерности, а два
других скрытых слоя служат соответственно для
нелинейного преобразования входных данных в
средний слой и выходов среднего слоя в выходной
слой. Автоассоциативная сеть с единственным
промежуточным слоем может выполнять только
линейное понижение размерности, и фактически
осуществляет АГК в стандартном варианте.


Все права на материалы электронного учебника принадлежат компании StatSoft


Понравилась статья? Поделить с друзьями:

Читайте также:

  • Если ошибка положительна а то
  • Если ошибка питон
  • Если ошибка на английском excel
  • Если пересолила суп борщ как исправить
  • Если пересолила соус как исправить

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии