Самая популярная функция в машинном обучении, вероятно, следующая: f(x) = max(0, x). Название этой функции — «Выпрямленная линейная единица» или ReLU. К сожалению, большинство людей думают, что ReLU одновременно непрерывен и дифференцируем. Они не правы. Начнем с определения

ReLU: f(x) = max(0,x)

На английском языке: если x ‹= 0, функция вернет 0. В противном случае функция вернет x.

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

Чтобы функция была дифференцируемой, она должна быть непрерывной. ReLU непрерывен. Это хорошо, но недостаточно. Его производная также должна существовать для каждой отдельной точки. Здесь все становится интереснее. Посмотрите на график ReLU, когда x = 0. Здесь функция резко меняется. Производная ReLU должна существовать при x = 0, чтобы она была дифференцируемой. Чтобы увидеть, существует ли производная, мы можем проверить, что левый и правый пределы функции существуют и совпадают.

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

Теперь мы можем сделать то же самое для вычисления правого предела. В этом случае мы хотим, чтобы h приближался к 0 справа. При x = 0 и h > 0 мы получим производную, равную 1.

Левый предел равен 0, а правый предел равен 1. Чтобы производная функции существовала при x = 0, левый и правый пределы должны быть одинаковыми. Это не вариант. Производная ReLU не существует при x = 0.

Теперь у нас есть полный ответ:

  • ReLU непрерывен
  • ReLU не дифференцируема. Как мы можем использовать ReLU в качестве функции активации, если она не дифференцируема? Что происходит, так это то, что нам все равно, что производная ReLU не определена, когда x = 0.

Когда это происходит, мы устанавливаем производную на 0 (или любое произвольное значение) и живем дальше. Хороший хак. По этой причине мы все еще можем использовать ReLU вместе с Gradient Descent.

Источник: Сантьяго https://ru.rattibha.com/thread/1659166956153602048…