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

Число e

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

Число e 🌱

Открой исходники любой нейросети — PyTorch, TensorFlow, хоть свою собственную на чистом NumPy — и поищи строчку с exp. Ты найдёшь её везде: в сигмоиде, в softmax, в расписании learning rate, в оптимизаторе Adam, в формуле нормального распределения, которым инициализируются веса. И почти всегда exp означает одно и то же: возвести в степень число $e \approx 2{,}718281828$. Не двойку, не десятку — именно это странное, ни на что не похожее число с бесконечным непериодическим хвостом.

В прошлом уроке мы разобрали показательную функцию $y = a^x$ и увидели: основание $a$ можно взять каким угодно — 2, 10, $\frac{1}{2}$, $1{,}05$. График везде один и тот же по форме, меняется только «крутизна». Возникает законный вопрос: если оснований бесконечно много и все они «одинаковые с точностью до растяжения», почему во всей серьёзной математике, физике и машинном обучении победило именно $2{,}718281828\ldots$? Почему не круглая десятка, которую удобно считать в уме, и не двойка, родная для компьютеров?

Ответ в том, что $e$ — это не чьё-то произвольное соглашение. Это число, которое само вылезает из совершенно практической задачи: что будет с вкладом, если проценты начислять не раз в год, не раз в месяц, а непрерывно — каждое мгновение? Люди пытались это посчитать в XVII веке, задолго до всякого анализа, и наткнулись на конкретное конечное число, дальше которого выгода не растёт, сколько ни дроби начисления. Это число и назвали потом $e$. А ещё через полвека выяснилось, что то же самое число управляет остыванием чашки кофе, радиоактивным распадом, ростом популяции бактерий, формой колокола нормального распределения и — уже в наши дни — тем, как softmax превращает выходы нейросети в вероятности.

В этом уроке мы пройдём весь путь: от задачи про банковский вклад к числовой последовательности $\left(1 + \frac{1}{n}\right)^n$, от неё — к быстрому способу считать $e$ через факториалы, дальше к тому, почему $e$ нельзя записать никакой дробью и никаким корнем, и, наконец, к тому, где именно оно живёт в машинном обучении. Честно предупрежу сразу: строгий язык, на котором математики говорят «последовательность стремится к $e$», — это язык пределов, и его мы получим только в уроке 129. Поэтому здесь мы будем действовать наглядно и численно: считать значения, смотреть на таблицы, ловить закономерность. Это не «хуже» — так это и открыли исторически, за двести лет до появления строгих определений.

🎯 Ты узнаешь:

  • Как задача о непрерывном начислении процентов порождает число $e$ и почему выгода от дробления начислений упирается в потолок
  • Как ведёт себя последовательность $\left(1 + \frac{1}{n}\right)^n$ — она растёт, но никогда не превышает 3, и подбирается к $e \approx 2{,}718281828$
  • Как посчитать $e$ с точностью до восьми знаков за шесть строчек арифметики через ряд $1 + \frac{1}{1!} + \frac{1}{2!} + \dots$
  • Что значит «$e$ иррационально» и «$e$ трансцендентно», и кто это доказал
  • Почему сигмоида, softmax, экспоненциальное затухание learning rate и скользящее среднее в Adam построены именно на $e$, а не на 2 или 10

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

Первым, кто наткнулся на $e$, был швейцарский математик Якоб Бернулли, и произошло это в 1683 году при разборе задачи о сложных процентах — то есть буквально в задаче про деньги. Бернулли спрашивал: если вложить одну денежную единицу под 100% годовых, то за год она превратится в 2. А если банк начисляет проценты дважды в год, но по 50% за раз? Тогда получится $1{,}5 \cdot 1{,}5 = 2{,}25$ — уже выгоднее, потому что во втором полугодии проценты капают и на первую половину процентов. Дальше Бернулли начал дробить: четыре раза по 25%, двенадцать раз по $8\frac{1}{3}$%, и так далее. Результат рос, но рос всё медленнее, и Бернулли доказал, что он никогда не превысит 3. Точное значение он вычислить не смог — у него просто не было инструментов, — но он твёрдо установил: где-то между $2{,}5$ и $3$ есть число, дальше которого выгода не идёт.

Само обозначение и первое точное вычисление принадлежат Леонарду Эйлеру. В работе 1731 года (письмо к Гольдбаху) он впервые пишет букву $e$ для этой константы, а в трактате «Introductio in analysin infinitorum» (1748) приводит её значение с 18 знаками после запятой: $2{,}718281828459045235\ldots$ — и там же даёт тот самый факториальный ряд, которым мы будем пользоваться в этом уроке. Почему буква $e$? Единого мнения нет: одни говорят, что от слова exponential, другие — что просто следующая свободная буква после $a$, $b$, $c$, $d$, которые Эйлер уже занял под другие обозначения. Версия «$e$ в честь Euler» почти наверняка неверна: Эйлер был человеком скромным в вопросах самоназвания.

Дальше история $e$ становится историей о том, насколько это «неправильное» число. В 1737 году Эйлер показал, что $e$ иррационально — его нельзя записать в виде дроби $\frac{p}{q}$. В 1873 году француз Шарль Эрмит доказал куда более сильное утверждение: $e$ трансцендентно, то есть не является корнем вообще никакого многочлена с целыми коэффициентами. Никакое уравнение вида $a_n x^n + \dots + a_1 x + a_0 = 0$ с целыми $a_i$ не имеет $e$ своим корнем. Это был первый в истории случай, когда трансцендентность доказали для «естественно возникшего» числа, а не для специально сконструированного, — и через девять лет техника Эрмита позволила Линдеману доказать трансцендентность $\pi$ и тем самым закрыть двухтысячелетнюю задачу о квадратуре круга.

А мостик в сегодня такой. Когда в 1958 году появилась первая модель искусственного нейрона с плавным порогом, её функцию активации взяли в виде $\sigma(x) = \frac{1}{1 + e^{-x}}$. Когда в 1989 году в нейросети завезли многоклассовую классификацию, вероятности стали считать через $\text{softmax}(z)_i = \frac{e^{z_i}}{\sum_j e^{z_j}}$. Когда в 2014 году придумали оптимизатор Adam, накопление градиентов сделали через экспоненциальное скользящее среднее, у которого «эффективное окно памяти» описывается всё тем же числом $e$. Ни в одном из этих случаев $e$ не выбрали из эстетических соображений — оно каждый раз оказывалось единственным основанием, при котором формулы становятся простыми. Разберёмся, почему.


Задача Бернулли: непрерывное начисление процентов

Интуиция

Представь, что ты положил в банк 1 рубль под фантастические 100% годовых. Через год у тебя 2 рубля — тут всё просто.

А теперь банк предлагает другой вариант: те же 100% годовых, но начисляем два раза в год по 50%. Кажется, что разницы нет — 50% плюс 50% это те же 100%. Но нет: через полгода у тебя $1 \cdot 1{,}5 = 1{,}5$ рубля, а вторые 50% начисляются уже на полтора рубля, а не на один. Итог: $1{,}5 \cdot 1{,}5 = 2{,}25$ рубля. Лишние 25 копеек взялись из того, что проценты начали приносить проценты. Это и есть сложный процент.

Логика подсказывает: чем чаще начисляем, тем выгоднее. Раз в квартал — по 25% четыре раза: $(1{,}25)^4 = 2{,}44140625$. Раз в месяц — по $\frac{100}{12}$% двенадцать раз: $\left(1 + \frac{1}{12}\right)^{12} \approx 2{,}61304$. Раз в день: $\left(1 + \frac{1}{365}\right)^{365} \approx 2{,}71457$. Каждый раз выгоднее, чем в прошлый.

Естественный вопрос: а если начислять каждую секунду? Каждое мгновение? Разбогатеем ли мы бесконечно? Давай посмотрим на таблицу — она отвечает на этот вопрос лучше любых слов.

Как часто начисляем $n$ (раз в год) Итог $\left(1+\frac{1}{n}\right)^n$
Раз в год 1 2
Раз в полгода 2 2,25
Раз в квартал 4 2,44140625
Раз в месяц 12 2,6130352
Раз в неделю 52 2,6925969
Раз в день 365 2,7145674
Раз в час 8760 2,7181266
Раз в минуту 525 600 2,7182792
Раз в секунду 31 536 000 2,7182817

Смотри, что происходит. От «раз в год» к «раз в месяц» прирост солидный: с 2 до 2,61. От «раз в месяц» к «раз в день» — уже скромнее: 2,61 → 2,71. А от «раз в минуту» к «раз в секунду» меняется шестая цифра после запятой. Числа не убегают в бесконечность — они упираются в одно конкретное значение: $2{,}718281828\ldots$

Вот это и есть число $e$. Оно не придумано, а найдено: это ровно тот потолок, к которому прижимается выгода от бесконечного дробления начислений.

Определение (наглядное): Числом $e$ называют то значение, к которому неограниченно приближаются числа $\left(1 + \frac{1}{n}\right)^n$ при неограниченном росте натурального $n$. Приближённо

$$e \approx 2{,}718281828459045$$

📌 Важная оговорка про строгость. Фраза «неограниченно приближаются» — это пока обиходный язык, а не математическое определение. Строгое понятие, которое превращает эту фразу в точное утверждение, называется предел последовательности, и мы разберём его в уроке 129. Там ты запишешь то же самое как $e = \lim\limits_{n \to \infty}\left(1 + \frac{1}{n}\right)^n$ и научишься доказывать, что предел вообще существует. Сейчас нам достаточно наглядной, но абсолютно честной картины: последовательность растёт, никогда не переваливает за 3, и её значения стабилизируются на $2{,}71828\ldots$

Примеры с разбором

Пример 1 (простой): вклад 10 000 ₽ под 100% годовых, начисление раз в квартал. Сколько будет через год?

Решение:

Шаг 1. За квартал начисляется $\frac{100\%}{4} = 25\%$, то есть капитал умножается на $1 + 0{,}25 = 1{,}25$.

Шаг 2. Кварталов в году четыре, значит множитель за год:

$$\left(1 + \frac{1}{4}\right)^4 = (1{,}25)^4$$

Шаг 3. Считаем по шагам: $1{,}25^2 = 1{,}5625$, дальше $1{,}5625^2 = 2{,}44140625$.

Шаг 4. Умножаем на начальный капитал: $10\,000 \cdot 2{,}44140625 = 24\,414{,}06$ ₽.

Проверим наш ответ: при начислении раз в год было бы ровно $20\,000$ ₽, а при непрерывном — $10\,000 \cdot e \approx 27\,182{,}82$ ₽. Наш результат $24\,414$ лежит между ними ✅

Ответ: $24\,414{,}06$ ₽


Пример 2 (средний): на сколько процентов вклад под 100% годовых с ежедневным начислением выгоднее, чем с ежемесячным?

Решение:

Шаг 1. Ежемесячное начисление даёт множитель

$$\left(1 + \frac{1}{12}\right)^{12} \approx 2{,}6130353$$

Шаг 2. Ежедневное даёт

$$\left(1 + \frac{1}{365}\right)^{365} \approx 2{,}7145675$$

Шаг 3. Находим отношение:

$$\frac{2{,}7145675}{2{,}6130353} \approx 1{,}03885$$

Шаг 4. Переводим в проценты: $1{,}03885 - 1 = 0{,}03885$, то есть примерно $3{,}9\%$.

Ответ: примерно на $3{,}9\%$ выгоднее.

📌 Обрати внимание: переход от месяца к дню — это в 30 раз больше начислений, а выигрыш всего 3,9%. Дальнейшее дробление даст ещё меньше: переход от дня к секунде добавит меньше 0,13%.


Пример 3 (сложный): вклад 100 000 ₽ под 6% годовых на 5 лет. Сравни ежегодное начисление и непрерывное.

Решение:

Шаг 1. При ежегодном начислении капитал каждый год умножается на $1 + 0{,}06 = 1{,}06$. За 5 лет:

$$100\,000 \cdot 1{,}06^5$$

Шаг 2. Считаем степень: $1{,}06^2 = 1{,}1236$, $1{,}06^4 = 1{,}1236^2 = 1{,}26247696$, дальше $1{,}06^5 = 1{,}26247696 \cdot 1{,}06 = 1{,}3382256$.

Итого: $100\,000 \cdot 1{,}3382256 = 133\,822{,}56$ ₽.

Шаг 3. При непрерывном начислении работает формула, которую мы получим прямо сейчас. Если ставка $r$ (в долях) и начисляем $n$ раз в год на протяжении $t$ лет, то множитель равен

$$\left(1 + \frac{r}{n}\right)^{nt}$$

Шаг 4. Перепишем это хитро — введём $m = \frac{n}{r}$, тогда $\frac{r}{n} = \frac{1}{m}$ и $nt = m \cdot rt$:

$$\left(1 + \frac{1}{m}\right)^{m \cdot rt} = \left[\left(1 + \frac{1}{m}\right)^{m}\right]^{rt}$$

Шаг 5. Когда $n$ растёт неограниченно, растёт и $m$, а выражение в квадратных скобках подбирается к $e$. Значит, при непрерывном начислении множитель равен $e^{rt}$ — это и есть знаменитая формула непрерывного роста:

$$S = S_0 \cdot e^{rt}$$

Шаг 6. Подставляем: $r = 0{,}06$, $t = 5$, значит $rt = 0{,}3$, и

$$S = 100\,000 \cdot e^{0{,}3} \approx 100\,000 \cdot 1{,}3498588 = 134\,985{,}88 \text{ ₽}$$

Шаг 7. Разница: $134\,985{,}88 - 133\,822{,}56 = 1\,163{,}32$ ₽, то есть чуть меньше 0,9% от суммы.

Ответ: ежегодное — $133\,822{,}56$ ₽, непрерывное — $134\,985{,}88$ ₽, разница $1\,163{,}32$ ₽.

Вывод: при небольших ставках разница между «раз в год» и «непрерывно» невелика. Она становится заметной при больших ставках и длинных сроках — и именно поэтому в физике и биологии, где «ставки» огромные (деление клеток, цепные реакции), непрерывная модель $e^{rt}$ — единственно разумная.

Почему это важно

Формула $S = S_0 e^{rt}$ — это не только про банк. Ровно та же математика описывает рост популяции бактерий, распространение вируса на ранней стадии, распад радиоактивного вещества (там $r < 0$), остывание кофе, разряд конденсатора и — уже в машинном обучении — затухание learning rate по расписанию $\text{lr}(t) = \text{lr}_0 \cdot e^{-kt}$. Каждый раз, когда величина меняется со скоростью, пропорциональной самой себе («чем больше бактерий, тем быстрее они размножаются»), в ответе неизбежно появляется $e$. Это не совпадение и не мода: $e$ — единственное основание, при котором «непрерывный процент» превращается в чистую степень без лишних множителей.


Последовательность $\left(1+\frac{1}{n}\right)^n$: почему она не убегает

Интуиция

Мы увидели: числа $\left(1 + \frac{1}{n}\right)^n$ растут, но упираются в потолок. Давай разберёмся, почему так происходит, — тут работают две силы, которые тянут в разные стороны.

Представь, что ты делишь торт. Основание $1 + \frac{1}{n}$ — это «сколько прибавляем за один шаг», и оно уменьшается с ростом $n$: при $n = 2$ это 1,5, при $n = 100$ уже 1,01, при $n = 10^6$ — почти ровно 1. Показатель $n$ — это «сколько шагов делаем», и он растёт. Одна сила давит вниз (основание всё ближе к единице, а единица в любой степени даёт единицу), другая тянет вверх (шагов всё больше). Ни одна не побеждает окончательно — в итоге получается конечное число между 2 и 3.

Давай посмотрим на первые значения последовательности подробно:

$n$ $\left(1+\frac{1}{n}\right)^n$ точно приближённо
1 $2^1$ 2
2 $\left(\frac{3}{2}\right)^2 = \frac{9}{4}$ 2,25
3 $\left(\frac{4}{3}\right)^3 = \frac{64}{27}$ 2,370370
4 $\left(\frac{5}{4}\right)^4 = \frac{625}{256}$ 2,441406
5 $\left(\frac{6}{5}\right)^5 = \frac{7776}{3125}$ 2,488320
6 $\left(\frac{7}{6}\right)^6 = \frac{117649}{46656}$ 2,521626
10 $(1{,}1)^{10}$ 2,593742
100 $(1{,}01)^{100}$ 2,704814
1000 $(1{,}001)^{1000}$ 2,716924
10 000 $(1{,}0001)^{10000}$ 2,718146
100 000 2,718268
1 000 000 2,718280

Три наблюдения, которые стоит зафиксировать:

  • Последовательность строго возрастает: каждое следующее число больше предыдущего, разворотов нет
  • Она никогда не достигает 3 — и вообще не переваливает даже за 2,72
  • Сходится она медленно: чтобы получить всего 6 верных знаков, нужно взять $n$ порядка миллиона

Последний пункт важен практически: как способ вычислить $e$ эта последовательность никуда не годится. Для вычислений есть куда более быстрый инструмент — факториальный ряд, к нему перейдём в следующем разделе. А формула $\left(1+\frac{1}{n}\right)^n$ ценна не как калькулятор, а как определение: она объясняет, откуда $e$ берётся по смыслу.

Определение: Число $e$ — это то число, к которому приближаются значения последовательности $x_n = \left(1 + \dfrac{1}{n}\right)^n$ при неограниченном возрастании $n$. Последовательность $x_n$ строго возрастает и ограничена сверху числом 3, поэтому такое число существует и единственно.

Для любознательных: почему потолок именно 3?

Возьмём формулу бинома и раскроем скобку $\left(1 + \frac{1}{n}\right)^n$:

$$\left(1 + \frac{1}{n}\right)^n = 1 + n \cdot \frac{1}{n} + \frac{n(n-1)}{2!} \cdot \frac{1}{n^2} + \frac{n(n-1)(n-2)}{3!}\cdot\frac{1}{n^3} + \dots$$

Посмотри на $k$-е слагаемое: это $\dfrac{n(n-1)\cdots(n-k+1)}{k!\, n^k}$. В числителе $k$ множителей, каждый не больше $n$, а в знаменателе стоит $n^k$ — то есть ровно $k$ множителей, равных $n$. Значит, вся дробь $\dfrac{n(n-1)\cdots(n-k+1)}{n^k} \le 1$, и $k$-е слагаемое не превосходит $\dfrac{1}{k!}$.

Отсюда:

$$\left(1 + \frac{1}{n}\right)^n \le 1 + 1 + \frac{1}{2!} + \frac{1}{3!} + \dots + \frac{1}{n!}$$

Теперь оценим правую часть. Заметь, что $k! = 1 \cdot 2 \cdot 3 \cdots k \ge 1 \cdot 2 \cdot 2 \cdots 2 = 2^{k-1}$ при $k \ge 1$, значит $\dfrac{1}{k!} \le \dfrac{1}{2^{k-1}}$. Получаем:

$$1 + 1 + \frac{1}{2!} + \dots + \frac{1}{n!} \le 1 + \left(1 + \frac{1}{2} + \frac{1}{4} + \dots + \frac{1}{2^{n-1}}\right)$$

А сумма в скобках — это классическое «половинками к единице»: $1 + \frac{1}{2} = 1{,}5$, дальше $1{,}75$, $1{,}875$, $1{,}9375$… Прямой проверкой видно, что

$$1 + \frac{1}{2} + \frac{1}{4} + \dots + \frac{1}{2^{n-1}} = 2 - \frac{1}{2^{n-1}} < 2$$

Итого $\left(1 + \frac{1}{n}\right)^n < 1 + 2 = 3$ при любом $n$. Именно это и доказал Якоб Бернулли в 1683 году.

Примеры с разбором

Пример 1 (простой): вычисли $\left(1+\frac{1}{3}\right)^3$ обыкновенной дробью и сравни с $e$

Решение:

Шаг 1. $1 + \frac{1}{3} = \frac{4}{3}$.

Шаг 2. Возводим в куб: $\left(\frac{4}{3}\right)^3 = \frac{4^3}{3^3} = \frac{64}{27}$.

Шаг 3. Делим: $64 : 27 = 2{,}3703703\ldots$

Шаг 4. Сравниваем: $2{,}37 < 2{,}718$, значит значение меньше $e$ — как и должно быть, ведь последовательность возрастает и подходит к $e$ снизу.

Ответ: $\frac{64}{27} \approx 2{,}3704$, что меньше $e$.


Пример 2 (средний): проверь, что $\left(1+\frac{1}{5}\right)^5 < \left(1+\frac{1}{6}\right)^6$, посчитав оба значения

Решение:

Шаг 1. Первое: $\left(\frac{6}{5}\right)^5 = \frac{6^5}{5^5} = \frac{7776}{3125}$.

Считаем: $6^2 = 36$, $6^4 = 1296$, $6^5 = 7776$; $5^5 = 3125$. Делим: $7776 : 3125 = 2{,}48832$ (ровно, без хвоста — редкий случай).

Шаг 2. Второе: $\left(\frac{7}{6}\right)^6 = \frac{7^6}{6^6} = \frac{117649}{46656}$.

Считаем: $7^2 = 49$, $7^3 = 343$, $7^6 = 343^2 = 117649$; $6^3 = 216$, $6^6 = 216^2 = 46656$.

Делим: $117649 : 46656 \approx 2{,}5216264$.

Шаг 3. Сравниваем: $2{,}48832 < 2{,}5216264$ ✅

Ответ: да, неравенство верно; оба числа меньше $e \approx 2{,}7183$.


Пример 3 (сложный): насколько $(1{,}001)^{1000}$ недотягивает до $e$, и как оценить эту недостачу?

Решение:

Шаг 1. Из таблицы: $\left(1 + \frac{1}{1000}\right)^{1000} \approx 2{,}7169239$.

Шаг 2. Находим разность:

$$e - 2{,}7169239 \approx 2{,}7182818 - 2{,}7169239 = 0{,}0013579$$

Шаг 3. Теперь посмотрим на закономерность. Возьмём недостачи для разных $n$ и сравним их с $\frac{e}{2n}$:

$n$ недостача $e - x_n$ $\dfrac{e}{2n}$
100 0,0134680 0,0135914
1000 0,0013579 0,0013591
10 000 0,0001359 0,0001359

Шаг 4. Совпадение почти идеальное: недостача ведёт себя как $\dfrac{e}{2n} \approx \dfrac{1{,}359}{n}$.

Ответ: недостача $\approx 0{,}00136$; в общем случае $e - \left(1+\frac{1}{n}\right)^n \approx \dfrac{1{,}359}{n}$.

Вывод: чтобы добавить один верный знак после запятой, нужно увеличить $n$ в десять раз. Это очень медленно — для 10 верных знаков понадобилось бы $n$ порядка $10^{10}$. Поэтому реальные калькуляторы и библиотеки считают $e$ совсем не так.

Почему это важно

Понимание «медленной сходимости» — это не абстрактная придирка, а вполне рабочий навык для инженера данных. Ровно та же ситуация встречается в методе Монте-Карло (точность растёт как $\frac{1}{\sqrt{N}}$: чтобы улучшить оценку в 10 раз, нужно в 100 раз больше сэмплов) и в оценке метрик на валидационной выборке. Умение отличить «сходится быстро» от «сходится мучительно медленно» экономит часы вычислений: иногда нужно не наращивать $n$, а сменить сам метод. Что мы прямо сейчас и сделаем.


Факториальный ряд: как посчитать $e$ по-быстрому

Интуиция

Последовательность $\left(1 + \frac{1}{n}\right)^n$ ползёт к $e$ как черепаха. Эйлер знал способ получше — тот, что даёт восемь верных знаков за десять слагаемых. Основан он на факториале.

Сначала разберёмся с самим факториалом, потому что в нашем курсе он раньше не встречался.

Определение: Факториалом натурального числа $n$ (обозначается $n!$, читается «эн факториал») называется произведение всех натуральных чисел от 1 до $n$:

$$n! = 1 \cdot 2 \cdot 3 \cdot \ldots \cdot n$$

Отдельно по соглашению принято $0! = 1$.

Первые значения полезно просто запомнить:

  • $0! = 1$
  • $1! = 1$
  • $2! = 2$
  • $3! = 6$
  • $4! = 24$
  • $5! = 120$
  • $6! = 720$
  • $7! = 5040$
  • $8! = 40320$
  • $9! = 362\,880$
  • $10! = 3\,628\,800$

Факториал растёт чудовищно быстро — быстрее любой степени. Значит, дроби $\frac{1}{n!}$ убывают чудовищно быстро. Именно на этом и построен фокус.

Определение (ряд Эйлера для $e$): Число $e$ равно сумме

$$e = 1 + \frac{1}{1!} + \frac{1}{2!} + \frac{1}{3!} + \frac{1}{4!} + \dots$$

то есть значению, к которому приближаются частичные суммы $S_m = 1 + \frac{1}{1!} + \dots + \frac{1}{m!}$ при росте $m$.

Посмотри, как быстро эти частичные суммы стабилизируются:

$m$ добавили $S_m$ ошибка $e - S_m$
0 1 1 1,71828
1 $\frac{1}{1!} = 1$ 2 0,71828
2 $\frac{1}{2!} = 0{,}5$ 2,5 0,21828
3 $\frac{1}{6} \approx 0{,}166667$ 2,666667 0,051615
4 $\frac{1}{24} \approx 0{,}041667$ 2,708333 0,009948
5 $\frac{1}{120} \approx 0{,}008333$ 2,716667 0,001615
6 $\frac{1}{720} \approx 0{,}001389$ 2,718056 0,000226
7 $\frac{1}{5040} \approx 0{,}000198$ 2,718254 0,0000278
8 $\frac{1}{40320} \approx 0{,}0000248$ 2,718279 0,0000031
9 $\frac{1}{362880}$ 2,7182815 0,00000031
10 $\frac{1}{3628800}$ 2,71828180 0,00000003

Сравни с прошлой таблицей: там для шести верных знаков требовался $n = 10^6$, а здесь хватило десяти слагаемых. Разница в скорости колоссальная. Правило тут простое и очень удобное: каждое новое слагаемое $\frac{1}{m!}$ примерно и равно оставшейся ошибке.

📌 Почему так? Потому что «хвост» ряда после $m$-го слагаемого — это $\frac{1}{(m+1)!} + \frac{1}{(m+2)!} + \dots$, где первое слагаемое во много раз больше всех остальных вместе взятых. Например, после $m = 5$ хвост равен $\frac{1}{720} + \frac{1}{5040} + \dots \approx 0{,}001389 + 0{,}000198 + \ldots \approx 0{,}001615$ — и главный вклад даёт именно первый член.

Примеры с разбором

Пример 1 (простой): вычисли частичную сумму $S_4 = 1 + \frac{1}{1!} + \frac{1}{2!} + \frac{1}{3!} + \frac{1}{4!}$ обыкновенной дробью

Решение:

Шаг 1. Выписываем слагаемые: $1$, $\frac{1}{1} = 1$, $\frac{1}{2}$, $\frac{1}{6}$, $\frac{1}{24}$.

Шаг 2. Приводим к общему знаменателю 24:

$$\frac{24}{24} + \frac{24}{24} + \frac{12}{24} + \frac{4}{24} + \frac{1}{24} = \frac{65}{24}$$

Шаг 3. Делим: $65 : 24 = 2{,}708333\ldots$

Проверим наш ответ: $e - 2{,}70833 \approx 0{,}00995$, а следующее слагаемое $\frac{1}{120} \approx 0{,}00833$ — того же порядка, всё сходится ✅

Ответ: $S_4 = \frac{65}{24} \approx 2{,}70833$


Пример 2 (средний): сколько слагаемых ряда нужно взять, чтобы получить $e$ с точностью до 0,001?

Решение:

Шаг 1. Нам нужно, чтобы ошибка была меньше $0{,}001$. Ошибка после $m$-го слагаемого примерно равна следующему слагаемому $\frac{1}{(m+1)!}$.

Шаг 2. Ищем, когда $\frac{1}{(m+1)!} < 0{,}001$, то есть $(m+1)! > 1000$.

Шаг 3. Перебираем: $5! = 120 < 1000$, $6! = 720 < 1000$, $7! = 5040 > 1000$ ✅

Значит, $m + 1 = 7$, то есть $m = 6$.

Шаг 4. Проверяем по таблице: $S_5 = 2{,}716667$, ошибка $0{,}001615$ — не подходит. $S_6 = 2{,}718056$, ошибка $0{,}000226$ — подходит ✅

Шаг 5. Считаем количество слагаемых: это $1, \frac{1}{1!}, \frac{1}{2!}, \frac{1}{3!}, \frac{1}{4!}, \frac{1}{5!}, \frac{1}{6!}$ — всего 7 слагаемых.

Ответ: 7 слагаемых (до $\frac{1}{6!}$ включительно), результат $S_6 \approx 2{,}71806$.


Пример 3 (сложный): ряд работает не только для $e$. Вычисли $e^{0{,}5}$ через ряд $e^x = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \dots$, взяв 5 слагаемых

Решение:

Шаг 1. Подставляем $x = 0{,}5$ и выписываем пять слагаемых:

$$1 + 0{,}5 + \frac{0{,}5^2}{2} + \frac{0{,}5^3}{6} + \frac{0{,}5^4}{24}$$

Шаг 2. Считаем степени: $0{,}5^2 = 0{,}25$, $0{,}5^3 = 0{,}125$, $0{,}5^4 = 0{,}0625$.

Шаг 3. Считаем слагаемые:

  • $\frac{0{,}25}{2} = 0{,}125$
  • $\frac{0{,}125}{6} \approx 0{,}0208333$
  • $\frac{0{,}0625}{24} \approx 0{,}0026042$

Шаг 4. Складываем:

$$1 + 0{,}5 + 0{,}125 + 0{,}0208333 + 0{,}0026042 = 1{,}6484375$$

Шаг 5. Точное значение $e^{0{,}5} \approx 1{,}6487213$. Ошибка $\approx 0{,}00028$ — меньше трёх десятитысячных при всего пяти слагаемых.

Ответ: $e^{0{,}5} \approx 1{,}64844$ (точное значение $1{,}64872$).

Вывод: именно так math.exp в Python и expf в C считают экспоненту — не через $\left(1+\frac{1}{n}\right)^n$, а через ряд (с дополнительными трюками вроде выделения целой части показателя). Ряд быстрый, предсказуемый по точности и легко реализуется в железе.

Почему это важно

Ряд $e^x = 1 + x + \frac{x^2}{2!} + \dots$ — это, пожалуй, самая полезная формула во всей вычислительной математике. Из неё сразу следует важнейшая для ML оценка: при маленьких $x$ выполнено $e^x \approx 1 + x$ (остальные слагаемые пренебрежимо малы, потому что $x^2$ уже совсем крошечный). Эту приближённую формулу ты встретишь при анализе шагов градиентного спуска, при оценке дрейфа весов, при выводе того, что $(1 - \alpha)^n \approx e^{-\alpha n}$ для маленьких $\alpha$ — а последнее прямо описывает, как быстро «забывает» скользящее среднее в Adam. Одна школьная формула, а держит половину практических оценок в оптимизации.


Иррациональность и трансцендентность

Интуиция

Числа бывают разной степени «дикости», и полезно понимать, где среди них живёт $e$.

Самые ручные — рациональные: те, что записываются дробью $\frac{p}{q}$ с целыми $p$ и $q$. К ним относятся $3$, $-\frac{7}{2}$, $0{,}25$, а также $0{,}333\ldots$ (это $\frac{1}{3}$). У рационального числа десятичная запись либо конечная, либо периодическая.

Дальше идут иррациональные — те, что дробью не записываются: $\sqrt{2}$, $\pi$, $e$. Их десятичная запись бесконечна и непериодична.

Но и среди иррациональных есть градация. Число $\sqrt{2}$ хоть и иррационально, но оно «алгебраическое»: оно корень простого уравнения $x^2 - 2 = 0$ с целыми коэффициентами. То есть алгебра его всё-таки ловит. А вот $e$ не ловится вообще ничем подобным — это трансцендентное число.

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

$$a_n x^n + a_{n-1}x^{n-1} + \dots + a_1 x + a_0 = 0, \quad a_i \in \mathbb{Z},\ a_n \neq 0$$

Число, не являющееся алгебраическим, называется трансцендентным.

Теорема (Эйлер, 1737): Число $e$ иррационально, то есть не представимо в виде $\frac{p}{q}$ ни при каких целых $p$ и $q$.

Теорема (Эрмит, 1873): Число $e$ трансцендентно: не существует многочлена с целыми коэффициентами, корнем которого было бы $e$.

Полное доказательство трансцендентности — это материал университетского уровня, и мы его не разбираем. А вот идею доказательства иррациональности вполне можно почувствовать, и она красивая.

Как доказывают, что $e$ иррационально (идея)

Предположим противное: пусть $e = \frac{p}{q}$ для каких-то натуральных $p$ и $q$. Возьмём частичную сумму ряда до члена $\frac{1}{q!}$:

$$S_q = 1 + \frac{1}{1!} + \frac{1}{2!} + \dots + \frac{1}{q!}$$

Умножим и $e$, и $S_q$ на $q!$. Тогда $q! \cdot e = q! \cdot \frac{p}{q} = (q-1)! \cdot p$ — целое число. И $q! \cdot S_q$ тоже целое: каждое слагаемое $\frac{q!}{k!}$ при $k \le q$ — целое.

Значит, разность $q!(e - S_q)$ обязана быть целым числом. Но $e - S_q$ — это остаток ряда, и он положительный, но очень маленький. Аккуратная оценка показывает, что $0 < q!(e - S_q) < 1$. А целых чисел строго между 0 и 1 не существует. Противоречие — значит, предположение $e = \frac{p}{q}$ было ложным.

📌 Обрати внимание на приём: мы взяли предположение, домножили на «правильный» факториал и получили целое число, зажатое между 0 и 1. Такой же трюк работает и в других доказательствах иррациональности.

Примеры с разбором

Пример 1 (простой): является ли число $\frac{22}{7}$ рациональным? А $2{,}718281828$?

Решение:

Шаг 1. $\frac{22}{7}$ — это дробь с целыми числителем и знаменателем, значит рационально по определению. (Кстати, это известное приближение для $\pi$, но само по себе оно рационально.)

Шаг 2. $2{,}718281828$ — это конечная десятичная дробь, её можно записать как $\frac{2718281828}{1000000000}$. Значит, она рациональна.

Шаг 3. Ключевой момент: $2{,}718281828 \neq e$. Это лишь приближение $e$ с девятью знаками. Само $e$ иррационально, а любое его конечное десятичное приближение — рационально.

Ответ: оба числа рациональны; при этом $2{,}718281828$ — не $e$, а его приближение.


Пример 2 (средний): число $\sqrt{2}$ иррационально. Трансцендентно ли оно?

Решение:

Шаг 1. Проверим определение: трансцендентное — это то, что не является корнем никакого многочлена с целыми коэффициентами.

Шаг 2. Подберём многочлен для $\sqrt{2}$. Если $x = \sqrt{2}$, то $x^2 = 2$, то есть

$$x^2 - 2 = 0$$

Шаг 3. Коэффициенты $1, 0, -2$ — целые. Значит, $\sqrt{2}$ является корнем многочлена с целыми коэффициентами, то есть алгебраическое число.

Ответ: $\sqrt{2}$ иррационально, но алгебраично — не трансцендентно.

📌 Отсюда важный вывод: «иррациональное» и «трансцендентное» — разные уровни. Всякое трансцендентное иррационально, но не всякое иррациональное трансцендентно.


Пример 3 (сложный): почему из трансцендентности $e$ следует, что $e$ нельзя точно записать никакой комбинацией корней и дробей?

Решение:

Шаг 1. Разберём, что значит «записать через корни и дроби». Речь о выражениях вроде $\frac{3 + \sqrt{5}}{2}$, $\sqrt[3]{7} - \frac{1}{4}$, $\sqrt{2 + \sqrt{3}}$ — то есть о том, что получается из целых чисел арифметическими действиями и извлечением корней.

Шаг 2. Ключевой факт алгебры: любое такое выражение — алгебраическое число. Каждое извлечение корня и каждое арифметическое действие сохраняет свойство «быть корнем многочлена с целыми коэффициентами» (степень многочлена растёт, но он остаётся целочисленным).

Шаг 3. Например, для $x = \sqrt{2 + \sqrt{3}}$: возводим в квадрат — $x^2 = 2 + \sqrt{3}$, значит $x^2 - 2 = \sqrt{3}$, возводим ещё раз — $x^4 - 4x^2 + 4 = 3$, то есть $x^4 - 4x^2 + 1 = 0$. Многочлен с целыми коэффициентами нашёлся.

Шаг 4. Но $e$ по теореме Эрмита не является корнем никакого целочисленного многочлена. Значит, $e$ не может быть значением никакого такого выражения.

Ответ: любая комбинация целых чисел, дробей и корней даёт алгебраическое число, а $e$ трансцендентно — следовательно, точной «формульной» записи через корни у $e$ нет; есть только бесконечные процессы (ряд, последовательность).

Вывод: число $e$ принципиально невозможно записать конечной формулой из школьных операций. Его можно только приближать — рядом, последовательностью, цепной дробью. Именно поэтому в любом языке программирования $e$ — это константа с зашитыми в неё цифрами (math.e, np.e), а не результат вычисления по формуле.

Почему это важно

На практике трансцендентность $e$ означает простую вещь: в компьютере $e$ и $e^x$ всегда представлены приближённо. Тип float64 держит примерно 15–17 значащих десятичных цифр, и это накладывает жёсткие ограничения. Например, np.exp(1000) даст inf (переполнение), а np.exp(-1000) даст ровно 0.0 (потеря значимости), хотя математически это положительное число. Именно поэтому в реализациях softmax из логитов сначала вычитают их максимум, а функцию потерь считают не как «логарифм от softmax», а специальным численно устойчивым способом. Понимание «$e$ — это бесконечный хвост, обрезанный на 17-м знаке» — это то, что отделяет работающий код от кода, который однажды выдаст NaN в середине обучения.


Натуральная экспонента $y = e^x$

Интуиция

В прошлом уроке мы разобрали показательную функцию $y = a^x$ для любого положительного $a \neq 1$. Теперь просто берём $a = e$ и получаем натуральную экспоненту:

$$y = e^x$$

Все свойства мы уже знаем — $e > 1$, значит функция ведёт себя как «растущая» показательная.

Определение: Функция $y = e^x$ называется экспонентой (или натуральной показательной функцией). Иногда её записывают как $\exp(x)$.

Свойства $y = e^x$:

  • Область определения: $D(f) = \mathbb{R}$ — возводить $e$ можно в любую степень
  • Область значений: $E(f) = (0; +\infty)$ — экспонента всегда строго положительна, нулём не бывает
  • Монотонно возрастает на всей числовой прямой (так как основание $e \approx 2{,}718 > 1$)
  • Проходит через точку $(0; 1)$: $e^0 = 1$
  • Проходит через точку $(1; e) \approx (1; 2{,}718)$
  • Ось $Ox$ — горизонтальная асимптота слева: при больших отрицательных $x$ значения прижимаются к нулю
  • Работают все привычные правила степеней: $e^a \cdot e^b = e^{a+b}$, $\dfrac{e^a}{e^b} = e^{a-b}$, $(e^a)^b = e^{ab}$, $e^{-x} = \dfrac{1}{e^x}$

Полезная таблица значений — стоит держать в голове хотя бы первые строки:

$x$ $-3$ $-2$ $-1$ $-0{,}5$ $0$ $0{,}5$ $1$ $2$ $3$
$e^x$ 0,0498 0,1353 0,3679 0,6065 1 1,6487 2,7183 7,3891 20,0855

Обрати внимание на симметрию: $e^{-1} = \frac{1}{e} \approx 0{,}3679$, $e^{-2} = \frac{1}{e^2} \approx 0{,}1353$. Графики $y = e^x$ и $y = e^{-x}$ зеркальны относительно оси $Oy$.

Анонс: чем экспонента особенная (эти факты мы докажем позже)

Пока что $e^x$ выглядит как обычная показательная функция, просто с некрасивым основанием. Её настоящая уникальность откроется дальше по курсу, и вот три факта-обещания:

  • Экспонента — единственная функция, которая равна своей собственной скорости роста. На языке производных: $(e^x)' = e^x$. Это разберём в уроке 138 («Производные элементарных функций»). Именно поэтому во всех уравнениях, где «скорость изменения пропорциональна текущему значению», ответ содержит $e$.
  • Площадь под гиперболой $y = \frac{1}{x}$ от 1 до $e$ равна ровно единице. Это второе, геометрическое определение $e$, и оно появится, когда мы дойдём до интегралов (уроки 147–149).
  • У $e$ есть «своя» обратная функция — натуральный логарифм $\ln x$. Он отвечает на вопрос «в какую степень возвести $e$, чтобы получить $x$». Логарифмы начнутся в уроке 116, натуральный логарифм — в уроке 118. Пока мы обходимся без него: все уравнения в этом уроке решаются приравниванием показателей.

📌 Раз $\ln$ нам пока недоступен, договоримся о правиле игры: уравнения вида $e^{f(x)} = e^{g(x)}$ мы решаем через монотонность — раз функция $y = e^t$ строго возрастает, каждое своё значение она принимает ровно один раз, значит из равенства степеней следует равенство показателей: $f(x) = g(x)$.

Примеры с разбором

Пример 1 (простой): реши уравнение $e^{2x - 1} = e^{7}$

Решение:

Шаг 1. Слева и справа стоит одно и то же основание $e$, а функция $y = e^t$ строго возрастает — значит, разным показателям соответствуют разные значения.

Шаг 2. Приравниваем показатели:

$$2x - 1 = 7$$

Шаг 3. Решаем: $2x = 8$, значит $x = 4$.

Проверим наш ответ: $2 \cdot 4 - 1 = 7$ ✅

Ответ: $x = 4$


Пример 2 (средний): упрости выражение $\dfrac{e^{3x} \cdot e^{-x}}{e^{x+1}}$

Решение:

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

$$e^{3x} \cdot e^{-x} = e^{3x + (-x)} = e^{2x}$$

Шаг 2. Делим степени — показатели вычитаются:

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

Проверим наш ответ: подставим $x = 1$. Исходное: $\frac{e^3 \cdot e^{-1}}{e^2} = \frac{e^2}{e^2} = 1$. Полученное: $e^{1-1} = e^0 = 1$ ✅

Ответ: $e^{x-1}$


Пример 3 (сложный): реши уравнение $e^{2x} - 4e^{x} + 3 = 0$

Решение:

Шаг 1. Заметим ключевую структуру: $e^{2x} = (e^x)^2$. Значит, уравнение квадратное относительно $e^x$.

Шаг 2. Введём замену $t = e^x$. Обязательное ограничение: $t > 0$, потому что экспонента всегда положительна.

$$t^2 - 4t + 3 = 0$$

Шаг 3. Решаем квадратное уравнение. Дискриминант: $D = 16 - 12 = 4$, $\sqrt{D} = 2$.

$$t_1 = \frac{4 - 2}{2} = 1, \qquad t_2 = \frac{4 + 2}{2} = 3$$

Оба корня положительны, оба подходят.

Шаг 4. Возвращаемся к $x$. Первый корень: $e^x = 1 = e^0$, значит $x = 0$.

Шаг 5. Второй корень: $e^x = 3$. Вот здесь нам нужен был бы натуральный логарифм — ответ $x = \ln 3 \approx 1{,}0986$. Пока мы такой инструмент не проходили, поэтому корректный на сегодня ответ звучит так: второй корень существует (он единственный, потому что экспонента монотонна) и лежит между 1 и 1,1, поскольку $e^1 \approx 2{,}718 < 3$ и $e^{1{,}1} \approx 3{,}004 > 3$.

Ответ: $x = 0$; второй корень существует и лежит в промежутке $(1;\ 1{,}1)$, точное его выражение получим в уроке 118.

Вывод: пока логарифмов нет, уравнения с $e$ решаются либо приравниванием показателей, либо оценкой промежутка. Заметь, как аккуратная работа с монотонностью позволяет сказать много содержательного даже без «главного» инструмента.

Почему это важно

Экспонента — это язык, на котором записаны все процессы «пропорционального роста». В машинном обучении она встречается в трёх ролях сразу: как сжиматель (сигмоида превращает любое число в вероятность), как усилитель контраста (softmax растягивает разницу между логитами), как забыватель (экспоненциальное затухание learning rate и скользящее среднее в оптимизаторах). Три очень разные задачи — и во всех работает одна функция $e^x$. Дальше разберём каждую.


Где живёт $e$: рост, распад и вероятность

Экспоненциальный рост и распад

Общая модель звучит так: величина меняется со скоростью, пропорциональной своему текущему значению. Тогда

$$N(t) = N_0 \cdot e^{kt}$$

где $N_0$ — начальное значение, $k$ — коэффициент скорости. При $k > 0$ это рост, при $k < 0$ — распад (затухание).

Примеры из жизни:

  • Радиоактивный распад: $m(t) = m_0 e^{-t/\tau}$, где $\tau$ — характерное время. За время $\tau$ остаётся доля $e^{-1} \approx 36{,}8\%$
  • Остывание кофе (закон Ньютона): разность температур чашки и комнаты убывает как $e^{-kt}$
  • Разряд конденсатора: напряжение падает как $U_0 e^{-t/RC}$
  • Рост колонии бактерий на ранней стадии: $N_0 e^{kt}$
  • Затухание learning rate в нейросети: $\text{lr}(t) = \text{lr}_0 e^{-kt}$

Универсальное правило: за каждый интервал «характерного времени» величина умножается на $e^{-1} \approx 0{,}368$. За три таких интервала останется $e^{-3} \approx 0{,}0498$, то есть около 5%. Это очень удобная прикидка в уме.

Нормальное распределение

Плотность нормального (гауссова) распределения выглядит так:

$$f(x) = \frac{1}{\sigma\sqrt{2\pi}} \, e^{-\frac{(x - \mu)^2}{2\sigma^2}}$$

Здесь $e$ стоит в самом сердце формулы. Именно экспонента от минус квадрата даёт ту самую колоколообразную форму: около центра значение максимально, а по краям убывает так быстро, что «хвосты» практически исчезают.

Для data science это не абстракция. Инициализация весов нейросети (Xavier, He), добавление гауссова шума в данные для аугментации, предположения линейной регрессии об ошибках, вариационные автоэнкодеры (VAE), диффузионные модели — везде под капотом $e^{-x^2/2}$.

Задача о беспорядках: $\frac{1}{e}$ из ниоткуда

Вот классическая задача, где $e$ выскакивает совершенно неожиданно. Секретарь напечатал $n$ писем и $n$ конвертов с адресами, но разложил письма по конвертам наугад. Какова вероятность, что ни одно письмо не попало в свой конверт?

Ответ: при больших $n$ эта вероятность стремится к $\frac{1}{e} \approx 0{,}3679$. Причём сходимость невероятно быстрая — уже при $n = 5$ вероятность равна $\frac{44}{120} \approx 0{,}3667$, а при $n = 7$ совпадает с $\frac{1}{e}$ до четвёртого знака.

Никаких процентов, никакого роста — чистая комбинаторика, а $e$ всё равно тут. Причина в том же самом ряде: вероятность равна $1 - \frac{1}{1!} + \frac{1}{2!} - \frac{1}{3!} + \dots \pm \frac{1}{n!}$ — это ряд для $e^{-1}$.

Число $e$ в задаче о выборе (secretary problem)

Ещё одно место, где $e$ появляется без всякого «роста». Задача: тебе последовательно показывают $n$ кандидатов в случайном порядке, после каждого нужно сразу сказать «беру» или «отказ», вернуться нельзя. Как максимизировать шанс выбрать лучшего?

Оптимальная стратегия: пропустить первые $\frac{n}{e} \approx 37\%$ кандидатов, запомнив лучшего среди них, а потом взять первого, кто окажется лучше всех просмотренных. Вероятность успеха при этом тоже равна $\frac{1}{e} \approx 37\%$ — и она не падает с ростом $n$, что довольно удивительно.

Эта же математика лежит в основе стратегий exploration/exploitation в обучении с подкреплением и в подходе «сначала случайный поиск, потом эксплуатация» при подборе гиперпараметров.

Почему это важно

Число $e$ появляется в трёх совершенно разных областях — финансы, физика распада, комбинаторика и теория вероятностей — и каждый раз по-своему. Это признак того, что $e$ не «формула для процентов», а фундаментальная константа, зашитая в структуру самой математики, наравне с $\pi$. Для практика вывод простой: увидел в задаче «умножение на постоянный множитель много раз подряд» или «случайное перемешивание с исключениями» — жди появления $e$.


$e$ в машинном обучении: сигмоида, softmax, расписания и Adam

Сигмоида: как превратить любое число в вероятность

Нейросеть на выходе выдаёт произвольное вещественное число — логит. Оно может быть $-4{,}7$, может быть $12{,}3$. А нужна вероятность — число от 0 до 1. Нужна функция-«сжиматель».

$$\sigma(x) = \frac{1}{1 + e^{-x}}$$

Разберём, как она работает, по частям:

  • При $x = 0$: $e^{0} = 1$, значит $\sigma(0) = \frac{1}{2}$ — полная неопределённость, ровно 50/50
  • При больших положительных $x$: $e^{-x}$ становится почти нулём, значит $\sigma(x) \to 1$
  • При больших отрицательных $x$: $e^{-x}$ огромно, значит $\sigma(x) \to 0$

Значения полезно запомнить: $\sigma(1) \approx 0{,}731$, $\sigma(2) \approx 0{,}881$, $\sigma(-1) \approx 0{,}269$, $\sigma(3) \approx 0{,}953$.

Почему в знаменателе $e$, а не 2 или 10? Формально сигмоиду можно построить на любом основании: $\frac{1}{1 + a^{-x}}$ тоже даст S-образную кривую. Но с $e$ у сигмоиды появляется красивое свойство, которое проявится в уроке 138: скорость её изменения выражается через саму функцию как $\sigma(x)\bigl(1 - \sigma(x)\bigr)$. Ни с каким другим основанием такой чистой формулы не будет — вылезет лишний множитель. Для обратного распространения ошибки это принципиально: производную сигмоиды можно вычислить, вообще не вызывая exp заново, а просто переиспользовав уже посчитанное значение. Это экономия времени на каждом шаге обучения каждой сети.

Softmax: вероятности для многих классов

Когда классов больше двух, используют softmax. Для вектора логитов $z = (z_1, \dots, z_K)$:

$$\text{softmax}(z)_i = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}}$$

Три свойства, которые делают эту формулу работающей:

  • Все значения положительны — потому что $e^{t} > 0$ при любом $t$, даже при отрицательном
  • Сумма ровно 1 — потому что мы делим каждое слагаемое на сумму всех
  • Порядок сохраняется — экспонента монотонна, поэтому больший логит даёт большую вероятность

А ещё есть свойство, которое ценят на практике: сдвиг всех логитов на константу ничего не меняет. Действительно,

$$\frac{e^{z_i + c}}{\sum_j e^{z_j + c}} = \frac{e^{c} \cdot e^{z_i}}{e^{c} \cdot \sum_j e^{z_j}} = \frac{e^{z_i}}{\sum_j e^{z_j}}$$

Здесь работает обычное правило степеней $e^{a+b} = e^a e^b$. Именно на этом трюке основан численно устойчивый softmax: перед вычислением из всех логитов вычитают максимум, чтобы exp не переполнился. Без этого при логитах порядка 1000 получишь inf/inf = nan.

Температура: как крутить «уверенность» модели

Softmax с температурой $T$:

$$p_i = \frac{e^{z_i / T}}{\sum_j e^{z_j / T}}$$

Именно этот параметр ты крутишь в API языковых моделей.

  • $T$ маленькое (например 0,1): разница между логитами усиливается, распределение становится почти «победитель забирает всё» — модель отвечает предсказуемо и скучно
  • $T = 1$: обычный softmax
  • $T$ большое (например 5): разница сглаживается, распределение приближается к равномерному — модель отвечает разнообразнее и рискованнее

Механика прозрачна: деление показателя на $T$ сжимает или растягивает разрывы между логитами до того, как их подхватит экспонента, а экспонента эти разрывы усиливает нелинейно.

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

Один из самых распространённых шедулеров:

$$\text{lr}(t) = \text{lr}_0 \cdot e^{-kt}$$

Идея понятна: в начале обучения нужны большие шаги, чтобы быстро добраться до нужной области, ближе к концу — маленькие, чтобы аккуратно осесть в минимуме. Экспоненциальное затухание даёт плавное уменьшение, у которого есть удобная интерпретация: за каждый интервал $\frac{1}{k}$ шагов learning rate умножается на $e^{-1} \approx 0{,}368$.

В PyTorch этому соответствует ExponentialLR(optimizer, gamma=γ), где на каждой эпохе lr умножается на $\gamma$. Связь простая: $\gamma = e^{-k}$. Например, при $\gamma = 0{,}9$ за 10 эпох lr падает в $0{,}9^{10} \approx 0{,}349$ раза — почти ровно в $e$ раз.

Adam и экспоненциальное скользящее среднее

Оптимизатор Adam хранит два скользящих средних — градиента и квадрата градиента:

$$m_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t, \qquad v_t = \beta_2 v_{t-1} + (1 - \beta_2) g_t^2$$

Стандартные значения: $\beta_1 = 0{,}9$, $\beta_2 = 0{,}999$.

Раскрыв рекурсию, увидишь: вклад градиента, полученного $k$ шагов назад, равен $\beta^k$ — то есть память затухает геометрически. И вот тут появляется $e$: «эффективный размер окна памяти» принято считать равным $\frac{1}{1 - \beta}$, потому что именно через столько шагов вес наблюдения падает примерно в $e$ раз.

Проверим на числах. При $\beta = 0{,}9$ окно равно $\frac{1}{1-0{,}9} = 10$ шагов. Вес наблюдения десятишаговой давности: $0{,}9^{10} = 0{,}3487$. Сравни с $e^{-1} = 0{,}3679$ — близко. При $\beta = 0{,}99$ окно 100 шагов: $0{,}99^{100} = 0{,}3660$ — уже почти совпало. При $\beta = 0{,}999$: $0{,}999^{1000} = 0{,}36770$ — совпадение до третьего знака.

Причина ровно та, что мы изучали: $\left(1 - \frac{1}{n}\right)^n$ приближается к $\frac{1}{e}$ так же, как $\left(1 + \frac{1}{n}\right)^n$ приближается к $e$. Так что фраза «$\beta_2 = 0{,}999$ означает память примерно на 1000 шагов» — это прямое следствие школьной задачи Бернулли про проценты.

Бонус: bootstrap и out-of-bag

Ещё одно место, где $\frac{1}{e}$ выскакивает в ML. При построении случайного леса каждое дерево обучается на бутстреп-выборке: из $n$ объектов $n$ раз выбирают случайный объект с возвращением. Вероятность, что конкретный объект ни разу не попадёт в выборку, равна

$$\left(1 - \frac{1}{n}\right)^n \approx \frac{1}{e} \approx 0{,}368$$

Отсюда знаменитое правило: примерно 63,2% объектов попадают в каждую бутстреп-выборку, а оставшиеся 36,8% образуют out-of-bag выборку, на которой можно бесплатно оценить качество без отдельного валидационного набора. Число 0,632 в статистике даже носит собственное имя — «.632 bootstrap estimator».

Почему это важно

Во всех перечисленных местах $e$ появилось не по прихоти автора библиотеки. Каждый раз причина одна из двух: либо процесс по своей природе «умножается на постоянный множитель много раз» (затухание lr, память Adam, бутстреп), либо нужна функция, у которой скорость изменения выражается через саму функцию (сигмоида, softmax). Понимание этой связки превращает формулы из ML-фреймворков из магических заклинаний в осмысленные конструкции: ты можешь прикинуть в уме, что даст gamma=0.95 за 40 эпох, или объяснить, почему beta2=0.999 делает Adam «медленно забывающим».


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

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

Задание 1: Вычисли $\left(1+\frac{1}{2}\right)^2$, $\left(1+\frac{1}{3}\right)^3$ и $\left(1+\frac{1}{4}\right)^4$. Расположи результаты по возрастанию и сравни каждый с $e \approx 2{,}7183$.


Задание 2: Запиши $\left(1+\frac{1}{5}\right)^5$ в виде обыкновенной дроби и в виде десятичной.


Задание 3: Вычисли сумму $\frac{1}{3!} + \frac{1}{4!} + \frac{1}{5!}$ обыкновенной дробью.


Задание 4: Округли $e \approx 2{,}718281828$ до десятых, сотых, тысячных и до пяти знаков после запятой.


Задание 5: Вычисли $e^{-1}$ с точностью до четырёх знаков после запятой, зная $e \approx 2{,}718281828$.


Задание 6: Вычисли значение сигмоиды в нуле: $\sigma(0) = \dfrac{1}{1 + e^{-0}}$.


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


Задание 8: Что больше: $e^{1{,}4}$ или $e^{1{,}41}$? Обоснуй без вычислений.


Задание 9: Вклад 50 000 ₽ размещён под 100% годовых с начислением процентов раз в полгода. Какая сумма будет через год?


Задание 10: Какое приближение ближе к $e$: 2,7 или 2,72?


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

Задание 11: Вычисли $\left(1+\frac{1}{8}\right)^8$ обыкновенной дробью и десятичной, затем проверь, что результат лежит между $\left(1+\frac{1}{5}\right)^5 = 2{,}48832$ и числом 3.


Задание 12: Сколько слагаемых ряда $1 + \frac{1}{1!} + \frac{1}{2!} + \dots$ нужно взять, чтобы вычислить $e$ с точностью до 0,0001?


Задание 13: Капитал 200 000 ₽ размещён под 8% годовых с непрерывным начислением на 3 года. Найди итоговую сумму.


Задание 14: Нейросеть-классификатор выдала два логита: $z_1 = 1$ и $z_2 = 0$. Найди вероятности классов через softmax.


Задание 15: Вычисли $\sigma(1)$ и $\sigma(-1)$ для сигмоиды $\sigma(x) = \frac{1}{1+e^{-x}}$. Что ты замечаешь, сравнив с ответом задания 14?


Задание 16: Learning rate затухает по правилу $\text{lr}(t) = 0{,}1 \cdot e^{-0{,}5t}$, где $t$ — номер эпохи. Найди learning rate на 4-й эпохе.


Задание 17: В оптимизаторе Adam с $\beta_1 = 0{,}9$ вклад градиента, полученного $k$ шагов назад, пропорционален $\beta_1^{k}$. Найди вклад градиента десятишаговой давности и сравни с $\frac{1}{e}$.


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


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


Задание 20: Масса радиоактивного вещества убывает по закону $m(t) = m_0 e^{-t/20}$, где $t$ в годах. Начальная масса 500 г. Сколько останется через 60 лет?


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

Задание 21: Докажи, что при любом натуральном $n$ выполняется неравенство

$$1 + \frac{1}{1!} + \frac{1}{2!} + \dots + \frac{1}{n!} < 3$$

Задание 22: Что больше: $e^{\pi}$ или $\pi^{e}$? Используй неравенство $e^{x} > 1 + x$, верное при любом $x > 0$.


Задание 23: Посчитай значения $\left(1+\frac{1}{n}\right)^{n+1}$ при $n = 1, 2, 5, 10$ и проверь, что эта величина, в отличие от $\left(1+\frac{1}{n}\right)^{n}$, убывает и всегда больше $e$.


Задание 24: Известно, что $\left(1+\frac{1}{73}\right)^{73} \approx 2{,}699894$, а $\left(1+\frac{1}{74}\right)^{74} \approx 2{,}700140$. Начиная с какого $n$ последовательность впервые превышает 2,7? Что это говорит о скорости приближения к $e$?


Задание 25: Секретарь разложил 5 писем по 5 подписанным конвертам наугад. Известно, что количество раскладок, при которых ни одно письмо не попало в свой конверт, равно 44. Найди вероятность такого события и сравни с $\frac{1}{e}$.


Задание 26: Вычисли $e^{-0{,}5}$ через ряд $e^{x} = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \dots$, взяв 5 слагаемых. Оцени точность.


Задание 27: Модель выдала логиты $z = (2;\ 1;\ 0)$. Найди распределение softmax при температуре $T = 1$ и при $T = 2$. Как меняется «уверенность» модели?


Задание 28: Формула Стирлинга приближает факториал: $n! \approx \left(\frac{n}{e}\right)^n \sqrt{2\pi n}$. Проверь её точность для $n = 10$.


Задание 29: При построении случайного леса каждое дерево обучается на бутстреп-выборке: из $n = 100$ объектов 100 раз выбирают случайный объект с возвращением. Найди вероятность, что конкретный объект не попадёт в выборку ни разу, и долю объектов, попавших в неё.


Задание 30: Инвестор вкладывает 1 000 000 ₽ под 12% годовых на 10 лет. Сравни итог при ежегодном начислении и при непрерывном. На сколько процентов непрерывное выгоднее?


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

Ошибка 1: считают, что $e$ — это ровно 2,718

Неправильно: записывать $e = 2{,}718$ и на этом успокаиваться, а потом удивляться, почему расчёты «не сходятся» в четвёртом знаке.

Правильно: $e$ — иррациональное число, его десятичная запись бесконечна и непериодична: $2{,}718281828459045\ldots$ Знак равенства тут неуместен, нужно писать $e \approx 2{,}718$ или брать больше знаков. В коде используй константу (math.e, np.e), а не набранное вручную число.

💡 Почему важно: ошибка округления копится. Если в цикле обучения ты 10 000 раз умножаешь на неточное значение, накопленное расхождение станет заметным — а искать причину «плывущих» результатов в константе никто не будет.


Ошибка 2: путают «$e$ иррационально» с «$e$ бесконечно велико»

Неправильно: думать, что раз у $e$ бесконечно много цифр после запятой, то это «какое-то огромное число» или что последовательность $\left(1+\frac{1}{n}\right)^n$ растёт неограниченно.

Правильно: $e$ — совершенно конкретное число между 2,7 и 2,72. Бесконечна не величина, а запись. Последовательность $\left(1+\frac{1}{n}\right)^n$ строго возрастает, но при этом навсегда остаётся меньше 3 — мы это доказали через сравнение с суммой $\frac{1}{2^{k}}$.

💡 Почему важно: отсюда родом типичная ошибка мышления в финансах — вера, что более частое начисление процентов может дать сколь угодно большой доход. Не может: потолок — это ровно $e^{rt}$.


Ошибка 3: неправильно упрощают $\left(1+\frac{1}{n}\right)^n$

Неправильно: рассуждать так: «при больших $n$ дробь $\frac{1}{n}$ стремится к нулю, значит основание стремится к 1, а единица в любой степени равна 1 — выходит, вся конструкция стремится к 1».

Правильно: это классическая ловушка вида «неопределённость $1^{\infty}$». Нельзя «устремлять» части выражения по очереди: основание приближается к 1, но показатель одновременно растёт, и эти два процесса конкурируют. Результат конкуренции — конечное число $e \approx 2{,}718$, а не 1. Достаточно посмотреть в таблицу: при $n = 10^6$ значение равно 2,71828, а вовсе не 1.

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


Ошибка 4: считают $e^{-x}$ отрицательным числом

Неправильно: думать, что $e^{-2}$ отрицательно, раз в показателе минус.

Правильно: $e^{-2} = \frac{1}{e^2} = \frac{1}{7{,}389} \approx 0{,}1353$ — положительное число, просто маленькое. Экспонента никогда не бывает ни нулём, ни отрицательной: $E(f) = (0; +\infty)$. Минус в показателе означает «перевернуть в дробь», а не «сменить знак результата».

💡 Почему важно: именно на положительности $e^{z}$ держится корректность softmax. Если бы экспонента могла быть отрицательной, «вероятности» получались бы отрицательными, и вся конструкция развалилась бы.


Ошибка 5: используют $\left(1+\frac{1}{n}\right)^n$ для вычисления $e$

Неправильно: писать в коде (1 + 1/n)**n с большим n, чтобы «точно получить $e$».

Правильно: этот способ ужасен вдвойне. Во-первых, он сходится как $\frac{1{,}36}{n}$ — для 10 верных знаков нужно $n \approx 10^{10}$. Во-вторых, при таком $n$ величина $1 + \frac{1}{n}$ в формате float64 уже теряет значащие цифры (машинный эпсилон около $2{,}2 \cdot 10^{-16}$), и результат станет хуже, а не лучше. Для вычислений используй ряд $\sum \frac{1}{k!}$ или готовую константу.

💡 Почему важно: это учебный пример на всю жизнь: математически верная формула может быть вычислительно негодной. Такие ситуации встречаются в ML постоянно — например, наивное вычисление softmax через exp без вычитания максимума математически корректно, но численно взрывается.


Ошибка 6: думают, что основание сигмоиды и softmax можно менять безнаказанно

Неправильно: считать, что $\frac{1}{1 + 2^{-x}}$ — «то же самое, что сигмоида, только на двойке», и что в формулах ничего не изменится.

Правильно: форма кривой действительно останется S-образной: любое основание $a > 1$ можно записать как степень числа $e$, поэтому $\frac{1}{1+2^{-x}}$ — это та же сигмоида, только с растянутым по горизонтали аргументом (точный коэффициент растяжения мы выпишем в уроке 118, когда появится натуральный логарифм). Но при $e$ и только при $e$ скорость изменения сигмоиды выражается через саму сигмоиду без лишних множителей (детали — в уроке 138). С любым другим основанием в формулы обратного распространения ошибки полезет постоянный множитель, который придётся тащить через все слои.

💡 Почему важно: «натуральность» основания $e$ — это не эстетика, а вычислительная экономия. В обучении сети производная активации считается миллиарды раз, и лишнее умножение там никому не нужно.


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

✅ $e \approx 2{,}718281828459045$ — иррациональное и трансцендентное число, одна из главных констант математики наравне с $\pi$.

✅ $e$ — это то число, к которому приближаются значения $\left(1 + \frac{1}{n}\right)^n$ при неограниченном росте $n$. Последовательность строго возрастает и никогда не превышает 3. Строгая формулировка через предел появится в уроке 129.

✅ Задача, породившая $e$: непрерывное начисление процентов. Чем чаще начисляем, тем больше итог, но выгода упирается в потолок $e$ (при ставке 100% на год).

✅ Формула непрерывного роста: $S = S_0 \cdot e^{rt}$. Она же описывает распад ($r < 0$), остывание, рост популяции и затухание learning rate.

✅ Быстрый способ вычислять: ряд $e = 1 + \frac{1}{1!} + \frac{1}{2!} + \frac{1}{3!} + \dots$ Десять слагаемых дают восемь верных знаков, тогда как последовательности нужно $n \sim 10^8$.

✅ Ошибка ряда после члена $\frac{1}{m!}$ примерно равна следующему члену $\frac{1}{(m+1)!}$ — это готовый критерий «когда остановиться».

✅ Ряд работает и для степеней: $e^{x} = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \dots$; при маленьких $x$ отсюда получается рабочая оценка $e^{x} \approx 1 + x$.

✅ Функция $y = e^x$: $D(f) = \mathbb{R}$, $E(f) = (0;+\infty)$, строго возрастает, проходит через $(0;1)$, никогда не обращается в ноль и не бывает отрицательной.

✅ Из монотонности $e^x$ следует правило решения уравнений: если $e^{f(x)} = e^{g(x)}$, то $f(x) = g(x)$.

✅ $\left(1 - \frac{1}{n}\right)^n$ приближается к $\frac{1}{e} \approx 0{,}3679$ — отсюда и «эффективное окно» $\frac{1}{1-\beta}$ в Adam, и правило 63,2% в бутстрепе.

✅ В ML $e$ живёт в сигмоиде $\sigma(x) = \frac{1}{1+e^{-x}}$, в softmax $\frac{e^{z_i}}{\sum e^{z_j}}$, в экспоненциальном затухании lr и в нормальном распределении. Причина всегда одна из двух: «умножение на постоянный множитель много раз» или «скорость изменения пропорциональна значению».


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

Что было раньше: урок 111 «Показательная функция» дал нам $y = a^x$ со всеми свойствами — область определения, монотонность, асимптота, правила действий со степенями. Число $e$ — просто конкретное значение основания, и всё, что мы знали про $a^x$, автоматически работает для $e^x$. Из более ранних тем пригодились степени с рациональным и действительным показателем (уроки 85–90) и работа с обыкновенными дробями.

Что дальше: ближайший урок 113 систематизирует свойства показательной функции, уроки 114–115 научат решать показательные уравнения и неравенства — там $e$ будет встречаться как обычное основание. Настоящий прорыв случится в уроках 116–118: там появится логарифм, а вместе с ним натуральный логарифм $\ln x$ — обратная функция к $e^x$. Именно он позволит решать уравнения вида $e^x = 3$, которые сейчас мы можем только оценивать. Урок 125 («Применение в задачах роста и распада») целиком построен на формуле $S_0 e^{rt}$ из этого урока. Урок 129 даст строгое понятие предела и превратит нашу наглядную картинку в точное определение $e = \lim\limits_{n\to\infty}\left(1+\frac{1}{n}\right)^n$. Урок 138 раскроет главный секрет: $(e^x)' = e^x$. Уроки 147–149 покажут геометрическое лицо $e$ — площадь под гиперболой $y = \frac{1}{x}$ от 1 до $e$ равна единице.

Где это применяется в жизни и в ML/данных:

🤖 В машинном обучении: сигмоида и softmax (активации и вероятности), softmax с температурой в языковых моделях, экспоненциальное затухание learning rate (ExponentialLR), экспоненциальные скользящие средние в Adam/RMSProp, инициализация весов из нормального распределения, гауссов шум в аугментациях, ядро RBF в SVM, механизм внимания в трансформерах (там softmax — центральная операция).

📊 В data science и статистике: нормальное распределение, экспоненциальное и пуассоновское распределения (время между событиями), бутстреп и out-of-bag оценка, экспоненциальное сглаживание временных рядов, формула Стирлинга для оценки числа сочетаний.

💰 В финансах: непрерывное начисление процентов, модель Блэка-Шоулза для опционов, дисконтирование денежных потоков, расчёт эффективной процентной ставки.

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


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

💡 $e$ впервые появилось не как «число», а как приложение к таблице. В 1618 году в английском переводе работы Непера о логарифмах напечатали таблицу, в которой фактически содержался натуральный логарифм — то есть $e$ незримо присутствовало уже там. Автором приложения считают Уильяма Отреда. Но сам объект никто не выделил и не назвал: $e$ шестьдесят пять лет пряталось в таблицах, пока Бернулли не наткнулся на него в задаче про проценты.

💡 Мнемоника на десять знаков через президента. Англоязычные студенты запоминают $e = 2{,}7\ 1828\ 1828\ 45\ 90\ 45$ так: «2,7», затем дважды год избрания Эндрю Джексона президентом США (1828), затем углы равнобедренного прямоугольного треугольника — 45°, 90°, 45°. Забавно, что цифры 1828 повторяются дважды подряд — чистая случайность, которая заканчивается сразу после этого, ведь $e$ иррационально.

💡 Google использовал $e$ как рекрутинговый фильтр. В 2004 году на билбордах в Кремниевой долине появился загадочный плакат: «{первое 10-значное простое число, встречающееся в последовательных цифрах $e$}.com». Правильный ответ — 7427466391 — вёл на страницу с ещё одной задачей, а её решение приводило к форме приёма резюме в Google. Тот, кто мог перебрать цифры $e$ и найти простое число, автоматически проходил первичный отбор.

💡 Тождество Эйлера связывает $e$, $\pi$, $i$, 1 и 0 одной формулой. Знаменитое $e^{i\pi} + 1 = 0$ регулярно побеждает в опросах «самая красивая формула математики». В одном выражении сходятся пять фундаментальных констант и три главные операции — сложение, умножение, возведение в степень. Ричард Фейнман называл это «самой замечательной формулой в математике».

💡 Число $e$ выигрывает конкурс на «самое эффективное основание». Есть занятная задача: разбить число на равные части так, чтобы их произведение было максимальным. Например, 10 можно разбить на две пятёрки ($5 \cdot 5 = 25$), на три части по $3\frac{1}{3}$ ($\approx 37$), на четыре по 2,5 ($\approx 39$)… Оптимум достигается, когда размер каждой части максимально близок к $e \approx 2{,}718$. Именно поэтому в информатике теоретически оптимальной системой счисления считается троичная — тройка ближе всего к $e$ среди целых чисел.


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

1. Держи в голове пять значений экспоненты

$e \approx 2{,}72$, $e^2 \approx 7{,}39$, $e^3 \approx 20{,}1$, $e^{-1} \approx 0{,}37$, $e^{-2} \approx 0{,}135$. Этого хватает, чтобы прикинуть в уме почти любую задачу про рост и затухание. Полезная привязка: $e^3 \approx 20$, значит за три «характерных времени» величина падает примерно в 20 раз (остаётся 5%).


2. Правило «в $e$ раз за $\frac{1}{k}$ шагов»

Если что-то затухает как $e^{-kt}$, то характерное время равно $\frac{1}{k}$: за столько шагов величина делится на $e$, то есть остаётся 37%. За два таких интервала — 13,5%, за три — 5%, за пять — меньше 1%. Эта лесенка (37 → 13,5 → 5 → 1,8 → 0,7 процента) закрывает 90% прикидок по расписаниям learning rate.


3. Для маленьких $x$ пользуйся $e^x \approx 1 + x$

При $|x| < 0{,}1$ эта формула даёт ошибку меньше 0,5%. Проверка: $e^{0{,}05} \approx 1{,}0513$, а $1 + 0{,}05 = 1{,}05$ — расхождение 0,12%. Это мгновенный способ прикинуть эффект малого изменения ставки, шага обучения или коэффициента затухания без калькулятора. Следующее уточнение — $e^x \approx 1 + x + \frac{x^2}{2}$ — добавляет ещё пару верных знаков.


4. Считай большие степени «ступеньками», а не подряд

Чтобы вычислить $0{,}9^{10}$ вручную, не умножай десять раз. Возведи в квадрат: $0{,}81$, ещё раз: $0{,}6561$, ещё раз: $0{,}43047$ — это уже восьмая степень. Осталось умножить на $0{,}81$ (то есть на $0{,}9^2$) и получить $0{,}34868$. Четыре умножения вместо десяти. Приём называется «быстрое возведение в степень», и ровно так это делает процессор.


5. Правило «эффективного окна» для любого скользящего среднего

Увидел коэффициент $\beta$ в EMA (Adam, RMSProp, сглаживание метрик в TensorBoard) — сразу считай $\frac{1}{1-\beta}$. Это и есть длина памяти в шагах. $\beta = 0{,}9$ → окно 10, $\beta = 0{,}99$ → окно 100, $\beta = 0{,}999$ → окно 1000. Работает потому, что $\beta^{1/(1-\beta)} \approx e^{-1}$. Один взгляд на конфиг — и ты знаешь, насколько «инерционен» твой оптимизатор.


6. В коде никогда не набирай $e$ руками

Используй math.e, np.e, torch.e — а лучше сразу math.exp(x) вместо math.e ** x. Библиотечная реализация точнее (она использует специальные алгоритмы и не накапливает ошибку возведения в степень) и обычно быстрее. И отдельно: для маленьких $x$ есть math.expm1(x), которая считает $e^x - 1$ без потери точности — при $x = 10^{-10}$ обычное exp(x) - 1 даст мусор из-за вычитания близких чисел, а expm1 вернёт правильный ответ.


7. Проверяй softmax на устойчивость

Если пишешь softmax руками, первым делом вычитай максимум логитов: z = z - z.max(). Мы доказали, что от этого результат не меняется (сдвиг сокращается), зато exp перестаёт переполняться. Это трёхсекундная правка, которая спасает от NaN в середине долгого обучения — и одна из самых частых причин загадочных падений самописных моделей.


Число $e$ — редкий случай, когда одна константа связывает вещи, которые на первый взгляд не имеют друг к другу отношения: банковский вклад, распад урана, случайную раскладку писем по конвертам и выход softmax в языковой модели. Мы пришли к нему самым честным путём — от практической задачи о процентах, через таблицу значений, через быстрый факториальный ряд, — и увидели, что за экзотическим числом $2{,}718281828\ldots$ стоит очень простая идея: «умножаем на чуть-чуть больше единицы, но очень много раз».

Впереди самое интересное. В уроке 118 у $e$ появится напарник — натуральный логарифм, и вместе они закроют все уравнения, которые сегодня мы могли только оценивать. В уроке 129 наглядная фраза «приближается к $e$» превратится в строгое определение предела. А в уроке 138 откроется главный секрет экспоненты, ради которого её и любят математики: это единственная функция, которая совпадает со скоростью собственного роста. Тогда станет окончательно ясно, почему во всех формулах машинного обучения стоит именно $e$ — и почему по-другому просто не получилось бы. Двигаемся дальше 🌱

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

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

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