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

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

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

Нейронная сеть – это сеть биологических нейронов. При использовании искусственного интеллекта глубокая нейронная сеть содержит искусственные нейроны или узлы.

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

  1. Входной слой — получает входные данные.
  2. Скрытые слои — выполнение математических вычислений над входными данными.
  3. Выходной слой — возвращает выходные данные.

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

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

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

Прямая связь и обратное распространение

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

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

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

В нейронной сети также есть процесс, называемый обратным распространением, также сокращенно «обратное распространение». Обратное распространение — это мессенджер, который сообщает нейронной сети, допустила ли она ошибку при составлении прогноза.

Обратное распространение проходит через следующие шаги:

  1. Нейронная сеть делает предположения о данных
  2. Нейронная сеть измеряется функцией потерь
  3. Ошибка распространяется обратно для корректировки и исправления

Процесс:

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

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

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

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

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

исчезнуть

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

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

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

Взорваться

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

Взрывные градиенты возникают из-за весов в нейронной сети, а не из-за функции активации.

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

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

Инициализация веса

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

Методы инициализации веса:

Инициализация весов до нуля

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

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

Инициализация весов случайным образом

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

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

Инициализация весов с помощью эвристики

Это считается лучшим методом инициализации весов для нейронных сетей.

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

Наиболее часто используемые эвристики:

1. Инициализация He-et-al.

При использовании функции активации RELU эта эвристика используется путем умножения случайно сгенерированных значений W на:

2. Инициализация Ксавьера

При использовании функции активации Tanh эта эвристика используется путем умножения случайно сгенерированных значений W на:

Заключение

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

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

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

Независимая от редакции, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и командам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим нашим авторам и не продаем рекламу.

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