Математический анализ
Ряды Тейлора
Цели урока
- Понять идею разложения функции в бесконечную сумму многочленов
- Выводить ряды Тейлора и Маклорена для основных функций
- Находить радиус сходимости степенного ряда
- Применять операции с рядами: дифференцирование, интегрирование, подстановку
- Использовать ряды для вычисления пределов и приближённых значений
Предварительные знания
- Производные высших порядков
- Последовательности и ряды
- Признаки сходимости рядов
Процессор Intel вычисляет sin(x) через 8 членов ряда Тейлора - именно столько нужно для float32 точности. PyTorch backprop - это ряд Тейлора по параметрам. RoPE-эмбеддинги в LLaMA используют формулу Эйлера, выведенную из рядов.
- CPU/GPU: sin, cos, exp вычисляются как конечные суммы рядов
- PyTorch autograd: backprop = ряд Тейлора + chain rule
- L-BFGS: квадратичное приближение функции потерь = Тейлор 2-го порядка
- RoPE embeddings (LLaMA, GPT-4): формула Эйлера e^(ix)
- Физика: sin(theta) ~ theta при малых углах (маятник, оптика)
Ряд Тейлора: идея и формула
Процессор Intel не знает, что такое $\sin(x)$. Он умеет только складывать и умножать. Поэтому $\sin(x) = x - x^3/6 + x^5/120 - x^7/5040 + \cdots$ - и для float32-точности хватает 8 членов этого ряда. Весь тригонометрический unit в CPU - это многочлен.
PyTorch `torch.autograd` вычисляет приближение $f(x+\delta) \approx f(x) + f'(x)\delta + f''(x)\delta^2/2$. Backpropagation - это накопленная цепочка производных, то есть ряд Тейлора в действии.
Ряд Тейлора: производные диктуют коэффициенты
При $a = 0$ получаем **ряд Маклорена**: $f(x) = \sum \frac{f^{(n)}(0)}{n!} x^n$. Все стандартные разложения - это Маклорен.
Почему коэффициент при $(x-a)^n$ содержит $n!$ в знаменателе?
Если $P(x) = c_n(x-a)^n$, то $P^{(n)}(a) = c_n \cdot n!$. Чтобы $P^{(n)}(a) = f^{(n)}(a)$, нужно $c_n = f^{(n)}(a)/n!$.
Стандартные ряды, радиус сходимости и операции
Все численные вычисления $e^x$, $\sin x$, $\ln(1+x)$ на CPU/GPU сводятся к конечным суммам этих рядов. CORDIC-алгоритм в FPU использует именно их.
| Функция | Ряд Маклорена | Радиус $R$ |
|---|---|---|
| $e^x$ | $\sum_{n=0}^{\infty} \frac{x^n}{n!} = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \ldots$ | $\infty$ |
| $\sin x$ | $\sum_{n=0}^{\infty} \frac{(-1)^n x^{2n+1}}{(2n+1)!} = x - \frac{x^3}{6} + \frac{x^5}{120} - \ldots$ | $\infty$ |
| $\cos x$ | $\sum_{n=0}^{\infty} \frac{(-1)^n x^{2n}}{(2n)!} = 1 - \frac{x^2}{2} + \frac{x^4}{24} - \ldots$ | $\infty$ |
| $\frac{1}{1-x}$ | $\sum_{n=0}^{\infty} x^n = 1 + x + x^2 + x^3 + \ldots$ | $1$ |
| $\ln(1+x)$ | $\sum_{n=1}^{\infty} \frac{(-1)^{n+1} x^n}{n} = x - \frac{x^2}{2} + \frac{x^3}{3} - \ldots$ | $1$ |
| $(1+x)^\alpha$ | $1 + \alpha x + \frac{\alpha(\alpha-1)}{2!}x^2 + \ldots$ | $1$ |
У **нечётной** функции $\sin x$ ряд содержит только **нечётные** степени. У **чётной** $\cos x$ - только **чётные**. Симметрия функции кодируется структурой ряда.
Радиус сходимости: где разложение работает
Функция $\frac{1}{1+x^2}$ определена при всех вещественных $x$, но её ряд $1 - x^2 + x^4 - \cdots$ сходится только при $|x| < 1$. Причина: полюсы $\pm i$ в комплексной плоскости находятся на расстоянии 1 от нуля - и это расстояние задаёт радиус сходимости.
Операции с рядами: дифференцирование и интегрирование
Не нужно считать производные заново - можно строить новые ряды из известных. Именно так работает автоматическое дифференцирование в JAX: differentiable programming строит разложение функции потерь, дифференцируя ряды.
- **Дифференцирование**: $(\sum c_n x^n)' = \sum n c_n x^{n-1}$ (радиус не меняется)
- **Интегрирование**: $\int \sum c_n x^n dx = \sum \frac{c_n x^{n+1}}{n+1} + C$
- **Подстановка**: в $\sum c_n x^n$ подставить $g(x)$ - получим ряд для $f(g(x))$
Знаем: 1/(1+x^2) = 1 - x^2 + x^4 - x^6 + ... Интегрируем: arctan x = x - x^3/3 + x^5/5 - x^7/7 + ... При x = 1: pi/4 = 1 - 1/3 + 1/5 - 1/7 + ... (ряд Лейбница) Сходится очень медленно - для вычисления pi есть методы лучше.
Summarise the key idea of: Радиус сходимости: где работает разложение.
Формула Эйлера и приложения
RoPE (Rotary Position Embedding) в LLaMA и GPT-4 кодирует позицию токена через $e^{i\theta}$. Токен на позиции $m$ умножается на $e^{im\theta}$ - поворот в комплексной плоскости. Формула Эйлера - это не просто красивое тождество, это инструмент production-систем.
При $x = \pi$ - тождество Эйлера: $e^{i\pi} + 1 = 0$. RoPE-эмбеддинги в трансформерах (LLaMA, Mistral, GPT-4) строятся на этой формуле: вращение через $e^{i\theta}$ кодирует относительную позицию токенов.
Применения: пределы, вычисления, ML
Вычисление пределов через ряды
Ряды - лучший способ раскрыть $0/0$ без правила Лопиталя.
lim sin(x)/x при x->0: = lim (x - x^3/6 + x^5/120 - ...) / x = lim (1 - x^2/6 + x^4/120 - ...) = 1 lim (sin x - x)/x^3 при x->0: = lim (-x^3/6 + x^5/120 - ...) / x^3 = -1/6
Линеаризация в ML: Taylor expansion функции потерь
L-BFGS использует квадратичное приближение функции потерь: $L(\theta + \delta) \approx L(\theta) + \nabla L \cdot \delta + \frac{1}{2}\delta^T H \delta$. Первый член - gradient descent, второй - Newton step. Это ряд Тейлора второго порядка.
Ряд сходится к функции только внутри радиуса сходимости. За его пределами разложение даёт мусор: $\frac{1}{1-x} = 1 + x + x^2 + \ldots$ не работает при $x = 2$.
Summarise the key idea of: Формула Эйлера: мост между анализом и геометрией.
Ряды Тейлора в математике и за её пределами
Эта тема связана с множеством других областей
- Комплексный анализ — Формула Эйлера открывает дверь в мир комплексных функций и рядов Лорана
- Дифференциальные уравнения — Решение ОДУ через степенные ряды - мощный метод для уравнений без замкнутых решений
- Численные методы — Аппроксимации Паде, ряд Чебышёва - улучшения классических рядов для вычислений
- Функции нескольких переменных — Многомерный Тейлор: разложение функции потерь нейросети
Итоги
- Ряд Тейлора: $f(x) = \sum f^{(n)}(a)(x-a)^n/n!$ - каждая производная диктует коэффициент
- $e^x$, $\sin x$, $\cos x$ сходятся при всех $x$; $\ln(1+x)$, $1/(1-x)$ - только при $|x| < 1$
- Радиус сходимости $R = \lim|c_n/c_{n+1}|$ определяет область применимости
- Дифференцирование и интегрирование рядов не меняет радиус - строим новые ряды из старых
- Формула Эйлера $e^{ix} = \cos x + i\sin x$ - следствие из рядов Тейлора
- CPU вычисляет $\sin(x)$ через 8 членов ряда; PyTorch backprop - это Тейлор 1-го порядка
Вопросы для размышления
- Почему ряд для $1/(1+x^2)$ имеет конечный радиус сходимости, хотя функция определена везде?
- Как L-BFGS использует второй член ряда Тейлора функции потерь?
- Как бы объяснить RoPE-эмбеддинги через формулу Эйлера?
- Какие функции нельзя разложить в ряд Тейлора? Приведите пример.