Как ни старайся…

Введение

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

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

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

Скорость обучения

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

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

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

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

График обучения

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

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

Снижение скорости обучения

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

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

Исчезающий градиент

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

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

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

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

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

Взрывающийся градиент

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

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

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

Пакетная нормализация

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

Методика пакетной нормализации была представлена ​​в 2015 году Кристианом Сегеди и Сергеем Иоффе в этой опубликованной статье. Пакетная нормализация была выполнена как решение для ускорения фазы обучения глубоких нейронных сетей за счет введения внутренней нормализации входных значений на уровне нейронной сети.

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

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

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

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

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

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

Градиентная обрезка

Отсечение градиента - это метод, который используется для регулирования нестабильности значений градиента в нейронной сети. Это достигается за счет установления порога для значений, которые могут принимать градиенты.

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

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

Вывод

Мы рассмотрели семь стандартных терминов машинного обучения и углубились в детали каждого термина на поверхностном уровне.

Двигаясь вперед, я бы предложил изучить, как каждый из упомянутых терминов реализован в популярных библиотеках глубокого обучения, таких как Keras, Pytorch и TensorFlow.

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