Алгебра

Выражения и уравнения

Аль-Хорезми написал книгу в Багдаде в 820 году. Слово «алгебра» - от «аль-джабр» из её названия. Слово «алгоритм» - от его имени. Один человек, один трактат - и оба слова, которые теперь определяют индустрию. Задачи, которые он решал: раздел наследства. Задачи, которые решают сейчас теми же методами: обучение нейросетей на миллиардах параметров.

  • **Нормальное уравнение в ML:** $\hat{\theta} = (X^TX)^{-1}X^Ty$ - это квадратная минимизация, решённая через ту же формулу дискриминанта. sklearn LinearRegression использует его для небольших датасетов.
  • **PolynomialFeatures в sklearn:** линейная модель + многочленные признаки = нелинейная регрессия без смены алгоритма. RBF kernel - это бесконечный многочлен в пространстве признаков.
  • **Forward pass нейросети:** каждый линейный слой решает систему $y = Wx + b$. BLAS-рутины, оптимизированные под конкретный CPU/GPU, делают это за наносекунды.

Многочлены

**820 год, Багдад.** Мухаммад аль-Хорезми пишет книгу «Китаб аль-мухтасар фи хисаб аль-джабр». Слово «алгебра» - от «аль-джабр» (восстановление). Слово «алгоритм» - от имени самого аль-Хорезми. Один человек дал нам оба слова. Он решал задачи о наследстве. Через 1200 лет его методы обучают нейросети.

**Многочлен** - это выражение вида $a_n x^n + a_{n-1} x^{n-1} + \ldots + a_1 x + a_0$, где $a_i$ - коэффициенты, $n$ - **степень** (наибольшая степень переменной с ненулевым коэффициентом). Степень суммы не превышает максимума степеней. Степень произведения равна их сумме.

МногочленСтепеньСтарший коэффициентСвободный член
$5x^3 - 2x + 7$357
$x^2 - 4$21-4
$-3x + 1$1-31
$42$04242
$0$не определена-0

Многочлен - это обобщение числа. Число $237 = 2 \cdot 10^2 + 3 \cdot 10 + 7$ - это многочлен $2x^2 + 3x + 7$ при $x = 10$. Сложение, вычитание, умножение - по тем же правилам. В ML это прямо применяется: sklearn `PolynomialFeatures` превращает признак $x$ в $[1, x, x^2, \ldots, x^d]$. Линейная модель поверх таких признаков обучается нелинейным зависимостям.

Какова степень многочлена $(x^2 + 1)(x^3 - x)$?

Разложение на множители

**Факторизация** - это операция, обратная раскрытию скобок. Но за ней стоит кое-что глубже: алгоритм обратного распространения ошибки (backprop) в нейросетях - это по сути факторизация вычислительного графа. Правило цепи $\frac{dL}{dx} = \frac{dL}{dz} \cdot \frac{dz}{dx}$ разбивает сложную производную на простые множители. PyTorch делает это автоматически для любой функции.

**Ключевой принцип:** если произведение равно нулю, хотя бы один множитель равен нулю. Именно это превращает сложное уравнение в несколько простых: $p(x) = 0 \Rightarrow (x - r_1)(x - r_2) \ldots = 0$.

ПриёмФормулаПример
Общий множитель$ab + ac = a(b+c)$$6x^3 + 4x^2 = 2x^2(3x+2)$
Разность квадратов$a^2 - b^2 = (a-b)(a+b)$$x^2 - 9 = (x-3)(x+3)$
Квадрат суммы$a^2 + 2ab + b^2 = (a+b)^2$$x^2 + 6x + 9 = (x+3)^2$
Квадрат разности$a^2 - 2ab + b^2 = (a-b)^2$$x^2 - 10x + 25 = (x-5)^2$
Сумма кубов$a^3 + b^3 = (a+b)(a^2-ab+b^2)$$x^3 + 8 = (x+2)(x^2-2x+4)$
Разность кубов$a^3 - b^3 = (a-b)(a^2+ab+b^2)$$x^3 - 27 = (x-3)(x^2+3x+9)$

**Не все многочлены разложимы над вещественными числами.** $x^2 + 1$ не раскладывается в R, но раскладывается в C: $(x+i)(x-i)$. Такой многочлен называется **неприводимым** над R.

Разложите $x^4 - 1$ на множители полностью:

Квадратные уравнения

**Нормальное уравнение линейной регрессии:** $\hat{\theta} = (X^TX)^{-1}X^Ty$. Это квадратная минимизация - берут $L = \|X\theta - y\|^2$, берут производную и приравнивают нулю. Та же операция, что в квадратном уравнении $ax^2 + bx + c = 0$. Просто переменная - не $x \in \mathbb{R}$, а $\theta \in \mathbb{R}^d$, матрица весов.

От Вавилона до нормального уравнения

Вавилонские математики решали квадратные уравнения геометрически за 2000 лет до н.э. - дополнением до квадрата. Аль-Хорезми в IX веке систематизировал методы. Общая формула через дискриминант появилась в Европе в XVI веке. В 1801 году Гаусс применил ту же идею минимизации квадратичной функции для предсказания орбиты астероида Церера - это стало методом наименьших квадратов.

**Дискриминант** $D = b^2 - 4ac$ определяет природу корней: $D > 0$ - два разных вещественных, $D = 0$ - один кратный, $D < 0$ - два комплексных. Формула: $x = \frac{-b \pm \sqrt{D}}{2a}$. В SVM дискриминант появляется в условии отступа: разделяющая гиперплоскость существует при $D \geq 0$.

**Теорема Виета** - связь между корнями и коэффициентами без явного решения. Для $ax^2 + bx + c = 0$ с корнями $x_1, x_2$: $x_1 + x_2 = -b/a$ и $x_1 x_2 = c/a$. Это быстрый способ подобрать корни «в уме» для простых уравнений. Аналог Виета есть и для кубических - формулы Виета-Кардано.

СвойствоФормулаПример для $x^2 - 5x + 6 = 0$
Сумма корней$x_1 + x_2 = -b/a$$3 + 2 = 5 = -(-5)/1$
Произведение корней$x_1 x_2 = c/a$$3 \cdot 2 = 6 = 6/1$

Уравнение $2x^2 + 3x - 2 = 0$ имеет корни $x_1$ и $x_2$. Чему равно $x_1 \cdot x_2$?

Системы уравнений

**Каждую секунду миллиарды устройств решают системы линейных уравнений** - так работает forward pass нейросети. Каждый линейный слой: $\mathbf{y} = W\mathbf{x} + \mathbf{b}$ - это система $Ax = b$ в матричной форме. BLAS-рутины (Basic Linear Algebra Subprograms) оптимизированы под конкретное железо: процессоры AMD, ARM, GPU NVIDIA. NumPy, PyTorch, TensorFlow все используют их под капотом. 'Решение' системы в нейросети находится не аналитически, а через умножение матриц - потому что умножение быстрее обращения.

**Три метода решения системы линейных уравнений:** 1. **Подстановка** - выразить одну переменную через другую 2. **Сложение (исключение)** - сложить уравнения так, чтобы переменная исчезла 3. **Матричный метод** - записать как $Ax = b$, решить через $\text{np.linalg.solve}$

**Геометрический смысл:** каждое линейное уравнение с двумя переменными - это прямая. Решение - точка пересечения. Параллельные прямые: решений нет. Совпадающие: бесконечно много. Это точно та же картина, что в градиентном спуске: функция потерь - это поверхность, минимум - точка, где градиент равен нулю (система уравнений $\nabla L = 0$).

СлучайГеометрияАлгебраКоличество решений
Прямые пересекаютсяОдна точка$\det(A) \neq 0$Ровно одно
Прямые параллельныНет общих точек$\det(A) = 0$, противоречиеНет решений
Прямые совпадаютВсе точки общие$\det(A) = 0$, тождествоБесконечно много

Если дискриминант квадратного уравнения отрицателен, уравнение не имеет решений

При $D < 0$ нет вещественных решений, но есть два комплексных сопряжённых корня

Формула $x = \frac{-b \pm \sqrt{D}}{2a}$ работает и при $D < 0$ - $\sqrt{D}$ становится мнимым. Например, $x^2 + 1 = 0$: $D = -4$, корни $x = \pm i$. Комплексные числа были изобретены именно для этого.

Система: $x + 2y = 5$, $2x + 4y = 7$. Сколько решений?

Ключевые идеи

  • **Многочлен** $a_n x^n + \ldots + a_0$: степень произведения = сумма степеней. sklearn `PolynomialFeatures` строит их из признаков.
  • **Факторизация** = разложение на множители. Backprop - это факторизация вычислительного графа через правило цепи.
  • **Квадратное уравнение** $ax^2+bx+c=0$: дискриминант $D=b^2-4ac$, теорема Виета. Нормальное уравнение регрессии - та же квадратная минимизация.
  • **Системы уравнений:** подстановка, сложение, матричный метод ($Ax=b$). Каждый forward pass нейросети - система в матричной форме.
  • Аль-Хорезми решал задачи о наследстве. Мы решаем задачи об обучении нейросетей. Инструмент тот же.

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

Уравнения и многочлены - язык для постановки задач оптимизации:

  • Числа и арифметика — Типы чисел определяют, в каком множестве ищется решение
  • Неравенства и модули — Обобщение: вместо равенства - неравенство
  • Линейная алгебра: матрицы — Системы линейных уравнений - основа матричных методов

Вопросы для размышления

  • Аль-Хорезми создал алгебру для раздела наследства. Гаусс применил квадратную минимизацию для расчёта орбиты астероида. Теперь нормальное уравнение обучает модели. Что объединяет эти три задачи на 1200 лет?
  • Backprop - это факторизация вычислительного графа. Если бы не было правила цепи (факторизации производной), как бы пришлось вычислять градиенты? Что изменилось бы в скорости обучения?
  • Система линейных уравнений может не иметь решений. Что это значит для градиентного спуска - когда $\nabla L = 0$ не имеет аналитического решения?

Связанные уроки

  • alg-01 — Числа и арифметика - база для работы с многочленами
  • alg-03 — Факторизация открывает неравенства и модули
  • alg-05 — Системы ведут к матрицам и линейной алгебре
  • la-06-gauss — Гауссово исключение - то же сложение уравнений, только на матрицах
  • stat-09-regression — Нормальное уравнение - квадратная минимизация из этого урока
  • la-01-vectors-intro
Выражения и уравнения

0

1

Войти