Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
НЕЙРОСЕТИ_уч_Боровков.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.73 Mб
Скачать

Пользовательские архитектуры сетей

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

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

Сети для задач классификации

Задачи классификации в пакете ST Neural Networks подразделяются на две категории: задачи с двумя классами, где используется один выходной элемент, и задачи со многими классами, где сеть содержит три или более выходных элементов.

Задачи с двумя классами. В задаче с двумя классами целевое выход­ное значение равно либо 1 (что означает принадлежность одному из клас­сов), либо 0 (принадлежность другому классу).

Задачи со многими классами. В задаче со многими классами целевое выходное значение у элемента, соответствующего правильному классу, равно 1 a y остальных элементов равно 0.

Полезно представлять себе выходные значения как вероятности.

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

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

В пакете ST Neural Networks имеются средства поддержки обоих вариан­тов интерпретации.

Сети для задач с двумя классами. Сеть для двух классов реализует­ся стандартной логистической функцией активации в выходном элементе, поскольку выходное значение всегда лежит в интервале (0;1).

Однако характеристики такой сети иногда удается улучшить, выбрав для параметра Функция ошибок - Error function значение Энтропия (простая) - Entropy (single). Стандартная среднеквадратичная функция ошибок (Sum-Squared) теоретически больше подходит для задач регрессии.

Сети для задач со многими классами. Выходные значения сети в задаче со многими классами можно интерпретировать как вероятности, если их пронормировать на единичную сумму. Чтобы сделать это в пакете ST Neural Networks выберите для выходного слоя функцию активации Софтмакс - Softmax (с помощью Редактора сети - Network Editor), а для параметра Функция ошибок - Error function - тип Энтропия (множествен­ная) - Entropy (multiple).

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

Вероятности принадлежности наблюдения разным классам (а не только сами классы, которые им назначила программа 57"Neural Networks) можно посмотреть, изменив в окнах Прогнать одно наблюдение - Run Single Case. Прогнать набор данных - Run Data Set и Прогнать отдельное на­блюдение - Run One-off Case значение Показывать при выводе - Outputs Shown на Активации - Activations.

Добавление матрицы потерь. Если сеть обучена с таким расчетом, чтобы выходные значения были оценками вероятностей, программу ST Neural "Networks можно настроить так, чтобы учитывать матрицу потерь (Bishop, 1995).

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

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

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

Поскольку правильная классификация не несет никаких потерь, на глав­ной диагонали матрицы потерь всегда стоят нули; что касается остальных коэффициентов матрицы, то коэффициент, стоящий на пересечении n-го столбца и m-й строки есть цена неправильной классификации наблюде­ния, принадлежащего на самом деле к классу номер n, как принадлежаще­го к классу номер m.

В пакете ST Neural Networks матрицу потерь можно построить с помощью линейной сети, имеющей такое же число элементов во входном и выход­ном слоях, как у исходной сети в выходном слое. Сеть для матрицы по­терь должна иметь числовые входные переменные и одну номинальную выходную переменную, соответствующую выходу сети, к которой добав­ляется матрица потерь.

Таким образом, самой простой способ построить матрицу потерь такой: проигнорировать все входные переменные исходного набора данных, а выходную переменную сделать типа Входная/выходная - Input/Output; выбрать тип сети Линейная - Linear (а если он уже выбран, нажать кнопку Совет - Advise). Возникнет сеть с одной входной и одной выходной пере­менной, причем обе будут номинальными. Теперь нужно добавить N но­вых входных переменных, где N - число возможных номинальных значе­ний, и после этого удалить существующую входную переменную: в ре­зультате будет построена сеть матрицы потерь с нужным числом входов и правильным пост-процессирующим слоем. Затем с помощью Редактора сети - Network Editor нужно установить нулевые значения порогов (Thresholds) выходного слоя и поместить коэффициенты матрицы потерь на место всех других весов.

После того, как матрица потерь построена, ее можно добавить к обучен­ной сети, оценивающей вероятности, и в результате получится составная сеть, оценивающая потери. При этом необходимо также задать для пара­метра Тип результата классификации - Classification Output Type значе­ние Ошибка - Error.

Матрицу потерь можно включать в байесовы вероятностные сети пакета ST Neural Networks при их создании.

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

Сети для задач регрессии

В задачах регрессии цель состоит в прогнозировании значения непрерыв­ной выходной переменной. Многослойный персептрон в своем исходном виде может для этого не подойти, поскольку стандартная логистическая функция активации принимает значения в интервале (0:1). а выходные значения задачи могут лежать совсем в другом диапазоне.

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

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

Придать сети способность к экстраполяции можно несколькими способа­ми.

1. Уменьшить диапазон параметров Мин/средн - Min/Mean и Макс/ст.откл. - Max/SD для шкалирования методом Минимакс -Minimax no сравнению с областью значений активации (например, до [0,2;0,8] для стандартной логистической функции активации). Таким образом, появится небольшая возможность экстраполяции (сильная экстраполяция данных, как правило, не бывает оправдана).

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

Выбросы. Регрессионные сети особенно чувствительны к проблеме вы­бросов. При использовании среднеквадратичной функции ошибок (Sum-Squared Error function) точки, далеко отстоящие от основной массы, ока­зывают непропорционально большое влияние на положение гиперплоско­стей регрессии. В случае, когда такие точки на самом деле являются ано­малиями (например, ложные точки, порожденные сбоями в измеритель­ной аппаратуре), они могут сильно ухудшить качество результата.

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

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

Другой подход основан на использовании функции ошибок «городских кварталов» (Error function City-Block). Вместо того, чтобы при подсчете ошибки суммировать квадраты разностей по каждой переменной, здесь суммируются просто модули разностей. Без возведения в квадрат обуче­ние становится гораздо менее чувствительным к выбросам.

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

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

В пакете ST Neural Networks имеются специальные средства обработки пропущенных значений. Значение для подстановки берется из обучающе­го множества, и может являться, например, средним всех значений этой переменной, присутствующих в обучающем множестве. Способ подста­новки пропущенных значений может быть выбран отдельно для каждой переменной в таблице редактора пре/пост-процессирования, а сами под­становочные значения вычисляются во время обучения сети.

Кроме этого, средства управления пропущенными значениями имеются в Редакторе данных - Data Set Editor. Там. где это возможно, следует от­брасывать либо переменные, у которых много пропущенных значений, либо наблюдения с пропущенными значениями. Вы можете выбрать тот или иной вариант и приказать программе ST Neural Networks автоматиче­ски выявлять и отбрасывать соответствующие переменные или наблюде­ния.