Предел функции 🎯
Есть баг, на который наступал почти каждый, кто хоть раз писал softmax руками. Код выглядит невинно: p = np.exp(z) / np.exp(z).sum(). На тестовых данных всё прекрасно. А потом в проде на вход приходят логиты вроде $[1000,\ 999,\ 998]$ — и функция возвращает nan. Не «неточный ответ», не «немного не тот класс», а полное ничто, которое дальше отравляет всю сеть. Причина в том, что $e^{1000}$ не помещается в число с плавающей точкой: максимум для float64 примерно $1{,}8 \cdot 10^{308}$, а $e^{710}$ уже больше. Получается $\frac{\infty}{\infty}$ — и компьютер честно говорит: «я не знаю».
Забавно, что математика на этот же вопрос отвечает точно так же: $\frac{\infty}{\infty}$ — это не число, это неопределённость. Символ, который означает «одной информации о том, что верх и низ растут, недостаточно; нужно смотреть, как именно они растут». И вот тут выясняется, что за словом «как именно» стоит целый аппарат, придуманный триста лет назад ровно для таких ситуаций. Он называется предел, и с его помощью баг из абзаца выше чинится одной строчкой — а заодно объясняется, почему у сигмоиды «умирают» градиенты, почему tanh считается лучше сигмоиды и почему при низкой температуре softmax превращается в argmax.
Давай разберёмся, в чём тут вообще проблема. Формула вроде $\frac{x^2-1}{x-1}$ прекрасно считается везде, кроме одной точки: при $x = 1$ получается $\frac{0}{0}$. Но подставь $x = 1{,}001$ — получишь $2{,}001$. Подставь $x = 0{,}9999$ — получишь $1{,}9999$. Функция ведёт себя так, будто в точке $1$ у неё «должно быть» значение $2$, просто кто-то вырезал из графика одну-единственную точку. Предел — это способ сказать «должно быть $2$» строго, без всяких «наверное» и «по идее». Это язык, на котором математика описывает поведение функции рядом с точкой, полностью игнорируя саму точку.
В прошлых двух уроках мы уже подбирались к этому: считали предел последовательности и вывели сумму бесконечной геометрической прогрессии, где $q^n$ «прижимается к нулю». Сегодня мы перенесём ту же идею с последовательностей на функции — и получим главный инструмент всего математического анализа. Без него не существует ни производной (урок 133), ни интеграла (урок 145), ни строгого понятия непрерывности (урок 132, следующий). А для тебя как для человека, идущего в ML, предел — это ещё и способ читать графики функций активации не глазами, а формулами: понимать, где функция «умирает», где она чувствительна, и что случится с обучением на краях.
🎯 Ты узнаешь:
- Что такое предел функции в точке и почему значение $f(a)$ к нему не имеет отношения
- Как определить предел строго — через последовательности (определение по Гейне) — и почему это определение так удобно для доказательства, что предела нет
- Что такое односторонние пределы и когда предела не существует, хотя оба односторонних есть
- Как считать пределы на бесконечности и находить горизонтальные асимптоты — прямое продолжение урока 89
- Шесть правил арифметики пределов и границу, за которой они перестают работать
- Как раскрывать неопределённости $\frac{0}{0}$ и $\frac{\infty}{\infty}$ четырьмя приёмами: разложением, сокращением, домножением на сопряжённое и заменой переменной
- Первый замечательный предел $\lim\limits_{x \to 0}\dfrac{\sin x}{x} = 1$ и целое семейство пределов, которые из него получаются
- Почему сигмоида «насыщается», откуда берутся затухающие градиенты и как предел чинит переполнение в softmax
История: откуда это взялось?
Понятие предела родилось из скандала. В 1660–70-х годах Ньютон и Лейбниц независимо друг от друга построили дифференциальное исчисление — и оно работало. Оно предсказывало орбиты планет, считало площади, решало задачи, перед которыми пасовала вся предыдущая математика. Одна беда: логического обоснования у него не было. Ньютон говорил о «флюксиях» и «исчезающих количествах», Лейбниц — о «бесконечно малых» $dx$, которые в одном месте выкладок считаются ненулевыми (на них делят!), а через строчку отбрасываются как нули. Математики пользовались, но морщились.
В 1734 году терпение лопнуло у епископа Джорджа Беркли. В памфлете «Аналитик» он разнёс новое исчисление в пух и прах, и его фраза вошла в историю: бесконечно малые — это «призраки почивших величин» (ghosts of departed quantities). «Что это за величины, — спрашивал Беркли, — которые не нули и не конечные числа? Разве вы не должны сперва объяснить, о чём говорите?» Возразить было нечего почти сто лет. Термин «предел» (limite) в современном смысле впервые аккуратно употребил Даламбер в статье для «Энциклопедии» 1765 года, но и у него это было скорее описание, чем определение.
Порядок навёл Огюстен Луи Коши в «Курсе анализа» 1821 года: он поставил предел в основание всего и стал определять через него и производную, и интеграл, и непрерывность. Формулировка Коши всё ещё содержала слова «неограниченно приближается», то есть апеллировала к интуиции движения. Последний шаг сделал Карл Вейерштрасс в 1860-х: он убрал из определения всякое движение и заменил его неравенствами — знаменитый язык «эпсилон-дельта», где нет ни времени, ни приближения, только «для любого $\varepsilon$ найдётся $\delta$». А в 1872 году Эдуард Гейне показал, что то же самое можно сказать на языке последовательностей — и именно этой, более наглядной, версией мы сегодня и воспользуемся.
Мостик в сегодня прямой и очень практичный. Вся численная математика, на которой стоит машинное обучение, — это управление пределами: сходится ли градиентный спуск, к чему стремится ошибка при росте выборки, устойчиво ли вычисление при экстремальных входах. Когда в PyTorch пишут logsumexp вместо наивной формулы, когда в коде появляется eps=1e-8 в знаменателе Adam, когда обсуждают, «затухают» или «взрываются» градиенты в глубокой сети — во всех этих случаях речь идёт ровно о том, что придумали Коши и Вейерштрасс: о поведении величины вблизи опасной точки, а не в ней.
Предел функции в точке
Интуиция: что происходит рядом, а не в точке
Представь, что ты замеряешь температуру двигателя датчиком, у которого одна сломанная ячейка памяти: ровно на отметке $90{,}0$ градусов он показывает мусор. При $89{,}9$ показывает $89{,}9$, при $90{,}1$ показывает $90{,}1$, а при $90{,}0$ — случайное число или вообще ошибку. Вопрос: какая на самом деле температура, когда стрелка проходит через девяносто? Ответ очевиден — девяносто. Ты знаешь его не потому, что прочитал в этой точке, а потому, что все окрестные показания сходятся к девяноста.
Вот это и есть предел. Тебя интересует не значение в точке, а то, к чему тянутся значения рядом с ней.
Возьмём конкретную функцию:
$$f(x) = \frac{x^2 - 1}{x - 1}.$$При $x = 1$ она не определена: и числитель, и знаменатель обращаются в ноль. Но давай подойдём к единице с двух сторон и посмотрим на значения:
| $x$ | $0{,}9$ | $0{,}99$ | $0{,}999$ | $1$ | $1{,}001$ | $1{,}01$ | $1{,}1$ |
|---|---|---|---|---|---|---|---|
| $f(x)$ | $1{,}9$ | $1{,}99$ | $1{,}999$ | — | $2{,}001$ | $2{,}01$ | $2{,}1$ |
Значения зажимаются вокруг двойки всё плотнее. И это не случайность: при $x \neq 1$ дробь честно сокращается, поскольку $x^2 - 1 = (x-1)(x+1)$, а на $x - 1 \neq 0$ делить можно:
$$\frac{x^2-1}{x-1} = \frac{(x-1)(x+1)}{x-1} = x + 1 \quad \text{при } x \neq 1.$$График $f$ — это прямая $y = x + 1$ с одной выколотой точкой $(1;\,2)$. Предел равен $2$ — тому самому значению, которое «должно было бы» стоять в дырке.
Ключевой момент, который срывает половину людей на первом же примере: предел вообще не смотрит на $f(a)$. Функция может быть в точке $a$ не определена — предел всё равно может существовать. Функция может быть определена, но иметь там «неправильное» значение — предел от этого не изменится. Возьми функцию
$$g(x) = \begin{cases} x + 1, & x \neq 1, \\ 100, & x = 1. \end{cases}$$Предел в точке $1$ по-прежнему равен $2$, хотя $g(1) = 100$. Мы подходим к точке, но никогда в неё не наступаем — по определению.
Строгое определение
Сначала одно техническое слово. Проколотой окрестностью точки $a$ называют множество точек, достаточно близких к $a$, но саму $a$ не включающее: например, все $x$ с $0 < |x - a| < r$. «Проколотая» — потому что из кружка вокруг $a$ вынули центр. Ровно в таком множестве и живёт предел.
Определение (предел функции по Гейне): Пусть функция $f$ определена в некоторой проколотой окрестности точки $a$. Число $L$ называется пределом функции $f$ в точке $a$, если для любой последовательности аргументов $(x_n)$, у которой $x_n \neq a$ и $x_n \to a$, соответствующая последовательность значений $f(x_n)$ стремится к $L$:
$$\lim_{x \to a} f(x) = L \iff \big(\forall (x_n):\ x_n \neq a,\ x_n \to a\big) \Rightarrow f(x_n) \to L.$$
Читается запись так: «предел функции $f$ от икс при икс, стремящемся к $a$, равен $L$».
Разберём определение по частям, потому что каждое слово в нём стоит не просто так.
«Для любой последовательности». Это самое сильное место. Недостаточно, чтобы значения сходились к $L$ вдоль одной удачной дорожки — они обязаны сходиться вдоль всех дорожек, ведущих в точку $a$. Подойди к $a$ слева, справа, скачками, по геометрической прогрессии — результат всегда один и тот же $L$.
«$x_n \neq a$». Тот самый прокол. Мы приближаемся к точке, но не заходим в неё, поэтому значение $f(a)$ в определении не участвует ни разу.
«$x_n \to a$». Здесь мы используем предел последовательности из урока 129: это уже знакомый объект, ничего нового вводить не надо. Определение по Гейне тем и хорошо, что сводит новое понятие к старому.
Есть и второй, эквивалентный способ сказать то же самое — определение по Коши на языке $\varepsilon$–$\delta$: для любого $\varepsilon > 0$ найдётся $\delta > 0$ такое, что из $0 < |x - a| < \delta$ следует $|f(x) - L| < \varepsilon$. Смысл тот же: «какую бы узкую полоску вокруг $L$ ты ни задал, я найду достаточно маленький кружок вокруг $a$, внутри которого график в эту полоску помещается». В строгом курсе анализа (урок 183) работают именно с ним, а нам сейчас удобнее версия Гейне — она нагляднее и мгновенно даёт способ доказывать, что предела нет.
Пример 1 (простой): предел многочлена
Найти $\lim\limits_{x \to 3} (2x + 1)$.
Шаг 1. Возьмём произвольную последовательность $x_n \to 3$, $x_n \neq 3$.
Шаг 2. По свойствам пределов последовательностей (урок 129): $2x_n \to 6$, а значит $2x_n + 1 \to 7$.
Шаг 3. Последовательность была произвольной, а результат получился один и тот же — значит, по определению предел существует и равен $7$.
Ответ: $\lim\limits_{x \to 3} (2x + 1) = 7$.
Здесь предел совпал со значением функции в точке: $f(3) = 7$. Это не совпадение — это признак непрерывности, и ей посвящён следующий урок. Все многочлены, корни, показательные, логарифмические и тригонометрические функции этим свойством обладают в своей области определения, поэтому у них предел находится подстановкой.
Пример 2 (средний): предел там, где функция не определена
Найти $\lim\limits_{x \to 2} \dfrac{x^2 - 5x + 6}{x - 2}$.
Шаг 1. Проверяем подстановкой: числитель $4 - 10 + 6 = 0$, знаменатель $0$. Получили неопределённость $\frac{0}{0}$ — подстановка не работает.
Шаг 2. Раскладываем числитель. Корни $x^2 - 5x + 6$ — это $2$ и $3$, значит $x^2 - 5x + 6 = (x-2)(x-3)$.
Шаг 3. Сокращаем — законно, потому что по определению предела $x \neq 2$, а значит $x - 2 \neq 0$:
$$\frac{(x-2)(x-3)}{x-2} = x - 3 \quad \text{при } x \neq 2.$$Шаг 4. Осталось найти $\lim\limits_{x\to 2}(x-3) = 2 - 3 = -1$.
Проверка: при $x = 2{,}001$ получаем $\frac{2{,}001^2 - 5\cdot 2{,}001 + 6}{0{,}001} = \frac{-0{,}000999}{0{,}001} = -0{,}999$ ✅
Ответ: $-1$.
Пример 3 (сложный): предела не существует
Докажем, что $\lim\limits_{x \to 0} \sin\dfrac{1}{x}$ не существует.
Шаг 1. Определение по Гейне требует, чтобы все последовательности давали один и тот же результат. Чтобы опровергнуть, достаточно предъявить две последовательности с разными результатами.
Шаг 2. Первая последовательность: $x_n = \dfrac{1}{\pi n}$. Она стремится к нулю и не равна нулю. Значения: $\sin(\pi n) = 0$ для всех $n$, то есть $f(x_n) \to 0$.
Шаг 3. Вторая последовательность: $y_n = \dfrac{1}{\frac{\pi}{2} + 2\pi n}$. Тоже стремится к нулю. Значения: $\sin\left(\frac{\pi}{2} + 2\pi n\right) = 1$ для всех $n$, то есть $f(y_n) \to 1$.
Шаг 4. Две дорожки к нулю дали разные предельные значения — $0$ и $1$. Значит, единого $L$ не существует.
Ответ: предел не существует. Функция бесконечно часто пробегает весь отрезок от $-1$ до $1$, как бы близко к нулю мы ни подошли; график около нуля превращается в бесконечно частую «гребёнку».
Обрати внимание, насколько технично сработало определение по Гейне: чтобы доказать отсутствие предела, хватило двух конкретных последовательностей. На языке $\varepsilon$–$\delta$ то же доказательство заняло бы вдвое больше места.
Почему это важно
Предел — это единственный корректный способ говорить о величинах, которые вычисляются «на грани». В коде это буквально повсеместно: 0/0 в нормировке, когда все веса оказались нулевыми; log(0) в кросс-энтропии, когда модель выдала идеальную уверенность; деление на дисперсию, которая обнулилась на константной фиче. Каждый такой случай — вопрос «а к чему стремится выражение, когда знаменатель уходит в ноль?». Если предел конечен, выражение можно доопределить и посчитать устойчиво (именно это делают все eps в знаменателях и трюк со сдвигом в softmax). Если предела нет — никакая точность вычислений не спасёт, и надо менять формулу.
Односторонние пределы
Интуиция: подходить можно с двух сторон
Определение по Гейне требует, чтобы результат был одинаковым по всем дорожкам. Но дорожек к точке на прямой всего два принципиальных типа: слева и справа. Иногда функция ведёт себя по-разному в зависимости от того, с какой стороны ты подходишь — и тогда полезно рассматривать эти два случая отдельно.
Классический пример из ML: пороговая функция активации (та самая ступенька Хевисайда, с которой начинался перцептрон в 1958 году).
$$H(x) = \begin{cases} 0, & x < 0, \\ 1, & x \geq 0. \end{cases}$$Подходим к нулю слева — значения всё время равны $0$. Подходим справа — всё время $1$. Никакого общего предела нет: функция в нуле «рвётся». А вот односторонние пределы существуют оба и отличаются ровно на величину скачка.
Определение: Число $L$ называется пределом слева функции $f$ в точке $a$, если $f(x_n) \to L$ для любой последовательности $x_n \to a$, у которой все $x_n < a$. Обозначение: $\lim\limits_{x \to a^-} f(x) = L$ или $f(a-0) = L$.
Аналогично предел справа $\lim\limits_{x \to a^+} f(x)$ определяется через последовательности с $x_n > a$.
Критерий: Предел $\lim\limits_{x \to a} f(x)$ существует и равен $L$ тогда и только тогда, когда существуют оба односторонних предела и они равны между собой:
$$\lim_{x \to a^-} f(x) = \lim_{x \to a^+} f(x) = L.$$
Этот критерий — рабочая лошадка всех задач на кусочно заданные функции. Схема всегда одна: посчитал левый, посчитал правый, сравнил.
Пример 1 (простой): модуль в знаменателе
Найти односторонние пределы $f(x) = \dfrac{|x|}{x}$ в точке $0$.
Шаг 1. Раскроем модуль. При $x > 0$: $|x| = x$, значит $f(x) = \frac{x}{x} = 1$. При $x < 0$: $|x| = -x$, значит $f(x) = \frac{-x}{x} = -1$.
Шаг 2. Справа функция тождественно равна $1$, поэтому $\lim\limits_{x \to 0^+} f(x) = 1$.
Шаг 3. Слева тождественно равна $-1$, поэтому $\lim\limits_{x \to 0^-} f(x) = -1$.
Шаг 4. Односторонние пределы разные $\Rightarrow$ общего предела нет.
Ответ: $f(0-0) = -1$, $f(0+0) = 1$, $\lim\limits_{x\to 0} f(x)$ не существует.
Пример 2 (средний): бесконечные односторонние пределы
Исследуем $f(x) = \dfrac{1}{x}$ около нуля.
Шаг 1. Справа: возьмём $x_n = \frac{1}{n} \to 0^+$. Тогда $f(x_n) = n \to +\infty$. Записывают $\lim\limits_{x \to 0^+} \frac{1}{x} = +\infty$.
Шаг 2. Слева: возьмём $x_n = -\frac{1}{n} \to 0^-$. Тогда $f(x_n) = -n \to -\infty$, то есть $\lim\limits_{x \to 0^-} \frac{1}{x} = -\infty$.
Шаг 3. Значения не то что не совпадают — они вообще не являются числами. Запись «предел равен бесконечности» означает не существование предела, а описание характера расходимости: значения по модулю растут неограниченно.
Ответ: $-\infty$ слева, $+\infty$ справа; конечного предела нет. Прямая $x = 0$ — вертикальная асимптота (урок 89).
Важный нюанс терминологии: фразы «предел равен $+\infty$» и «предел существует» — не одно и то же. Существование предела в строгом смысле означает конечное число $L$. Запись $\lim = +\infty$ — это удобное сокращение для «функция неограниченно возрастает», и её называют несобственным пределом.
Пример 3 (сложный): кусочная активация с параметром
При каком $a$ существует $\lim\limits_{x \to 1} f(x)$, если
$$f(x) = \begin{cases} ax^2 + 1, & x < 1, \\ 4x - a, & x \geq 1\ ? \end{cases}$$Шаг 1. Левый предел: при $x < 1$ работает верхняя строчка, и $\lim\limits_{x\to 1^-} (ax^2 + 1) = a + 1$.
Шаг 2. Правый предел: при $x > 1$ работает нижняя строчка, и $\lim\limits_{x\to 1^+} (4x - a) = 4 - a$.
Шаг 3. Предел существует тогда и только тогда, когда они равны: $a + 1 = 4 - a$.
Шаг 4. Решаем: $2a = 3$, откуда $a = 1{,}5$.
Проверка: при $a = 1{,}5$ левый предел равен $2{,}5$, правый $4 - 1{,}5 = 2{,}5$ ✅
Ответ: $a = 1{,}5$, при этом предел равен $2{,}5$.
Ровно такую задачу решают, когда конструируют кусочные функции активации: например, у ELU или SiLU-подобных конструкций параметры подбирают так, чтобы в точке склейки не было скачка — иначе обучение получает разрыв там, где его быть не должно.
Почему это важно
Все «кусочные» объекты в ML — ReLU, Leaky ReLU, hard-sigmoid, hinge-loss, Huber-loss, ступенчатые расписания learning rate — определены разными формулами на разных участках. Первое, что нужно уметь с ними делать, — проверять точки склейки: совпадают ли односторонние пределы. Если совпадают, функция «не рвётся» и с ней можно работать. Если нет — в этой точке будет скачок, и любой численный метод, проходящий через неё, начнёт вести себя непредсказуемо. Huber-loss потому и склеен из параболы и прямой с подобранными коэффициентами, что кто-то аккуратно приравнял односторонние пределы.
Арифметика пределов
Интуиция: пределы дружат с четырьмя действиями
Считать каждый предел «руками» через последовательности — мучение. К счастью, предел прекрасно уживается со сложением, вычитанием, умножением и делением: чтобы найти предел суммы, достаточно найти пределы слагаемых. Это не самоочевидный факт, а теорема (доказанная в уроке 179 для последовательностей и переносимая на функции определением по Гейне) — но пользоваться ей можно свободно.
Теорема (арифметика пределов): Пусть $\lim\limits_{x\to a} f(x) = A$ и $\lim\limits_{x\to a} g(x) = B$, где $A$ и $B$ — конечные числа. Тогда:
$\lim\limits_{x\to a} \big(f(x) \pm g(x)\big) = A \pm B$
$\lim\limits_{x\to a} \big(f(x) \cdot g(x)\big) = A \cdot B$
$\lim\limits_{x\to a} \big(c \cdot f(x)\big) = c \cdot A$ для любой константы $c$
$\lim\limits_{x\to a} \dfrac{f(x)}{g(x)} = \dfrac{A}{B}$ — при условии $B \neq 0$
$\lim\limits_{x\to a} \big(f(x)\big)^{n} = A^{n}$ для натурального $n$
$\lim\limits_{x\to a} \sqrt[n]{f(x)} = \sqrt[n]{A}$ — при условии, что корень определён
Из пунктов 1–3 мгновенно следует главный практический вывод: предел любого многочлена находится подстановкой. Действительно, $\lim\limits_{x\to a} x = a$ (это прямо следует из определения), дальше умножения и сложения — и вот $\lim\limits_{x\to a} P(x) = P(a)$. То же для рациональной дроби $\frac{P(x)}{Q(x)}$, если $Q(a) \neq 0$.
И тут же — главное ограничение. Пункт 4 требует $B \neq 0$. Если знаменатель стремится к нулю, теорема ничего не говорит, и начинается самое интересное: неопределённости.
Есть ещё одна теорема, которая понадобится нам чуть позже, — она про «зажатую» функцию.
Теорема о сжатии («о двух милиционерах»): Если в некоторой проколотой окрестности точки $a$ выполняется $g(x) \leq f(x) \leq h(x)$, и при этом $\lim\limits_{x\to a} g(x) = \lim\limits_{x\to a} h(x) = L$, то и $\lim\limits_{x\to a} f(x) = L$.
Название народное и точное: если двое конвоиров идут в одну точку, а задержанный зажат между ними, ему деваться некуда.
Пример 1 (простой): работа по правилам
Найти $\lim\limits_{x \to 2} \dfrac{3x^2 + 1}{x + 5}$.
Шаг 1. Числитель: $\lim\limits_{x\to 2}(3x^2+1) = 3\cdot 4 + 1 = 13$.
Шаг 2. Знаменатель: $\lim\limits_{x\to 2}(x+5) = 7 \neq 0$ — условие пункта 4 выполнено.
Шаг 3. По правилу о пределе частного: $\dfrac{13}{7}$.
Ответ: $\dfrac{13}{7}$.
Пример 2 (средний): корень и произведение
Найти $\lim\limits_{x \to 4} \big(\sqrt{x} \cdot (x^2 - 10)\big)$.
Шаг 1. По пункту 6: $\lim\limits_{x\to 4}\sqrt{x} = \sqrt{4} = 2$.
Шаг 2. По пунктам 1 и 5: $\lim\limits_{x\to 4}(x^2 - 10) = 16 - 10 = 6$.
Шаг 3. По пункту 2: предел произведения равен произведению пределов: $2 \cdot 6 = 12$.
Ответ: $12$.
Пример 3 (сложный): где теорема ломается
Рассмотрим $f(x) = x$ и $g(x) = \dfrac{1}{x}$ при $x \to 0$.
Шаг 1. $\lim\limits_{x\to 0} f(x) = 0$ — конечный предел, всё хорошо.
Шаг 2. $\lim\limits_{x\to 0} g(x)$ не существует (мы это выяснили выше: слева $-\infty$, справа $+\infty$). Условие теоремы нарушено.
Шаг 3. Тем не менее произведение $f(x)g(x) = x \cdot \frac{1}{x} = 1$ при всех $x \neq 0$, поэтому $\lim\limits_{x\to 0} f(x)g(x) = 1$.
Шаг 4. Если бы кто-то механически применил правило «предел произведения = произведение пределов», он написал бы $0 \cdot \infty$ — и застрял бы. А ответ существует и равен $1$.
Ответ: $1$; теорема неприменима, но предел есть — это и есть смысл слова «неопределённость $0 \cdot \infty$»: символ ничего не решает, решает конкретный вид функций.
Контрольный контрпример: возьми $f(x) = x^2$, $g(x) = \frac{1}{x}$. Та же форма $0 \cdot \infty$, а предел произведения равен $\lim x = 0$. А если $f(x)=x$, $g(x)=\frac{1}{x^2}$ — тот же символ, а произведение $\frac1x$ уходит в бесконечность. Один и тот же символ, три разных исхода — вот почему это называется неопределённостью.
Почему это важно
Арифметика пределов — то, что позволяет разбирать сложное выражение на понятные куски, а не воевать с ним целиком. Ровно этим занимается любой численный анализ устойчивости: смотрим, какая часть формулы уходит в опасную зону, а остальное честно считается подстановкой. И ровно здесь прячется главная ловушка новичка — применить правило о частном там, где знаменатель стремится к нулю. Это как поделить на ноль и удивиться результату.
Неопределённость $\frac{0}{0}$: четыре приёма
Интуиция: ноль нулю рознь
Запись $\frac{0}{0}$ означает: и числитель, и знаменатель стремятся к нулю. Ответ зависит от того, кто из них стремится быстрее. Сравни три дроби при $x \to 0$:
- $\dfrac{2x}{x} = 2$ — оба идут к нулю с одинаковой скоростью, предел $2$;
- $\dfrac{x^2}{x} = x \to 0$ — числитель быстрее, предел $0$;
- $\dfrac{x}{x^2} = \dfrac1x$ — знаменатель быстрее, предела нет (уходит в бесконечность).
Одна и та же форма $\frac{0}{0}$, три разных исхода. Поэтому символ $\frac{0}{0}$ — это не ответ, а сигнал: «надо работать». Работа состоит в том, чтобы явно вытащить общий нулевой множитель из числителя и знаменателя и сократить его. Для этого есть четыре приёма.
Приёмы раскрытия $\frac{0}{0}$:
Разложение на множители. Если числитель и знаменатель — многочлены, обращающиеся в ноль при $x = a$, то оба делятся на $(x - a)$. Выносим и сокращаем.
Домножение на сопряжённое. Если в выражении есть разность с корнем, домножаем числитель и знаменатель на сопряжённое выражение и пользуемся формулой $(\sqrt{u}-\sqrt{v})(\sqrt{u}+\sqrt{v}) = u - v$ — корни уходят.
Замена переменной. Вводим новую переменную так, чтобы корни превратились в целые степени (для корней степеней $n$ и $m$ берут $t^{\,\mathrm{HOK}(n,m)}$) или чтобы точка $a$ переехала в ноль.
Первый замечательный предел — для дробей с тригонометрией (см. следующий раздел).
Ключевое обоснование, почему сокращать законно: по определению предела $x \neq a$, значит $x - a \neq 0$, значит делить на него можно. Мы не «упрощаем функцию» — мы находим другую функцию, совпадающую с исходной везде, кроме одной точки, а на предел эта точка не влияет.
Пример 1 (простой): разложение на множители
Найти $\lim\limits_{x \to -3} \dfrac{x^2 - 9}{x^2 + 7x + 12}$.
Шаг 1. Подстановка: числитель $9 - 9 = 0$, знаменатель $9 - 21 + 12 = 0$. Неопределённость $\frac00$.
Шаг 2. Числитель: $x^2 - 9 = (x-3)(x+3)$.
Шаг 3. Знаменатель: корни $x^2 + 7x + 12$ — это $-3$ и $-4$, значит $x^2+7x+12 = (x+3)(x+4)$.
Шаг 4. Сокращаем на $(x+3)$, что законно при $x \neq -3$:
$$\frac{(x-3)(x+3)}{(x+3)(x+4)} = \frac{x-3}{x+4}.$$Шаг 5. Теперь знаменатель в точке не нулевой: $\lim\limits_{x\to -3}\dfrac{x-3}{x+4} = \dfrac{-6}{1} = -6$.
Ответ: $-6$.
Пример 2 (средний): сопряжённое
Найти $\lim\limits_{x \to 0} \dfrac{\sqrt{9+x} - 3}{x}$.
Шаг 1. Подстановка даёт $\frac{3-3}{0} = \frac00$.
Шаг 2. Домножаем числитель и знаменатель на сопряжённое $\sqrt{9+x}+3$ (оно не обращается в ноль рядом с нулём — там оно около $6$):
$$\frac{(\sqrt{9+x}-3)(\sqrt{9+x}+3)}{x(\sqrt{9+x}+3)}.$$Шаг 3. В числителе разность квадратов: $(9+x) - 9 = x$.
$$= \frac{x}{x(\sqrt{9+x}+3)} = \frac{1}{\sqrt{9+x}+3} \quad (x \neq 0).$$Шаг 4. Теперь подстановка работает: $\dfrac{1}{\sqrt{9}+3} = \dfrac{1}{6}$.
Проверка: при $x = 0{,}01$: $\frac{\sqrt{9{,}01}-3}{0{,}01} = \frac{3{,}0016662-3}{0{,}01} = 0{,}16662$, а $\frac16 = 0{,}1667$ ✅
Ответ: $\dfrac16$.
Пример 3 (сложный): замена переменной с корнями разных степеней
Найти $\lim\limits_{x \to 1} \dfrac{\sqrt[3]{x} - 1}{\sqrt{x} - 1}$.
Шаг 1. Подстановка: $\frac{1-1}{1-1} = \frac00$. Корни разных степеней — сопряжённое здесь работает плохо.
Шаг 2. Замена: пусть $x = t^{6}$, где $6 = \mathrm{HOK}(2,3)$. При $x \to 1$ (и $x>0$) имеем $t \to 1$, причём $t \neq 1$.
Шаг 3. Переписываем: $\sqrt[3]{x} = t^{2}$, $\sqrt{x} = t^{3}$. Дробь принимает вид
$$\frac{t^2 - 1}{t^3 - 1}.$$Шаг 4. Раскладываем: $t^2 - 1 = (t-1)(t+1)$, $t^3 - 1 = (t-1)(t^2+t+1)$.
Шаг 5. Сокращаем на $(t-1)$ и подставляем $t = 1$:
$$\frac{t+1}{t^2+t+1} \longrightarrow \frac{2}{3}.$$Проверка: при $x = 1{,}03$: $\frac{\sqrt[3]{1{,}03}-1}{\sqrt{1{,}03}-1} = \frac{0{,}009902}{0{,}014889} = 0{,}665$, а $\frac23 = 0{,}667$ ✅
Ответ: $\dfrac23$.
Почему это важно
Все четыре приёма объединяет одна идея: вытащить и сократить общий множитель, стремящийся к нулю. Это тот же навык, который в численных вычислениях называется «избавиться от катастрофического сокращения». Если в коде считать $\frac{\sqrt{9+x}-3}{x}$ напрямую при $x = 10^{-12}$, float64 вернёт мусор: разность двух почти равных чисел теряет все значащие цифры. А если предварительно преобразовать выражение к виду $\frac{1}{\sqrt{9+x}+3}$ — как мы только что сделали, — ответ будет точным до последнего бита. Одно и то же алгебраическое преобразование лечит и математическую неопределённость, и численную нестабильность. По этой же причине в библиотеках существуют отдельные функции log1p(x) и expm1(x): они считают $\ln(1+x)$ и $e^x-1$ около нуля без потери точности.
Предел на бесконечности и горизонтальные асимптоты
Интуиция: что там, на далёком краю
Второй тип вопроса о поведении функции: не «что рядом с точкой», а «что происходит, когда $x$ уезжает в бесконечность». Именно этот вопрос отвечает на «а что выдаст сигмоида, если логит равен $50$?» и «стабилизируется ли метрика при росте объёма данных?».
Определение: Число $L$ называется пределом функции $f$ при $x \to +\infty$, если для любой последовательности $x_n \to +\infty$ выполнено $f(x_n) \to L$. Обозначение: $\lim\limits_{x\to+\infty} f(x) = L$. Аналогично определяется предел при $x \to -\infty$.
Определение: Прямая $y = L$ называется горизонтальной асимптотой графика функции $f$, если $\lim\limits_{x\to+\infty} f(x) = L$ или $\lim\limits_{x\to-\infty} f(x) = L$.
В уроке 89 мы находили асимптоты «на глаз», по поведению графика. Теперь у нас есть строгий инструмент: асимптота — это ровно предел на бесконечности, и она может быть разной слева и справа (у сигмоиды и у арктангенса именно так).
Базовый факт, из которого растёт вся техника:
$$\lim_{x\to \pm\infty} \frac{1}{x^{k}} = 0 \quad \text{для любого } k > 0.$$Рабочий приём для дробей $\frac{\infty}{\infty}$: поделить числитель и знаменатель на $x$ в старшей степени знаменателя. После этого все слагаемые превращаются либо в константы, либо в дроби вида $\frac{c}{x^k}$, которые обнуляются.
Итог для рациональных дробей формулируется в три строчки. Пусть $P$ имеет степень $n$, $Q$ — степень $m$:
- $n < m$ — предел равен $0$ (асимптота $y = 0$);
- $n = m$ — предел равен отношению старших коэффициентов;
- $n > m$ — конечного предела нет, дробь уходит в бесконечность.
Пример 1 (простой): равные степени
Найти $\lim\limits_{x \to +\infty} \dfrac{3x^2 + 5x - 1}{2x^2 - x + 7}$.
Шаг 1. Старшая степень знаменателя — вторая. Делим на $x^2$ числитель и знаменатель:
$$\frac{3 + \frac{5}{x} - \frac{1}{x^2}}{2 - \frac{1}{x} + \frac{7}{x^2}}.$$Шаг 2. Все дроби вида $\frac{c}{x^k}$ стремятся к нулю.
Шаг 3. Остаётся $\dfrac{3 + 0 - 0}{2 - 0 + 0} = \dfrac32$.
Ответ: $\dfrac32$; горизонтальная асимптота $y = 1{,}5$.
Пример 2 (средний): корень и знак модуля
Найти $\lim\limits_{x \to -\infty} \dfrac{\sqrt{4x^2 + 1}}{x + 3}$.
Шаг 1. Здесь спрятана ловушка. При выносе $x^2$ из-под корня получается модуль: $\sqrt{4x^2+1} = |x|\sqrt{4 + \frac{1}{x^2}}$.
Шаг 2. Мы идём к $-\infty$, значит $x < 0$ и $|x| = -x$. Числитель равен $-x\sqrt{4+\frac{1}{x^2}}$.
Шаг 3. Делим числитель и знаменатель на $x$:
$$\frac{-\sqrt{4 + \frac{1}{x^2}}}{1 + \frac{3}{x}}.$$Шаг 4. Переходим к пределу: $\dfrac{-\sqrt{4}}{1} = -2$.
Проверка: при $x = -1000$: $\frac{\sqrt{4\,000\,001}}{-997} = \frac{2000{,}00025}{-997} = -2{,}006$ ✅
Ответ: $-2$. Если бы мы считали предел при $x\to+\infty$, ответ был бы $+2$ — у графика две разные горизонтальные асимптоты, $y=2$ и $y=-2$.
Пример 3 (сложный): разность корней, неопределённость $\infty - \infty$
Найти $\lim\limits_{x \to +\infty} \left(\sqrt{x^2 + 6x} - x\right)$.
Шаг 1. Оба слагаемых уходят в $+\infty$ — неопределённость $\infty - \infty$. Подстановка бессмысленна.
Шаг 2. Домножаем и делим на сопряжённое $\sqrt{x^2+6x}+x$:
$$\frac{(x^2+6x) - x^2}{\sqrt{x^2+6x}+x} = \frac{6x}{\sqrt{x^2+6x}+x}.$$Шаг 3. Получили $\frac{\infty}{\infty}$ — теперь работает стандартный приём. Делим на $x$ (он положителен, значит $|x| = x$):
$$\frac{6}{\sqrt{1 + \frac{6}{x}} + 1}.$$Шаг 4. Предел: $\dfrac{6}{\sqrt{1} + 1} = \dfrac{6}{2} = 3$.
Проверка: при $x = 10^6$: $\sqrt{10^{12} + 6\cdot10^6} - 10^6 \approx 2{,}9999999$ ✅
Ответ: $3$. Геометрически это значит, что график $y = \sqrt{x^2+6x}$ на бесконечности прижимается к прямой $y = x + 3$ — это уже наклонная асимптота из урока 89.
Почему это важно
Предел на бесконечности — это математическая формулировка вопроса «что будет при экстремальных входах», а такой вопрос обязателен при любой работе с моделями. У сигмоиды две горизонтальные асимптоты, $y = 0$ и $y = 1$: значит, выход всегда в интервале $(0;1)$ и его можно трактовать как вероятность, но значит и то, что при больших по модулю логитах выход перестаёт зависеть от входа. У tanh асимптоты $y = \pm 1$. У ReLU при $x \to +\infty$ предела нет вовсе — она растёт неограниченно, поэтому ReLU не насыщается справа, зато может «взорваться». Всё поведение активации на краях — это ровно три предела: в $-\infty$, в $+\infty$ и в точках склейки.
Первый замечательный предел
Интуиция: синус около нуля почти равен своему аргументу
Возьми калькулятор в режиме радиан и посчитай $\sin(0{,}1) = 0{,}0998334$. Потом $\sin(0{,}01) = 0{,}00999983$. Потом $\sin(0{,}001) = 0{,}000999999833$. Замечаешь? Чем ближе к нулю, тем точнее $\sin x \approx x$. Отношение $\frac{\sin x}{x}$ при этом равно $0{,}998334$, затем $0{,}999983$, затем $0{,}99999983$ — прижимается к единице.
Это и есть первый замечательный предел — самый используемый предел во всей тригонометрии.
Первый замечательный предел:
$$\lim_{x \to 0} \frac{\sin x}{x} = 1,$$где $x$ измеряется в радианах.
Почему это правда. Рассмотрим единичную окружность и угол $x$, где $0 < x < \frac{\pi}{2}$. Сравним три площади: треугольника с вершиной в центре, кругового сектора и прямоугольного треугольника, описанного вокруг сектора. Их площади равны соответственно $\frac12\sin x$, $\frac12 x$ и $\frac12\tan x$, причём каждая фигура содержится в следующей:
$$\frac{\sin x}{2} < \frac{x}{2} < \frac{\tan x}{2}.$$Умножим на $2$ и поделим на $\sin x > 0$:
$$1 < \frac{x}{\sin x} < \frac{1}{\cos x}, \qquad \text{то есть} \qquad \cos x < \frac{\sin x}{x} < 1.$$Осталось заметить, что $\cos x \to 1$ при $x \to 0$. Это тоже можно обосновать без всякой магии: $1 - \cos x = 2\sin^2\frac{x}{2}$, а из той же картинки следует $|\sin t| \leq |t|$, поэтому $0 \leq 1-\cos x \leq 2\cdot\frac{x^2}{4} = \frac{x^2}{2} \to 0$. Теперь функция $\frac{\sin x}{x}$ зажата между $\cos x$ и $1$, оба предела равны $1$ — по теореме о сжатии предел равен $1$. Для $x<0$ всё то же самое, поскольку $\frac{\sin(-x)}{-x} = \frac{\sin x}{x}$: функция чётная.
Важнейшая оговорка про радианы. В градусах предел другой: $\lim\limits_{x\to 0}\frac{\sin x^{\circ}}{x} = \frac{\pi}{180} \approx 0{,}01745$. Именно поэтому весь анализ живёт в радианах, и именно поэтому np.sin принимает радианы. Забудешь про это — получишь ответ, ошибочный в 57 раз.
Семейство следствий. Из основного предела мгновенно получается целый набор:
- $\lim\limits_{x\to 0}\dfrac{\sin kx}{x} = k$ — вынести $k$: $\frac{\sin kx}{x} = k\cdot\frac{\sin kx}{kx}$
- $\lim\limits_{x\to 0}\dfrac{\operatorname{tg} x}{x} = 1$ — так как $\frac{\operatorname{tg} x}{x} = \frac{\sin x}{x}\cdot\frac{1}{\cos x}$
- $\lim\limits_{x\to 0}\dfrac{\arcsin x}{x} = 1$ — заменой $t = \arcsin x$
- $\lim\limits_{x\to 0}\dfrac{1 - \cos x}{x^{2}} = \dfrac12$ — через формулу $1-\cos x = 2\sin^2\frac{x}{2}$
Практическое правило, которое стоит запомнить: около нуля $\sin x$, $\operatorname{tg} x$, $\arcsin x$ и $\arctg x$ ведут себя как $x$, а $1 - \cos x$ — как $\frac{x^2}{2}$.
Пример 1 (простой): множитель внутри синуса
Найти $\lim\limits_{x \to 0} \dfrac{\sin 7x}{x}$.
Шаг 1. Под синусом $7x$, а в знаменателе $x$ — не совпадают. Подгоняем: домножим и поделим на $7$.
$$\frac{\sin 7x}{x} = 7 \cdot \frac{\sin 7x}{7x}.$$Шаг 2. Обозначим $t = 7x$. При $x \to 0$ и $t \to 0$, так что $\frac{\sin t}{t} \to 1$.
Шаг 3. Предел равен $7 \cdot 1 = 7$.
Ответ: $7$.
Пример 2 (средний): синус на синус
Найти $\lim\limits_{x \to 0} \dfrac{\sin 4x}{\sin 9x}$.
Шаг 1. Форма $\frac00$. Приводим обе части к «каноническому» виду, домножив и поделив на нужные множители:
$$\frac{\sin 4x}{\sin 9x} = \frac{\dfrac{\sin 4x}{4x}\cdot 4x}{\dfrac{\sin 9x}{9x}\cdot 9x}.$$Шаг 2. Сокращаем $x$ (законно, $x \neq 0$):
$$= \frac{4}{9}\cdot\frac{\dfrac{\sin 4x}{4x}}{\dfrac{\sin 9x}{9x}}.$$Шаг 3. Обе дроби стремятся к $1$, значит предел равен $\frac49$.
Проверка: при $x = 0{,}001$: $\frac{\sin 0{,}004}{\sin 0{,}009} = \frac{0{,}00399999}{0{,}00899988} = 0{,}44445$, а $\frac49 = 0{,}4444$ ✅
Ответ: $\dfrac49$.
Пример 3 (сложный): косинус и сдвиг точки
Найти $\lim\limits_{x \to 0} \dfrac{1 - \cos 6x}{x \sin 2x}$.
Шаг 1. Форма $\frac00$. Преобразуем числитель по формуле половинного угла: $1 - \cos 6x = 2\sin^{2} 3x$.
Шаг 2. Дробь превращается в
$$\frac{2\sin^2 3x}{x\sin 2x}.$$Шаг 3. Каждый синус приводим к каноническому виду:
$$= \frac{2\left(\dfrac{\sin 3x}{3x}\right)^{2}\cdot 9x^{2}}{x \cdot \dfrac{\sin 2x}{2x}\cdot 2x} = \frac{18x^2}{2x^2}\cdot\frac{\left(\dfrac{\sin 3x}{3x}\right)^{2}}{\dfrac{\sin 2x}{2x}}.$$Шаг 4. Числовой множитель равен $9$, все канонические дроби стремятся к $1$.
Проверка: при $x = 0{,}01$: $\frac{1-\cos 0{,}06}{0{,}01\cdot\sin 0{,}02} = \frac{0{,}00179946}{0{,}01\cdot 0{,}0199987} = \frac{0{,}00179946}{0{,}000199987} = 8{,}998$ ✅
Ответ: $9$.
Почему это важно
Первый замечательный предел — это первый в твоей жизни пример асимптотического приближения: сложную функцию около точки заменяют простой, и ошибка от этого стремится к нулю. Ровно на этой идее стоит вся вычислительная математика — от формулы малых углов в физике ($\sin\theta \approx \theta$ для маятника) до линеаризации нейросети около точки в методах интерпретируемости. Когда позже (урок 193) появится формула Тейлора, окажется, что $\frac{\sin x}{x} \to 1$ — это её нулевое приближение, самый первый кирпич. А в графике вычислений любой нейросети такие замены живут постоянно: log1p, expm1, приближения гауссовой функции ошибки в GELU — везде один и тот же принцип «около нуля заменим на что попроще, а предел гарантирует, что мы не соврали».
Пределы в машинном обучении: насыщение, градиенты и softmax
Насыщение сигмоиды: две горизонтальные асимптоты
Сигмоида — базовая функция активации, с которой начиналось глубокое обучение:
$$\sigma(x) = \frac{1}{1 + e^{-x}}.$$Её поведение на краях считается в одну строчку. При $x \to +\infty$ имеем $e^{-x} \to 0$ (показательная функция с основанием меньше единицы, урок 113), поэтому
$$\lim_{x \to +\infty} \sigma(x) = \frac{1}{1 + 0} = 1.$$При $x \to -\infty$ показатель $-x \to +\infty$, поэтому $e^{-x} \to +\infty$, знаменатель растёт неограниченно, и
$$\lim_{x \to -\infty} \sigma(x) = 0.$$Две горизонтальные асимптоты: $y = 0$ и $y = 1$. Хорошая новость — выход всегда лежит в $(0;1)$ и годится на роль вероятности. Плохая — на краях функция становится почти постоянной, и это называют насыщением.
Насколько почти? Посчитаем изменение выхода при изменении входа на единицу в двух местах:
- около нуля: $\sigma(1) - \sigma(0) = 0{,}7311 - 0{,}5000 = 0{,}2311$;
- в зоне насыщения: $\sigma(11) - \sigma(10) = 0{,}99998329 - 0{,}99995460 = 0{,}0000287$.
Разница примерно в восемь тысяч раз. Сдвинь логит с $10$ на $11$ — модель этого практически не заметит. Скорость насыщения тоже задаётся пределом: величина $1 - \sigma(x)$ ведёт себя ровно как $e^{-x}$, поскольку
$$\lim_{x\to+\infty}\frac{1 - \sigma(x)}{e^{-x}} = \lim_{x\to+\infty}\frac{1}{1+e^{-x}} = 1.$$То есть приближение к асимптоте экспоненциальное — очень быстрое.
У гиперболического тангенса
$$\operatorname{th} x = \frac{e^{x}-e^{-x}}{e^{x}+e^{-x}} = \frac{e^{2x}-1}{e^{2x}+1}$$картина та же, но асимптоты $y = -1$ и $y = 1$, и график симметричен относительно начала координат. Именно поэтому tanh долго считали лучшей заменой сигмоиде: выход центрирован около нуля, а вход в следующий слой не получает систематического положительного сдвига.
Затухающие градиенты как геометрическая прогрессия
Вот где предел встречается с реальной болью глубокого обучения. Сигнал ошибки в сети распространяется от выхода к входу, проходя через все слои, и на каждом слое умножается на некоторый коэффициент — грубо говоря, на «чувствительность» активации, то есть на отношение приращения выхода к приращению входа.
Для сигмоиды это отношение нигде не превышает $0{,}25$ (максимум достигается в нуле: $\frac{\sigma(h)-\sigma(-h)}{2h} \to 0{,}25$ при $h \to 0$), а в зоне насыщения оно, как мы только что посчитали, порядка $10^{-5}$. Значит, при прохождении через $L$ слоёв сигнал в лучшем случае умножается на $0{,}25^{L}$. Это геометрическая прогрессия из урока 128 со знаменателем $q = 0{,}25 < 1$, а её предел при $L \to \infty$ равен нулю:
$$\lim_{L\to\infty} 0{,}25^{\,L} = 0.$$Конкретика: $0{,}25^{10} \approx 9{,}5\cdot 10^{-7}$, $0{,}25^{20}\approx 9\cdot 10^{-13}$. После двадцати слоёв сигнал становится численно неразличим от нуля — нижние слои перестают обучаться. Это и есть проблема затухающих градиентов, из-за которой глубокие сети на сигмоидах не обучались до середины 2010-х.
Как её решили — тоже читается через пределы. У ReLU отношение приращений на положительной полуоси равно ровно $1$, и $1^{L} = 1$: сигнал проходит без затухания. Residual-связи (x + F(x)) добавляют слагаемое с коэффициентом $1$, обходя множитель. Batch-normalization удерживает входы активаций около нуля, то есть подальше от зоны насыщения. Все три идеи — про то, чтобы знаменатель прогрессии не был меньше единицы.
Строгий инструмент для «чувствительности» называется производной, и мы введём его в уроке 133. Пока важно другое: интуиция про «умножается на маленькое число на каждом слое, и в пределе получается ноль» — уже полностью в твоих руках.
Softmax: предел чинит переполнение
Вернёмся к багу из вступления. Softmax для вектора логитов $z = (z_1,\dots,z_K)$:
$$p_i = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}}.$$Ключевое свойство — инвариантность к сдвигу. Вычтем из всех логитов одно и то же число $C$:
$$\frac{e^{z_i - C}}{\sum_j e^{z_j - C}} = \frac{e^{z_i}e^{-C}}{e^{-C}\sum_j e^{z_j}} = \frac{e^{z_i}}{\sum_j e^{z_j}} = p_i.$$Результат не изменился вообще. Значит, можно взять $C = \max_j z_j$ — тогда самый большой показатель станет нулём, $e^{0} = 1$, и переполнения не будет никогда. Для логитов $[1000, 999, 998]$ после сдвига получаем $[0, -1, -2]$ и считаем честно: $\frac{1}{1 + e^{-1} + e^{-2}} = \frac{1}{1+0{,}3679+0{,}1353} = 0{,}6652$. Ровно это делает любая нормальная реализация softmax внутри.
Предел при экстремальном логите. Пусть один логит уезжает в $+\infty$, остальные фиксированы. Возьмём два класса: $p_1(z) = \frac{e^{z}}{e^{z} + e^{c}}$. Поделим числитель и знаменатель на $e^{z}$:
$$p_1(z) = \frac{1}{1 + e^{\,c-z}} \xrightarrow[z\to+\infty]{} \frac{1}{1+0} = 1.$$Модель становится абсолютно уверенной. Обратно, при $z \to -\infty$ показатель $c - z \to +\infty$, и $p_1 \to 0$.
Предел по температуре. В softmax с температурой логиты делят на $T$: $p_i = \frac{e^{z_i/T}}{\sum_j e^{z_j/T}}$. Что происходит при $T \to 0^{+}$? Для двух классов с $z_1 > z_2$:
$$p_1 = \frac{1}{1 + e^{(z_2-z_1)/T}}.$$Показатель $\frac{z_2-z_1}{T}$ — отрицательное число, делённое на стремящееся к нулю положительное, то есть уходит в $-\infty$; экспонента стремится к нулю, и $p_1 \to 1$. В пределе нулевой температуры softmax превращается в argmax. Именно поэтому temperature=0 в API языковых моделей означает жадную детерминированную генерацию, а высокая температура — почти равномерное распределение (при $T \to +\infty$ все показатели стремятся к нулю, и $p_i \to \frac{1}{K}$).
Почему это важно
Три сюжета выше — насыщение, затухание и softmax — это не отдельные факты, которые надо запомнить. Это три раза одна и та же процедура: взять формулу, устремить аргумент в опасную зону, посмотреть на предел. Тот, кто это умеет, читает поведение архитектуры прямо из формул: видит, где модель потеряет чувствительность, где вычисление развалится численно и что даст изменение гиперпараметра на краю диапазона. Тот, кто не умеет, ставит эксперимент и ждёт полдня.
Практика: 30 заданий
Базовые (задания 1-10)
Задание 1: Найди $\lim\limits_{x \to 3} (2x^2 - 5x + 1)$.
Задание 2: Вычисли $\lim\limits_{x \to 2} \dfrac{x^2 - 4}{x - 2}$.
Задание 3: Найди $\lim\limits_{x \to -1} \dfrac{x^2 + 3x + 2}{x + 1}$.
Задание 4: Вычисли $\lim\limits_{x \to 0} \dfrac{x^2 + 3x}{x}$.
Задание 5: Найди $\lim\limits_{x \to 4} \dfrac{\sqrt{x} - 2}{x - 4}$.
Задание 6: Вычисли $\lim\limits_{x \to +\infty} \dfrac{3x + 1}{x - 5}$ и укажи горизонтальную асимптоту.
Задание 7: Найди $\lim\limits_{x \to +\infty} \dfrac{2x^2 - x}{5x^2 + 3}$.
Задание 8: Вычисли $\lim\limits_{x \to 0} \dfrac{\sin 5x}{x}$.
Задание 9: Найди односторонние пределы функции $f(x) = \dfrac{|x-2|}{x-2}$ в точке $x = 2$. Существует ли предел?
Задание 10: Для сигмоиды $\sigma(x) = \dfrac{1}{1+e^{-x}}$ найди $\lim\limits_{x\to+\infty}\sigma(x)$ и $\lim\limits_{x\to-\infty}\sigma(x)$. Какие у графика горизонтальные асимптоты?
Средние (задания 11-20)
Задание 11: Вычисли $\lim\limits_{x \to 3} \dfrac{x^2 - 9}{x^2 - 4x + 3}$.
Задание 12: Найди $\lim\limits_{x \to 1} \dfrac{x^3 - 1}{x^2 - 1}$.
Задание 13: Вычисли $\lim\limits_{x \to 0} \dfrac{\sqrt{1+x} - 1}{x}$.
Задание 14: Найди $\lim\limits_{x \to 0} \dfrac{\operatorname{tg} x}{x}$.
Задание 15: Вычисли $\lim\limits_{x \to 0} \dfrac{\sin 3x}{\sin 7x}$.
Задание 16: Найди $\lim\limits_{x \to +\infty} \dfrac{\sqrt{x^2+1}}{2x+3}$. Изменится ли ответ при $x \to -\infty$?
Задание 17: Вычисли $\lim\limits_{x \to +\infty} \left(\sqrt{x^2+4x} - x\right)$.
Задание 18: Найди пределы гиперболического тангенса $\operatorname{th} x = \dfrac{e^{2x}-1}{e^{2x}+1}$ при $x \to \pm\infty$ и укажи асимптоты.
Задание 19: Вычисли $\lim\limits_{x \to 0} \dfrac{1 - \cos x}{x^2}$.
Задание 20: Кусочная функция активации задана как
$$f(x) = \begin{cases} x^2 + a, & x < 2, \\ 3x, & x \geq 2. \end{cases}$$При каком $a$ существует $\lim\limits_{x\to 2} f(x)$? Чему он равен?
Продвинутые (задания 21-30)
Задание 21: Докажи, что $\lim\limits_{x\to 0}\sin\dfrac{1}{x}$ не существует, но $\lim\limits_{x\to 0} x\sin\dfrac{1}{x} = 0$.
Задание 22: Вычисли $\lim\limits_{x \to 2} \dfrac{x^3 - 3x^2 + 4}{x^3 - 2x^2 - 4x + 8}$.
Задание 23: Найди $\lim\limits_{x \to 0} \dfrac{\sqrt{1+x} - \sqrt{1-x}}{x}$.
Задание 24: Вычисли $\lim\limits_{x \to 8} \dfrac{\sqrt[3]{x} - 2}{x - 8}$.
Задание 25: Найди $\lim\limits_{x \to 0} \dfrac{\sin 2x}{\sqrt{1+x} - 1}$.
Задание 26: Вычисли $\lim\limits_{x \to +\infty} \left(\sqrt{x^2+3x+1} - \sqrt{x^2-x}\right)$.
Задание 27: Найди $\lim\limits_{x \to \frac{\pi}{2}} \dfrac{\cos x}{x - \frac{\pi}{2}}$.
Задание 28: В задаче бинарной классификации softmax по двум логитам даёт вероятность первого класса $p(z) = \dfrac{e^{z}}{e^{z} + e^{c}}$, где $c$ — фиксированный логит второго класса. Найди $\lim\limits_{z\to+\infty} p(z)$ и $\lim\limits_{z\to-\infty} p(z)$. Покажи также, что вычитание константы из обоих логитов не меняет $p$.
Задание 29: Вычисли $\lim\limits_{x \to 0} \dfrac{\sqrt{1+x} - \sqrt[3]{1+x}}{x}$.
Задание 30: Softmax с температурой для двух классов с логитами $z_1 > z_2$ даёт
$$p_1(T) = \frac{e^{z_1/T}}{e^{z_1/T}+e^{z_2/T}}.$$Найди $\lim\limits_{T\to 0^{+}} p_1(T)$ и $\lim\limits_{T\to+\infty} p_1(T)$. Объясни, что это значит для генерации текста.
Частые ошибки
❌ Ошибка 1: считают, что предел — это значение функции в точке
Неправильно: «Функция в точке $1$ не определена, значит предела нет» — или, наоборот, «$f(1) = 100$, значит предел равен $100$».
Правильно: предел описывает поведение функции в проколотой окрестности точки. Значение $f(a)$ в определении не участвует вообще: функция может быть там не определена, определена «неправильно» или определена «правильно» — на предел это не влияет.
💡 Почему важно: вся идея предела в том, чтобы получать осмысленный ответ там, где прямое вычисление невозможно. Если бы предел совпадал со значением, он был бы бесполезен. Совпадение предела и значения — отдельное важное свойство, оно называется непрерывностью и разбирается в следующем уроке; именно потому, что это свойство есть далеко не всегда, ему посвящён целый урок.
❌ Ошибка 2: символ $\frac{0}{0}$ принимают за ответ
Неправильно: «В числителе ноль, в знаменателе ноль, значит предел равен нулю» (или единице, или «не существует»).
Правильно: $\frac00$ — это не число и не приговор, а сигнал к работе. Мы уже видели три дроби одной и той же формы с ответами $2$, $0$ и «предела нет»: $\frac{2x}{x}$, $\frac{x^2}{x}$, $\frac{x}{x^2}$ при $x\to 0$.
💡 Почему важно: ответ определяется не формой, а тем, кто из двух бесконечно малых убывает быстрее. Ровно та же логика лежит в основе оценки сложности алгоритмов и сравнения скоростей сходимости — там тоже сравнивают не «оба стремятся к нулю», а «во сколько раз быстрее».
❌ Ошибка 3: применяют правило о пределе частного при нулевом знаменателе
Неправильно: написать $\lim\limits_{x\to 1}\dfrac{x^2-1}{x-1} = \dfrac{\lim(x^2-1)}{\lim(x-1)} = \dfrac{0}{0}$ и на этом закончить.
Правильно: пункт 4 арифметики пределов явно требует $\lim g(x) \neq 0$. Если знаменатель стремится к нулю, теорема неприменима и нужны преобразования: разложение, сопряжённое, замена.
💡 Почему важно: это самая частая формальная ошибка в теме — применение теоремы за пределами её условий. Полезная привычка: прежде чем расписывать предел по правилам, проверь их условия. В коде эта же ошибка выглядит как деление на величину, которая может обнулиться, — и лечится тем же способом: аналитическим преобразованием формулы, а не увеличением точности.
❌ Ошибка 4: сокращают на выражение, не убедившись, что оно не ноль
Неправильно: сокращать $\frac{(x-2)(x+3)}{(x-2)(x-5)}$ на $(x-2)$ «просто так», не оговаривая условие.
Правильно: сокращение законно именно потому, что по определению предела $x \neq a$, а значит $x - a \neq 0$. Это единственное, но обязательное обоснование — и его стоит проговаривать, потому что в уравнениях такое сокращение как раз запрещено и приводит к потере корня.
💡 Почему важно: в задаче на предел сокращение на $(x-a)$ — законный ход, а в задаче на решение уравнения точно такое же сокращение теряет корень $x = a$. Одно и то же действие, разная законность, и различает их ровно слово «проколотая».
❌ Ошибка 5: забывают модуль при выносе $x^2$ из-под корня
Неправильно: $\sqrt{x^2+1} = x\sqrt{1+\frac{1}{x^2}}$ при любом $x$.
Правильно: $\sqrt{x^2+1} = |x|\sqrt{1+\frac{1}{x^2}}$, а дальше $|x| = x$ при $x \to +\infty$ и $|x| = -x$ при $x \to -\infty$.
💡 Почему важно: это ошибка ровно в знаке ответа, и она не ловится «здравым смыслом»: $\frac{\sqrt{x^2+1}}{2x+3}$ стремится к $\frac12$ на одном конце и к $-\frac12$ на другом. У графика две разные горизонтальные асимптоты, и потерять одну из них — значит неправильно описать поведение функции на половине числовой прямой. Проверка одна: подставь большое отрицательное число и посмотри на знак.
❌ Ошибка 6: применяют первый замечательный предел в градусах или не приводя к каноническому виду
Неправильно: считать $\lim\limits_{x\to 0}\frac{\sin 5x}{x} = 1$ (аргументы синуса и знаменателя разные!) или пользоваться формулой, когда угол задан в градусах.
Правильно: канонический вид — это $\frac{\sin t}{t}$, где под синусом и в знаменателе стоит одно и то же выражение, стремящееся к нулю. Приводим домножением: $\frac{\sin 5x}{x} = 5\cdot\frac{\sin 5x}{5x} \to 5$. И только в радианах: в градусах $\lim\limits_{x\to 0}\frac{\sin x^{\circ}}{x} = \frac{\pi}{180}$.
💡 Почему важно: ошибка с радианами даёт результат, ошибочный примерно в $57$ раз, и её очень трудно заметить по порядку величины, если задача абстрактная. Все математические библиотеки (math.sin, np.sin, torch.sin) принимают радианы — именно из-за этого предела.
❌ Ошибка 7: путают «предел равен бесконечности» и «предел существует»
Неправильно: «$\lim\limits_{x\to 0^+}\frac1x = +\infty$, значит предел существует и равен бесконечности» — и дальше подставлять $\infty$ в арифметику пределов, получая $\infty - \infty = 0$ или $\frac{\infty}{\infty} = 1$.
Правильно: существование предела означает конечное число $L$. Запись $\lim = +\infty$ — сокращение для «значения растут неограниченно», и арифметика пределов на такие случаи не распространяется.
💡 Почему важно: именно отсюда растут «доказательства» вроде $\infty-\infty=0$. Мы видели контрпример в задании 26: $\sqrt{x^2+3x+1}-\sqrt{x^2-x}$ — форма $\infty-\infty$, а предел равен $2$. Символы бесконечности можно использовать как описание поведения, но никогда — как числа в вычислениях.
❌ Ошибка 8: считают, что если односторонние пределы существуют, то предел есть
Неправильно: «Слева $-1$, справа $1$, оба существуют, значит функция ведёт себя нормально».
Правильно: критерий требует не просто существования обоих, но и их равенства. Разные односторонние пределы — это скачок, и общего предела нет.
💡 Почему важно: на этом стоит вся классификация точек разрыва (урок 184) и вся практика работы с кусочными функциями. Когда подбираешь параметр склейки у активации или лосса, ты решаешь ровно уравнение «левый предел = правому».
Главное запомнить
📝 Ключевые понятия
✅ Предел функции в точке: $\lim\limits_{x\to a} f(x) = L$ означает, что для любой последовательности $x_n \to a$ с $x_n \neq a$ значения $f(x_n)$ стремятся к $L$. Значение $f(a)$ в определении не участвует.
✅ Проколотая окрестность: предел описывает поведение функции рядом с точкой, а не в ней. Отсюда законность сокращения на $(x-a)$: по определению $x \neq a$.
✅ Как доказать, что предела нет: предъявить две последовательности $x_n \to a$ с разными пределами значений. Классика — $\sin\frac1x$ при $x\to 0$.
✅ Односторонние пределы и критерий: $\lim\limits_{x\to a} f(x)$ существует $\iff$ существуют оба односторонних предела и они равны. Разные односторонние = скачок.
✅ Арифметика пределов: пределы суммы, разности, произведения и частного равны соответствующим комбинациям пределов — при условии, что все пределы конечны, а в частном ещё и $\lim g(x) \neq 0$. Отсюда: предел многочлена находится подстановкой.
✅ Неопределённости $\frac00$, $\frac{\infty}{\infty}$, $\infty-\infty$, $0\cdot\infty$ — это не ответы, а сигналы к преобразованию. Инструменты: разложение на множители, сокращение, домножение на сопряжённое, замена переменной.
✅ Предел на бесконечности и горизонтальная асимптота: $y = L$ — асимптота, если $\lim\limits_{x\to\pm\infty} f(x) = L$. Асимптоты слева и справа могут быть разными.
✅ Правило для рациональных дробей на бесконечности: делим на $x$ в старшей степени знаменателя. Степень числителя меньше — предел $0$; равна — отношение старших коэффициентов; больше — конечного предела нет.
✅ Модуль при выносе корня: $\sqrt{x^2 + \dots} = |x|\sqrt{1 + \dots}$, и при $x\to-\infty$ это $-x$. Пропущенный модуль — ошибка в знаке.
✅ Первый замечательный предел: $\lim\limits_{x\to 0}\dfrac{\sin x}{x} = 1$ (только в радианах!). Следствия: $\frac{\sin kx}{x}\to k$, $\frac{\operatorname{tg} x}{x}\to 1$, $\frac{\arcsin x}{x}\to 1$, $\frac{1-\cos x}{x^2}\to\frac12$.
✅ Теорема о сжатии: если $g \leq f \leq h$ и крайние стремятся к одному $L$, то и $f \to L$. Отсюда: ограниченное, умноженное на бесконечно малое, есть бесконечно малое.
✅ Пределы в ML: сигмоида имеет асимптоты $y=0$ и $y=1$ (насыщение), tanh — $y=\pm1$; затухание градиента — это $q^{L}\to 0$ для $q<1$; softmax инвариантен к сдвигу логитов (лечит переполнение) и при $T\to 0^+$ вырождается в argmax.
Связь с другими темами курса
Что было раньше: урок 129 ввёл предел последовательности — и мы буквально построили на нём определение по Гейне, не изобретая ничего нового. Урок 130 про сумму бесконечной геометрической прогрессии был первым содержательным применением предельного перехода: там $q^{n}\to 0$ давало формулу $S = \frac{b_1}{1-q}$; сегодня та же идея работает и в затухании градиентов. Урок 89 про асимптоты мы, по сути, переписали на строгий язык: горизонтальная асимптота — это предел на бесконечности, вертикальная — точка, где односторонний предел бесконечен. Уроки 111–113 про показательную функцию дали факт $e^{-x}\to 0$, без которого не посчитать ни один предел с сигмоидой. Уроки 91–101 по тригонометрии — формулы приведения и половинного угла, на которых держится всё семейство замечательных пределов. И, конечно, вся школьная алгебра разложений: разность квадратов, разность кубов, теорема Виета, деление многочленов — именно они превращают неопределённость в обычную дробь.
Что дальше: урок 132 про непрерывность — это ровно один шаг от сегодняшнего материала: функция непрерывна в точке, если предел существует и равен значению, $\lim\limits_{x\to a} f(x) = f(a)$. Все три сегодняшних «патологии» (нет значения, значение не то, предела нет) станут тремя типами разрыва. Урок 133 введёт производную — а это предел отношения приращений $\frac{f(x)-f(a)}{x-a}$ при $x\to a$, то есть неопределённость $\frac00$, которую мы сегодня учились раскрывать; сегодняшняя техника там становится ежедневным инструментом. Дальше — исследование функций (139–144), первообразная и интеграл (145–150), где предел прячется в определении интегральной суммы. В университетском блоке нас ждут строгое $\varepsilon$–$\delta$ (183), классификация разрывов (184), второй замечательный предел и сравнение бесконечно малых (180–182), а также правило Лопиталя (192) — мощная машина для тех же неопределённостей, которую можно применять только после того, как освоена производная.
Где это применяется в жизни и в ML/данных:
🤖 В машинном обучении: поведение функций активации на краях (насыщение сигмоиды и tanh, отсутствие насыщения у ReLU), затухающие и взрывающиеся градиенты как предел произведения множителей, softmax с температурой и его вырождение в argmax, численно устойчивый logsumexp, предельное поведение лоссов (кросс-энтропия уходит в $+\infty$ при уверенном ошибочном предсказании — отсюда клиппинг вероятностей), сходимость обучения при росте числа шагов.
📊 В анализе данных: асимптотическое поведение метрик при росте выборки, предельные значения кривых удержания и насыщения, поведение сглаживающих формул при малых знаменателях (сглаживание Лапласа — это как раз доопределение $\frac00$), стабилизация оценок.
💻 В программировании: численная устойчивость вычислений (log1p, expm1, вычитание максимума в softmax), катастрофическая потеря точности при вычитании близких чисел, обработка граничных случаев, поведение алгоритмов при $n\to\infty$ — вся асимптотическая оценка сложности $O(\cdot)$ говорит на языке пределов.
🔬 В науке и технике: мгновенная скорость и ускорение (предел отношения приращений), предельная концентрация в химической реакции, установившийся режим в теории управления, релятивистские эффекты при $v \to c$, теплопередача и выход на стационарную температуру.
📈 В экономике и финансах: предельная (маржинальная) выручка и издержки, непрерывное начисление процентов как предел дискретного, установившиеся значения в моделях роста, дисконтированная стоимость бесконечного потока платежей.
Интересные факты
💡 Слово «предел» младше самого исчисления почти на сто лет. Ньютон опубликовал свои результаты в 1687-м, Даламбер аккуратно ввёл термин limite в 1765-м, а строгое определение появилось только у Вейерштрасса в 1860-х. То есть математики почти двести лет успешно пользовались инструментом, который не могли определить. Это редкий и поучительный случай: практика опередила теорию, и теория догоняла её два века.
💡 «Призраки почивших величин». Так епископ Джордж Беркли в 1734 году назвал бесконечно малые Ньютона и Лейбница, атакуя новое исчисление в памфлете «Аналитик». Его аргумент был безупречен логически: величина, на которую делят, не может быть нулём, а величина, которую отбрасывают, не может быть ненулевой. Ответ нашёлся только через понятие предела, где ничего не отбрасывается — вместо этого рассматривается поведение всего выражения целиком.
💡 Первый замечательный предел объясняет, почему в математике не используют градусы. В радианах $\frac{\sin x}{x}\to 1$, и все формулы получаются чистыми. В градусах в них немедленно вылезает множитель $\frac{\pi}{180} \approx 0{,}01745$, который приходится тащить через все выкладки. Радиан — не «более научный» способ мерить углы, а единственный, при котором предел равен единице.
💡 Функция $\sin\frac1x$ была придумана как контрпример — и стала классикой. Её называют топологическим синусом; её график около нуля колеблется бесконечно часто, оставаясь ограниченным. Такие «патологии» математики XIX века изобретали специально, чтобы проверить на прочность новые определения, и именно на них выяснилось, какие интуитивные утверждения ложны. Вейерштрасс позже построил функцию, непрерывную всюду и не имеющую производной ни в одной точке — это шокировало современников не меньше.
💡 Парадокс Зенона про Ахиллеса закрывается ровно понятием предела. Ахиллес никогда не догонит черепаху, потому что нужно пройти бесконечно много отрезков — так рассуждал Зенон. С точки зрения анализа отрезки образуют геометрическую прогрессию с $q<1$, их сумма конечна (урок 130), а время встречи вычисляется как обычный предел. Спор длиной в две с половиной тысячи лет закрылся техникой, которую ты только что разобрал.
💡 Каждая нейросеть считает пределы, сама того не зная. Функция torch.nn.functional.softmax внутри вычитает максимум логита — тот самый трюк из задания 28. torch.log1p существует именно потому, что $\ln(1+x)$ около нуля ведёт себя как $x$, и наивная формула теряет точность. А torch.finfo(dtype).eps, добавляемый в знаменатели, — это инженерная версия фразы «функция в этой точке не определена, но предел существует».
Лайфхаки и полезные трюки
1. Всегда начинай с подстановки
Первое действие в любой задаче на предел — подставить точку. Если получилось нормальное число — ответ найден, и никакие преобразования не нужны (это работает для всех элементарных функций в их области определения). Если получилась неопределённость — ты уже знаешь, какая именно, и это подсказывает приём.
Пример: в $\lim\limits_{x\to 2}\frac{x^2+1}{x-5}$ подстановка даёт $\frac{5}{-3}$ — готовый ответ за три секунды. Не начинай раскладывать на множители, пока не убедился, что это нужно.
2. Форма неопределённости выбирает инструмент
Держи в голове короткую таблицу соответствий: многочлены и $\frac00$ — разложение на множители; корни и $\frac00$ — сопряжённое; корни разных степеней — замена $t^{\mathrm{HOK}}$; тригонометрия и $\frac00$ — первый замечательный; дробь при $x\to\infty$ — деление на старшую степень; разность корней при $x\to\infty$ — сопряжённое, а затем деление на старшую степень.
Пример: увидел $\sqrt{x^2+5x}-x$ при $x\to+\infty$ — рука сама тянется к сопряжённому, потому что это единственный способ превратить $\infty-\infty$ во что-то считаемое.
3. Если числитель и знаменатель обнулились в точке $a$ — оба делятся на $(x-a)$
Это следствие теоремы Безу, и оно экономит массу времени: не нужно гадать, как разложить многочлен, — ты уже знаешь один его множитель. Разделишь уголком или подберёшь остальные коэффициенты.
Пример: в $\frac{x^3-3x^2+4}{x^3-2x^2-4x+8}$ при $x\to 2$ обнулилось всё — значит оба куба делятся на $(x-2)$. Разделили, а там обнаружилось, что делятся ещё раз.
4. Проверяй ответ калькулятором в близкой точке
Любой найденный предел проверяется за десять секунд: подставь $x = a + 0{,}001$ и сравни. Совпало в первых трёх знаках — почти наверняка всё верно; не совпало — где-то потерян множитель или знак. Для пределов на бесконечности подставляй $x = 10^6$.
Пример: получил $\lim\limits_{x\to 0}\frac{\sin 4x}{\sin 9x} = \frac49$? Считаем при $x=0{,}001$: $\frac{0{,}00399999}{0{,}00899988}=0{,}44445$, а $\frac49 = 0{,}4444$. Сошлось.
5. Каноническая форма — главное правило замечательного предела
Формула $\frac{\sin t}{t}\to 1$ работает, только когда под синусом и в знаменателе стоит одно и то же выражение, стремящееся к нулю. Не совпадает — домножь и подели на нужный множитель, а не «примерно так же».
Пример: $\frac{\sin 3x}{5x}$ — приводим к виду $\frac{3}{5}\cdot\frac{\sin 3x}{3x}\to\frac35$. Никакой магии, чистая подгонка множителя.
6. Сдвигай точку в ноль заменой $t = x - a$
Все замечательные пределы сформулированы для $x\to 0$. Если точка другая — переезжай в ноль заменой и добивай формулами приведения. Приём универсальный и почти всегда упрощает выражение.
Пример: $\lim\limits_{x\to\pi}\frac{\sin x}{x-\pi}$: замена $t = x-\pi$ даёт $\sin(t+\pi) = -\sin t$, откуда $\frac{-\sin t}{t}\to -1$.
7. Ограниченное на бесконечно малое = бесконечно малое
Если один множитель ограничен (синус, косинус, любая функция со значениями в отрезке), а другой стремится к нулю, произведение стремится к нулю — по теореме о сжатии, даже если у первого множителя предела нет вовсе.
Пример: $x\sin\frac1x\to 0$ при $x\to 0$, хотя $\sin\frac1x$ не имеет предела. То же в ML: ограниченный по норме шум, умноженный на затухающий learning rate, даёт затухающее возмущение — стандартный аргумент в доказательствах сходимости SGD.
8. Для дроби на бесконечности смотри только на старшие степени
Все младшие слагаемые на бесконечности неразличимы — они дают нули. Поэтому ответ читается сразу: сравнил степени числителя и знаменателя, взял отношение старших коэффициентов, если степени равны.
Пример: $\frac{7x^3-100x^2+5}{2x^3+x} \to \frac72$ — и вся «страшная» константа $100$ роли не играет. Мысленная проверка: при $x = 10^6$ слагаемое $100x^2$ в миллион раз меньше, чем $7x^3$.
9. Не можешь посчитать предел — попробуй доказать, что его нет
Иногда задача не решается не потому, что ты чего-то не знаешь, а потому, что предела действительно нет. Быстрый тест: подойди к точке двумя разными способами (слева и справа; по двум разным последовательностям). Разные ответы — доказательство отсутствия предела, и это полноценное решение, а не тупик.
Пример: для $\frac{|x-3|}{x-3}$ при $x\to 3$ хватает двух подстановок: $x = 3{,}01$ даёт $1$, $x = 2{,}99$ даёт $-1$. Дальше можно ничего не считать.
Что дальше
Ты только что получил инструмент, которым дальше пользуется вся высшая математика. И самое приятное — следующий шаг совсем короткий. Мы сегодня несколько раз аккуратно повторили: предел не смотрит на значение функции в точке, они могут не совпадать, а могут и совпадать. Так вот, случай, когда они совпадают, настолько важен, что у него есть отдельное имя — непрерывность:
$$\lim_{x\to a} f(x) = f(a).$$Это одна формула, но за ней стоят и классификация разрывов, и метод половинного деления для поиска корней, и теорема о промежуточном значении, и объяснение, почему кусочные активации приходится склеивать так тщательно. Ровно этому посвящён урок 132 — и после сегодняшнего он пойдёт легко, потому что вся тяжёлая работа уже сделана здесь.
А через два урока появится производная: предел отношения приращений
$$\lim_{x\to a}\frac{f(x)-f(a)}{x-a}.$$Посмотри на эту дробь внимательно. При $x \to a$ и числитель, и знаменатель стремятся к нулю — это в точности та неопределённость $\frac00$, которую ты сегодня раскрывал разложением, сопряжённым и заменой переменной. Производная — не новая магия, а систематическое применение сегодняшней техники к одной конкретной дроби. Всё, что ты сейчас отработал на тридцати заданиях, там станет ежедневным рабочим инструментом.
💡 Совет: заведи привычку задавать любой формуле три вопроса: что будет при $x\to 0$, что при $x\to+\infty$, что при $x\to-\infty$. Это тридцать секунд работы, а отдача огромная. Именно так за минуту становится видно, что сигмоида на краях перестаёт различать входы, что softmax при экстремальных логитах переполнится и что цепочка из двадцати слоёв с множителем $0{,}25$ не донесёт сигнал до первого слоя. Люди, которые это видят прямо из формул, отлаживают модели в разы быстрее тех, кто выясняет то же самое экспериментом на полдня.
И помни главное про сам предел: он про окрестность, а не про точку. Именно поэтому он умеет отвечать там, где прямое вычисление бессильно — а таких мест в реальных вычислениях гораздо больше, чем кажется. Ты сегодня научился читать поведение функции на краях, раскрывать четыре вида неопределённостей и доказывать, что предела нет. Это ровно тот фундамент, на котором стоят следующие двадцать уроков курса.
Дальше — урок 132 «Непрерывность функции». Одна формула, три типа разрывов и понимание, почему «функция без разрывов» — это не эстетика, а условие работоспособности половины численных методов. Погнали 🚀
Понял тему? Закрепи в боте! 🚀
Попрактикуйся на задачах и получи персональные рекомендации от AI
💪 Начать тренировку