Математический анализ

Numerical Differentiation

Численное дифференцирование

актуальноТекущий рабочий стандарт

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

Обозначения
  • аргумент функции — точка, в которой её рассматривают
  • функция, о которой идёт речь

Ключевые тезисы

  • Центральная разность точнее односторонней: ошибка против .
  • Слишком малый шаг усиливает ошибку округления — есть оптимальный компромисс.
  • Gradient checking — обязательная процедура при реализации слоя вручную.

Подробный разбор

2 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.

1

Проверка градиента

Обязательный тест при ручной реализации слоя.

def grad_check(f, x, eps=1e-5):
    num = np.zeros_like(x)
    for i in range(x.size):
        p, m = x.copy(), x.copy()
        p.flat[i] += eps; m.flat[i] -= eps
        num.flat[i] = (f(p) - f(m)) / (2 * eps)
    ana = analytic_grad(x)
    rel = np.abs(num - ana) / (np.abs(num) + np.abs(ana) + 1e-12)
    assert rel.max() < 1e-6, rel.max()
На практике

Проверяйте на маленьких случайных входах и в float64: в float32 численная производная сама по себе шумная, и тест будет ложно падать.

2

Выбор шага h

Компромисс между ошибкой аппроксимации и округления.

Отсюда оптимум примерно , то есть около для double. Уменьшать дальше не просто бесполезно — вредно.

Связанные темы

Аппарат анализа

Limits and Continuity85%

Пределы и непрерывность · Математический анализ

Предел описывает, к чему стремится функция вблизи точки. На этом понятии держатся производная, интеграл и вся теория сходимости алгоритмов.

Derivative85%

Производная · Математический анализ

Скорость изменения функции: предел отношения приращения функции к приращению аргумента. Геометрически — наклон касательной.

Differentiation Rules85%

Правила дифференцирования · Математический анализ

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

Taylor Series85%

Ряд Тейлора · Математический анализ

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

Multivariable Calculus85%

Многомерный анализ · Математический анализ

Функции многих переменных: частные производные, градиент, производная по направлению и линии уровня.

Jacobian85%

Якобиан · Математический анализ

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

Lagrange Multipliers85%

Множители Лагранжа · Математический анализ

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

Convexity85%

Выпуклость · Математический анализ

Свойство функции, гарантирующее единственность минимума и сходимость градиентных методов.

Series and Convergence85%

Ряды и сходимость · Математический анализ

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

Integral85%

Интеграл · Математический анализ

Определённый интеграл — площадь под кривой, неопределённый — обратная операция к дифференцированию. В ML интеграл почти всегда означает математическое ожидание.

Differential Equations85%

Дифференциальные уравнения · Математический анализ

Уравнения, связывающие функцию с её производными. Описывают динамику — от роста популяций до обратного процесса в диффузионных моделях.

Calculus85%

Математический анализ · Основы

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

Gradient85%

Градиент · Математический справочник

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

Hessian85%

Гессиан · Математический справочник

Матрица вторых производных, описывающая локальную кривизну функции.

Backpropagation85%

Обратное распространение ошибки · Глубокое обучение

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