В данной статье рассматриваются проблемы, которые могут возникнуть при работе с нейронными сетями, а также способы их устранения.
Ключевые слова: нейронные сети, обучение, подготовка начальных значений весовых коэффициентов, планирование выходных значений.
Нейронные сети не всегда работают так, как запланировано. Необходимо спланировать тренировочные данные и начальные значения весов, а также спланировать выходные значения. Факторы, которые влияют на незапланированную работу нейронной сети и будут рассмотрены в данной работе.
Распространенной проблемой является насыщение сети. Она возникает, если присутствуют большие значения сигналов, часто спровоцированные большими начальными весовыми коэффициентами. Таким образом сигналы попадут в область близких к нулю градиенту функции активации. Что в свою очередь влияет на способность к обучению, а именно на подбор лучших коэффициентов.
- Входные значения
Если использовать в качестве функции активации — сигмоиду, то при слишком больших значениях входных данных, прямая будет выглядеть, как прямая. Поэтому рекомендуется задавать небольшие значения. Однако слишком маленькие значения также будут плохо сказываться на обучение, так как точность компьютерных вычислений снижается. Поэтому советуется выбирать значения входных данных от 0.0 до 1.0. При этом можно ввести смещение равное 0.01. [2, c. 124].
На рисунке 1 видно, что при увеличении входных данных, способность нейронной сети к обучению снижается, так как сигмоида почти выпрямляется.
Рис. 1. Подготовка входных данных
- Выходные значения
Выходные значения следует подбирать, в зависимости от выбранной функции активации. Если она не способна обеспечивать значения свыше 1.0, но выходные значения мы хотим получить больше 1.0, то весовые коэффициенты будут увеличиваться, чтобы подстроиться под ситуацию. Но ничего не выйдет, выходные значения все равно не будут больше максимального значения функции активации. Поэтому выходные значения следует масштабировать в пределах от 0.0 до 1.0. Так как граничные значения не достигаются, то советуется выбирать значения от 0.01 до 0.99. На рис. 2 продемонстрировано данное правило.
Рис. 2. Ограничение по выходных значениям
- Случайные начальные значения весовых коэффициентов
Самый простой вариант в выборе начальных значений весовых коэффициентов — выбирать их из диапазона от -1.0 до +1.0.
Но существуют подходы, которые позволяют определить коэффициенты в зависимости от конфигурации сети. Цель заключается в том, чтобы если на узел сети поступает множество сигналов и их поведение известно, то весовые коэффициенты не должны нарушать их состояние. То есть веса не должна нарушать тщательную подготовку входных и выходных значений, описанный в пунктах 1 и 2.
Если грубо описать правило, то оно звучит так: «Весовые коэффициенты инициализируются числами, случайно выбираемыми из диапазона, которые определяются обратной величиной квадратного корня из количества связей, ведущих к узлу» [2, с. 126].
На рис. 3 иллюстрируются подходы для выбора начальных весов.
Рис. 3. Подходы к выбору весовых коэффициентов
Советуется не задавать одинаковые веса. Таким образом бы в узлы пришли бы одинаковые сигналы и выходные значения получились бы одинаковыми. И после обновления весов, их значения все равно будут равными.
Также нельзя задавать нулевые значения для весовых коэффициентов, так как входные значения в этом случае «теряют свою силу».
Вывод
Чтобы нейронные сети работали удовлетворительно, необходимо входные и выходные данные, а также начальные значения весовых коэффициентов задавать в зависимости от структуры нейронной сети. Также преградой для наилучшего обучения сети являются нулевые значения сигналов и весов. А значения весовых коэффициентов должны отличаться друг от друга.
Входные и выходные значения должна быть масштабированными.
Литература:
1. Хайкин С. Нейронные сети. — М.: Вильямс, 2006.
2. Рашид Т. Создает нейронную сеть. — М.: Диалектика, 2019.