Сейчас я читаю книгу под названием «Практическое машинное обучение с Scikit-Learn и TensorFlow», а в главе 11 она содержит следующее описание объяснения ELU (Exponential ReLU).
В-третьих, функция является гладкой везде, в том числе около z = 0, что помогает ускорить градиентный спуск, так как она не отскакивает так сильно слева и справа от z = 0.
В z
означает ось й на графике выше. Я понимаю, что производная является гладкой, поскольку z < 0
линия имеет кривую, и в этой области производная больше не равна 0
.
Однако почему так получается, что если функция «везде гладкая, в том числе и около z = 0», она ускоряет градиентный спуск?
deep-learning
gradient-descent
Blaszard
источник
источник
Ответы:
Я предполагаю, что это связано с производной, поскольку ReLU имеет разрывную производную в 0. Следовательно, если вы используете определение:
и очень близко к 0, вы получите много таких «прыжков».x
источник
Предварительно: здесь уместны три атрибута функции: непрерывный, монотонный и дифференцируемый. RELU является непрерывным и монотонным орехом, не дифференцируемым при z = 0. Экспоненциальное отношение или ELU - это все три из этих атрибутов.
Дифференциал или градиент дает вам направление. Когда производная функции не определена в точке, тогда направление градиента не определено в этой точке.
При применении градиентного спуска мы хотим постоянно изменять параметры, чтобы функция потерь постоянно уменьшалась, что равносильно тому, что мы говорим, что хотим продолжать движение к минимуму.
Когда производная функции потерь не определена в некоторой точке, градиент является неопределенным. Это означает, что градиентный спуск потенциально может двигаться в неправильном направлении. Величина задержки, вызванная этой неопределенностью, зависит от скорости обучения и других гиперпараметров. Независимо от гиперпараметров статистически неопределенная производная в RELU при z = 0 способствует замедлению сходимости градиентного спуска.
источник
Быть быстрее или ниже - это относительный термин, и его следует понимать в контексте того, с чем он сравнивается. Итак, чтобы понять это, мы должны сначала рассмотреть, как градиентный спуск работает с другими типами функции активации.
Пример настройки
Рассмотрим MLP с скрытыми слоями размера один.n
...
где - функция активации.f
Tanh и Sigmoid - исчезающий градиент
Предположим, что - функция активации Таня или Сигмоида. Производные этих функций ограничены от -1 до 1 или формально для любого .f f′(x)∈(−1,1) x
Это вызывает очень важную проблему в глубоком обучении, известную как «проблема исчезновения градиента». Давайте рассмотрим производную WRT . По правилу цепочки имеемy W1
и для любого обратите внимание, что0<i<n
(Первое слагаемое находится между потому что ограничено, как обсуждалось ранее, и также находится между поскольку задает входное значение.)(−1,1) f′ ai−2 (−1,1)
Таким образом, в основном является продуктом множества терминов, каждое из которых находится между (0, 1). Чем больше (чем глубже сеть), тем больше этот термин нам нужно умножить, и в результате становится экспоненциально меньше. Из-за этой экспоненциальной зависимости градиент быстро становится настолько малым, что мы можем эффективно рассматривать его как ноль. Следствием наличия нулевых градиентов является невозможность обучения вообще, потому что наше правило обновления для градиентного спуска основано на этом градиенте.dfdW1 n dfdW1
RELU и Мертвый Нейрон
Relu изобретен для решения проблемы исчезающего градиента, потому что его производная всегда равна 1, когда поэтому, когда равно RELU, мы имеем:ai>0 f
Хорошо, когда но когда , все разваливается , на этот раз градиент не только очень близок к нулю, но и является чистым нулем. Как только нейрон туда доберется, уже нет шансов вернуться обратно. Вот почему это известно как проблема "Мертвого нейрона"х < 0x>0 x<0
Leaky RELU и ELU
Утечка RELU и ELU является естественным развитием после RELU. Они аналогичны RELU как таковой производной, равной 1, когда но избегают «мертвого нейрона», избегая нулевых производных, когда .х < 1x>0 x<1
Я цитирую оригинальную статью о разнице между ними.
Интуитивное объяснение выглядит следующим образом. В ELU всякий раз, когда x становился достаточно маленьким, градиент становился действительно маленьким и насыщенным (так же, как это происходит с Tanh и Sigmoid). Небольшой градиент означает, что алгоритм обучения может фокусироваться на настройке других весов, не беспокоясь об интерактивности с насыщенными нейронами.
Рассмотрим многочлен степени 2, который можно представить в виде гладкой поверхности в трехмерном пространстве. Чтобы найти локальный минимум, алгоритм градиентного спуска должен учитывать крутизну как в x, так и в y направлении. Если градиент и отрицателен в направлении x и y, не ясно, какой путь лучше. Поэтому разумно выбрать путь где-то посередине. Но что, если мы уже знаем, что все плоско (нулевые градиенты) в x-направлении, тогда переходить в y-направлении становится несложным делом. Или, другими словами, пространство поиска становится намного меньше.
специальная записка
В глубоком изучении есть много утверждений без достаточного эмпирического доказательства или глубокого понимания, чтобы поддержать это. В случае ELU, хотя это может быть правдой, что это приводит к более быстрой сходимости для некоторых наборов данных, также может быть верно, что оно заставляет алгоритм обучения застревать на локальном максимуме для другого набора данных. Мы просто еще недостаточно знаем.
источник
У меня есть интуитивное представление о том, почему гладкие функции быстрее оптимизировать, но нет математического доказательства или чего-то еще.
Градиентный спуск вычисляет производную функции активации, чтобы определить изменение в весах. Когда функция активации имеет резкое сокращение (например, при z = 0 для ReLu), активация устройства может радикально измениться (т. Е. Всегда быть нулевой или линейной) для конкретных точек данных при изменении весов.
Другие весовые коэффициенты должны адаптироваться к этому радикально отличному поведению конкретной единицы для конкретных точек данных. Однако, если поведение устройства снова радикально изменится в течение следующей эпохи, сеть продолжит адаптироваться к изменениям в предыдущей эпохе.
С гладкой функцией нет таких радикальных изменений. И, таким образом, сеть может постепенно стабилизироваться.
источник