Как алгоритм обратного распространения имеет дело с недифференцируемыми функциями активации?

копаясь в теме нейронных сетей и как эффективно их тренировать, я наткнулся на метод использования очень простых функций активации, таких как речитативная линейная единица (ReLU), а не классические гладкие сигмоиды. Функция ReLU не дифференцируема в начале координат, поэтому, согласно моему пониманию, алгоритм обратного распространения (BPA) не подходит для обучения нейронной сети с ReLU, поскольку правило цепи многовариантного исчисления относится только к гладким функциям. Однако ни одна из статей об использовании ReLU, которые я прочитал, не затрагивает эту проблему. ReLUs кажутся очень эффективными и, кажется, используются практически везде, не вызывая никаких неожиданных действий. Может ли кто-нибудь объяснить мне, почему ReLUs можно обучать вообще с помощью алгоритма backpropagation?

Ответы

Ответ 1

Чтобы понять, как возможно backpropagation возможно с такими функциями, как ReLU, вам нужно понять, что является самым важным свойством производной, которое делает так, что алгоритм backpropagation работает так хорошо. Это свойство таково:

f(x) ~ f(x0) + f'(x0)(x - x0)

Если вы рассматриваете x0 как действительное значение своего параметра на данный момент - вы можете сказать (знающее значение функции стоимости и его производного), как будет выглядеть функция стоимости, когда вы немного измените свои параметры. Это самая важная вещь в backpropagation.

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

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

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