Нейронная сеть не сходится по разным причинам. Сбой в свёртывании может ввести нас в заблуждение относительно результатов модели.

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

Содержание

  1. Работа моделей глубокого обучения
  2. Конвергенция в моделях глубокого обучения
  3. Причины, по которым модель не сходится
  4. Почему НС не сходится?
  5. Способы устранения сбоя конвергенции

Давайте начнем с понимания работы нейронных сетей.

Работа моделей глубокого обучения

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

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

Конвергенция в глубоком обучении

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

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

Допустим,  s(n)=lossWn(y^,y) — это сходящийся ряд.

Где,

  • Wn = набор весов после n-й итерации
  • s (n) = n-й член ряда.

Если мы скажем, что потеря = 0, то мы можем сказать, что ряд, который мы называем сходящимся, является бесконечным рядом. Потеря = 0 — это идеальное условие, которое не может быть достигнуто, но после сходимости скорость обучения может продолжать снижаться.

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

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

Причина, по которой модель не сходится

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

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

Почему нейронная сеть не сходится?

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

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

Способы устранения сбоя конвергенции

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

  • Реализация импульса: иногда сходимость зависит от данных и от того, создают ли данные модель, приводящую к ошибкам, подобным расчесыванию волос. Реализация импульса нейронной сети может помочь избежать сбоя конвергенции, а также повысить точность и скорость модели.
  • Повторная инициализация весов сети может помочь избежать сбоя сходимости.
  • Если обучение застряло на локальных минимумах, а последующие сеансы превысили максимальную итерацию, это означает, что сеанс завершился неудачей, и мы получим более высокую ошибку. В такой ситуации может быть полезно начать другой сеанс.
  • Изменение функции активации может быть полезным. Например, мы используем активацию ReLU, и нейроны узлов становятся смещенными, и это может привести к тому, что нейрон никогда не будет активирован. В такой ситуации может оказаться полезным изменение функции активации на другую.
  • Выполняя классификацию с использованием нейронных сетей, мы можем использовать перетасовку обучающих данных, чтобы избежать сбоя в сходимости.
  • Скорость обучения и количество эпох должны быть пропорциональны при моделировании сети. Применение меньшего числа эпох приводит к тому, что сходимость происходит с меньшими шагами, а большее количество эпох будет означать длительное ожидание появления сходимости. Следует избегать более высокой скорости обучения или количества эпох, чтобы нейронная сеть сходилась быстрее.

Заключительные слова

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

Источник

От DTScience

Добавить комментарий