🔴 Сложный ⏱️ 50 минут

Свойства показательной функции

📋 Содержание урока

Свойства показательной функции ⚙️

Есть большая разница между «я знаю, что такое $a^x$» и «я умею этим пользоваться». В уроке 111 ты познакомился с показательной функцией как с объектом: подставляем любое действительное число в показатель, получаем строго положительный результат. В уроке 112 разобрался, почему среди всех оснований математики выделили число $e$. Сегодня мы делаем третий, самый практичный шаг — превращаем эти знания в инструмент, которым можно решать задачи, не задумываясь.

Смотри, как это выглядит на практике. Инженер обучает нейросеть, и на середине обучения в логах появляется nan — вместо чисел модель начинает выдавать «не число». Причина в одной строчке: np.exp(logits), где логиты доросли до тысячи. Другой инженер видит, что глубокая сеть с сигмоидами обучается мучительно медленно, и первые слои вообще не двигаются. Причина та же самая — свойство показательной функции, а именно то, как быстро $e^{-x}$ становится исчезающе малым. Третий настраивает расписание learning rate и хочет, чтобы шаг падал ровно вдвое каждые 10 эпох — и снова всё упирается в свойства $a^x$.

Ни одна из этих ситуаций не требует высшей математики. Все они решаются на уровне школьных свойств показательной функции: множество значений $(0; +\infty)$, строгая монотонность, тождество $a^{x+y} = a^x \cdot a^y$ и понимание того, как ведёт себя график на бесконечности. Именно эти свойства мы сегодня разложим по полочкам — так, чтобы ты видел их не как список для зубрёжки, а как набор рычагов: за какой потянуть, чтобы задача сдвинулась.

План простой. Сначала соберём полный «паспорт» функции $y = a^x$: что можно подставлять, что получается на выходе, где график, куда он идёт. Потом — монотонность и то, что из неё немедленно следует: сравнение значений, простейшие неравенства, единственность решения уравнения. Дальше — свойства степеней как рабочий аппарат для преобразования выражений с переменной в показателе. И в финале — преобразования графика и три больших ML-сюжета: насыщение сигмоиды, переполнение float в softmax и экспоненциальное затухание шага обучения.

🎯 Ты узнаешь:

  • Полный список свойств $y = a^x$ — область определения, множество значений, знакопостоянство, монотонность, асимптота — и почему каждое из них следует из предыдущих, а не берётся с потолка
  • Как одной фразой «функция строго монотонна» закрывать целые классы задач: сравнение степеней, простейшие неравенства, доказательство единственности корня
  • Свойства степеней ($a^{x+y} = a^x a^y$ и компания) в режиме рабочего инструмента — на выражениях, где в показателе стоит переменная
  • Как из базового графика $y = a^x$ получить $y = a^{x-c} + b$, $y = -a^x$, $y = a^{-x}$ и где при этом оказывается асимптота
  • Почему сигмоида «насыщается» и это душит обучение глубоких сетей, почему наивный softmax падает с переполнением и как трюк вычитания максимума чинит это одним свойством степеней

История: откуда это взялось?

Свойства показательной функции никто не «придумывал» отдельно — они выкристаллизовались из двухсотлетнего спора о том, что вообще считать законной степенью. К середине XVII века математики уверенно работали с $a^n$ для натуральных $n$, а Джон Валлис в «Arithmetica Infinitorum» (1656) узаконил отрицательные и дробные показатели. Но принцип, по которому расширяли определение, был не «а давайте так», а куда более строгий: новое определение обязано сохранять старые тождества. Именно требование, чтобы правило $a^{m+n} = a^m \cdot a^n$ продолжало работать, вынуждает принять $a^0 = 1$ (подставь $n = 0$) и $a^{-n} = 1/a^n$ (подставь $n = -m$). Свойства степеней здесь не следствие определения, а его причина — это редкий и красивый случай в математике.

Финальную точку поставил Леонард Эйлер. В «Introductio in analysin infinitorum» (1748) он впервые рассматривает $a^x$ именно как функцию непрерывного аргумента и систематически выписывает её свойства: определена при всех действительных $x$, принимает только положительные значения, монотонна, переводит сумму в произведение. Эта последняя черта — $f(x+y) = f(x) \cdot f(y)$ — оказалась настолько характерной, что в XIX веке Огюстен Коши поставил обратный вопрос: а какие вообще функции обладают этим свойством? Ответ (для непрерывных функций) оказался жёстким: только показательные и ничего больше. То есть «превращать сложение в умножение» — это не одно из свойств экспоненты, а её сущность, её единственная примета.

Мостик в сегодня короче, чем кажется. Когда в 1980–90-х Джон Хопфилд и другие переносили в нейросети идеи статистической физики, распределение Больцмана $p_i \propto e^{-E_i/T}$ пришло вместе с ними — и превратилось в то, что мы теперь зовём softmax. Работает оно ровно на двух свойствах из этого урока: экспонента всегда положительна (значит, получаются законные вероятности) и переводит сумму в произведение (значит, общий множитель сокращается, и можно безнаказанно сдвигать все логиты на константу). Эйлер, выписывая свои тождества в 1748 году, разумеется, не думал про классификацию картинок — но именно его список свойств спасает сегодня обучение от nan в логах.


Блок 1: Паспорт функции $y = a^x$ — что можно подставить и что получится

Представь, что у функции есть техпаспорт

У любого прибора есть табличка с характеристиками: какое напряжение подавать на вход, какой ток на выходе, в каком диапазоне температур работает. У функции такая же табличка есть, и она называется набором свойств. Для показательной функции она короткая, но каждая строчка в ней много значит.

Договоримся сразу: всюду в уроке $a > 0$ и $a \neq 1$ — это условия из определения, которые мы разобрали в уроке 111. Отрицательное основание ломает область определения ($(-4)^{1/2}$ не существует), нулевое даёт деление на ноль, а единица вырождает функцию в константу.

Вот первые три строчки паспорта.

Строка 1. Область определения — вся числовая прямая. Подставлять можно любое действительное число: целое, дробное, отрицательное, иррациональное. Никаких «запрещённых точек», никаких разрывов, никаких «здесь знаменатель обращается в ноль». Это редкость: у степенной функции $y = x^{1/2}$ область определения обрезана, у $y = 1/x$ выколота точка, а у показательной — сплошная прямая от минус бесконечности до плюс бесконечности.

Строка 2. Множество значений — только положительные числа. Сколько бы ты ни подставлял, на выходе всегда получится строго положительное число. Не ноль, не отрицательное. При этом любое положительное число достижимо: какое $y > 0$ ни задай, найдётся ровно один такой $x$, что $a^x = y$.

Строка 3. Функция знакопостоянна и не имеет нулей. Это прямое следствие второй строки, но его стоит проговорить отдельно, потому что в задачах оно работает как готовый аргумент: выражение вида $a^{(\text{что угодно})}$ никогда не обращается в ноль и никогда не меняет знак.

Определение

Основные свойства показательной функции. Для функции $f(x) = a^x$ при $a > 0$, $a \neq 1$:

  1. Область определения: $D(f) = (-\infty; +\infty) = \mathbb{R}$

  2. Множество значений: $E(f) = (0; +\infty)$

  3. Знакопостоянство: $a^x > 0$ при всех $x \in \mathbb{R}$; нулей у функции нет

  4. Общая точка: $f(0) = a^0 = 1$ при любом допустимом $a$

  5. Вторая опорная точка: $f(1) = a^1 = a$

Пример 1 (простой): читаем паспорт по формуле

Вопрос: Найди область определения и множество значений функции $y = \left(\dfrac{3}{7}\right)^x$.

Решение:

Давай разберёмся, что вообще нужно проверить. Основание здесь $a = \dfrac{3}{7} \approx 0{,}43$. Проверяем допустимость: $a > 0$ ✅, $a \neq 1$ ✅. Значит, перед нами полноценная показательная функция, и паспорт применим целиком.

Область определения: в формуле нет ни знаменателя с переменной, ни корня чётной степени, ни ничего, что могло бы «сломаться». Показатель — просто $x$. Подставлять можно любое действительное число.

Множество значений: основание положительно, значит, любая его степень положительна. И любое положительное число достижимо.

Ответ: $D(y) = (-\infty; +\infty)$, $E(y) = (0; +\infty)$.

Обрати внимание на важную вещь: множество значений не зависит от основания вообще. Хоть $2^x$, хоть $0{,}001^x$, хоть $e^x$ — всегда $(0; +\infty)$. Основание влияет на то, как быстро функция пробегает этот промежуток, но не на то, какой это промежуток.


Пример 2 (средний): паспорт сдвинутой функции

Вопрос: Найди множество значений функции $y = 5^x - 3$.

Решение:

Разберём по шагам. Здесь не чистая показательная функция, а показательная плюс сдвиг. Работаем «изнутри наружу».

Шаг 1. Внутренняя часть $5^x$ — обычная показательная функция, для неё $5^x \in (0; +\infty)$, то есть

$$5^x > 0 \quad \text{при всех } x$$

Шаг 2. Вычитаем 3 из обеих частей неравенства. Вычитание одного и того же числа не меняет знак неравенства:

$$5^x - 3 > 0 - 3 = -3$$

Шаг 3. Значит, $y > -3$. Может ли $y$ принять любое значение больше $-3$? Да: если мы хотим получить $y_0 > -3$, нам нужно, чтобы $5^x = y_0 + 3$, а $y_0 + 3 > 0$ — и такое $x$ найдётся, потому что $5^x$ пробегает все положительные числа.

Может ли $y$ равняться ровно $-3$? Для этого нужно $5^x = 0$, а это невозможно.

Ответ: $E(y) = (-3; +\infty)$.

Проверим наш ответ. Подставим пару значений: $x = 0 \Rightarrow y = 1 - 3 = -2$ (больше $-3$ ✅), $x = -5 \Rightarrow y = \dfrac{1}{3125} - 3 = -2{,}99968$ (близко к $-3$, но больше ✅), $x = 2 \Rightarrow y = 25 - 3 = 22$ ✅. Всё сходится.


Пример 3 (сложный): почему уравнение не имеет корней — без единого вычисления

Вопрос: Докажи, что уравнение $2^{x^2 + 1} + 3^{x - 4} = 0$ не имеет решений.

Решение:

Представь, что кто-то предложил тебе решать это уравнение «в лоб» — приводить к общему основанию, что-то переносить. Это тупик. А правильное решение занимает три строчки и опирается только на строку 3 паспорта.

Шаг 1. Рассмотрим первое слагаемое. Показатель $x^2 + 1$ — это какое-то действительное число (какое именно — неважно). Основание $2 > 0$. Значит, по свойству знакопостоянства:

$$2^{x^2+1} > 0 \quad \text{при любом } x$$

Шаг 2. Точно так же второе слагаемое: показатель $x - 4$ — действительное число, основание $3 > 0$, следовательно:

$$3^{x-4} > 0 \quad \text{при любом } x$$

Шаг 3. Сумма двух строго положительных чисел строго положительна:

$$2^{x^2+1} + 3^{x-4} > 0 + 0 = 0$$

То есть левая часть уравнения при любом $x$ строго больше нуля, а правая равна нулю. Равенство невозможно ни при каком $x$.

Ответ: Уравнение не имеет действительных корней — левая часть строго положительна при всех $x$.

Почему это важно: Это типовой приём, который экономит массу времени. Как только ты видишь сумму показательных выражений (или показательное выражение плюс положительная константа), приравненную к нулю или к отрицательному числу, — решений нет, и это доказывается мгновенно. То же самое работает в анализе кода: если в программе есть проверка if np.exp(x) == 0, она либо никогда не сработает математически, либо сработает из-за машинного нуля (underflow) — и это уже баг не математики, а представления чисел с плавающей точкой, к которому мы вернёмся в блоке 6.


Блок 2: Монотонность — главное свойство, из которого растёт всё остальное

Одно свойство вместо десятка приёмов

Если бы пришлось выбрать одно-единственное свойство показательной функции и выбросить все остальные, я бы оставил монотонность. Из неё следует столько всего, что она работает как универсальный ключ.

Напомню суть из урока 111: при $a > 1$ функция строго возрастает, при $0 < a < 1$ — строго убывает. Причём строго — это принципиально: нет плоских участков, нет двух разных $x$ с одинаковым значением функции, нет смены направления. График идёт либо только вверх, либо только вниз, на всей прямой без исключений.

Ключевой ориентир для запоминания: сравнивай основание не с нулём, а с единицей. Ноль тут вообще ни при чём — основание и так всегда положительно. Вся развилка проходит через единицу.

Определение

Монотонность и её следствия. Пусть $f(x) = a^x$, $a > 0$, $a \neq 1$.

  1. Если $a > 1$, то $f$ строго возрастает: из $x_1 < x_2$ следует $a^{x_1} < a^{x_2}$. Неравенство между показателями сохраняет направление.

  2. Если $0 < a < 1$, то $f$ строго убывает: из $x_1 < x_2$ следует $a^{x_1} > a^{x_2}$. Неравенство между показателями меняет направление на противоположное.

  3. В обоих случаях функция обратима (различным $x$ соответствуют различные значения), поэтому:

$$a^{x_1} = a^{x_2} \iff x_1 = x_2$$

Третий пункт — это «свойство инъективности», и именно оно позволяет из равенства степеней с одинаковым основанием сразу переходить к равенству показателей. Мы пользовались этим ещё в уроке 111, но теперь понятно, откуда оно берётся: если бы функция где-то «разворачивалась», она могла бы дважды принять одно и то же значение, и переход был бы незаконным.

Пример 1 (простой): сравнение с отрицательными показателями

Вопрос: Сравни $3^{-2}$ и $3^{-5}$, не вычисляя значений.

Решение:

Основание $a = 3 > 1$, значит, функция $y = 3^x$ возрастающая: больший показатель даёт большее значение.

Сравниваем показатели. Здесь легко ошибиться на автомате: $-2$ и $-5$ — какое больше? На числовой прямой $-2$ правее, чем $-5$, значит

$$-2 > -5$$

По возрастанию функции больший показатель даёт большее значение:

$$3^{-2} > 3^{-5}$$

Ответ: $3^{-2} > 3^{-5}$.

Проверим наш ответ: $3^{-2} = \dfrac{1}{9} \approx 0{,}111$, а $3^{-5} = \dfrac{1}{243} \approx 0{,}0041$. Действительно, $0{,}111 > 0{,}0041$ ✅


Пример 2 (средний): убывающая функция и разворот неравенства

Вопрос: Реши неравенство $\left(\dfrac{1}{5}\right)^{x} > \dfrac{1}{125}$.

Решение:

Шаг 1. Приводим обе части к одному основанию. Правая часть: $\dfrac{1}{125} = \dfrac{1}{5^3} = \left(\dfrac{1}{5}\right)^3$. Получаем:

$$\left(\frac{1}{5}\right)^{x} > \left(\frac{1}{5}\right)^{3}$$

Шаг 2. Определяем характер монотонности. Основание $a = \dfrac{1}{5} = 0{,}2$, и $0 < 0{,}2 < 1$ — функция убывающая.

Шаг 3. Для убывающей функции неравенство между значениями функции соответствует противоположному неравенству между показателями. Значение слева больше — значит, показатель слева меньше:

$$x < 3$$

Ответ: $x \in (-\infty; 3)$.

Проверим наш ответ. Возьмём $x = 0$ (входит в ответ): $\left(\dfrac{1}{5}\right)^0 = 1$, и $1 > \dfrac{1}{125}$ ✅. Возьмём $x = 4$ (не входит): $\left(\dfrac{1}{5}\right)^4 = \dfrac{1}{625}$, и $\dfrac{1}{625} < \dfrac{1}{125}$ — неравенство не выполнено ✅. Ответ верен.

Типичная ловушка: написать $x > 3$ по инерции. Проверка одной точкой ловит эту ошибку за десять секунд — всегда делай её, пока рефлекс не закрепился.


Пример 3 (сложный): сравнение степеней с разными основаниями

Вопрос: Что больше — $2^{300}$ или $3^{200}$?

Решение:

Прямое сравнение бесполезно: оба числа астрономические, у $2^{300}$ около 91 знака, у $3^{200}$ — около 96. Монотонность здесь тоже не применить в лоб: основания разные, и правило «сравни показатели» работает только при одинаковых основаниях.

Приём — привести к одинаковым показателям, а не к одинаковым основаниям.

Шаг 1. Замечаем, что $300$ и $200$ имеют общий делитель $100$. Используем свойство $(a^m)^n = a^{mn}$ в обратную сторону:

$$2^{300} = 2^{3 \cdot 100} = \left(2^{3}\right)^{100} = 8^{100}$$$$3^{200} = 3^{2 \cdot 100} = \left(3^{2}\right)^{100} = 9^{100}$$

Шаг 2. Теперь показатели одинаковы, а основания разные — и оба положительны. Для положительных чисел работает простое правило: если $0 < p < q$ и $n$ — натуральное, то $p^n < q^n$. Раз $8 < 9$:

$$8^{100} < 9^{100}$$

Шаг 3. Возвращаемся к исходным обозначениям:

$$2^{300} < 3^{200}$$

Ответ: $3^{200}$ больше.

Проверим на маленькой модели. Возьмём те же соотношения показателей, но поменьше: $2^3 = 8$ и $3^2 = 9$ — да, второе больше ✅. $2^6 = 64$ и $3^4 = 81$ — второе больше ✅. Закономерность держится.

Почему это важно: У тебя теперь два независимых инструмента сравнения. Одинаковые основания — сравнивай показатели через монотонность показательной функции. Одинаковые показатели — сравнивай основания. А если ни то ни другое не совпадает, ищи, к чему проще привести. Третий приём — сравнение обоих чисел с «реперной» единицей (или с любым удобным числом-посредником): если $A > 1$, а $B < 1$, дальше можно не считать.


Блок 3: Точка $(0; 1)$ и единица как порог

Все графики проходят через одну точку

Возьми любое допустимое основание — $2$, $10$, $e$, $0{,}3$, $\dfrac{99}{100}$ — и построй график $y = a^x$. Все эти кривые, какими бы разными они ни были, пройдут ровно через одну общую точку: $(0; 1)$. Причина элементарна: $a^0 = 1$ для любого $a > 0$.

Представь пучок верёвок, привязанных к одному гвоздю на высоте 1 над началом координат. Дальше они расходятся веером: те, у которых основание больше единицы, взмывают вправо вверх; те, у которых меньше единицы, — падают вправо вниз. Но точка крепления у всех общая.

Из этого вырастает страшно полезное следствие: единица работает как порог, который отделяет «положительные показатели» от «отрицательных». Смотри:

  • При $a > 1$: если $x > 0$, то $a^x > a^0 = 1$ (возрастание); если $x < 0$, то $a^x < 1$.

  • При $0 < a < 1$: если $x > 0$, то $a^x < a^0 = 1$ (убывание); если $x < 0$, то $a^x > 1$.

То есть по одному взгляду на выражение можно сказать, больше оно единицы или меньше, — вообще ничего не вычисляя.

Определение

Правило порога. Для $a > 1$: $\quad a^x > 1 \iff x > 0$, $\quad a^x = 1 \iff x = 0$, $\quad a^x < 1 \iff x < 0$.

Для $0 < a < 1$: $\quad a^x > 1 \iff x < 0$, $\quad a^x = 1 \iff x = 0$, $\quad a^x < 1 \iff x > 0$.

Точка $(0; 1)$ принадлежит графику $y = a^x$ при любом допустимом основании $a$.

Пример 1 (простой): больше или меньше единицы

Вопрос: Не вычисляя, определи, больше или меньше единицы каждое из чисел: $7^{-0{,}3}$, $\left(0{,}4\right)^{-2}$, $\left(\dfrac{5}{6}\right)^{1{,}7}$.

Решение:

Разберём каждое по правилу порога.

$7^{-0{,}3}$. Основание $7 > 1$, показатель $-0{,}3 < 0$. Возрастающая функция при отрицательном показателе даёт значение меньше единицы. Значит, $7^{-0{,}3} < 1$.

$\left(0{,}4\right)^{-2}$. Основание $0{,}4 < 1$, показатель $-2 < 0$. Убывающая функция при отрицательном показателе даёт значение больше единицы. Значит, $\left(0{,}4\right)^{-2} > 1$.

$\left(\dfrac{5}{6}\right)^{1{,}7}$. Основание $\dfrac{5}{6} \approx 0{,}833 < 1$, показатель $1{,}7 > 0$. Убывающая функция при положительном показателе даёт значение меньше единицы. Значит, $\left(\dfrac{5}{6}\right)^{1{,}7} < 1$.

Ответ: $7^{-0{,}3} < 1$, $\left(0{,}4\right)^{-2} > 1$, $\left(\dfrac{5}{6}\right)^{1{,}7} < 1$.

Проверим наш ответ. $\left(0{,}4\right)^{-2} = \left(\dfrac{5}{2}\right)^2 = 6{,}25 > 1$ ✅. $7^{-0{,}3} = \dfrac{1}{7^{0{,}3}}$, а $7^{0{,}3} > 7^0 = 1$, значит, дробь меньше единицы ✅.


Пример 2 (средний): восстанавливаем функцию по двум точкам

Вопрос: График функции $y = c \cdot a^x$ проходит через точки $(0; 5)$ и $(2; 45)$. Найди $c$ и $a$.

Решение:

Шаг 1. Подставим первую точку. При $x = 0$ множитель $a^0 = 1$, поэтому:

$$5 = c \cdot a^0 = c \cdot 1 = c$$

Отсюда сразу $c = 5$. Вот в чём практическая ценность точки $(0;1)$: она мгновенно вычисляет коэффициент перед показательной функцией.

Шаг 2. Подставим вторую точку с уже найденным $c = 5$:

$$45 = 5 \cdot a^{2} \implies a^{2} = 9$$

Шаг 3. Решаем. Формально у уравнения $a^2 = 9$ два корня: $a = 3$ и $a = -3$. Но основание показательной функции обязано быть положительным, поэтому отрицательный корень отбрасываем:

$$a = 3$$

Дополнительно проверим: $3 > 0$ ✅, $3 \neq 1$ ✅.

Ответ: $c = 5$, $a = 3$, то есть $y = 5 \cdot 3^x$.

Проверим наш ответ: $x = 0 \Rightarrow y = 5 \cdot 1 = 5$ ✅; $x = 2 \Rightarrow y = 5 \cdot 9 = 45$ ✅.

Связь с практикой: ровно эту задачу решает любой, кто подгоняет экспоненциальную модель под две измеренные точки — рост трафика, деградация метрики, затухание learning rate. Значение в нуле даёт стартовый уровень, вторая точка — темп.


Пример 3 (сложный): начальное значение и период удвоения

Вопрос: Число активных пользователей сервиса растёт по закону $N(t) = N_0 \cdot a^{t}$, где $t$ — месяцы. Известно, что на старте ($t = 0$) было 800 пользователей, а через 6 месяцев стало 6400. Найди $N_0$ и $a$, а затем определи, за сколько месяцев аудитория удваивается.

Решение:

Шаг 1. Начальное значение берём из точки $t = 0$, где $a^0 = 1$:

$$N(0) = N_0 \cdot a^0 = N_0 = 800$$

Шаг 2. Подставляем данные о шестом месяце:

$$6400 = 800 \cdot a^{6} \implies a^{6} = \frac{6400}{800} = 8$$

Шаг 3. Извлекаем: $a = \sqrt[6]{8}$. Упростим, представив $8$ как степень двойки:

$$a = \sqrt[6]{2^3} = 2^{3/6} = 2^{1/2} = \sqrt{2} \approx 1{,}414$$

То есть аудитория растёт примерно на 41,4% в месяц.

Шаг 4. Ищем период удвоения — такое $T$, что $N(t + T) = 2 \cdot N(t)$. Распишем левую часть через свойство $a^{m+n} = a^m a^n$:

$$N(t+T) = N_0 \cdot a^{t+T} = N_0 \cdot a^{t} \cdot a^{T} = N(t) \cdot a^{T}$$

Значит, условие удвоения превращается в $a^{T} = 2$ — и, что важно, оно не зависит от $t$. Подставляем $a = 2^{1/2}$:

$$\left(2^{1/2}\right)^{T} = 2^{1} \implies 2^{T/2} = 2^{1}$$

По свойству инъективности (равные степени с одинаковым основанием ⟹ равные показатели):

$$\frac{T}{2} = 1 \implies T = 2$$

Ответ: $N_0 = 800$, $a = \sqrt{2} \approx 1{,}414$, период удвоения — 2 месяца.

Проверим наш ответ. Считаем по месяцам: $800 \to 1131 \to 1600 \to 2263 \to 3200 \to 4525 \to 6400$. На месяце 2 — ровно 1600 (удвоение от 800 ✅), на месяце 4 — 3200 (удвоение от 1600 ✅), на месяце 6 — 6400 ✅. Всё сходится.

Почему это важно: Ты только что доказал фундаментальную черту показательного роста — период удвоения постоянен и не зависит от того, откуда мы начали считать. Аудитория удваивается за 2 месяца что с 800 до 1600, что с 40 000 до 80 000. У линейного роста такого свойства нет и близко: там постоянен абсолютный прирост, а не относительный. Именно по этому признаку в аналитике отличают экспоненту от прямой, даже не строя графиков: посмотри, сохраняется ли время удвоения. И это же свойство лежит в основе периода полураспада в физике и «half-life» метрик в продуктовой аналитике.


Блок 4: Асимптота $y = 0$ и поведение на бесконечностях

Кривая, которая бесконечно подкрадывается к оси

Представь дорогу, идущую параллельно реке. Дорога всё время приближается к берегу: сначала сто метров, потом десять, потом метр, потом сантиметр — но никогда его не пересекает и даже не касается. Именно так график $y = a^x$ ведёт себя относительно оси $Ox$.

Мы уже знаем: $a^x > 0$ всегда, значит, график целиком лежит выше оси абсцисс. Но насколько близко он к ней подбирается? Ответ: сколь угодно близко. Какое бы крошечное положительное число ты ни назвал — $0{,}001$, $10^{-50}$, $10^{-1000}$ — найдётся такое $x$, при котором $2^x$ станет меньше него.

Проверим на числах для $y = 2^x$:

$x$ $2^x$
$-1$ $0{,}5$
$-5$ $0{,}03125$
$-10$ $\approx 0{,}000977$
$-20$ $\approx 9{,}54 \cdot 10^{-7}$
$-50$ $\approx 8{,}88 \cdot 10^{-16}$
$-100$ $\approx 7{,}89 \cdot 10^{-31}$

Значения тают, но ни одно из них не ноль. Прямая $y = 0$ и называется горизонтальной асимптотой.

С другой стороны график ведёт себя противоположно: при неограниченном росте $x$ значение $2^x$ растёт неограниченно, обгоняя любое наперёд заданное число. Никакого «потолка» у показательной функции нет.

Строгий язык пределов появится в уроке 129 — там всё это запишется компактными формулами. Сейчас нам достаточно содержательной формулировки: «становится и остаётся меньше любого заданного положительного числа» и «становится и остаётся больше любого заданного числа».

Определение

Поведение на бесконечностях. Для $f(x) = a^x$:

  • При $a > 1$: с ростом $x$ значения растут неограниченно (обгоняют любое число); при убывании $x$ значения становятся сколь угодно близкими к нулю, оставаясь положительными.

  • При $0 < a < 1$: наоборот — с ростом $x$ значения становятся сколь угодно близкими к нулю; при убывании $x$ растут неограниченно.

В обоих случаях прямая $y = 0$ — горизонтальная асимптота графика, и график её никогда не пересекает и не касается. Других асимптот у $y = a^x$ нет.

Одна важная деталь: асимптота — это свойство «одного конца» графика. У возрастающей показательной функции график прижимается к оси только слева; справа он улетает вверх. У убывающей — зеркально.

Пример 1 (простой): где асимптота у сдвинутого графика

Вопрос: Найди горизонтальную асимптоту графика $y = 3^x - 7$ и его множество значений.

Решение:

График $y = 3^x$ прижимается к прямой $y = 0$ снизу... точнее, сверху: подходит к нулю, оставаясь выше. Вычитание семёрки сдвигает всю картинку вниз на 7 единиц — вместе с асимптотой.

Значит, новая асимптота: $y = 0 - 7 = -7$.

Множество значений: раз $3^x > 0$, то $3^x - 7 > -7$.

Ответ: асимптота $y = -7$, множество значений $E(y) = (-7; +\infty)$.

Мнемоника: асимптота едет вместе с графиком. Куда сдвинули график по вертикали — туда переехала и асимптота. Горизонтальный сдвиг на асимптоту не влияет вообще.


Пример 2 (средний): сравниваем скорость затухания

Вопрос: Две модели затухания: $A(t) = (0{,}9)^t$ и $B(t) = (0{,}5)^t$. Обе стремятся к нулю с ростом $t$. Какая из них первой станет меньше $0{,}01$, и во сколько раз они различаются при $t = 20$? Известно: $0{,}9^{20} \approx 0{,}1216$, $0{,}9^{44} \approx 0{,}00975$, $0{,}5^{7} = 0{,}0078125$, $0{,}5^{20} \approx 9{,}54 \cdot 10^{-7}$.

Решение:

Шаг 1. Обе функции убывающие (основания в интервале $(0;1)$), обе имеют асимптоту $y = 0$. Но темп разный.

Шаг 2. Когда $B$ станет меньше $0{,}01$? Считаем степени половинки: $0{,}5^6 = 0{,}015625$ (больше $0{,}01$), $0{,}5^7 = 0{,}0078125$ (уже меньше ✅). Значит, $B$ пробивает порог на $t = 7$.

Шаг 3. Когда $A$ станет меньше $0{,}01$? По данным задачи $0{,}9^{44} \approx 0{,}00975 < 0{,}01$, а на $t = 20$ ещё $0{,}1216$ — далеко. Порог пробивается примерно на $t = 44$.

Шаг 4. Разница при $t = 20$:

$$\frac{A(20)}{B(20)} = \frac{0{,}1216}{9{,}54 \cdot 10^{-7}} \approx 127\,500$$

Ответ: $B$ пробивает порог $0{,}01$ на $t = 7$, $A$ — только около $t = 44$; при $t = 20$ значение $A$ примерно в $127\,000$ раз больше значения $B$.

Почему это важно: Разница в основании между $0{,}9$ и $0{,}5$ кажется скромной — «ну, в два раза». Но через 20 шагов она превращается в разницу в сто тысяч раз. Именно поэтому подбор коэффициента затухания $\gamma$ в расписании learning rate — не косметическая настройка: $\gamma = 0{,}95$ и $\gamma = 0{,}99$ дают принципиально разные траектории обучения, хотя на глаз числа почти одинаковые.


Пример 3 (сложный): почему экспонента обгоняет любую степень

Вопрос: Что растёт быстрее при больших $x$ — показательная функция $2^x$ или степенная $x^{10}$? Обоснуй, опираясь на характер прироста, и проверь на числах.

Решение:

Интуиция подсказывает: $x^{10}$ — десятая степень, это очень круто. А $2^x$ — «всего лишь двойка». Первое время интуиция даже права.

Шаг 1. Смотрим на числа.

$x$ $x^{10}$ $2^x$ Кто больше
$2$ $1024$ $4$ $x^{10}$
$10$ $10^{10}$ $1024$ $x^{10}$
$50$ $\approx 9{,}77 \cdot 10^{16}$ $\approx 1{,}13 \cdot 10^{15}$ $x^{10}$
$60$ $\approx 6{,}05 \cdot 10^{17}$ $\approx 1{,}15 \cdot 10^{18}$ $2^x$
$100$ $10^{20}$ $\approx 1{,}27 \cdot 10^{30}$ $2^x$
$200$ $\approx 1{,}02 \cdot 10^{23}$ $\approx 1{,}61 \cdot 10^{60}$ $2^x$

Перелом происходит где-то около $x \approx 59$, и после него разрыв растёт катастрофически: при $x = 200$ показательная функция больше степенной в $10^{37}$ раз.

Шаг 2. Почему так — рассуждение о механизме прироста. Сравним, что происходит при увеличении аргумента на единицу.

Для показательной функции отношение соседних значений постоянно:

$$\frac{2^{x+1}}{2^{x}} = 2^{x+1-x} = 2$$

Каждый шаг умножает результат ровно на 2 — всегда, независимо от того, где мы находимся.

Для степенной функции отношение соседних значений:

$$\frac{(x+1)^{10}}{x^{10}} = \left(\frac{x+1}{x}\right)^{10} = \left(1 + \frac{1}{x}\right)^{10}$$

А вот это выражение убывает с ростом $x$: при $x = 1$ оно равно $2^{10} = 1024$, при $x = 10$ уже $1{,}1^{10} \approx 2{,}59$, при $x = 100$ — $1{,}01^{10} \approx 1{,}105$, при $x = 1000$ — примерно $1{,}01$.

Шаг 3. Вывод. Степенная функция на каждом шаге умножается на множитель, который стремится к единице, то есть её «темп» выдыхается. Показательная умножается на постоянный множитель 2, который не выдыхается никогда. Как только множитель степенной функции опускается ниже 2 (а это происходит примерно при $x > 10$), показательная начинает догонять — и рано или поздно обгоняет, каким бы большим ни был показатель степени у $x$.

Ответ: $2^x$ обгоняет $x^{10}$ и в дальнейшем растёт несравнимо быстрее; перелом наступает около $x \approx 59$.

Почему это важно: Это математический фундамент теории сложности алгоритмов. Алгоритм со сложностью $O(n^{10})$ выглядит ужасающе, но он полиномиальный — и на больших входах всё равно окажется практичнее любого экспоненциального $O(2^n)$. Именно поэтому граница «полиномиальный / экспоненциальный» считается главным водоразделом в информатике, а не граница между $O(n)$ и $O(n^{10})$. То же самое в ML: если время обучения растёт экспоненциально от числа признаков, никакое железо не спасёт, а если полиномиально — спасёт.


Блок 5: Свойства степеней как рабочий аппарат

Пять тождеств, которые делают всю работу

До сих пор мы изучали функцию «снаружи»: график, монотонность, асимптота. Теперь перейдём к тому, что позволяет с ней работать руками — к свойствам степеней. Ты знаешь их с восьмого класса, но там показателями были конкретные числа. Сейчас в показателе стоит переменная, и это меняет ощущение: выражения вроде $\dfrac{2^{x+3} - 2^{x}}{2^{x-1}}$ поначалу пугают, хотя сворачиваются в две строчки.

Главная мысль всего блока: показательная функция переводит сложение в умножение. Что бы ты ни делал с показателем, это превращается в арифметику с самими значениями.

Определение

Свойства степеней (для $a > 0$, $b > 0$ и любых действительных $x$, $y$):

  1. $a^{x} \cdot a^{y} = a^{x+y}$ — сложение показателей при умножении

  2. $\dfrac{a^{x}}{a^{y}} = a^{x-y}$ — вычитание показателей при делении

  3. $\left(a^{x}\right)^{y} = a^{xy}$ — умножение показателей при возведении степени в степень

  4. $(ab)^{x} = a^{x} b^{x}$ и $\left(\dfrac{a}{b}\right)^{x} = \dfrac{a^{x}}{b^{x}}$ — распределение по произведению и частному

  5. $a^{-x} = \dfrac{1}{a^{x}} = \left(\dfrac{1}{a}\right)^{x}$ — знак показателя переворачивает

На языке функции $f(x) = a^x$ первое свойство читается как функциональное уравнение:

$$f(x + y) = f(x) \cdot f(y)$$

Это функциональное уравнение — визитная карточка показательной функции. Среди всех непрерывных функций, кроме тождественного нуля, ему удовлетворяют только показательные. Ни синус, ни многочлен, ни корень так не умеют.

Три ошибки, которых в этом списке нет

Прежде чем идти к примерам, зафиксируем, чего в списке нет — потому что именно здесь чаще всего сочиняют несуществующие правила:

  • $a^{x} + a^{y} \neq a^{x+y}$. Сложение степеней не сворачивается. Проверка: $2^1 + 2^1 = 4$, а $2^{1+1} = 4$ — совпало случайно! Возьми другие числа: $2^1 + 2^2 = 6$, а $2^{3} = 8$. Не равно.

  • $(a + b)^{x} \neq a^{x} + b^{x}$. Скобка со сложением не раскрывается почленно. Проверка: $(1+1)^3 = 8$, а $1^3 + 1^3 = 2$.

  • $\left(a^{x}\right)^{y} \neq a^{x^{y}}$. Скобки решают всё: $\left(2^{2}\right)^{3} = 4^3 = 64$, а $2^{2^{3}} = 2^{8} = 256$.

Взял за правило: любое «правило», которое ты не помнишь наверняка, проверяй на числах $2$, $1$ и $3$ за десять секунд. Это спасает от половины ошибок в теме.

Пример 1 (простой): выносим общий множитель

Вопрос: Упрости выражение $3^{x+2} - 3^{x}$.

Решение:

Шаг 1. Раскладываем первое слагаемое по свойству 1: показатель $x + 2$ — это сумма, значит, степень распадается в произведение:

$$3^{x+2} = 3^{x} \cdot 3^{2} = 9 \cdot 3^{x}$$

Шаг 2. Подставляем в исходное выражение:

$$9 \cdot 3^{x} - 3^{x}$$

Шаг 3. Выносим общий множитель $3^x$ за скобку:

$$3^{x}(9 - 1) = 8 \cdot 3^{x}$$

Ответ: $3^{x+2} - 3^{x} = 8 \cdot 3^{x}$.

Проверим наш ответ при $x = 1$: слева $3^{3} - 3^{1} = 27 - 3 = 24$; справа $8 \cdot 3 = 24$ ✅. При $x = 0$: слева $9 - 1 = 8$, справа $8 \cdot 1 = 8$ ✅.

Приём «вынести за скобку наименьшую степень» — рабочая лошадка всей темы. Запомни: за скобку выносится степень с наименьшим показателем, тогда в скобках остаются целые числа.


Пример 2 (средний): дробь с переменной в показателе

Вопрос: Упрости $\dfrac{2^{x+3} - 2^{x}}{2^{x-1}}$.

Решение:

Шаг 1. Работаем с числителем — выносим $2^x$:

$$2^{x+3} - 2^{x} = 2^{x} \cdot 2^{3} - 2^{x} = 2^{x}(8 - 1) = 7 \cdot 2^{x}$$

Шаг 2. Работаем со знаменателем:

$$2^{x-1} = \frac{2^{x}}{2^{1}} = \frac{2^{x}}{2}$$

Шаг 3. Делим:

$$\frac{7 \cdot 2^{x}}{\dfrac{2^{x}}{2}} = 7 \cdot 2^{x} \cdot \frac{2}{2^{x}} = 14$$

Множители $2^x$ сократились — и это законно, потому что $2^x \neq 0$ никогда (вот где паспорт из блока 1 работает: делить на $2^x$ безопасно при любом $x$).

Ответ: $14$ — выражение вообще не зависит от $x$, это константа.

Проверим наш ответ при $x = 0$: числитель $2^3 - 2^0 = 8 - 1 = 7$, знаменатель $2^{-1} = 0{,}5$, дробь $= 7 / 0{,}5 = 14$ ✅. При $x = 2$: числитель $32 - 4 = 28$, знаменатель $2^{1} = 2$, дробь $= 14$ ✅.


Пример 3 (сложный): доказательство ключевого свойства softmax

Вопрос: Softmax превращает вектор логитов $z = (z_1, \ldots, z_n)$ в вероятности по формуле

$$p_i = \frac{e^{z_i}}{\sum_{j=1}^{n} e^{z_j}}$$

Докажи, что если ко всем логитам прибавить одну и ту же константу $c$, вероятности не изменятся.

Решение:

Шаг 1. Запишем, что получится после сдвига. Обозначим новые вероятности $p_i'$:

$$p_i' = \frac{e^{z_i + c}}{\sum_{j=1}^{n} e^{z_j + c}}$$

Шаг 2. Применим свойство 1 ($a^{x+y} = a^x a^y$) к числителю:

$$e^{z_i + c} = e^{z_i} \cdot e^{c}$$

Шаг 3. То же самое к каждому слагаемому знаменателя, после чего вынесем общий множитель $e^c$ за знак суммы:

$$\sum_{j=1}^{n} e^{z_j + c} = \sum_{j=1}^{n} e^{z_j} \cdot e^{c} = e^{c} \sum_{j=1}^{n} e^{z_j}$$

Шаг 4. Подставляем всё в дробь:

$$p_i' = \frac{e^{z_i} \cdot e^{c}}{e^{c} \sum_{j} e^{z_j}}$$

Шаг 5. Сокращаем на $e^c$. Это законно, потому что $e^c > 0$ при любом $c$ — снова свойство знакопостоянства из блока 1, без него сокращать было бы нельзя:

$$p_i' = \frac{e^{z_i}}{\sum_{j} e^{z_j}} = p_i$$

Ответ: $p_i' = p_i$ — softmax инвариантен к сдвигу логитов на общую константу.

Проверим на числах. Логиты $z = (1, 2, 3)$: $e^1 \approx 2{,}718$, $e^2 \approx 7{,}389$, $e^3 \approx 20{,}086$, сумма $\approx 30{,}193$, вероятности $\approx (0{,}090;\ 0{,}245;\ 0{,}665)$.

Теперь сдвинем на $c = -3$: логиты $(-2, -1, 0)$: $e^{-2} \approx 0{,}1353$, $e^{-1} \approx 0{,}3679$, $e^{0} = 1$, сумма $\approx 1{,}5032$, вероятности $\approx (0{,}090;\ 0{,}245;\ 0{,}665)$ ✅ — те же самые.

Почему это важно: Это не абстрактная красивость, а самый используемый трюк численной стабильности в машинном обучении. Тип float64 умеет хранить числа примерно до $1{,}8 \cdot 10^{308}$, а $e^{1000} \approx 10^{434}$ — это переполнение, и Python вернёт inf, а затем inf/inf = nan. Обучение сломается. Но раз softmax инвариантен к сдвигу, можно перед экспонентой вычесть максимум логитов: тогда наибольший показатель станет ровно нулём, все остальные — отрицательными, все экспоненты попадут в диапазон $(0; 1]$, и никакого переполнения не будет. Ответ при этом математически тот же самый. Именно так реализован softmax в PyTorch, TensorFlow и SciPy — и называется этот приём log-sum-exp trick.

import numpy as np

def softmax_naive(z):
    e = np.exp(z)                 # z = [1000, 1001, 1002] -> inf, inf, inf
    return e / e.sum()            # inf / inf -> nan

def softmax_stable(z):
    z = z - np.max(z)             # [-2, -1, 0] — максимум стал нулём
    e = np.exp(z)                 # [0.135, 0.368, 1.0] — всё в безопасном диапазоне
    return e / e.sum()            # [0.090, 0.245, 0.665]

Блок 6: Сравнение значений и простейшие неравенства — сводка приёмов

Четыре ситуации и четыре ключа

Задачи «что больше» и «реши неравенство» — самые массовые в этой теме. Хорошая новость: все они сводятся к четырём типовым ситуациям, и для каждой есть свой ключ.

Ситуация 1: одинаковые основания. Работает монотонность напрямую. Сравниваешь показатели и смотришь на основание: если оно больше единицы — знак сохраняется, если между нулём и единицей — знак разворачивается.

Ситуация 2: одинаковые показатели. Сравниваешь основания. Для положительных $p$, $q$ и натурального $n$: из $p < q$ следует $p^n < q^n$. Для отрицательного показателя всё переворачивается — надёжнее сначала избавиться от минуса.

Ситуация 3: ни то ни другое, но приводится. Ищешь общее основание ($4$, $8$, $16$ — всё это степени двойки; $\dfrac{1}{9}$, $27$, $\sqrt{3}$ — степени тройки) или общий показатель (как в примере с $2^{300}$ и $3^{200}$).

Ситуация 4: ничего не приводится. Сравниваешь оба числа с посредником — обычно с единицей. Если одно больше единицы, а другое меньше, дальше считать нечего.

Определение

Схема решения простейшего неравенства $a^{f(x)} \vee a^{g(x)}$ (где $\vee$ — любой знак неравенства):

  1. Привести обе части к одному основанию $a$.

  2. Определить характер монотонности по основанию.

  3. Перейти к неравенству между показателями: при $a > 1$ знак сохраняется, при $0 < a < 1$ знак меняется на противоположный.

  4. Решить полученное неравенство относительно $x$ и записать ответ промежутком.

Область определения проверять не нужно: показательное выражение определено при всех $x$, никаких ограничений оно не накладывает.

Пример 1 (простой): показатели с разными знаками

Вопрос: Расположи в порядке возрастания: $\left(\dfrac{2}{3}\right)^{-1}$, $\left(\dfrac{2}{3}\right)^{0}$, $\left(\dfrac{2}{3}\right)^{4}$, $\left(\dfrac{2}{3}\right)^{-2}$.

Решение:

Шаг 1. Основание одно и то же: $a = \dfrac{2}{3} \approx 0{,}667$, и это меньше единицы — функция убывающая.

Шаг 2. Выписываем показатели и упорядочиваем их по возрастанию:

$$-2 < -1 < 0 < 4$$

Шаг 3. Функция убывающая, значит, порядок значений обратный порядку показателей. Наибольшему показателю соответствует наименьшее значение:

$$\left(\frac{2}{3}\right)^{4} < \left(\frac{2}{3}\right)^{0} < \left(\frac{2}{3}\right)^{-1} < \left(\frac{2}{3}\right)^{-2}$$

Ответ: $\left(\dfrac{2}{3}\right)^{4} < \left(\dfrac{2}{3}\right)^{0} < \left(\dfrac{2}{3}\right)^{-1} < \left(\dfrac{2}{3}\right)^{-2}$.

Проверим наш ответ численно: $\left(\dfrac{2}{3}\right)^{4} = \dfrac{16}{81} \approx 0{,}198$; $\left(\dfrac{2}{3}\right)^{0} = 1$; $\left(\dfrac{2}{3}\right)^{-1} = 1{,}5$; $\left(\dfrac{2}{3}\right)^{-2} = 2{,}25$. Порядок $0{,}198 < 1 < 1{,}5 < 2{,}25$ ✅


Пример 2 (средний): неравенство с квадратным трёхчленом в показателе

Вопрос: Реши неравенство $2^{x^{2} - 5x} \leq 2^{-6}$.

Решение:

Шаг 1. Основания уже одинаковые: $a = 2 > 1$ — функция возрастающая, знак неравенства сохраняется.

Шаг 2. Переходим к неравенству между показателями:

$$x^{2} - 5x \leq -6$$

Шаг 3. Приводим к стандартному виду:

$$x^{2} - 5x + 6 \leq 0$$

Шаг 4. Раскладываем на множители. Ищем корни: по теореме Виета сумма корней равна $5$, произведение $6$ — это $2$ и $3$. Значит:

$$(x - 2)(x - 3) \leq 0$$

Шаг 5. Парабола $y = x^2 - 5x + 6$ ветвями вверх, между корнями она ниже оси. Значит, решение — отрезок между корнями (включая их, так как знак нестрогий):

$$2 \leq x \leq 3$$

Ответ: $x \in [2; 3]$.

Проверим наш ответ. Возьмём $x = 2{,}5$ (внутри): показатель $6{,}25 - 12{,}5 = -6{,}25$, и $-6{,}25 \leq -6$ ✅. Возьмём $x = 0$ (снаружи): показатель $0$, и $0 \leq -6$ — неверно ✅. Возьмём границу $x = 3$: показатель $9 - 15 = -6$, равенство выполняется ✅.


Пример 3 (сложный): монотонность спасает от перебора

Вопрос: Докажи, что уравнение $2^{x} + 3^{x} = 13$ имеет ровно один корень, и найди его.

Решение:

Существование корня — половина дела; главное здесь единственность, и её обычно доказывают через производную. Но производной у нас нет (она появится только в уроке 133), а сделать надо строго. Выручит монотонность.

Шаг 1. Находим корень подбором. Пробуем целые значения:

  • $x = 1$: $2 + 3 = 5$ — мало

  • $x = 2$: $4 + 9 = 13$ — попадание ✅

  • $x = 3$: $8 + 27 = 35$ — много

Итак, $x = 2$ — корень.

Шаг 2. Доказываем единственность. Рассмотрим функцию $F(x) = 2^{x} + 3^{x}$. Возьмём два произвольных числа $x_1 < x_2$.

Функция $2^x$ возрастающая (основание $2 > 1$), значит, $2^{x_1} < 2^{x_2}$.

Функция $3^x$ возрастающая (основание $3 > 1$), значит, $3^{x_1} < 3^{x_2}$.

Складываем два верных неравенства одного знака:

$$2^{x_1} + 3^{x_1} < 2^{x_2} + 3^{x_2}, \quad \text{то есть} \quad F(x_1) < F(x_2)$$

Значит, $F$ строго возрастает на всей числовой прямой.

Шаг 3. Заключение. Строго возрастающая функция каждое своё значение принимает не более одного раза: если бы нашлись два разных корня $x_1 < x_2$, то из строгого возрастания следовало бы $F(x_1) < F(x_2)$, а по условию оба равны $13$ — противоречие.

Ответ: уравнение имеет единственный корень $x = 2$.

Почему это важно: Ты только что применил приём, который работает во всей математике: сумма возрастающих функций возрастает. Из него же следует ещё пара рабочих фактов — произведение положительных возрастающих функций возрастает, а если $f$ возрастает, то $-f$ и $\dfrac{1}{f}$ (для положительной $f$) убывают. Это позволяет исследовать довольно сложные комбинации, не имея под рукой ни производной, ни пределов. В уроках 139–144 ты увидишь то же самое через производную — но там появится техника, а здесь остаётся понимание.


Блок 7: Преобразования графика показательной функции

Одна кривая — и четыре ручки управления

Базовый график $y = a^x$ ты уже представляешь: точка $(0;1)$, вторая точка $(1;a)$, асимптота $y = 0$, монотонный подъём или спуск. Всё остальное семейство — $y = 2^{x-3} + 1$, $y = -e^{x}$, $y = 5 \cdot 3^{-x} - 2$ — получается из базового четырьмя стандартными движениями. Не надо строить таблицы значений, надо понимать, какая ручка что двигает.

Представь, что базовый график нарисован на прозрачной плёнке. Ты можешь:

  • сдвинуть плёнку по горизонтали — это $y = a^{x - c}$: вправо на $c$, если $c > 0$; влево на $|c|$, если $c < 0$;

  • сдвинуть плёнку по вертикали — это $y = a^{x} + b$: вверх на $b$, если $b > 0$; вниз, если $b < 0$. Вместе с плёнкой едет и асимптота;

  • перевернуть плёнку вверх ногами — это $y = -a^{x}$: отражение относительно оси $Ox$, весь график уходит под ось, множество значений становится $(-\infty; 0)$;

  • перевернуть плёнку слева направо — это $y = a^{-x}$: отражение относительно оси $Oy$. Возрастающая функция становится убывающей.

Плюс пятая, чуть более тонкая ручка: растяжение по вертикали $y = k \cdot a^{x}$ при $k > 0$. График растягивается от оси $Ox$ в $k$ раз, точка $(0;1)$ переезжает в $(0;k)$, а асимптота $y = 0$ остаётся на месте (умножение нуля на $k$ даёт ноль).

Определение

Преобразования графика $y = a^x$:

Формула Что происходит Асимптота Множество значений
$y = a^{x}$ базовый график $y = 0$ $(0; +\infty)$
$y = a^{x} + b$ сдвиг по вертикали на $b$ $y = b$ $(b; +\infty)$
$y = a^{x-c}$ сдвиг по горизонтали на $c$ вправо $y = 0$ $(0; +\infty)$
$y = k \cdot a^{x}$, $k>0$ растяжение по вертикали в $k$ раз $y = 0$ $(0; +\infty)$
$y = -a^{x}$ отражение относительно $Ox$ $y = 0$ $(-\infty; 0)$
$y = a^{-x}$ отражение относительно $Oy$ $y = 0$ $(0; +\infty)$

Порядок применения: сначала внутренние преобразования (то, что делается с $x$), потом внешние (то, что делается со всей степенью).

Удивительная связь: сдвиг = растяжение

Вот факт, которого нет у большинства функций. Возьмём горизонтальный сдвиг и распишем его по свойству степеней:

$$a^{x - c} = a^{x} \cdot a^{-c} = \frac{1}{a^{c}} \cdot a^{x}$$

Получилось растяжение по вертикали с коэффициентом $k = \dfrac{1}{a^{c}}$! То есть для показательной функции горизонтальный сдвиг и вертикальное растяжение — одно и то же преобразование, просто записанное по-разному.

Проверим: $2^{x-3} = 2^x \cdot 2^{-3} = \dfrac{1}{8} \cdot 2^{x}$. Сдвиг вправо на 3 — то же самое, что сжатие по вертикали в 8 раз. Для параболы такое немыслимо: $(x-3)^2$ и $k x^2$ — принципиально разные кривые.

Это и есть геометрическое лицо тождества $f(x+y) = f(x) f(y)$: у показательной функции сдвиг вдоль оси превращается в умножение на константу.

Пример 1 (простой): описываем график по формуле

Вопрос: Опиши график функции $y = 2^{x} + 3$: асимптота, множество значений, точка пересечения с осью $Oy$, характер монотонности.

Решение:

Шаг 1. Базовый график. Это $y = 2^x$: возрастающий (основание $2 > 1$), асимптота $y = 0$, проходит через $(0;1)$.

Шаг 2. Преобразование. Прибавление тройки поднимает весь график на 3 единицы вверх.

Шаг 3. Собираем характеристики.

  • Асимптота: была $y = 0$, стала $y = 0 + 3 = 3$.

  • Множество значений: $2^x > 0 \Rightarrow 2^x + 3 > 3$, то есть $E(y) = (3; +\infty)$.

  • Пересечение с $Oy$ (при $x = 0$): $y = 2^0 + 3 = 1 + 3 = 4$, точка $(0; 4)$.

  • Монотонность: сдвиг по вертикали не меняет характер монотонности — функция возрастающая.

  • Пересечение с $Ox$: его нет, потому что $y > 3 > 0$ всегда.

Ответ: асимптота $y = 3$, $E(y) = (3; +\infty)$, точка $(0;4)$, функция возрастает, ось $Ox$ не пересекает.


Пример 2 (средний): двойное преобразование

Вопрос: Исследуй функцию $y = 2^{x-1} - 4$: асимптота, множество значений, точки пересечения с осями.

Решение:

Шаг 1. Раскладываем на преобразования. Базовый график $y = 2^x$ сдвигаем на 1 вправо (это $2^{x-1}$), потом на 4 вниз (это $-4$).

Шаг 2. Асимптота. Горизонтальный сдвиг её не трогает, вертикальный опускает на 4:

$$y = -4$$

Шаг 3. Множество значений. Внутренняя часть $2^{x-1} > 0$ при любом $x$ (показатель $x-1$ — просто действительное число). Вычитаем 4:

$$y = 2^{x-1} - 4 > -4 \implies E(y) = (-4; +\infty)$$

Шаг 4. Пересечение с $Oy$ (подставляем $x = 0$):

$$y = 2^{-1} - 4 = 0{,}5 - 4 = -3{,}5$$

Точка $(0; -3{,}5)$.

Шаг 5. Пересечение с $Ox$ (решаем $y = 0$):

$$2^{x-1} - 4 = 0 \implies 2^{x-1} = 4 = 2^{2}$$

По свойству инъективности показатели равны:

$$x - 1 = 2 \implies x = 3$$

Точка $(3; 0)$.

Ответ: асимптота $y = -4$; $E(y) = (-4; +\infty)$; график пересекает $Oy$ в точке $(0; -3{,}5)$ и $Ox$ в точке $(3; 0)$; функция возрастает.

Проверим наш ответ. При $x = 3$: $2^{2} - 4 = 0$ ✅. При $x = -10$: $2^{-11} - 4 \approx 0{,}00049 - 4 = -3{,}9995$ — чуть выше асимптоты $-4$ ✅. При $x = 5$: $2^4 - 4 = 12$ ✅.

Обрати внимание: после вертикального сдвига у графика появился ноль — а ведь у чистой показательной функции нулей не бывает. Противоречия нет: свойство «нет нулей» относится к $a^x$, а не к $a^x + b$. Как только добавляется свободный член, картина меняется. Это, кстати, частая ловушка на экзамене.


Пример 3 (сложный): собираем функцию по описанию графика

Вопрос: График функции вида $y = k \cdot 2^{x} + b$ имеет горизонтальную асимптоту $y = -5$ и проходит через точку $(2; 7)$. Найди $k$ и $b$, затем определи множество значений и точку пересечения с осью $Oy$.

Решение:

Шаг 1. Находим $b$ из асимптоты. Слагаемое $k \cdot 2^{x}$ при уменьшении $x$ становится сколь угодно близким к нулю (это база из блока 4), значит, всё выражение приближается к $b$. Асимптота проходит на уровне $b$:

$$b = -5$$

Шаг 2. Находим $k$ из точки. Подставляем $x = 2$, $y = 7$:

$$7 = k \cdot 2^{2} + (-5) \implies 7 = 4k - 5 \implies 4k = 12 \implies k = 3$$

Итак, $y = 3 \cdot 2^{x} - 5$.

Шаг 3. Множество значений. Раз $2^{x} > 0$ и $k = 3 > 0$, то $3 \cdot 2^{x} > 0$, следовательно:

$$y = 3 \cdot 2^{x} - 5 > -5 \implies E(y) = (-5; +\infty)$$

Заметь: коэффициент $k$ на множество значений не влияет — важен только его знак. Будь $k$ отрицательным, получилось бы $E(y) = (-\infty; -5)$, и график лежал бы ниже асимптоты.

Шаг 4. Пересечение с $Oy$. При $x = 0$: $y = 3 \cdot 1 - 5 = -2$, точка $(0; -2)$.

Ответ: $k = 3$, $b = -5$, $y = 3 \cdot 2^{x} - 5$; $E(y) = (-5; +\infty)$; пересечение с $Oy$ в точке $(0; -2)$.

Проверим наш ответ: $x = 2 \Rightarrow 3 \cdot 4 - 5 = 7$ ✅; $x = -10 \Rightarrow 3 \cdot 0{,}000977 - 5 \approx -4{,}997$ — почти асимптота ✅.

Почему это важно: Ровно эта задача — «подобрать параметры экспоненциальной модели по асимптоте и одной точке» — встречается в анализе данных постоянно. Кривая обучения модели, остывание сервера, забывание в кэше, отток пользователей: почти всё описывается формой $y = k a^{x} + b$, где $b$ — уровень насыщения (то, к чему процесс приходит в итоге), $k$ — начальное отклонение от этого уровня, $a$ — темп приближения. Прочитав с графика асимптоту и одну точку, ты восстанавливаешь модель целиком.


Блок 8: Свойства $a^x$ в машинном обучении — три больших сюжета

Все предыдущие блоки были про математику. Этот — про то, как ровно эти свойства проявляются в коде, который люди пишут каждый день. Три сюжета, и в каждом «виноват» конкретный пункт из паспорта функции.

8.1 Насыщение сигмоиды и затухающие градиенты

Сигмоида $\sigma(x) = \dfrac{1}{1 + e^{-x}}$ — историческая функция активации нейронов. Мы уже знаем из урока 111, что $0 < \sigma(x) < 1$ всегда. Теперь посмотрим, как она подходит к своим границам.

Выпишем значения:

$x$ $e^{-x}$ $\sigma(x)$
$0$ $1$ $0{,}5$
$1$ $0{,}3679$ $0{,}7311$
$2$ $0{,}1353$ $0{,}8808$
$4$ $0{,}0183$ $0{,}9820$
$6$ $0{,}00248$ $0{,}9975$
$8$ $0{,}000335$ $0{,}99966$
$10$ $0{,}0000454$ $0{,}999955$

А теперь — самое интересное. Посчитаем, насколько меняется сигмоида, если сдвинуть аргумент на единицу:

  • в районе нуля: $\sigma(1) - \sigma(0) = 0{,}7311 - 0{,}5 = 0{,}2311$

  • в районе четвёрки: $\sigma(5) - \sigma(4) = 0{,}9933 - 0{,}9820 = 0{,}0113$

  • в районе восьмёрки: $\sigma(9) - \sigma(8) = 0{,}99988 - 0{,}99966 = 0{,}00021$

Между $x = 0$ и $x = 8$ чувствительность падает примерно в 1090 раз. Это и называется насыщением: при больших по модулю аргументах сигмоида практически перестаёт реагировать на вход. Сдвинь $x$ с 8 на 9 — выход почти не шелохнётся.

Почему так? Причина ровно в блоке 4. В знаменателе стоит $e^{-x}$ — убывающая показательная функция, которая при росте $x$ становится сколь угодно близкой к нулю. Как только $e^{-x}$ падает до $10^{-4}$, знаменатель $1 + e^{-x}$ уже практически неотличим от единицы, и любое дальнейшее изменение теряется в четвёртом-пятом знаке.

И чем это плохо для обучения? Нейросеть учится, «раздавая» слоям сигнал о том, насколько нужно поменять веса. Величина этого сигнала пропорциональна чувствительности активации: если выход почти не реагирует на изменение входа, то и сигнал «как надо поменять вес» получается исчезающе малым. В глубокой сети эти малые множители перемножаются слой за слоем — десять слоёв по множителю $0{,}02$ дают $0{,}02^{10} \approx 10^{-17}$, и до первых слоёв не доходит вообще ничего. Это знаменитая проблема затухающих градиентов (vanishing gradients), из-за которой глубокие сети на сигмоидах почти не обучались до середины 2000-х.

Формально всё это — язык производных, и он появится в уроке 133. Но суть уже сейчас видна в чистых арифметических разностях: перемножение множителей вида $0{,}0002$ убивает сигнал.

Именно поэтому современные сети почти повсеместно используют ReLU ($f(x) = \max(0, x)$) вместо сигмоиды: у ReLU в положительной области прирост постоянный (сдвинул вход на единицу — выход тоже сдвинулся на единицу, всегда), она не насыщается и сигнал не затухает. Сигмоида осталась там, где нужен именно выход-вероятность: на последнем слое бинарного классификатора и в воротах LSTM/GRU.

import numpy as np

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

for x in [0, 4, 8]:
    print(x, round(sigmoid(x+1) - sigmoid(x), 6))
# 0 0.231059   <- сильная реакция
# 4 0.011293   <- в 20 раз слабее
# 8 0.000212   <- в 1090 раз слабее: зона насыщения

Практический вывод для инженера: держи входы активаций в районе нуля. Именно этим занимаются нормализация признаков, batch normalization и аккуратная инициализация весов — они не дают аргументу уехать в зону насыщения, где показательная функция уже «выключилась».

8.2 Переполнение float и трюк log-sum-exp

Второй сюжет — про то, как быстрый рост $e^x$ ломает арифметику компьютера.

Тип float64 (стандартный double) умеет представлять числа примерно до $1{,}8 \cdot 10^{308}$. Экспонента вылетает за этот потолок уже при $x \approx 709{,}8$:

$$e^{709} \approx 8{,}2 \cdot 10^{307} \quad (\text{ещё влезает}), \qquad e^{710} \approx 2{,}2 \cdot 10^{308} \quad (\text{переполнение} \to \texttt{inf})$$

Для float32 (обычный тип в нейросетях на GPU!) потолок гораздо ниже: максимум около $3{,}4 \cdot 10^{38}$, и переполнение наступает уже при $x \approx 88{,}7$. То есть логит величиной 100 — а это совершенно рядовое значение для уверенной модели — обрушивает наивный softmax во float32.

С другой стороны шкалы — потеря значимости (underflow): при $x < -745$ значение $e^{x}$ в float64 округляется до машинного нуля. Математически $e^{-1000} > 0$ (свойство знакопостоянства никуда не делось), но в памяти компьютера там окажется ровно $0{,}0$. Если потом на это разделить — получишь деление на ноль. Хороший пример того, что математическое свойство и его машинная реализация — не одно и то же.

Спасает нас тождество из блока 5, которое мы уже доказали:

$$\frac{e^{z_i}}{\sum_j e^{z_j}} = \frac{e^{z_i - c}}{\sum_j e^{z_j - c}} \quad \text{для любой константы } c$$

Берём $c = \max_j z_j$. Тогда наибольший из сдвинутых логитов равен нулю, $e^{0} = 1$, все остальные — отрицательные, и их экспоненты лежат в $(0; 1]$. Переполнение становится невозможным в принципе. Underflow всё ещё может случиться для очень маленьких слагаемых, но это безопасно: они и должны давать почти нулевые вероятности, а знаменатель гарантированно не меньше единицы (в нём есть слагаемое $e^0 = 1$), так что деления на ноль не будет.

z = np.array([1000., 1001., 1002.])

# наивно:
np.exp(z) / np.exp(z).sum()          # [inf, inf, inf] / inf -> [nan, nan, nan]

# стабильно:
z_shift = z - z.max()                 # [-2., -1., 0.]
p = np.exp(z_shift) / np.exp(z_shift).sum()
print(p)                              # [0.09003057 0.24472847 0.66524096]

Тот же приём под именем log-sum-exp trick используется в вычислении кросс-энтропии, в скрытых марковских моделях, в байесовских методах — везде, где надо сложить экспоненты очень разных по величине чисел. Одно школьное свойство $a^{x+y} = a^x a^y$ — и целый класс численных катастроф закрыт.

8.3 Экспоненциальное затухание learning rate

Третий сюжет — про убывающую ветвь ($0 < a < 1$) в чистом виде.

Learning rate — размер шага, которым оптимизатор двигает веса. В начале обучения хочется шагать широко (быстро добраться до нужной области), в конце — мелко (аккуратно попасть в минимум). Классическое решение — экспоненциальное расписание:

$$\text{lr}(t) = \text{lr}_0 \cdot \gamma^{t}, \qquad 0 < \gamma < 1$$

Здесь работают сразу три свойства из урока:

  • Монотонное убывание ($0 < \gamma < 1$) — шаг гарантированно уменьшается, без скачков и без разворотов.

  • Положительность ($\gamma^t > 0$) — learning rate никогда не станет нулём или отрицательным, то есть обучение формально не остановится и не пойдёт «вспять».

  • Постоянство относительного убывания — за одинаковое число эпох шаг уменьшается в одинаковое число раз, где бы мы ни находились: $\dfrac{\text{lr}(t + T)}{\text{lr}(t)} = \gamma^{T}$, и это не зависит от $t$. Ровно та же логика, что с периодом удвоения в примере из блока 3.

Часто расписание записывают в форме «полураспада» — так удобнее задавать словами:

$$\text{lr}(t) = \text{lr}_0 \cdot \left(\frac{1}{2}\right)^{t / T_{1/2}}$$

Здесь $T_{1/2}$ — число эпох, за которое шаг уменьшается ровно вдвое. Хочешь «падать вдвое каждые 10 эпох» — ставишь $T_{1/2} = 10$, и всё.

lr0, gamma = 0.1, 0.95
for epoch in [0, 10, 20, 50, 100]:
    print(epoch, round(lr0 * gamma ** epoch, 6))
# 0   0.1
# 10  0.059874
# 20  0.035849
# 50  0.007694
# 100 0.000592   <- в 169 раз меньше стартового, но всё ещё > 0

Обрати внимание на последнюю строчку: через 100 эпох шаг стал в 169 раз меньше, но остался строго положительным. Асимптота $y = 0$ работает: расписание бесконечно приближает шаг к нулю, но никогда его не обнуляет. Если бы нужен был жёсткий ноль, пришлось бы добавить отдельное условие в код — сама экспонента до нуля не дойдёт (до машинного нуля дойдёт, но это уже другая история, см. пункт 8.2).

Та же убывающая экспонента живёт в оптимизаторах Adam и RMSProp: вклад градиента, полученного $t$ шагов назад, затухает как $\beta^{t}$ (обычно $\beta = 0{,}9$ или $0{,}999$). Модель «помнит» недавнюю историю и плавно забывает старую — и плавность здесь обеспечена именно непрерывной монотонностью показательной функции, без ступенек и обрывов.


Практика: 30 заданий

Базовые (задания 1-10)

Задание 1: Найди область определения и множество значений функции $y = 7^{x}$.


Задание 2: Learning rate меняется по закону $\text{lr}(t) = 0{,}1 \cdot (0{,}9)^{t}$, где $t$ — номер эпохи. Вычисли $\text{lr}(0)$ и $\text{lr}(2)$.


Задание 3: Сравни $3^{-2}$ и $3^{-5}$, не вычисляя значений.


Задание 4: Сравни $(0{,}3)^{2}$ и $(0{,}3)^{5}$, не вычисляя значений.


Задание 5: Упрости выражение $5^{x} \cdot 5^{3}$.


Задание 6: Упрости выражение $\dfrac{2^{x+1}}{2^{x-2}}$.


Задание 7: Имеет ли решения уравнение $4^{x} = -3$? Обоснуй.


Задание 8: Найди горизонтальную асимптоту графика $y = 3^{x} + 2$ и значение функции при $x = 0$.


Задание 9: Возрастает или убывает функция $y = \left(\dfrac{\pi}{4}\right)^{x}$?


Задание 10: Реши неравенство $2^{x} > 1$.


Средние (задания 11-20)

Задание 11: Упрости выражение $\left(3^{x}\right)^{2} \cdot 3^{-x}$.


Задание 12: Найди множество значений функции $y = 2^{x} + 5$.


Задание 13: Реши уравнение $5^{x} = 5^{2x-3}$.


Задание 14: Что больше — $2^{300}$ или $3^{200}$?


Задание 15: Сравни $\left(\dfrac{2}{3}\right)^{-4}$ и $\left(\dfrac{3}{2}\right)^{3}$.


Задание 16: Реши неравенство $\left(\dfrac{1}{3}\right)^{x} \geq \dfrac{1}{27}$.


Задание 17: Найди множество значений функции $y = 3 - 2^{x}$.


Задание 18: Известно, что $f(x) = a^{x}$ и $f(2) = 16$. Найди $f(0{,}5)$.


Задание 19: Докажи тождество $\sigma(x) + \sigma(-x) = 1$ для сигмоиды $\sigma(x) = \dfrac{1}{1 + e^{-x}}$.


Задание 20: Во сколько раз $e^{x+1}$ больше $e^{x}$? Зависит ли ответ от $x$?


Продвинутые (задания 21-30)

Задание 21: Докажи, что функция $f(x) = a^{x}$ (при $a > 0$, $a \neq 1$) удовлетворяет тождеству $f(x + y) = f(x) \cdot f(y)$ при всех действительных $x$, $y$, и выведи отсюда, что $f$ не обращается в ноль ни в одной точке.


Задание 22: Реши неравенство $2^{x^{2} - 3x} < 2^{-2}$.


Задание 23: Сравни $5^{\sqrt{2}}$ и $5^{1{,}5}$ без калькулятора.


Задание 24: Исследуй функцию $y = 8 - 2^{x+1}$: асимптота, множество значений, характер монотонности, точки пересечения с осями.


Задание 25: Реши уравнение $3^{x} + 3^{x+1} = 108$.


Задание 26: Модель выдала логиты $z = (100;\ 101;\ 102)$, вычисления идут в float32 (максимальное представимое число примерно $3{,}4 \cdot 10^{38}$). Объясни, почему наивная формула softmax сломается, и вычисли вероятности устойчивым способом. Известно: $e^{-2} \approx 0{,}1353$, $e^{-1} \approx 0{,}3679$.


Задание 27: Для сигмоиды $\sigma(x) = \dfrac{1}{1+e^{-x}}$ посчитай приращение $\sigma(x+1) - \sigma(x)$ в точках $x = 0$ и $x = 8$ и сравни их. Известно: $e^{-1} \approx 0{,}367879$, $e^{-8} \approx 0{,}000335463$, $e^{-9} \approx 0{,}000123410$.


Задание 28: Расписание обучения задано формулой $\text{lr}(t) = 0{,}1 \cdot (0{,}5)^{t/10}$, где $t$ — номер эпохи. Найди $\text{lr}(30)$ и определи, через сколько эпох learning rate уменьшается ровно в 8 раз. Докажи, что этот интервал не зависит от того, с какой эпохи начинать отсчёт.


Задание 29: При каких $x$ выполняется неравенство $4^{x} > 2^{x+1}$?


Задание 30: Отладка кода. Инженер реализовал сигмоиду по формуле $\sigma(x) = \dfrac{e^{x}}{1 + e^{x}}$ — математически она верна. Но на больших положительных входах функция возвращает nan. Найди причину, докажи эквивалентность двух форм записи и предложи устойчивую реализацию.

import numpy as np

def sigmoid_bad(x):
    return np.exp(x) / (1 + np.exp(x))

print(sigmoid_bad(1.0))     # 0.7310585786300049   — верно
print(sigmoid_bad(1000.0))  # nan                  — ???

Частые ошибки

Ошибка 1: забыть развернуть знак неравенства при основании меньше единицы

Неправильно: из $\left(\dfrac{1}{2}\right)^{x} > \left(\dfrac{1}{2}\right)^{5}$ делать вывод $x > 5$.

Правильно: основание $\dfrac{1}{2}$ лежит в интервале $(0;1)$, функция убывающая, поэтому знак разворачивается: $x < 5$.

Почему важно: это ошибка номер один во всей теме, и она даёт полностью противоположный ответ — не «немного мимо», а ровно наоборот. Спасает привычка после каждого такого перехода подставлять одну точку из полученного ответа и проверять исходное неравенство. Тридцать секунд работы против гарантированного нуля за задачу.


Ошибка 2: сравнивать основание с нулём вместо единицы

Неправильно: «основание $0{,}8$ положительное, значит, функция $y = 0{,}8^{x}$ возрастает».

Правильно: развилка проходит через единицу, а не через ноль. Основание и так всегда положительно — это условие существования функции, а не признак возрастания. При $0{,}8 < 1$ функция убывает.

Почему важно: от этого зависят и характер монотонности, и направление всех неравенств, и форма графика. Особенно коварны основания вида $\dfrac{\pi}{4}$, $\dfrac{e}{3}$, $\sqrt{0{,}9}$ — их сначала нужно прикинуть численно и только потом сравнивать с единицей.


Ошибка 3: изобретать несуществующие свойства степеней

Неправильно: $2^{x} + 2^{x} = 2^{2x}$, или $(a+b)^{x} = a^{x} + b^{x}$, или $\left(a^{x}\right)^{y} = a^{x^{y}}$.

Правильно: $2^{x} + 2^{x} = 2 \cdot 2^{x} = 2^{x+1}$; скобка со сложением почленно не раскрывается вообще; $\left(a^{x}\right)^{y} = a^{xy}$, и это не то же самое, что $a^{x^{y}}$.

Почему важно: свойства степеней работают только для умножения и деления, а не для сложения и вычитания. Проверка на числах $a = 2$, $b = 1$, $x = 3$ занимает десять секунд и мгновенно ловит любое выдуманное правило: $(2+1)^{3} = 27$, а $2^{3} + 1^{3} = 9$.


Ошибка 4: считать, что $a^{x} + b$ тоже не имеет нулей

Неправильно: «показательная функция нулей не имеет, значит, у $y = 2^{x} - 8$ тоже нулей нет».

Правильно: свойство «нет нулей» относится к чистому $a^{x}$. Как только добавляется свободный член, всё меняется: $2^{x} - 8 = 0$ при $x = 3$. Множество значений тоже сдвигается: $E(y) = (-8; +\infty)$, и в него ноль входит.

Почему важно: ровно на этом строятся задачи «найди точки пересечения с осями» и «сколько корней у уравнения». Правило простое: сначала выясни, где асимптота — если она ниже нуля (при возрастающей функции), пересечение с осью $Ox$ есть; если на нуле или выше — нет.


Ошибка 5: терять положительный корень при поиске основания

Неправильно: из $a^{2} = 25$ писать ответ $a = \pm 5$.

Правильно: основание показательной функции по определению строго положительно и не равно единице, поэтому $a = 5$, а корень $a = -5$ отбрасывается.

Почему важно: формально уравнение $a^{2} = 25$ действительно имеет два корня, но мы решаем не его, а задачу про показательную функцию, где на $a$ наложены ограничения. Всегда после нахождения $a$ прогоняй две проверки: $a > 0$ и $a \neq 1$.


Ошибка 6: путать, куда переезжает асимптота при преобразованиях

Неправильно: у графика $y = 3^{x-4}$ асимптота стала $y = 4$ (или $y = -4$).

Правильно: горизонтальный сдвиг вообще не двигает горизонтальную асимптоту — она осталась $y = 0$. Асимптоту двигает только вертикальный сдвиг: у $y = 3^{x} - 4$ она равна $y = -4$.

Почему важно: асимптота — это уровень, к которому прижимается график, то есть характеристика по вертикали. Сдвиг влево-вправо этот уровень не меняет, как ни сдвигай дорогу вдоль реки — расстояние до берега останется прежним.


Ошибка 7: путать математическое свойство и поведение в float

Неправильно: «в коде np.exp(-1000) дало ровно 0.0, значит, показательная функция всё-таки достигает нуля».

Правильно: математически $e^{-1000} > 0$ — это строго положительное число порядка $10^{-434}$. Ноль возник из-за того, что float64 не умеет представлять числа меньше примерно $5 \cdot 10^{-324}$ и округляет их до нуля (underflow).

Почему важно: путаница между математикой и её машинным приближением — источник тяжело отлавливаемых багов. Именно из-за неё в коде появляются деления на ноль там, где по формуле их быть не может, и именно поэтому существуют устойчивые реализации softmax, сигмоиды и кросс-энтропии.


Главное запомнить

Паспорт функции $y = a^{x}$ ($a > 0$, $a \neq 1$): область определения — вся прямая $\mathbb{R}$; множество значений — $(0; +\infty)$; нулей нет; знак постоянен (всегда плюс); асимптота $y = 0$; строгая монотонность на всей прямой.

Монотонность решает всё: при $a > 1$ функция возрастает и знак неравенства при переходе к показателям сохраняется; при $0 < a < 1$ убывает и знак разворачивается. Сравнивай основание с единицей, а не с нулём.

Обратимость: из $a^{x_1} = a^{x_2}$ следует $x_1 = x_2$ — именно это позволяет «отбрасывать основания» в уравнениях, и это прямое следствие строгой монотонности.

Точка $(0; 1)$ принадлежит графику при любом основании, потому что $a^{0} = 1$. Отсюда правило порога: при $a>1$ выражение $a^{x}$ больше единицы ровно тогда, когда $x > 0$; при $0

Пять свойств степеней — рабочий аппарат: $a^{x}a^{y} = a^{x+y}$, $\dfrac{a^{x}}{a^{y}} = a^{x-y}$, $(a^{x})^{y} = a^{xy}$, $(ab)^{x} = a^{x}b^{x}$, $a^{-x} = \dfrac{1}{a^{x}}$. Свойств для суммы степеней не существует — там работает только вынесение общего множителя.

Функциональное уравнение $f(x+y) = f(x)f(y)$ — визитная карточка показательной функции: она переводит сложение в умножение. Из него следуют и отсутствие нулей, и постоянство периода удвоения, и инвариантность softmax к сдвигу.

Постоянство отношения: $\dfrac{a^{x+T}}{a^{x}} = a^{T}$ не зависит от $x$. Поэтому у показательного процесса постоянны период удвоения и период полураспада — где бы ты ни начал отсчёт.

Преобразования графика: $+b$ снаружи двигает график и асимптоту по вертикали ($y = b$, $E = (b;+\infty)$); $x - c$ в показателе двигает график по горизонтали и асимптоту не трогает; минус перед степенью отражает график вниз ($E = (-\infty; 0)$); $a^{-x}$ отражает влево-вправо и меняет возрастание на убывание.

Сдвиг = растяжение: $a^{x-c} = \dfrac{1}{a^{c}} \cdot a^{x}$ — уникальная особенность показательной функции, у других функций горизонтальный сдвиг и вертикальное растяжение — разные вещи.

Экспонента обгоняет любую степень: при больших $x$ функция $2^{x}$ рано или поздно превзойдёт $x^{100}$ и любую другую степенную функцию, потому что её множитель на каждом шаге постоянен, а у степенной — выдыхается до единицы.

В ML эти свойства работают буквально: положительность $e^{x}$ делает softmax законным распределением; тождество $e^{z+c} = e^{z}e^{c}$ даёт трюк вычитания максимума против переполнения; убывающая ветвь ($0<\gamma<1$) — это расписания learning rate и EMA в Adam; насыщение $e^{-x}$ — причина затухающих градиентов у сигмоиды.


Связь с другими темами курса

Что нужно было знать до этого урока:

  • Свойства степеней (степени с целым и рациональным показателем) — весь рабочий аппарат блока 5 растёт оттуда, просто теперь в показателе стоит переменная

  • Показательная функция (урок 111) — определение, ограничения на основание, первое знакомство с монотонностью и графиком

  • Число $e$ (урок 112) — важнейшее основание, через которое записаны сигмоида, softmax и большинство ML-формул

  • Квадратные неравенства и метод интервалов — нужны для задач вроде $2^{x^2-3x} < 2^{-2}$, где после перехода к показателям получается квадратное неравенство

  • Преобразования графиков функций — сдвиги и отражения, которые в блоке 7 применяются к показательной кривой

Что изучить дальше:

  • Показательные уравнения (урок 114) — следующий урок, где обратимость функции превращается в основной метод: приведение к одному основанию, замена переменной, разложение на множители

  • Показательные неравенства (урок 115) — систематическое развитие того, что мы начали в блоке 6, включая неравенства с параметром

  • Определение логарифма (урок 116) — функция, обратная показательной; именно множество значений $(0;+\infty)$ из блока 1 объясняет, почему логарифм определён только для положительных чисел

  • Задачи на рост и распад (урок 125) — прикладная кульминация темы: период полураспада, сложные проценты, модели популяций

  • Предел последовательности и предел функции (уроки 129, 131) — там наши содержательные формулировки «становится сколь угодно близко к нулю» получат строгую запись

  • Производная и исследование функций (уроки 133, 139-144) — второй, аналитический взгляд на монотонность; всё, что мы сегодня доказали алгебраически, там получит короткие формальные доказательства

Где это нужно в жизни, в данных и в ML:

🤖 Нейросети: softmax на выходе классификатора, сигмоида в бинарной классификации и в воротах LSTM/GRU, температура в softmax (та самая $T$ в $e^{z/T}$, которой регулируют «уверенность» языковой модели при генерации текста)

⚙️ Оптимизация обучения: экспоненциальные расписания learning rate, warmup и cosine decay, экспоненциальное скользящее среднее градиентов в Adam/RMSProp, EMA-усреднение весов модели

🔢 Численная устойчивость: log-sum-exp trick, устойчивые реализации сигмоиды и кросс-энтропии, работа с логарифмическими вероятностями вместо обычных — всё это прямые следствия скорости роста $e^{x}$ и ограниченности float

📊 Аналитика и продукт: модели удержания пользователей (retention обычно падает экспоненциально), «half-life» метрик, прогноз роста аудитории, оценка вирусности контента, A/B-тесты с экспоненциальными предположениями

💰 Финансы: сложные проценты, дисконтирование будущих денежных потоков, амортизация, оценка рисков

🔬 Естественные науки: радиоактивный распад, кинетика химических реакций, охлаждение по закону Ньютона, рост колоний микроорганизмов, распределение Больцмана в статистической физике

💻 Информатика: классификация алгоритмов на полиномиальные и экспоненциальные, оценка сложности перебора, экспоненциальный backoff при повторных запросах к серверу


Интересные факты

💡 Показательная функция — единственная в своём роде. Огюстен Коши в XIX веке доказал: если непрерывная функция удовлетворяет уравнению $f(x+y) = f(x)f(y)$ и не равна тождественно нулю, то она обязана иметь вид $a^{x}$. Никаких других вариантов не существует. Это значит, что «превращать сложение в умножение» умеет ровно одно семейство функций — и любая модель реального процесса, где такое свойство наблюдается, автоматически оказывается экспоненциальной. Заметить постоянство периода удвоения в данных — значит доказать экспоненциальность.

💡 Экспоненциальный backoff держит интернет. Когда твой телефон не может достучаться до сервера, он повторяет запрос не сразу, а через 1 секунду, потом через 2, через 4, через 8 — интервалы растут по закону $2^{n}$. Этот протокол (описанный ещё в стандарте Ethernet 1976 года) не даёт миллионам устройств одновременно ломиться на упавший сервер. Показательный рост здесь работает как предохранитель: он гасит нагрузку быстрее, чем она успевает накопиться.

💡 Температура в softmax — регулятор «характера» языковой модели. Формула $p_i = \dfrac{e^{z_i / T}}{\sum_j e^{z_j / T}}$ содержит параметр $T$, унаследованный из распределения Больцмана в физике. При $T < 1$ показатели растягиваются, разрывы между экспонентами усиливаются, и модель почти всегда выбирает самый вероятный вариант — текст получается сухим и предсказуемым. При $T > 1$ показатели сжимаются, вероятности выравниваются, и модель начинает «фантазировать». Это ровно то свойство графика — ускоряющийся рост — которое мы разбирали, только поставленное на службу управлению стилем генерации.

💡 Разрыв между $2^{x}$ и $x^{10}$ невообразим. Мы посчитали, что перелом наступает около $x \approx 59$. Но интересно, что происходит дальше: при $x = 1000$ отношение $\dfrac{2^{1000}}{1000^{10}}$ составляет примерно $10^{271}$. Для сравнения: число атомов в наблюдаемой Вселенной оценивается величиной порядка $10^{80}$. То есть показательная функция обгоняет десятую степень в число раз, которое больше числа атомов во Вселенной, возведённого почти в четвёртую степень.

💡 Underflow иногда полезен. В ML-коде часто работают не с вероятностями, а с их логарифмами — именно потому, что произведение тысячи вероятностей вида $0{,}001$ даёт $10^{-3000}$, что в float64 просто ноль, и вся информация теряется. Переход к логарифмам превращает произведение в сумму и спасает вычисление. Забавно, что лекарством от проблем показательной функции служит функция, ей обратная, — про неё урок 116.


Лайфхаки и полезные трюки

1. Правило «два вопроса» для любого сравнения

Столкнулся с задачей «что больше» — задай себе два вопроса подряд:

  • Основания одинаковые? Тогда сравнивай показатели и смотри на монотонность.

  • Показатели одинаковые? Тогда сравнивай основания.

Если ни то ни другое — приводи к общему (через $4 = 2^2$, $27 = 3^3$, $0{,}25 = 4^{-1}$) или сравнивай оба числа с единицей. Четвёртого варианта в школьных задачах практически не бывает.

2. Проверка ответа одной точкой

После решения любого показательного неравенства подставь любое число из полученного ответа в исходное неравенство и проверь. Затем подставь число вне ответа и убедись, что там неравенство не выполняется. Две подстановки ловят абсолютное большинство ошибок, включая главную — потерянный разворот знака.

3. За скобку выносится наименьшая степень

В выражениях вида $3^{x+2} - 3^{x}$ или $2^{x+1} + 2^{x-1}$ всегда выноси степень с наименьшим показателем — тогда в скобках останутся целые числа или простые дроби. Например: $2^{x+1} + 2^{x-1} = 2^{x-1}\left(2^{2} + 1\right) = 5 \cdot 2^{x-1}$.

4. Асимптоту читай по свободному члену

Чтобы за секунду назвать асимптоту у функции вида $y = k \cdot a^{x - c} + b$, смотри только на $b$: асимптота — это $y = b$. Ни $k$, ни $c$, ни $a$ на неё не влияют. А множество значений определяется знаком $k$: при $k > 0$ это $(b; +\infty)$, при $k < 0$ — $(-\infty; b)$.

5. Прикидка через степени двойки

Полезно помнить: $2^{10} = 1024 \approx 10^{3}$. Отсюда мгновенные оценки: $2^{20} \approx 10^{6}$, $2^{30} \approx 10^{9}$, $2^{64} \approx 1{,}8 \cdot 10^{19}$. Тот же приём с $e$: $e^{2{,}3} \approx 10$, поэтому $e^{x} \approx 10^{x/2{,}3}$ — так можно прикинуть порядок любой экспоненты в уме и сразу понять, влезет ли она во float.

6. Проверяй сомнительные тождества на числах $1$, $2$, $3$

Не уверен, верно ли «правило», которое всплыло в памяти? Подставь маленькие числа. $(2+1)^{2} = 9$ против $2^2 + 1^2 = 5$ — правило неверно. Десять секунд против потерянной задачи. Этот приём работает не только в этой теме: любая формула, которую ты не помнишь железно, проверяется контрпримером быстрее, чем ищется в учебнике.

7. Хочешь стабильности — держи показатель отрицательным

Инженерное правило, вытекающее из блока 8: когда пишешь код с экспонентами, старайся, чтобы в показателе оказывалось неположительное число. Тогда $e^{\text{показатель}} \in (0; 1]$, и переполнение исключено. Отсюда и вычитание максимума в softmax, и выбор формы записи сигмоиды по знаку аргумента. Мысль простая: экспонента вверх — опасно, экспонента вниз — безопасно.


Свойства показательной функции устроены редким и приятным образом: их немного, они логично вытекают одно из другого, и каждое из них немедленно превращается в рабочий инструмент. Множество значений $(0; +\infty)$ — это готовое доказательство того, что уравнение не имеет корней, и одновременно гарантия, что softmax выдаёт законные вероятности. Строгая монотонность — это и метод решения неравенств, и доказательство единственности корня без всякой производной. Тождество $a^{x+y} = a^{x}a^{y}$ — и способ упростить дробь, и трюк, который спасает обучение нейросети от nan.

Ты прошёл путь от «знаю формулу» до «умею этим пользоваться». Дальше — урок 114, где вся эта теория превращается в набор конкретных методов решения показательных уравнений: приведение к одному основанию, замена переменной, разложение на множители, однородные уравнения. Инструменты уже у тебя в руках — осталось освоить приёмы. Поехали.

Понял тему? Закрепи в боте! 🚀

Попрактикуйся на задачах и получи персональные рекомендации от AI

💪 Начать тренировку
💬 Есть вопрос? Спроси бота!