logo
Сборник методов нейроинформатики

2.3. Требования к нелинейности элементов

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

Имеется теорема, показывающая, что с помощью нейронных сетей можно сколь угодно точно приблизить любую непрерывную функцию, используя любуюнелинейность нейронов [4]. Хватает всего-навсего одной любой нелинейной функции. Однако такие широкие возможности для решения задачи приведения сети к логически прозрачному виду нам не нужны – нужно ограничиться теми нелинейными функциями, которые допускают простую интерпретацию. Наиболее проста из нелинейных единичная пороговая функцияh(функция Хевисайда). Если сумма сигналов, приходящих на нейрон с такой единичной нелинейной функцией, меньше или равна 0, то далее можно не обращать внимания на выходной сигнал нейрона – он будет нулевым и не повлияет на выдаваемые нейронами следующего слоя значения. Если эта сумма входных сигналов больше нуля, то нейрон генерирует единичный выходной сигнал и здесь нам опять не важна величина сигнала, а важно то, что воздействие на нейрон превысило некоторый критический уровень и нейрон возбудился. Такие пороговые нейроны допускают наиболее простую интерпретацию.

С другой стороны, просто линейная функция еще проще… Поэтому имеются предельные случаи:

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

Рассмотрим одну из наиболее часто используемых нелинейных функций нейрона – сигмоидную функцию f(A)=A/(c+|A|). Здесь c – настраиваемый параметр крутизны сигмоиды . Функция имеет непрерывную первую производную и принимает значения из диапазона[-1,1]. Устремлениеc кдает более пологую сигмоиду, а устремление к 0 – сигмоиду, близкую к пороговой функцииsgn(A), однако имеющую третье стабильное состояние, нуль, при нулевом входном сигнале. Однако значение c – параметр крутизны сигмоидной функции – обычно устанавливается одинаковым для всех нейронов в момент создания сети и не включается в число обучаемых параметров, поскольку в большинстве случаев это приводит к ухудшению интер- и экстраполяционных способностей нейронной сети. Действительно, поскольку нейронная сеть первоначально избыточна, то ей обычно проще научиться решению задачи, приближая задачник набором функций, близких к дельта-функциям (а точнее, набором“колоколообразных” функций), чем строя регрессионные зависимости. При этом параметры крутизны при обучении быстро устремляются к нулю, ускоряя обучение сети, но снижая качество решения тестовой выборки.

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

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

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