Шаг 31.
Основы создания нейросети на Python.
Как работают нейронные сети. Подготовка данных. Входные значения

    На этом шаге мы рассмотрим понятие насыщения нейронной сети.

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

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

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

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

    На следующем шаге мы рассмотрим организацию выходных значений.




Предыдущий шаг Содержание Следующий шаг