Приближение производной конечными разностями: медленно и неточно, но незаменимо для проверки аналитических градиентов.
- аргумент функции — точка, в которой её рассматривают
- функция, о которой идёт речь
Ключевые тезисы
- Центральная разность точнее односторонней: ошибка против .
- Слишком малый шаг усиливает ошибку округления — есть оптимальный компромисс.
- 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%
Обратное распространение ошибки · Глубокое обучениеЭффективное вычисление градиентов по всем параметрам сети за один обратный проход с помощью правила цепочки.