Системы дифференциальных уравнений 🧭
Весь предыдущий урок ты решал уравнения, где неизвестной была одна-единственная функция $y(t)$. Но реальные процессы почти никогда не устроены так просто. Хищники и жертвы меняют свою численность не по отдельности, а сообща — рост популяции волков напрямую зависит от численности зайцев, и наоборот. Токи в двух связанных электрических контурах влияют друг на друга. А если ты обучаешь нейросеть с миллионом весов, то у тебя буквально миллион неизвестных функций времени $w_1(t), w_2(t), \dots, w_{1\,000\,000}(t)$, изменения которых переплетены между собой через градиент общей функции потерь. Одно уравнение с одной неизвестной функцией здесь бессильно — нужен аппарат, который умеет работать сразу с целым набором взаимосвязанных уравнений. Именно этому и посвящён сегодняшний, завершающий урок курса.
Давай сразу обозначим главную идею, вокруг которой выстроен весь материал: систему $n$ линейных дифференциальных уравнений первого порядка можно записать одной строкой в матричной форме $\mathbf{x}'=A\mathbf{x}$, а решать её — с помощью ровно того же инструмента, которым ты уже пользовался в разделе линейной алгебры: собственных значений и собственных векторов матрицы $A$. Это не совпадение и не искусственная параллель. Это одна и та же математическая структура, которая встречается в двух, казалось бы, далёких друг от друга контекстах.
И вот тут — самая важная связь этого урока с машинным обучением. Вспомни, как устроен анализ сходимости градиентного спуска вблизи минимума функции потерь. Если разложить функцию потерь $L(\mathbf{w})$ в ряд Тейлора вблизи минимума и оставить только квадратичный член, поведение оптимизатора управляется гессианом $H$ — матрицей вторых производных. А непрерывный по времени градиентный спуск (так называемый градиентный поток) $\dfrac{d\mathbf{w}}{dt}=-\nabla L(\mathbf{w})\approx-H\mathbf{w}$ — это в точности линейная система дифференциальных уравнений $\mathbf{w}'=-H\mathbf{w}$! Собственные значения гессиана — это ровно те же самые числа, которые определяют, вдоль каких направлений в пространстве весов обучение сходится быстро, а вдоль каких — мучительно медленно. Тот самый аппарат собственных векторов, который ты применял для диагонализации матриц, оказывается ключом сразу к двум задачам: к решению систем дифференциальных уравнений и к пониманию того, почему одни нейросети обучаются за минуты, а другие «застревают» в узких оврагах функции потерь на часы.
План на сегодня такой: сначала разберём, что такое система линейных дифференциальных уравнений и как записать её в матричной форме. Затем — универсальный приём, который сводит уравнение любого, сколь угодно высокого порядка к системе уравнений первого порядка (это освобождает нас от необходимости отдельно изучать теорию уравнений второго, третьего и так далее порядков). После этого — главное блюдо: как собственные значения и собственные векторы матрицы дают явную формулу для решения системы. И завершим темой фазовых портретов — качественной, геометрической картиной того, как выглядят траектории решений на плоскости в зависимости от типа собственных значений матрицы $A$.
История: откуда это взялось?
Идея описывать движение системы взаимосвязанных объектов через систему дифференциальных уравнений восходит к Исааку Ньютону и его законам механики. Когда Ньютон и его последователи взялись за задачу трёх тел — например, движение Солнца, Земли и Луны под действием взаимного гравитационного притяжения, — оказалось, что описать это движение можно только системой из нескольких дифференциальных уравнений: для каждого тела нужно уравнение, связывающее его ускорение с силами притяжения со стороны остальных тел, а сила, в свою очередь, зависит от взаимного расположения всех тел одновременно. Уже для трёх тел система становится настолько сложной, что точного аналитического решения в элементарных функциях не существует — это один из самых знаменитых фактов в истории математики.
Именно из этого тупика родилась целая новая область — качественная теория дифференциальных уравнений. В конце XIX века французский математик Анри Пуанкаре, работая над задачей трёх тел, задался революционным для своего времени вопросом: если точное решение системы найти невозможно, можно ли хотя бы качественно понять, как ведут себя траектории решений — устремляются ли они к какой-то точке, убегают в бесконечность, закручиваются по спирали или совершают периодические колебания? Так родился метод фазовых портретов — геометрический способ анализа систем дифференциальных уравнений без явного вычисления формул для решения. Практически одновременно с Пуанкаре русский математик Александр Ляпунов в своей диссертации 1892 года «Общая задача об устойчивости движения» разработал строгий математический аппарат для анализа устойчивости решений систем — тот самый аппарат, который сегодня лежит в основе классификации особых точек на узлы, сёдла, фокусы и центры.
Спустя чуть больше века тот же самый математический язык неожиданно возродился в совершенно новой области — глубоком обучении. В 2018 году группа исследователей опубликовала работу о так называемых Neural ODE (нейронных дифференциальных уравнениях), где показала, что архитектуру нейросети типа ResNet можно рассматривать как дискретизацию системы дифференциальных уравнений $\mathbf{x}'=f(\mathbf{x},t,\theta)$, где $\mathbf{x}$ — это вектор активаций (а не одна-единственная функция!), а $\theta$ — обучаемые параметры самой правой части системы. На практике эта система почти всегда многомерна — уравнение для одной-единственной переменной здесь попросту не имеет содержательного смысла, поскольку слой нейросети обрабатывает целый вектор признаков одновременно. Так идея, родившаяся из задачи о движении планет два с половиной века назад, оказалась естественным языком для описания того, как информация «течёт» сквозь глубокую нейросеть.
Системы линейных дифференциальных уравнений и матричная запись
Интуиция: несколько переменных, меняющихся сообща
Давай разберёмся, что вообще значит «система дифференциальных уравнений». Представь себе не одну функцию времени, а сразу несколько: $x_1(t), x_2(t), \dots, x_n(t)$ — скажем, численность зайцев и волков в определённой местности, или напряжения в двух связанных электрических контурах, или значения двух весов простейшей нейросети во время обучения. Ключевая особенность системы в том, что скорость изменения каждой из этих величин зависит не только от неё самой, но и от значений остальных величин в этот же момент времени. Скорость роста популяции зайцев зависит не только от текущего числа зайцев (эффект перенаселения), но и от числа волков (эффект хищничества) — и наоборот.
Если эта зависимость линейна (то есть каждая производная выражается через линейную комбинацию всех неизвестных функций с постоянными коэффициентами), мы получаем линейную систему дифференциальных уравнений первого порядка. И здесь происходит красивый переход: набор из $n$ отдельных уравнений с $n$ неизвестными функциями можно упаковать в одно-единственное уравнение относительно вектора $\mathbf{x}(t)=(x_1(t),\dots,x_n(t))^{\mathsf T}$ и матрицы коэффициентов $A$ размера $n\times n$. Ровно та же идея, которую ты уже видел в разделе про системы линейных алгебраических уравнений, только теперь роль «неизвестных» играют не числа, а функции времени.
Определение и метод
Определение (система линейных дифференциальных уравнений первого порядка). Системой линейных дифференциальных уравнений первого порядка с постоянными коэффициентами называется набор уравнений вида
$$x_1'=a_{11}x_1+a_{12}x_2+\dots+a_{1n}x_n+f_1(t)$$$$x_2'=a_{21}x_1+a_{22}x_2+\dots+a_{2n}x_n+f_2(t)$$
$$\vdots$$
$$x_n'=a_{n1}x_1+a_{n2}x_2+\dots+a_{nn}x_n+f_n(t)$$
где $a_{ij}$ — постоянные числа, а $f_i(t)$ — заданные функции (свободные члены). Если все $f_i(t)\equiv0$, система называется однородной, иначе — неоднородной.
Метод (матричная форма). Введём вектор-столбец неизвестных функций $\mathbf{x}(t)=\begin{pmatrix}x_1(t)\\ \vdots\\ x_n(t)\end{pmatrix}$, матрицу коэффициентов $A=(a_{ij})$ и вектор свободных членов $\mathbf{f}(t)=(f_1(t),\dots,f_n(t))^{\mathsf T}$. Тогда вся система, какой бы длинной она ни была, записывается одной короткой строкой:
$$\mathbf{x}'(t)=A\mathbf{x}(t)+\mathbf{f}(t)$$Для однородной системы: $\mathbf{x}'=A\mathbf{x}$. Это не просто удобное сокращение записи — это приглашение использовать весь аппарат линейной алгебры (собственные значения, диагонализацию, матричную экспоненту) для решения того, что выглядело как набор из $n$ разрозненных уравнений.
Как и для структуры решения одного линейного дифференциального уравнения, здесь работает тот же принцип: общее решение неоднородной системы равно сумме общего решения однородной системы и любого частного решения неоднородной. В этом уроке мы сосредоточимся на однородном случае $\mathbf{x}'=A\mathbf{x}$ — именно он раскрывает связь с собственными значениями и фазовыми портретами, которая нас в первую очередь интересует.
Разбор примеров
Пример 1 (лёгкий). Записать систему $x_1'=3x_1-2x_2,\ x_2'=x_1+4x_2$ в матричной форме.
Здесь ничего сложного — просто аккуратно перепишем коэффициенты при каждой переменной в виде матрицы, читая каждую строку системы как строку матрицы:
$$\mathbf{x}'=\begin{pmatrix}3 & -2\\ 1 & 4\end{pmatrix}\mathbf{x}, \qquad \text{где } \mathbf{x}=\begin{pmatrix}x_1\\x_2\end{pmatrix}$$Ответ: $A=\begin{pmatrix}3&-2\\1&4\end{pmatrix}$.
Пример 2 (средний). Дана матричная система $\mathbf{x}'=A\mathbf{x}$ с $A=\begin{pmatrix}0&1&0\\0&0&1\\-2&-1&2\end{pmatrix}$. Проверить подстановкой, что вектор-функция $\mathbf{x}(t)=e^{t}(1,1,1)^{\mathsf T}$ удовлетворяет этой системе, только если это правда, а если нет — показать, что не удовлетворяет.
Подставим $\mathbf{x}(t)=e^t(1,1,1)^{\mathsf T}$ в систему. Левая часть: $\mathbf{x}'(t)=e^t(1,1,1)^{\mathsf T}$ (производная экспоненты — снова та же экспонента). Правая часть: $A\mathbf{x}=e^t A(1,1,1)^{\mathsf T}$. Вычислим $A(1,1,1)^{\mathsf T}$: первая строка даёт $0\cdot1+1\cdot1+0\cdot1=1$; вторая строка даёт $0\cdot1+0\cdot1+1\cdot1=1$; третья строка даёт $-2\cdot1-1\cdot1+2\cdot1=-1$. Итого $A(1,1,1)^{\mathsf T}=(1,1,-1)^{\mathsf T}\ne(1,1,1)^{\mathsf T}$.
Ответ: нет, не удовлетворяет — левая часть $e^t(1,1,1)^{\mathsf T}$ и правая часть $e^t(1,1,-1)^{\mathsf T}$ различаются в третьей координате. Значит, вектор $(1,1,1)^{\mathsf T}$ не является собственным вектором матрицы $A$ с собственным значением $1$ — этот пример наглядно показывает, почему подбирать решение наугад бессмысленно и нужен систематический метод, к которому мы перейдём чуть позже.
Пример 3 (сложный, машинное обучение). Функция потерь простейшей модели с двумя весами вблизи минимума приближённо квадратична: $L(\mathbf{w})\approx\dfrac12\mathbf{w}^{\mathsf T}H\mathbf{w}$, где $\mathbf{w}=(w_1,w_2)^{\mathsf T}$ отсчитывается от точки минимума, а $H$ — постоянная (симметричная) матрица гессиана. Записать непрерывный по времени градиентный спуск (градиентный поток) $\dfrac{d\mathbf{w}}{dt}=-\nabla L(\mathbf{w})$ в матричной форме системы линейных дифференциальных уравнений.
Найдём градиент квадратичной формы. Для $L(\mathbf{w})=\dfrac12\mathbf{w}^{\mathsf T}H\mathbf{w}$ с симметричной матрицей $H$ градиент равен $\nabla L(\mathbf{w})=H\mathbf{w}$ (это прямое обобщение того, что производная от $\dfrac12 a w^2$ по одной переменной равна $aw$ — тот же факт, только записанный в матричном виде; ты уже встречал эту формулу в теме про функции нескольких переменных). Значит:
$$\frac{d\mathbf{w}}{dt}=-\nabla L(\mathbf{w})=-H\mathbf{w}$$Ответ: $\mathbf{w}'=-H\mathbf{w}$ — это система линейных дифференциальных уравнений с матрицей $A=-H$. Вот, пожалуй, самый важный факт всего урока с точки зрения машинного обучения: непрерывная версия градиентного спуска вблизи минимума функции потерь — это буквально та самая однородная линейная система $\mathbf{x}'=A\mathbf{x}$, которую мы сегодня изучаем, только вместо абстрактного вектора $\mathbf{x}$ здесь стоит вектор весов модели, а вместо произвольной матрицы $A$ — минус гессиан функции потерь. Каждое свойство, которое мы выведем дальше для общей системы, автоматически становится утверждением о поведении обучения нейросети вблизи минимума.
Почему это важно
Матричная запись системы дифференциальных уравнений — это не просто экономия чернил. Она превращает $n$ переплетённых между собой уравнений в единый объект, к которому применим весь мощный аппарат линейной алгебры: собственные значения, диагонализация, матричная экспонента. Без этого перехода к матричной форме пришлось бы решать каждую конкретную систему заново, изобретая метод почти с нуля. С ней же — как ты увидишь в следующих разделах — решение системы любого размера сводится к одной и той же процедуре: найти собственные значения и собственные векторы матрицы $A$. И, как только что показал пример 3, эта же самая матричная форма — это в точности язык, на котором записывается непрерывный градиентный спуск, что делает сегодняшний урок прямым продолжением интуиции про обучение нейросетей, которую курс развивал на протяжении многих предыдущих тем.
Сведение уравнения n-го порядка к системе первого порядка
Интуиция: разбиваем высокий порядок на этажи
Может показаться, что уравнения второго, третьего и более высоких порядков (вроде $y''+py'+qy=0$, которые ты частично встречал раньше) требуют совершенно отдельной теории. Хорошая новость в том, что это не так: существует стандартный приём, который сводит любое уравнение $n$-го порядка к системе из $n$ уравнений первого порядка — а значит, вся теория, которую мы строим в этом уроке для систем, автоматически покрывает и уравнения высших порядков.
Представь уравнение $y''+py'+qy=0$ как описание движения груза на пружине с трением, где $y$ — это отклонение от положения равновесия. Само уравнение говорит только про $y$ и его производные, но чтобы полностью описать состояние системы в любой момент времени, тебе на самом деле нужны две величины: положение $y$ и скорость $y'$. Идея приёма в том, чтобы явно возвести скорость в ранг полноценной неизвестной функции — тогда уравнение второго порядка относительно $y$ превращается в систему двух уравнений первого порядка относительно пары $(y, y')$.
Определение и метод
Метод (сведение уравнения n-го порядка к системе). Дано уравнение $n$-го порядка $y^{(n)}=g(t,y,y',\dots,y^{(n-1)})$. Введём новые неизвестные функции $x_1=y,\ x_2=y',\ x_3=y'',\ \dots,\ x_n=y^{(n-1)}$. Тогда:
$$x_1'=x_2,\quad x_2'=x_3,\quad \dots,\quad x_{n-1}'=x_n,\quad x_n'=g(t,x_1,x_2,\dots,x_n)$$Первые $n-1$ уравнений получаются автоматически — это просто переформулировка того, что $x_{k+1}$ по определению есть производная от $x_k$. Последнее уравнение — это исходное уравнение, переписанное через новые обозначения. В случае линейного уравнения $y^{(n)}+a_{n-1}y^{(n-1)}+\dots+a_1y'+a_0y=0$ матрица получившейся системы называется сопровождающей (компаньон-матрицей):
$$A=\begin{pmatrix}0&1&0&\cdots&0\\0&0&1&\cdots&0\\\vdots&&&\ddots&\vdots\\0&0&0&\cdots&1\\-a_0&-a_1&-a_2&\cdots&-a_{n-1}\end{pmatrix}$$
Полезно сразу отметить: характеристическое уравнение компаньон-матрицы $\det(A-\lambda I)=0$ в точности совпадает с характеристическим уравнением исходного дифференциального уравнения $n$-го порядка, которое ты, возможно, уже видел для отдельных линейных уравнений второго порядка. Это не совпадение, а прямое следствие того, что мы просто переписали одно и то же уравнение в другой форме — собственные значения матрицы компаньона несут ровно ту же информацию, что и корни характеристического многочлена уравнения.
Разбор примеров
Пример 1 (лёгкий). Свести уравнение $y''-5y'+6y=0$ к системе двух уравнений первого порядка и записать матрицу.
Введём $x_1=y,\ x_2=y'$. Тогда $x_1'=x_2$ — это первое уравнение автоматически. Из исходного уравнения $y''=5y'-6y$, то есть $x_2'=5x_2-6x_1=-6x_1+5x_2$.
$$\mathbf{x}'=\begin{pmatrix}0&1\\-6&5\end{pmatrix}\mathbf{x}$$Ответ: $A=\begin{pmatrix}0&1\\-6&5\end{pmatrix}$. Для проверки: характеристическое уравнение $\lambda^2-5\lambda+6=0$ даёт корни $\lambda=2,3$ — в точности те же числа, что и корни характеристического уравнения исходного уравнения второго порядка.
Пример 2 (средний). Свести уравнение гармонического осциллятора без трения $y''+\omega^2y=0$ (математическая модель пружины без сопротивления воздуха) к системе и найти собственные значения получившейся матрицы.
Введём $x_1=y,\ x_2=y'$. Тогда $x_1'=x_2$, а из $y''=-\omega^2y$ получаем $x_2'=-\omega^2x_1$.
$$\mathbf{x}'=\begin{pmatrix}0&1\\-\omega^2&0\end{pmatrix}\mathbf{x}$$Характеристическое уравнение: $\det\begin{pmatrix}-\lambda&1\\-\omega^2&-\lambda\end{pmatrix}=\lambda^2+\omega^2=0$, откуда $\lambda=\pm i\omega$ — чисто мнимые собственные значения.
Ответ: $A=\begin{pmatrix}0&1\\-\omega^2&0\end{pmatrix}$, собственные значения $\lambda=\pm i\omega$. Запомни этот результат — чисто мнимые собственные значения означают, что решение состоит из незатухающих колебаний (никакого трения нет, значит энергия не рассеивается), и в разделе про фазовые портреты мы увидим, что такой матрице соответствует особая точка типа «центр» — замкнутые эллиптические траектории вокруг положения равновесия.
Пример 3 (сложный, машинное обучение). Динамика оптимизатора с моментом вблизи квадратичного минимума функции потерь по одному весу $w$ приближённо описывается уравнением второго порядка $w''+bw'+kw=0$, где $k>0$ — «жёсткость» вдоль этого направления (по сути, собственное значение гессиана функции потерь вдоль данного направления), а $b>0$ — коэффициент затухания, связанный с параметром момента оптимизатора (это прямой аналог механического осциллятора с трением: масса — единичная, $k$ играет роль жёсткости пружины, $b$ — роль вязкого трения). Свести это уравнение к системе первого порядка относительно веса $w$ и его «скорости» $v=w'$.
Введём $x_1=w,\ x_2=v=w'$. Тогда $x_1'=x_2$, а из $w''=-kw-bw'$ получаем $x_2'=-kx_1-bx_2$.
$$\mathbf{x}'=\begin{pmatrix}0&1\\-k&-b\end{pmatrix}\mathbf{x}$$Ответ: $A=\begin{pmatrix}0&1\\-k&-b\end{pmatrix}$. Эта матрица станет главной героиней раздела про фазовые портреты: именно от соотношения между $k$ (жёсткостью, то есть кривизной функции потерь) и $b$ (силой момента-трения) зависит, будет ли обучение с моментом плавно, монотонно сходиться к минимуму, или же веса модели будут «проскакивать» минимум и совершать затухающие колебания вокруг него — картина, которую ты наверняка видел на кривой потерь при слишком агрессивной настройке момента оптимизатора.
Почему это важно
Приём сведения уравнения высокого порядка к системе первого порядка избавляет от необходимости придумывать отдельную теорию для уравнений второго порядка, отдельную — для третьего, и так далее до бесконечности. Вместо этого достаточно один раз тщательно изучить теорию систем первого порядка — а её мы как раз и строим в этом уроке — и дальше применять её ко всем уравнениям произвольного порядка автоматически. Более того, этот приём — не абстрактная формальность: как показал последний пример, именно так динамика оптимизатора с моментом (изначально уравнение второго порядка относительно одного веса) естественно превращается в систему первого порядка относительно пары «положение-скорость», и именно эта система откроет нам дверь к следующему, центральному разделу урока.
Собственные значения и собственные векторы: ключ к решению системы
Интуиция: ищем направления, вдоль которых всё просто
Давай разберёмся, как же на самом деле решать однородную систему $\mathbf{x}'=A\mathbf{x}$. Если бы матрица $A$ была диагональной, задача была бы тривиальной: каждое уравнение было бы независимым от остальных, вида $x_i'=\lambda_ix_i$, а решение — просто экспонентой $x_i(t)=C_ie^{\lambda_it}$. Проблема в том, что в общем случае матрица $A$ недиагональна, и все переменные перемешаны между собой.
Но вот в чём идея, за которую стоит зацепиться: что, если существуют особые направления в пространстве — векторы $\mathbf{v}$, — вдоль которых матрица $A$ действует так же просто, как число? То есть направления, для которых $A\mathbf{v}=\lambda\mathbf{v}$ — применение матрицы к вектору не поворачивает его, а лишь растягивает или сжимает в $\lambda$ раз. Именно это ты изучал в теме про собственные значения и собственные векторы матрицы. И если такое особое направление найдено, вдоль него система «раскручивается» так же просто, как одно скалярное уравнение — с решением в виде экспоненты $e^{\lambda t}$.
Определение и метод
Метод (решение через собственные значения). Ищем решения однородной системы $\mathbf{x}'=A\mathbf{x}$ в виде $\mathbf{x}(t)=e^{\lambda t}\mathbf{v}$, где $\lambda$ — число, а $\mathbf{v}$ — постоянный вектор. Подставляя, получаем $\lambda e^{\lambda t}\mathbf{v}=Ae^{\lambda t}\mathbf{v}$, а после сокращения на $e^{\lambda t}\ne0$ — ровно уравнение на собственные значения и собственные векторы:
$$A\mathbf{v}=\lambda\mathbf{v}$$Если у матрицы $A$ размера $n\times n$ нашлось $n$ линейно независимых собственных векторов $\mathbf{v}_1,\dots,\mathbf{v}_n$ с (в общем случае различными) собственными значениями $\lambda_1,\dots,\lambda_n$, то общее решение системы — это их линейная комбинация:
$$\mathbf{x}(t)=C_1e^{\lambda_1t}\mathbf{v}_1+C_2e^{\lambda_2t}\mathbf{v}_2+\dots+C_ne^{\lambda_nt}\mathbf{v}_n$$Константы $C_1,\dots,C_n$ находятся из начальных условий $\mathbf{x}(0)=\mathbf{x}_0$ — точно так же, как ты находил постоянные интегрирования из начальных условий для одного уравнения.
Если собственные значения комплексно-сопряжённые (что для матриц с действительными коэффициентами всегда происходит парами $\lambda=\alpha\pm i\beta$), формула не теряет силы, но требует дополнительного шага: комплексное решение $e^{(\alpha+i\beta)t}\mathbf{v}$ раскладывается по формуле Эйлера на действительную и мнимую части, и обе части по отдельности дают два действительных линейно независимых решения. Мы разберём это явно в следующем разделе про фазовые портреты.
Разбор примеров
Пример 1 (лёгкий). Решить систему $x_1'=2x_1,\ x_2'=5x_2$ с начальными условиями $x_1(0)=3,\ x_2(0)=-1$.
Матрица здесь уже диагональна: $A=\begin{pmatrix}2&0\\0&5\end{pmatrix}$, поэтому собственные векторы — это просто стандартные орты $\mathbf{v}_1=(1,0)^{\mathsf T}$ с собственным значением $\lambda_1=2$ и $\mathbf{v}_2=(0,1)^{\mathsf T}$ с собственным значением $\lambda_2=5$ (для диагональной матрицы это очевидно из самого её вида — умножение на диагональную матрицу действует на каждую координатную ось независимо). Общее решение: $\mathbf{x}(t)=C_1e^{2t}(1,0)^{\mathsf T}+C_2e^{5t}(0,1)^{\mathsf T}$, то есть $x_1(t)=C_1e^{2t}$, $x_2(t)=C_2e^{5t}$. Из начальных условий: $C_1=3$, $C_2=-1$.
Ответ: $x_1(t)=3e^{2t}$, $x_2(t)=-e^{5t}$.
Пример 2 (средний, полный разбор системы 2×2). Решить систему $x_1'=4x_1+2x_2,\ x_2'=3x_1+3x_2$ с начальными условиями $x_1(0)=5,\ x_2(0)=0$.
Матрица системы: $A=\begin{pmatrix}4&2\\3&3\end{pmatrix}$. Находим собственные значения из характеристического уравнения $\det(A-\lambda I)=0$:
$$(4-\lambda)(3-\lambda)-2\cdot3=0 \ \Rightarrow\ 12-7\lambda+\lambda^2-6=0 \ \Rightarrow\ \lambda^2-7\lambda+6=0$$Корни: $\lambda=6$ и $\lambda=1$.
Находим собственный вектор для $\lambda=6$: из $(A-6I)\mathbf{v}=0$ первая строка даёт $(4-6)v_1+2v_2=0$, то есть $-2v_1+2v_2=0$, откуда $v_1=v_2$. Берём $\mathbf{v}_1=(1,1)^{\mathsf T}$.
Находим собственный вектор для $\lambda=1$: из $(A-I)\mathbf{v}=0$ первая строка даёт $3v_1+2v_2=0$, откуда $v_2=-\dfrac32v_1$. Берём $\mathbf{v}_2=(2,-3)^{\mathsf T}$ (чтобы избавиться от дроби).
Общее решение: $\mathbf{x}(t)=C_1e^{6t}(1,1)^{\mathsf T}+C_2e^{t}(2,-3)^{\mathsf T}$, то есть
$$x_1(t)=C_1e^{6t}+2C_2e^{t}, \qquad x_2(t)=C_1e^{6t}-3C_2e^{t}$$Подставим начальные условия $t=0$: $C_1+2C_2=5$ и $C_1-3C_2=0$. Из второго уравнения $C_1=3C_2$; подставляя в первое: $3C_2+2C_2=5$, откуда $C_2=1$, $C_1=3$.
$$x_1(t)=3e^{6t}+2e^{t}, \qquad x_2(t)=3e^{6t}-3e^{t}$$Проверим подстановкой в исходную систему: $x_1'(t)=18e^{6t}+2e^t$, а $4x_1+2x_2=4(3e^{6t}+2e^t)+2(3e^{6t}-3e^t)=18e^{6t}+2e^t$ — совпадает. Аналогично $x_2'(t)=18e^{6t}-3e^t$, а $3x_1+3x_2=3(3e^{6t}+2e^t)+3(3e^{6t}-3e^t)=18e^{6t}-3e^t$ — тоже совпадает.
Ответ: $x_1(t)=3e^{6t}+2e^{t}$, $x_2(t)=3e^{6t}-3e^{t}$.
Пример 3 (сложный, машинное обучение). Гессиан функции потерь вблизи минимума равен $H=\begin{pmatrix}5&4\\4&5\end{pmatrix}$. Решить систему градиентного потока $\mathbf{w}'=-H\mathbf{w}$ с начальным отклонением весов от минимума $\mathbf{w}(0)=(1,3)^{\mathsf T}$ и объяснить, что происходит со сходимостью вдоль разных направлений.
Матрица системы: $A=-H=\begin{pmatrix}-5&-4\\-4&-5\end{pmatrix}$. Характеристическое уравнение для $H$ (собственные значения $A=-H$ — это просто числа со знаком минус): $\det(H-\mu I)=(5-\mu)^2-16=0$, откуда $5-\mu=\pm4$, то есть $\mu=9$ или $\mu=1$. Значит собственные значения матрицы $A=-H$ равны $\lambda=-9$ и $\lambda=-1$.
Собственный вектор для $\mu=9$ (матрицы $H$, он же собственный вектор $A$ для $\lambda=-9$): из $(H-9I)\mathbf{v}=0$ получаем $-4v_1+4v_2=0$, то есть $v_1=v_2$. Берём $\mathbf{v}_1=(1,1)^{\mathsf T}$.
Собственный вектор для $\mu=1$: из $(H-I)\mathbf{v}=0$ получаем $4v_1+4v_2=0$, то есть $v_2=-v_1$. Берём $\mathbf{v}_2=(1,-1)^{\mathsf T}$.
Общее решение: $\mathbf{w}(t)=C_1e^{-9t}(1,1)^{\mathsf T}+C_2e^{-t}(1,-1)^{\mathsf T}$. Начальные условия: $C_1+C_2=1$, $C_1-C_2=3$. Складывая: $2C_1=4$, значит $C_1=2$, $C_2=-1$.
$$\mathbf{w}(t)=2e^{-9t}(1,1)^{\mathsf T}-e^{-t}(1,-1)^{\mathsf T}, \qquad \text{то есть } w_1(t)=2e^{-9t}-e^{-t}, \quad w_2(t)=2e^{-9t}+e^{-t}$$Ответ: $w_1(t)=2e^{-9t}-e^{-t}$, $w_2(t)=2e^{-9t}+e^{-t}$. Содержательный вывод здесь — самый важный во всём уроке для приложений к машинному обучению: вдоль направления $(1,1)$ (собственное значение гессиана $\mu=9$) отклонение весов затухает как $e^{-9t}$ — очень быстро. А вдоль направления $(1,-1)$ (собственное значение гессиана $\mu=1$) отклонение затухает лишь как $e^{-t}$ — в девять раз медленнее. Уже при $t=1$ первая компонента почти исчезает ($e^{-9}\approx0{,}0001$), тогда как вторая всё ещё заметна ($e^{-1}\approx0{,}368$). Это и есть математическое объяснение знакомой картины «застревания» градиентного спуска в узком овраге функции потерь: скорость сходимости вдоль каждого направления определяется соответствующим собственным значением гессиана, а общая скорость сходимости всей системы определяется самым маленьким из них — самым «пологим» направлением оврага.
Почему это важно
Формула $\mathbf{x}(t)=\sum_iC_ie^{\lambda_it}\mathbf{v}_i$ — это не просто вычислительный трюк, а глубокое утверждение о структуре решения: любая система линейных дифференциальных уравнений «расщепляется» на независимые одномерные сценарии вдоль собственных направлений матрицы $A$, и в каждом таком направлении поведение системы — это просто экспоненциальный рост или затухание со скоростью, равной соответствующему собственному значению. Именно поэтому анализ собственных значений матрицы (гессиана — в задачах оптимизации, матрицы линеаризации — в задачах устойчивости) настолько важен на практике: не нужно решать дифференциальное уравнение целиком, чтобы понять качественное поведение системы, — достаточно посмотреть на собственные значения матрицы, которая её описывает.
Фазовые портреты: узел, седло, фокус, центр
Интуиция: рисуем траектории, не решая уравнения
До сих пор мы получали явные формулы решений. Но часто интереснее (и нагляднее) не выписывать формулы, а нарисовать сами траектории на плоскости $(x_1,x_2)$ — так называемый фазовый портрет системы. Представь себе плоскость координат как «карту состояний» системы: каждая точка на этой плоскости — это одно конкретное состояние (например, конкретная пара значений весов $w_1, w_2$), а траектория решения — это путь, по которому система движется во времени, стартуя из какой-то начальной точки.
Оказывается, для системы $2\times2$ вид этих траекторий (независимо от конкретных начальных условий) полностью определяется всего двумя числами матрицы $A$ — её собственными значениями. В зависимости от того, какие они — действительные одного знака, действительные разных знаков, комплексные с ненулевой действительной частью или чисто мнимые, — траектории складываются в один из четырёх характерных узоров, у каждого из которых есть собственное название.
Определение и метод
Метод (классификация особой точки по следу и определителю). Для системы $2\times2$ с матрицей $A$ введём след $T=\operatorname{tr}A=\lambda_1+\lambda_2$ (сумму собственных значений) и определитель $D=\det A=\lambda_1\lambda_2$ (произведение собственных значений). Тип особой точки в начале координат:
$D<0$ — седло: собственные значения действительны и имеют разные знаки. Вдоль одного собственного направления траектории уходят от начала координат, вдоль другого — приближаются к нему; почти все траектории в итоге убегают в бесконечность вдоль «неустойчивого» направления.
$D>0$ и $T^2-4D\ge0$ — узел: собственные значения действительны и одного знака. Все траектории либо стягиваются к началу координат (устойчивый узел, если $T<0$, то есть оба собственных значения отрицательны), либо расходятся от него (неустойчивый узел, если $T>0$).
$D>0$ и $T^2-4D<0$, но $T\ne0$ — фокус: собственные значения комплексно-сопряжённые $\lambda=\alpha\pm i\beta$ с $\alpha\ne0$. Траектории закручиваются по спирали — сходятся к началу координат при $\alpha<0$ (устойчивый фокус) или раскручиваются от него при $\alpha>0$ (неустойчивый фокус).
$D>0$ и $T=0$ — центр: собственные значения чисто мнимые $\lambda=\pm i\beta$. Траектории — замкнутые эллипсы вокруг начала координат; система вечно колеблется, не приближаясь и не удаляясь от положения равновесия.
Обрати внимание на глубокий смысл этой классификации: знак действительной части собственных значений ($\operatorname{Re}\lambda$) определяет устойчивость — отрицательная действительная часть означает затухание, положительная — раскачку, а нулевая — вечные незатухающие колебания. Мнимая часть (если она есть) определяет только частоту вращения по спирали, но никак не влияет на то, сходится траектория к нулю или нет.
Разбор примеров
Пример 1 (лёгкий, узел). Определить тип особой точки и качественно описать фазовый портрет для системы с матрицей $A=\begin{pmatrix}-1&0\\0&-2\end{pmatrix}$.
Матрица диагональна, поэтому собственные значения видны сразу: $\lambda_1=-1$, $\lambda_2=-2$ — оба действительны и отрицательны. След $T=-3<0$, определитель $D=2>0$, дискриминант $T^2-4D=9-8=1>0$.
Ответ: устойчивый узел. Все траектории с ростом времени стягиваются к началу координат, причём вдоль оси $x_2$ (собственное значение $-2$) они приближаются быстрее, чем вдоль оси $x_1$ (собственное значение $-1$) — поэтому большинство траекторий на подходе к нулю выглядят как «прижимающиеся» к оси $x_1$, более медленному направлению.
Пример 2 (средний, седло). Определить тип особой точки для системы $x_1'=x_1+4x_2,\ x_2'=2x_1+3x_2$.
Матрица $A=\begin{pmatrix}1&4\\2&3\end{pmatrix}$. Характеристическое уравнение: $(1-\lambda)(3-\lambda)-8=0\ \Rightarrow\ \lambda^2-4\lambda-5=0\ \Rightarrow\ (\lambda-5)(\lambda+1)=0$, корни $\lambda=5$ и $\lambda=-1$ — разных знаков. Определитель $D=1\cdot3-4\cdot2=-5<0$, что сразу подтверждает седло без вычисления самих корней.
Ответ: седло. Собственный вектор для $\lambda=5$: из $(A-5I)\mathbf{v}=0$ получаем $-4v_1+4v_2=0$, то есть $\mathbf{v}_1=(1,1)^{\mathsf T}$ — это «неустойчивое» направление, вдоль него почти все траектории убегают на бесконечность. Собственный вектор для $\lambda=-1$: из $(A+I)\mathbf{v}=0$ получаем $2v_1+4v_2=0$, то есть $\mathbf{v}_2=(2,-1)^{\mathsf T}$ — это единственное «устойчивое» направление, приближение к нулю вдоль него возможно только при точном попадании начальной точки на эту прямую; при малейшем отклонении траектория рано или поздно свернёт в сторону неустойчивого направления и уйдёт в бесконечность.
Пример 3 (сложный, машинное обучение, фокус и центр). Вернёмся к динамике оптимизатора с моментом из раздела про сведение уравнений: $w''+bw'+kw=0$ с матрицей $A=\begin{pmatrix}0&1\\-k&-b\end{pmatrix}$. Рассмотрим два конкретных сценария при фиксированной «жёсткости» $k=4$ (это собственное значение гессиана вдоль данного направления): (а) умеренный момент $b=2$; (б) момент без трения вовсе, $b=0$.
Сценарий (а), $b=2$. Характеристическое уравнение: $\lambda^2+2\lambda+4=0$. Дискриминант: $4-16=-12<0$, значит корни комплексные: $\lambda=\dfrac{-2\pm\sqrt{-12}}{2}=-1\pm i\sqrt3$. Действительная часть $\operatorname{Re}\lambda=-1<0$.
Ответ (а): устойчивый фокус. Веса модели, «проскочив» минимум по инерции момента, не улетают в бесконечность, а закручиваются спиралью вокруг минимума, совершая затухающие колебания с частотой $\sqrt3$ и огибающей $e^{-t}$ — это в точности та картина «перерегулирования» с постепенным затуханием, которую можно наблюдать на кривой обучения при умеренно агрессивной настройке момента.
Сценарий (б), $b=0$. Характеристическое уравнение: $\lambda^2+4=0$, откуда $\lambda=\pm2i$ — чисто мнимые собственные значения, след $T=0+(-0)=0$ (напомним, $T=-b$, а при $b=0$ след равен нулю).
Ответ (б): центр. Без трения (без момента, гасящего колебания) веса модели никогда не сходятся к минимуму — они вечно колеблются вокруг него с периодом $T=\dfrac{2\pi}{2}=\pi$, ни на йоту не приближаясь и не удаляясь. Содержательный вывод для машинного обучения: чистый момент без какого-либо механизма затухания (или без уменьшения шага обучения) в принципе не способен «остановиться» точно в минимуме квадратичной функции потерь — обязательно нужен хоть какой-то элемент трения (будь то явное затухание момента, уменьшение скорости обучения или естественная нелинейность реальной функции потерь за пределами квадратичного приближения), иначе оптимизатор обречён на вечные, никогда не убывающие колебания.
Почему это важно
Фазовый портрет — это способ увидеть судьбу решения системы, не решая её явно: достаточно посчитать всего два числа, след и определитель матрицы, чтобы мгновенно понять, устремится ли система к равновесию, убежит от него или будет вечно колебаться вокруг него. В контексте машинного обучения эта классификация буквально отвечает на вопрос «сойдётся ли обучение и как именно оно будет выглядеть на кривой потерь»: плавное монотонное снижение (устойчивый узел), затухающие «звоночки» — характерные всплески потерь после резких скачков скорости обучения (устойчивый фокус), незатухающая осцилляция без всякой сходимости (центр) или, что особенно важно для глубокого обучения, — неустойчивое, взрывное поведение вблизи седловой точки функции потерь, где вдоль одних направлений градиентный спуск сходится, а вдоль других — убегает, что и объясняет, почему седловые точки, а не локальные минимумы, часто оказываются главным препятствием при обучении нейросетей с большим числом параметров.
Практика: 30 заданий
Базовые задания (1–10)
Задание 1: Записать систему $x_1'=2x_1-x_2,\ x_2'=x_1+2x_2$ в матричной форме, указав матрицу $A$.
Задание 2: Найти собственные значения матрицы $A=\begin{pmatrix}3&0\\0&-2\end{pmatrix}$.
Задание 3: Свести уравнение $y''-3y'+2y=0$ к системе двух уравнений первого порядка и записать матрицу.
Задание 4: Найти след и определитель матрицы $A=\begin{pmatrix}1&2\\3&4\end{pmatrix}$ и определить тип особой точки.
Задание 5: Решить систему $x_1'=5x_1,\ x_2'=-3x_2$ с начальными условиями $x_1(0)=2,\ x_2(0)=-1$.
Задание 6: Найти собственные векторы матрицы $A=\begin{pmatrix}2&0\\0&5\end{pmatrix}$.
Задание 7: Классифицировать особую точку для матрицы с собственными значениями $\lambda_1=-2,\ \lambda_2=-5$.
Задание 8: Классифицировать особую точку для матрицы с собственными значениями $\lambda=3i,\ \lambda=-3i$.
Задание 9: Свести уравнение третьего порядка $y'''-y=0$ к системе трёх уравнений первого порядка и записать матрицу.
Задание 10: Дана система $\mathbf{x}'=A\mathbf{x}$ с $A=\begin{pmatrix}0&1\\-1&0\end{pmatrix}$ (гармонический осциллятор без трения). Найти собственные значения и тип портрета.
Средние задания (11–20)
Задание 11: Решить систему $x_1'=x_1+4x_2,\ x_2'=2x_1+3x_2$ с начальными условиями $x_1(0)=4,\ x_2(0)=1$.
Задание 12: Определить тип особой точки для матрицы $A=\begin{pmatrix}1&4\\2&3\end{pmatrix}$ (та же матрица, что в задании 11).
Задание 13: Определить тип особой точки для системы, полученной сведением уравнения $y''+4y'+3y=0$.
Задание 14: Свести уравнение $y''+2y'+5y=0$ к системе и найти собственные значения матрицы.
Задание 15: Найти общее решение системы $x_1'=3x_2,\ x_2'=3x_1$ через собственные значения и собственные векторы.
Задание 16: Определить тип особой точки при собственных значениях $\lambda=2\pm5i$.
Задание 17: Определить тип особой точки при собственных значениях $\lambda=\pm7i$ и найти период колебаний.
Задание 18 (машинное обучение): Гессиан функции потерь в некоторой критической точке имеет собственные значения $\lambda_1=3,\ \lambda_2=-2$ (типичная седловая точка нелинейной функции потерь нейросети). Определить тип особой точки для градиентного потока $\mathbf{w}'=-H\mathbf{w}$ и объяснить смысл.
Задание 19: Решить систему $x_1'=2x_1,\ x_2'=x_1+3x_2$ с начальными условиями $x_1(0)=1,\ x_2(0)=0$.
Задание 20 (машинное обучение): Градиентный поток $\mathbf{w}'=-H\mathbf{w}$ для гессиана с собственными значениями $\lambda_1=100,\ \lambda_2=1$. Найти отношение характерных времён затухания вдоль каждого направления и объяснить связь с числом обусловленности.
Продвинутые задания (21–30)
Задание 21: Свести уравнение $y'''-6y''+11y'-6y=0$ к системе трёх уравнений первого порядка и найти собственные значения матрицы, зная, что характеристический многочлен раскладывается как $(\lambda-1)(\lambda-2)(\lambda-3)$.
Задание 22: Для системы с матрицей $A=\begin{pmatrix}0&1\\-2&-2\end{pmatrix}$ (компаньон уравнения $w''+2w'+2w=0$) найти собственные значения, определить тип особой точки и период колебаний.
Задание 23: Для системы с матрицей $A=\begin{pmatrix}0&4\\-1&0\end{pmatrix}$ найти собственные значения и тип особой точки.
Задание 24 (машинное обучение): Оптимизатор с моментом описывается системой $w'=v,\ v'=-kw-bv$ с $k=9,\ b=6$. Определить тип особой точки и физический смысл результата.
Задание 25: Дана матрица $A=\begin{pmatrix}0&1\\-4&-b\end{pmatrix}$ с фиксированным $k=4$ и переменным параметром затухания $b\ge0$. Определить, при каких значениях $b$ тип особой точки меняется с фокуса на узел.
Задание 26: Найти собственные значения матрицы $A=\begin{pmatrix}2&-5\\1&-2\end{pmatrix}$ и определить тип особой точки, не вычисляя корни явно.
Задание 27 (машинное обучение): В трёх разных критических точках функции потерь гессиан имеет собственные значения: точка $A$ — $(2,5)$; точка $B$ — $(3,-1)$; точка $C$ — $(-2,-4)$. Классифицировать поведение градиентного потока $\mathbf{w}'=-H\mathbf{w}$ в каждой точке.
Задание 28: Решить систему $x_1'=x_2,\ x_2'=x_1$ с начальными условиями $x_1(0)=3,\ x_2(0)=1$.
Задание 29 (продвинутое, матричная экспонента): Используя диагонализацию $A=PDP^{-1}$ для матрицы $A=\begin{pmatrix}4&2\\3&3\end{pmatrix}$ из теоретического раздела ($\lambda=6,1$, собственные векторы $(1,1)^{\mathsf T},(2,-3)^{\mathsf T}$), найти явный вид матричной экспоненты $e^{At}$.
Задание 30 (машинное обучение, финальное): Гессиан функции потерь в минимуме глубокой нейросети имеет собственные значения $\lambda_1=0{,}01$ и $\lambda_2=50$ (число обусловленности $\kappa=\lambda_{\max}/\lambda_{\min}=5000$ — типичная ситуация для плохо обусловленного «оврага»). а) Определить тип особой точки для градиентного потока. б) Оценить, во сколько раз быстрое направление затухает быстрее медленного. в) Объяснить связь с ограничением на шаг обучения дискретного градиентного спуска.
Частые ошибки
Разберём типичные промахи, которые встречаются при первом знакомстве с системами дифференциальных уравнений.
Первая ошибка — перепутать порядок действия матрицы на вектор и попытаться домножить вектор на матрицу справа вместо стандартного $A\mathbf{v}$ (матрица действует на вектор-столбец слева). Особенно легко ошибиться при переносе матрицы из системы уравнений: убедись, что строки матрицы соответствуют уравнениям, а столбцы — коэффициентам при переменных именно в том порядке, в котором ты выписал вектор неизвестных.
Вторая ошибка — записать общее решение как линейную комбинацию $C_1e^{\lambda_1t}\mathbf{v}_1+\dots$ не проверив, что найденные собственные векторы действительно линейно независимы. Если собственное значение оказалось кратным (как в задании про критическое затухание момента), а независимого второго собственного вектора для него не нашлось, простая формула через сумму экспонент перестаёт работать и требует более тонкой техники присоединённых векторов — тему, которая выходит за рамки этого урока, но о существовании которой полезно знать.
Третья ошибка — при классификации особой точки перепутать модуль комплексного собственного значения с его действительной частью. Устойчивость (сходится траектория к нулю или нет) определяется исключительно знаком действительной части $\operatorname{Re}\lambda$, а мнимая часть влияет только на частоту закручивания по спирали — она не имеет никакого отношения к вопросу устойчивости.
Четвёртая ошибка — при сведении уравнения высокого порядка к системе перепутать порядок вспомогательных переменных или забыть, что все уравнения, кроме последнего, — это чисто формальные переопределения ($x_2=x_1'$ и так далее), а не содержательные физические соотношения. Единственное место, куда попадает реальное содержание исходного уравнения, — это самое последнее уравнение системы.
Пятая ошибка — считать, что несимметричная матрица обязана иметь комплексные собственные значения, а симметричная — обязательно действительные. Второе утверждение действительно всегда верно (это фундаментальный факт линейной алгебры для симметричных матриц), но первое — нет: у несимметричной матрицы собственные значения вполне могут оказаться действительными, как в большинстве примеров этого урока с узлами и сёдлами.
Шестая ошибка — при работе с комплексными собственными значениями забыть перейти к действительным решениям через реальную и мнимую части комплексного решения, оставив ответ в виде комплексной экспоненты. Физически осмысленное решение системы с действительными коэффициентами обязано быть действительной функцией времени — комплексный вид $e^{(\alpha+i\beta)t}\mathbf{v}$ хорош только как промежуточный шаг вычисления.
Седьмая ошибка, характерная именно для неоднородных систем $\mathbf{x}'=A\mathbf{x}+\mathbf{f}(t)$: попытаться напрямую искать собственные значения и применить к ним формулу для однородного случая, забыв, что для полного решения ещё нужно найти частное решение неоднородной системы и прибавить его к общему решению однородной — структура решения здесь полностью аналогична одному линейному уравнению, и пропускать этот шаг нельзя.
Главное запомнить
Зафиксируем ключевые идеи этого урока — а вместе с ним и всего раздела дифференциальных уравнений — в сжатом виде.
-
Система линейных дифференциальных уравнений первого порядка записывается в компактной матричной форме $\mathbf{x}'=A\mathbf{x}+\mathbf{f}(t)$, где $\mathbf{x}$ — вектор неизвестных функций, $A$ — постоянная матрица коэффициентов.
-
Любое дифференциальное уравнение $n$-го порядка стандартным приёмом сводится к системе из $n$ уравнений первого порядка: новые переменные — это сама функция и все её производные до порядка $n-1$.
-
Решения однородной системы $\mathbf{x}'=A\mathbf{x}$ ищутся в виде $\mathbf{x}(t)=e^{\lambda t}\mathbf{v}$, что сводит задачу напрямую к уравнению на собственные значения и собственные векторы $A\mathbf{v}=\lambda\mathbf{v}$.
-
Если у матрицы $A$ размера $n\times n$ есть $n$ линейно независимых собственных векторов, общее решение — это линейная комбинация $\sum_iC_ie^{\lambda_it}\mathbf{v}_i$, а константы находятся из начальных условий.
-
Для систем $2\times2$ тип особой точки в начале координат определяется знаком дискриминанта и следа характеристического уравнения: седло при $D<0$, узел при $D>0$ и действительных корнях, фокус при $D>0$ и комплексных корнях с $T\ne0$, центр при $D>0$ и $T=0$.
-
Устойчивость особой точки определяется знаком действительной части собственных значений: отрицательная действительная часть — затухание к равновесию, положительная — уход от него, нулевая — вечные незатухающие колебания.
-
Непрерывный градиентный спуск вблизи минимума функции потерь — это в точности система $\mathbf{w}'=-H\mathbf{w}$, где $H$ — гессиан; собственные значения гессиана определяют скорость сходимости вдоль каждого направления в пространстве весов.
-
Число обусловленности гессиана $\kappa=\lambda_{\max}/\lambda_{\min}$ управляет тем, во сколько раз медленнее всего сходится градиентный спуск вдоль самого пологого направления — именно это стоит за проблемой «оврагов» в оптимизации.
-
Динамика оптимизатора с моментом описывается уравнением второго порядка, аналогичным механическому осциллятору с трением, — отсюда прямая связь между типом фазового портрета (узел, фокус, центр) и тем, как выглядит кривая обучения: монотонно, с затухающими колебаниями или вовсе без сходимости.
-
Седловые точки функции потерь в машинном обучении — это в точности особые точки типа «седло» в терминах данного урока: устойчивые вдоль одних направлений и неустойчивые вдоль других, что и объясняет, почему они, а не локальные минимумы, часто оказываются главным препятствием обучения.
Связь с другими темами курса
Этот урок — не просто последняя тема программы, а естественная точка, в которой сходятся сразу несколько крупных линий всего университетского курса. Понятие производной и техника решения одного дифференциального уравнения напрямую использованы при сведении уравнения высшего порядка к системе. Аппарат собственных значений, собственных векторов и диагонализации матриц, изученный в разделе линейной алгебры, оказался не абстрактной алгебраической игрой, а буквально ключом к явному решению систем — той самой связкой, ради которой курс так подробно останавливался на этих понятиях. Градиент и гессиан функций нескольких переменных, частные производные и разложение в ряд Тейлора вблизи точки минимума — весь этот аппарат многомерного анализа понадобился, чтобы честно записать непрерывный градиентный спуск в виде линейной системы дифференциальных уравнений. А качественный, геометрический взгляд на фазовые портреты во многом продолжает интуицию, наработанную при исследовании функций одной переменной на экстремумы, выпуклость и характер критических точек — только теперь эта интуиция работает не на прямой, а на целой плоскости (или в пространстве размерности, равной числу весов модели). Иными словами, сегодняшний урок — это не отдельная новая тема, а витрина, в которой одновременно выставлены результаты почти всех предыдущих разделов курса: пределов, производных, интегралов и линейной алгебры, работающих здесь сообща.
Интересные факты
Несколько любопытных деталей, выходящих за рамки основной теории урока.
-
Классическая модель Лотки-Вольтерры «хищник-жертва» — это нелинейная система дифференциальных уравнений, чей фазовый портрет вблизи точки равновесия часто выглядит как центр: численности хищников и жертв колеблются периодически, никогда не приходя к постоянному значению, что реально наблюдается в некоторых природных экосистемах (например, в знаменитых данных по рыси и зайцу-беляку канадской пушной торговли).
-
Метеоролог Эдвард Лоренц в 1963 году, упрощая уравнения конвекции атмосферы до системы всего из трёх нелинейных дифференциальных уравнений, обнаружил, что при определённых параметрах траектории решения никогда не повторяются и чрезвычайно чувствительны к начальным условиям — так родилось понятие странного аттрактора и получил распространение термин «эффект бабочки».
-
Работа о Neural ODE 2018 года получила награду за лучшую статью крупнейшей конференции по машинному обучению NeurIPS — редкий случай, когда классическая идея XVIII века (параметризованная система дифференциальных уравнений) оказалась в центре внимания современного искусственного интеллекта спустя два с половиной столетия.
-
Магистерская и докторская диссертации Александра Ляпунова 1892 года заложили не только теорию устойчивости систем дифференциальных уравнений, но и понятие «функции Ляпунова» — идею, которая сегодня активно используется для доказательства сходимости алгоритмов оптимизации в машинном обучении, включая теоретический анализ сходимости самого градиентного спуска.
Лайфхаки и полезные трюки
Несколько практических приёмов, которые экономят время и снижают риск ошибок при работе с системами дифференциальных уравнений.
-
Прежде чем искать собственные значения полностью, быстро посчитай след $T$ и определитель $D$ матрицы $2\times2$ — эти два числа сразу дают тип особой точки без явного решения квадратного уравнения, что особенно удобно, если тебе нужен только качественный ответ (сходится или нет), а не точная формула решения.
-
Всегда проверяй найденный собственный вектор прямой подстановкой $A\mathbf{v}=\lambda\mathbf{v}$ — это занимает несколько секунд, но полностью исключает арифметические ошибки, которые иначе всплывут только при финальной проверке всего решения.
-
После того как общее решение найдено, обязательно подставь его обратно в исходную систему (а не только в матричную форму) — это самый надёжный способ поймать ошибку в вычислении собственных значений, собственных векторов или констант интегрирования.
-
Держи под рукой простую мнемонику для типов особых точек: узел — «оба вещественных одного знака», седло — «вещественные разных знаков», фокус — «комплексные с ненулевой действительной частью», центр — «чисто мнимые». Эта фраза короче, чем формулы с $T$ и $D$, и легко всплывает в памяти на экзамене.
-
Если матрица $A$ размера $n\times n$ имеет $n$ различных (не совпадающих) собственных значений, она гарантированно диагонализуема — не нужно отдельно проверять линейную независимость собственных векторов, различность собственных значений уже это гарантирует.
-
В задачах машинного обучения, где матрица — это гессиан функции потерь, помни: число обусловленности $\kappa=\lambda_{\max}/\lambda_{\min}$ — это не абстрактная характеристика, а прямая оценка того, во сколько раз больше итераций потребуется градиентному спуску по сравнению с идеально «круглой» (изотропной) функцией потерь, у которой $\kappa=1$.
Вот и всё — ты закончил весь университетский курс математического анализа. Путь получился длинным: он начался с понятия предела последовательности, прошёл через непрерывность и производную, раскрылся в интегральном исчислении, расширился на функции нескольких переменных с их частными производными и градиентами, впитал в себя линейную алгебру с матрицами и собственными значениями — и завершился здесь, на системах дифференциальных уравнений, где все эти линии сошлись воедино. Ты сейчас в буквальном смысле обладаешь тем же математическим аппаратом, которым Ньютон описывал движение планет, Пуанкаре — предсказывал непредсказуемость хаоса, а современные исследователи глубокого обучения — объясняют, почему одни нейросети обучаются быстро, а другие застревают в оврагах функции потерь. Это серьёзный, полноценный набор инструментов, и дальше — в разделах теории вероятностей и машинного обучения — ты будешь пользоваться им постоянно, часто даже не замечая, насколько глубоко он вшит в то, что выглядит как «просто код» обучения модели. Поздравляю с завершением курса — и удачи в том, что будет дальше.
Понял тему? Закрепи в боте! 🚀
Попрактикуйся на задачах и получи персональные рекомендации от AI
💪 Начать тренировку