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

Логарифмические неравенства

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

Логарифмические неравенства 🪜

Ты обучаешь классификатор. В логах на каждом шаге печатается log-loss — величина $-\ln p$, где $p$ — вероятность, которую модель присвоила правильному ответу. Ты хочешь поставить в пайплайн простое правило: «если log-loss на валидации опустился ниже $0{,}05$ — останавливаемся, дальше учить бессмысленно». И тут возникает вопрос, на который надо ответить честно: а какой уверенности модели это соответствует? Насколько «близко к единице» должна быть вероятность, чтобы логарифм пробил порог? Ты пишешь $-\ln p < 0{,}05$ — и обнаруживаешь, что перед тобой не уравнение, а неравенство с логарифмом. У него ответ не число, а целый промежуток. И решается оно по правилам, в которых легко наступить сразу на две мины.

Первая мина — знак. Когда ты «снимаешь» логарифм с обеих частей, знак неравенства иногда сохраняется, а иногда переворачивается. Зависит это исключительно от основания: если оно больше единицы — знак остаётся, если между нулём и единицей — переворачивается. Это не произвольное правило из учебника, а прямое следствие того, что логарифмическая функция при $0 < a < 1$ убывает: большему аргументу соответствует меньшее значение. Ты это уже видел в уроке про логарифмическую функцию, и сейчас мы вытащим это свойство на передний план и заставим работать.

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

Этот урок — про то, как аккуратно проходить между этими двумя минами. Разберём простейшие неравенства, сведение к одному логарифму, замену $t = \log_a x$, самый коварный случай — переменное основание, метод интервалов и системы. И параллельно посмотрим, где эти же самые неравенства всплывают в машинном обучении: пороги на функцию потерь, число шагов до затухания learning rate, ограничения на вероятность через логит.

🎯 Ты узнаешь:

  • Почему при основании $a > 1$ знак неравенства сохраняется, а при $0 < a < 1$ — переворачивается, и как это следует из монотонности
  • Почему ОДЗ в неравенствах обязательна всегда, и как забытая ОДЗ добавляет в ответ целый лишний промежуток
  • Как решать неравенства заменой $t = \log_a x$ и почему обратный переход — это снова неравенство, а не уравнение
  • Как справляться с переменным основанием: разбор двух случаев и универсальный переход через произведение $(a - 1)(f - g) > 0$
  • Как пороговые условия на log-loss, learning rate и вероятность через логит превращаются в обычные логарифмические неравенства

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

Логарифм родился в 1614 году как вычислительный инструмент: шотландец Джон Непер выпустил «Mirifici Logarithmorum Canonis Descriptio» — таблицы, превращающие умножение в сложение. Астрономы того времени тратили на перемножение многозначных чисел дни; Непер сократил это до минут. Генри Бригс из Лондона в 1617 году переработал идею под основание 10, и десятичные логарифмы разошлись по всей Европе. Но обрати внимание: и Непер, и Бригс работали с логарифмом как с таблицей, а не как с функцией. Их интересовало «чему равен логарифм этого числа», а не «при каких числах логарифм больше вот такого значения».

Поворот произошёл в XVIII веке, когда Леонард Эйлер в «Introductio in analysin infinitorum» (1748) переосмыслил логарифм как функцию, обратную к показательной, и ввёл современную запись. Именно взгляд «логарифм — это функция» сделал возможными неравенства: раз есть функция, у неё есть монотонность, а раз есть монотонность — можно сравнивать не только значения, но и аргументы. Эйлер же чётко зафиксировал, что при основании больше единицы функция растёт, а при основании меньше единицы — убывает, и что область определения — только положительные числа. Оба факта, на которых стоит весь этот урок, — эйлеровские.

Практическая нужда в логарифмических неравенствах пришла из XIX–XX веков и оказалась удивительно живучей. Психофизика: закон Вебера — Фехнера, где ощущение пропорционально логарифму раздражителя, и вопрос «при какой громкости звук станет некомфортным» — это неравенство. Химия: шкала pH, введённая Сёренсеном в 1909 году, где «раствор кислый» означает $-\lg[\mathrm{H}^+] < 7$. Сейсмология: шкала Рихтера 1935 года. Теория информации: Клод Шеннон в 1948 году определил количество информации как $-\log_2 p$, и практически любое условие вида «сообщение достаточно неожиданное» или «модель достаточно уверена» немедленно превращается в логарифмическое неравенство.

А сегодня ты встречаешь их каждый раз, когда пишешь условие остановки обучения нейросети. Кросс-энтропийная функция потерь — это ровно шенноновский $-\log p$, усреднённый по батчу. Порог на неё — логарифмическое неравенство. Условие «learning rate упал ниже $10^{-5}$» при экспоненциальном затухании — логарифмическое неравенство. Условие «модель уверена больше чем на 95%», записанное через логит, — снова оно. Четыреста лет спустя после Непера его таблицы превратились в строчку if val_loss < threshold: break, и за этой строчкой стоит та же самая математика.


Монотонность: единственный источник правды о знаке

Интуиция

Представь два термометра. Первый — обычный, в градусах Цельсия: чем теплее, тем больше число. Второй — странный, «шкала холода»: чем теплее, тем меньше число (0 — жара, 100 — лютый мороз). Теперь я говорю: «На первом термометре у Ани значение больше, чем у Бори». Ты сразу делаешь вывод: у Ани теплее. А если то же самое сказано про второй термометр — вывод противоположный: у Ани холоднее.

Заметь: сравнение показаний одно и то же, а вывод об исходной величине зависит от того, как устроена шкала — растущая она или убывающая. Логарифм — это ровно такая шкала для положительных чисел. При основании $a > 1$ шкала растущая: чем больше число, тем больше его логарифм. При основании $0 < a < 1$ шкала убывающая: чем больше число, тем меньше логарифм.

Давай проверим руками, чтобы это перестало быть заклинанием. Возьмём основание $2$ (больше единицы):

$$\log_2 4 = 2, \qquad \log_2 8 = 3, \qquad \log_2 16 = 4$$

Аргументы росли — логарифмы росли. Теперь основание $\tfrac{1}{2}$ (меньше единицы):

$$\log_{1/2} 4 = -2, \qquad \log_{1/2} 8 = -3, \qquad \log_{1/2} 16 = -4$$

Аргументы росли, а логарифмы падали: $-2 > -3 > -4$. Вот и вся суть. Логарифм по основанию меньше единицы — это «шкала холода».

Почему так? Потому что $\log_{1/a} x = -\log_a x$: переход к обратному основанию просто меняет знак. А умножение на $-1$ — это и есть переворот порядка. Никакой магии, чистая алгебра.

Определение: Функция $y = \log_a x$ при $a > 1$ возрастает на всей области определения $(0; +\infty)$: из $x_1 < x_2$ следует $\log_a x_1 < \log_a x_2$. При $0 < a < 1$ функция убывает: из $x_1 < x_2$ следует $\log_a x_1 > \log_a x_2$.

Из этого немедленно вытекает главный рабочий инструмент урока — правило снятия логарифма.

Правило (равносильный переход): Пусть $f(x) > 0$ и $g(x) > 0$. Тогда

$$\log_a f(x) > \log_a g(x) \iff f(x) > g(x) \quad \text{при } a > 1$$

$$\log_a f(x) > \log_a g(x) \iff f(x) < g(x) \quad \text{при } 0 < a < 1$$

Два момента, которые нельзя проскочить.

Первый. Условия $f(x) > 0$ и $g(x) > 0$ — это не примечание мелким шрифтом, а часть правила. Без них переход неверен. Именно они и превращаются в ОДЗ, о которой будет следующий раздел.

Второй. Слово «равносильный» означает, что переход работает в обе стороны и ничего не теряет и не добавляет. То есть решив $f(x) > g(x)$ вместе с условиями положительности, ты получаешь ровно то же множество, что и у исходного неравенства. Это принципиально: у нас не будет никаких «посторонних корней, которые отсеются проверкой», — либо переход равносилен, либо решение неверно.

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

Пример 1 (простой): реши $\log_2 x > 5$

Решение:

Шаг 1. ОДЗ. Под логарифмом стоит $x$, значит $x > 0$. Записываем: $x \in (0; +\infty)$.

Шаг 2. Приводим правую часть к логарифму по тому же основанию. Число $5$ — это $\log_2 32$, потому что $2^5 = 32$:

$$\log_2 x > \log_2 32$$

Шаг 3. Смотрим на основание. Здесь $a = 2 > 1$, функция возрастает, значит знак сохраняется:

$$x > 32$$

Шаг 4. Пересекаем с ОДЗ. Множество $x > 32$ целиком лежит внутри $x > 0$, пересечение ничего не отрезает.

Проверим наш ответ: возьмём $x = 64$. Тогда $\log_2 64 = 6 > 5$ ✅. Возьмём $x = 16$: $\log_2 16 = 4$, и $4 > 5$ — неверно ✅ (точка правильно не вошла в ответ).

Ответ: $x \in (32; +\infty)$


Пример 2 (простой): реши $\log_{1/2} x > 5$

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

Решение:

Шаг 1. ОДЗ. Снова $x > 0$.

Шаг 2. Правую часть — под логарифм. Число $5$ — это $\log_{1/2} \left(\tfrac{1}{2}\right)^5 = \log_{1/2} \tfrac{1}{32}$:

$$\log_{1/2} x > \log_{1/2} \frac{1}{32}$$

Шаг 3. Основание. Здесь $a = \tfrac{1}{2}$, и $0 < a < 1$ — функция убывает, знак переворачивается:

$$x < \frac{1}{32}$$

Шаг 4. Пересекаем с ОДЗ. Вот здесь ОДЗ впервые реально работает: из $x < \tfrac{1}{32}$ надо выкинуть все неположительные $x$. Получаем $0 < x < \tfrac{1}{32}$.

Проверим наш ответ: возьмём $x = \tfrac{1}{64}$. Тогда $\log_{1/2} \tfrac{1}{64} = 6 > 5$ ✅. А возьмём $x = 1$: $\log_{1/2} 1 = 0$, и $0 > 5$ — неверно ✅.

Ответ: $x \in \left(0; \tfrac{1}{32}\right)$

📌 Сравни два ответа: $(32; +\infty)$ и $\left(0; \tfrac{1}{32}\right)$. Одна цифра в основании — и множества не просто разные, а расположены в противоположных концах числовой оси. Вот цена невнимания к основанию.


Пример 3 (средний): реши $\log_{0,3} x \le -2$

Решение:

Шаг 1. ОДЗ. $x > 0$.

Шаг 2. Представим $-2$ как логарифм по основанию $0{,}3$:

$$-2 = \log_{0,3} (0{,}3)^{-2} = \log_{0,3} \frac{1}{0{,}09} = \log_{0,3} \frac{100}{9}$$

Шаг 3. Основание $0{,}3 < 1$ — знак переворачивается, «$\le$» превращается в «$\ge$»:

$$x \ge \frac{100}{9}$$

Шаг 4. Пересечение с ОДЗ ничего не меняет: $\tfrac{100}{9} \approx 11{,}11 > 0$.

Проверим: при $x = 100/9$ логарифм равен ровно $-2$, и нестрогое неравенство выполняется ✅. При $x = 100$: $\log_{0,3} 100 = \tfrac{\ln 100}{\ln 0{,}3} = \tfrac{4{,}605}{-1{,}204} \approx -3{,}82 \le -2$ ✅.

Ответ: $x \in \left[\tfrac{100}{9}; +\infty\right)$


Пример 4 (сложный): при каких $x$ выполняется $\log_a x > 0$ — разбери оба случая основания

Это не вычислительная задача, а концептуальная: она показывает, что «положительный логарифм» означает совершенно разное в зависимости от основания.

Решение:

Шаг 1. ОДЗ. $x > 0$ в обоих случаях. Плюс на основание: $a > 0$, $a \ne 1$.

Шаг 2. Перепишем ноль как логарифм. Ноль — это $\log_a 1$, потому что $a^0 = 1$ при любом допустимом $a$. Неравенство принимает вид:

$$\log_a x > \log_a 1$$

Шаг 3. Случай $a > 1$. Функция возрастает, знак сохраняется:

$$x > 1$$

Шаг 4. Случай $0 < a < 1$. Функция убывает, знак переворачивается:

$$x < 1$$

и с учётом ОДЗ: $0 < x < 1$.

Проверим оба случая:

  • $a = 2$, $x = 5$: $\log_2 5 \approx 2{,}32 > 0$ ✅ — попадает в $x > 1$
  • $a = \tfrac{1}{2}$, $x = 5$: $\log_{1/2} 5 \approx -2{,}32$, не больше нуля ✅ — и правда $5$ не входит в $(0; 1)$
  • $a = \tfrac{1}{2}$, $x = 0{,}25$: $\log_{1/2} 0{,}25 = 2 > 0$ ✅ — попадает в $(0; 1)$

Ответ: при $a > 1$ решение $x \in (1; +\infty)$; при $0 < a < 1$ решение $x \in (0; 1)$.

Вывод для запоминания: логарифм положителен ровно тогда, когда аргумент и основание лежат по одну сторону от единицы (оба больше или оба меньше). И отрицателен, когда по разные стороны. Это правило спасает кучу времени в устной проверке.

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

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

Первая роль — шкала. Признак с длинным хвостом (доход, число просмотров, размер файла) логарифмируют, чтобы сжать хвост: np.log1p(x). Здесь основание $e > 1$, порядок сохраняется, и любое условие вида «доход больше миллиона» после логарифмирования остаётся условием «логарифм больше $\ln 10^6$» с тем же знаком. Именно поэтому логарифмирование признака не ломает решающие деревья: они работают с порядком, а монотонное преобразование порядок не меняет.

Вторая роль — потери. Кросс-энтропия $-\log p$ содержит минус, и это ровно тот же переворот, что и у основания меньше единицы. Отсюда постоянная путаница в интерпретации логов: loss упал — значит, вероятность выросла. Уверенность и потери движутся в противоположные стороны, и человек, который автоматически не переворачивает знак, регулярно читает графики обучения задом наперёд. Функция $-\log_2 p$ — это буквально $\log_{1/2} p$, то есть логарифм по основанию меньше единицы. Убывающая шкала. «Шкала холода» из нашей аналогии, только для вероятностей.


ОДЗ: почему здесь нельзя «решить и проверить»

Интуиция

Вспомни, как ты решал логарифмические уравнения в прошлом уроке. Схема была расслабленная: пишем ОДЗ (или даже не пишем), решаем, получаем два-три корня, подставляем их обратно в исходное уравнение, смотрим — не полез ли где-то логарифм от отрицательного числа, и лишние корни выбрасываем. Проверка подстановкой была страховочной сеткой: даже если ты забыл ОДЗ, финальная подстановка спасала.

В неравенствах этой сетки нет. Совсем.

Представь, что ответ у тебя получился $x \in [-3; 3]$. Сколько там точек? Бесконечно много. Подставить их все нельзя. Подставить одну-две — недостаточно: неверный кусок ответа может быть где угодно, и случайно выбранная точка может как раз оказаться в правильной части. Проверка перестаёт быть проверкой и становится лотереей.

Отсюда железное правило: ОДЗ выписывается первым действием, до всяких преобразований, и решается как отдельная система. Только потом решается само неравенство, и в самом конце два множества пересекаются. Не «подставим и посмотрим», а «пересечём».

Есть и вторая причина, более коварная. Преобразования логарифмов расширяют область определения. Смотри:

$$\log_2 x + \log_2 (x - 3) \quad \text{определено только при } x > 3$$$$\log_2 \big(x(x-3)\big) \quad \text{определено при } x < 0 \text{ или } x > 3$$

Формула $\log_a m + \log_a n = \log_a (mn)$ верна, но она верна только там, где обе части определены. Слева нужно $m > 0$ и $n > 0$; справа достаточно $mn > 0$, а это выполняется и когда оба множителя отрицательны. Склеив два логарифма в один, ты втихую добавил себе кусок числовой оси, которого в исходной задаче не было. Если не пересечь с исходной ОДЗ — этот кусок уедет в ответ.

Определение: Областью допустимых значений (ОДЗ) логарифмического неравенства называется множество всех $x$, при которых определены все входящие в него выражения. Для каждого вхождения $\log_a f(x)$ это даёт условие $f(x) > 0$; если основание переменное, добавляются условия $a(x) > 0$ и $a(x) \ne 1$.

Практически ОДЗ — это система из нескольких условий, которые нужно решить и пересечь:

  • под каждым логарифмом — строго положительное выражение
  • каждое переменное основание — положительное и не равное единице
  • знаменатели дробей — не ноль (в том числе если в знаменателе стоит логарифм: тогда $\log_a f(x) \ne 0$, то есть $f(x) \ne 1$)
  • подкоренные выражения чётной степени — неотрицательные

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

Пример 1 (простой): найди ОДЗ неравенства $\log_5 (x - 2) + \log_5 (7 - x) > 1$

Решение:

Шаг 1. Два логарифма — два условия положительности:

$$\begin{cases} x - 2 > 0 \\ 7 - x > 0 \end{cases}$$

Шаг 2. Решаем каждое:

$$\begin{cases} x > 2 \\ x < 7 \end{cases}$$

Шаг 3. Пересекаем: обе строки должны выполняться одновременно.

Ответ: ОДЗ: $x \in (2; 7)$

📌 Обрати внимание: ОДЗ — это система (пересечение), а не совокупность (объединение). Логарифмы стоят в одном выражении, и оба обязаны быть определены одновременно.


Пример 2 (средний): реши $\log_2 (x - 3) + \log_2 (x - 4) \le 1$ и покажи, что даёт забытая ОДЗ

Решение — правильное:

Шаг 1. ОДЗ — первым делом:

$$\begin{cases} x - 3 > 0 \\ x - 4 > 0 \end{cases} \iff \begin{cases} x > 3 \\ x > 4 \end{cases} \iff x > 4$$

Запоминаем: $x \in (4; +\infty)$. Отложим это в сторону и решим само неравенство.

Шаг 2. Складываем логарифмы:

$$\log_2 \big((x-3)(x-4)\big) \le 1$$

Шаг 3. Правую часть — под логарифм: $1 = \log_2 2$.

$$\log_2 \big((x-3)(x-4)\big) \le \log_2 2$$

Шаг 4. Основание $2 > 1$, знак сохраняется:

$$(x-3)(x-4) \le 2$$

Шаг 5. Раскрываем и решаем квадратное неравенство:

$$x^2 - 7x + 12 \le 2 \iff x^2 - 7x + 10 \le 0$$

Корни: $x = \dfrac{7 \pm \sqrt{49 - 40}}{2} = \dfrac{7 \pm 3}{2}$, то есть $x = 2$ и $x = 5$. Парабола ветвями вверх, между корнями отрицательна:

$$2 \le x \le 5$$

Шаг 6. Пересекаем с ОДЗ: $[2; 5] \cap (4; +\infty) = (4; 5]$.

Ответ: $x \in (4; 5]$

А теперь смотри, что получилось бы без ОДЗ. Ответ был бы $[2; 5]$ — то есть в него попал бы весь промежуток $[2; 4]$. Проверим точку оттуда, например $x = 3{,}5$:

$$\log_2 (3{,}5 - 3) + \log_2 (3{,}5 - 4) = \log_2 0{,}5 + \log_2 (-0{,}5)$$

Второе слагаемое — логарифм отрицательного числа. Он просто не существует. Исходное неравенство в точке $x = 3{,}5$ не имеет смысла, а мы бы включили её в ответ. Причём ошибка не в вычислениях — все шаги 2–5 арифметически безупречны. Ошибка ровно в одном: пропущена ОДЗ.

Проверим правильный ответ: возьмём $x = 4{,}5$. Тогда $\log_2 1{,}5 + \log_2 0{,}5 = \log_2 0{,}75 \approx -0{,}415 \le 1$ ✅. Возьмём $x = 6$ (за пределами ответа): $\log_2 3 + \log_2 2 = \log_2 6 \approx 2{,}585$, что больше $1$ ✅ — правильно не вошло.


Пример 3 (средний): реши $\lg (x^2 - 9) < \lg (5x - 9)$

Решение:

Шаг 1. ОДЗ. Два условия:

$$\begin{cases} x^2 - 9 > 0 \\ 5x - 9 > 0 \end{cases}$$

Первое: $(x-3)(x+3) > 0 \iff x < -3$ или $x > 3$. Второе: $x > 1{,}8$.

Пересечение: $x > 3$.

Шаг 2. Основание $10 > 1$, знак сохраняется:

$$x^2 - 9 < 5x - 9$$

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

$$x^2 - 5x < 0 \iff x(x - 5) < 0 \iff 0 < x < 5$$

Шаг 4. Пересекаем с ОДЗ: $(0; 5) \cap (3; +\infty) = (3; 5)$.

Проверим: $x = 4$ даёт $\lg 7 < \lg 11$ ✅ (примерно $0{,}845 < 1{,}041$). $x = 3{,}5$ даёт $\lg 3{,}25 < \lg 8{,}5$ ✅. А $x = 2$ (в ОДЗ не входит) вообще не рассматривается: $x^2 - 9 = -5 < 0$.

Ответ: $x \in (3; 5)$

📌 Заметь: если бы мы решали только шаг 3 и забыли ОДЗ, ответ был бы $(0; 5)$ — на промежутке $(0; 3]$ левый логарифм не существует. Опять целый лишний кусок.


Пример 4 (сложный): реши $\log_3 \dfrac{x - 1}{x + 2} \le 1$

Здесь под логарифмом дробь — ОДЗ становится интереснее.

Решение:

Шаг 1. ОДЗ. Требуется $\dfrac{x-1}{x+2} > 0$. Метод интервалов: нули числителя $x = 1$, знаменателя $x = -2$. На оси три промежутка:

  • $x < -2$: числитель $-$, знаменатель $-$, дробь $+$ ✅
  • $-2 < x < 1$: числитель $-$, знаменатель $+$, дробь $-$ ❌
  • $x > 1$: оба $+$, дробь $+$ ✅

ОДЗ: $x \in (-\infty; -2) \cup (1; +\infty)$.

Шаг 2. Основание $3 > 1$, знак сохраняется, а $1 = \log_3 3$:

$$\frac{x-1}{x+2} \le 3$$

Шаг 3. Переносим всё влево (делить на $x+2$ нельзя — знак неизвестен!):

$$\frac{x-1}{x+2} - 3 \le 0 \iff \frac{x - 1 - 3(x+2)}{x+2} \le 0 \iff \frac{-2x - 7}{x + 2} \le 0$$

Шаг 4. Умножим числитель и знаменатель на $-1$ — то есть умножим всю дробь на $-1$ и перевернём знак:

$$\frac{2x + 7}{x + 2} \ge 0$$

Нули: числитель $x = -3{,}5$, знаменатель $x = -2$ (выколота). Метод интервалов:

  • $x < -3{,}5$: $-/- = +$ ✅
  • $-3{,}5 < x < -2$: $+/- = -$ ❌
  • $x > -2$: $+/+ = +$ ✅

Решение шага: $x \in (-\infty; -3{,}5] \cup (-2; +\infty)$.

Шаг 5. Пересекаем с ОДЗ $(-\infty; -2) \cup (1; +\infty)$:

  • $(-\infty; -3{,}5] \cap (-\infty; -2) = (-\infty; -3{,}5]$
  • $(-\infty; -3{,}5] \cap (1; +\infty) = \varnothing$
  • $(-2; +\infty) \cap (-\infty; -2) = \varnothing$
  • $(-2; +\infty) \cap (1; +\infty) = (1; +\infty)$

Проверим: $x = -4$: дробь $\dfrac{-5}{-2} = 2{,}5$, $\log_3 2{,}5 \approx 0{,}834 \le 1$ ✅. $x = 2$: дробь $\dfrac{1}{4} = 0{,}25$, $\log_3 0{,}25 \approx -1{,}26 \le 1$ ✅. $x = -3$: дробь $\dfrac{-4}{-1} = 4$, $\log_3 4 \approx 1{,}26 > 1$ ✅ — правильно не вошло.

Ответ: $x \in (-\infty; -3{,}5] \cup (1; +\infty)$

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

ОДЗ — это математический аналог валидации входных данных, и относиться к ней стоит ровно так же серьёзно. Когда ты пишешь np.log(x) для массива, в котором затесался ноль или отрицательное число, NumPy не бросает исключение — он молча возвращает -inf или nan и продолжает считать. Дальше nan расползается по всем агрегатам: среднее становится nan, градиент становится nan, веса модели становятся nan, и через сотню шагов ты смотришь на лог обучения, где всё сломалось, но не понимаешь где.

Это буквально та же ошибка, что и забытая ОДЗ: формально операция «выполнилась», результат «получен», но он не имеет смысла. Именно поэтому в реальных реализациях кросс-энтропии вероятность всегда обрезают: p = np.clip(p, eps, 1 - eps). Это и есть ОДЗ, зашитая в код, — принудительное сужение области до той, где логарифм определён.

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


Сведение к одному логарифму: приводим обе части к общему виду

Интуиция

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

Инструментов для сворачивания у тебя четыре, все из прошлых уроков:

  • $\log_a m + \log_a n = \log_a (mn)$ — сумма превращается в произведение
  • $\log_a m - \log_a n = \log_a \dfrac{m}{n}$ — разность в частное
  • $k \log_a m = \log_a m^k$ — коэффициент уходит в показатель
  • $b = \log_a a^b$ — любое число можно «спрятать» под логарифм

Разберём по шагам общий алгоритм, который дальше будет работать почти во всех задачах.

  1. Выписать ОДЗ по исходному виду неравенства (это критично: свойства логарифмов ОДЗ расширяют).

  2. Свернуть обе части в один логарифм по одному основанию.

  3. Снять логарифм, помня о знаке: $a > 1$ — сохраняем, $0 < a < 1$ — переворачиваем.

  4. Решить получившееся алгебраическое неравенство.

  5. Пересечь результат с ОДЗ.

Шаг 1 и шаг 5 — не украшение, а половина решения. Если ты их выкинешь, получится «почти правильный» ответ, а «почти правильный» ответ в неравенствах — это неправильный ответ.

Определение: Неравенство называется приведённым к простейшему виду, если оно записано как $\log_a f(x) \vee \log_a g(x)$ (где $\vee$ — один из знаков $>, <, \ge, \le$) с одинаковым основанием $a$ в обеих частях.

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

Пример 1 (простой): реши $\log_3 (x + 1) > \log_3 (2x - 4)$

Решение:

Шаг 1. ОДЗ.

$$\begin{cases} x + 1 > 0 \\ 2x - 4 > 0 \end{cases} \iff \begin{cases} x > -1 \\ x > 2 \end{cases} \iff x > 2$$

Шаг 2. Обе части уже логарифмы по основанию $3$, сворачивать нечего.

Шаг 3. Основание $3 > 1$ — знак сохраняется:

$$x + 1 > 2x - 4$$

Шаг 4. Решаем:

$$1 + 4 > 2x - x \iff x < 5$$

Шаг 5. Пересекаем: $(2; 5)$.

Проверим: $x = 3$: слева $\log_3 4 \approx 1{,}262$, справа $\log_3 2 \approx 0{,}631$ ✅. $x = 6$: слева $\log_3 7 \approx 1{,}771$, справа $\log_3 8 \approx 1{,}893$ — неравенство неверно ✅.

Ответ: $x \in (2; 5)$


Пример 2 (средний): реши $\log_{0,5} (x - 1) \ge \log_{0,5} (2x - 5)$

Тот же тип, но основание меньше единицы — посмотрим, как это меняет ход решения.

Решение:

Шаг 1. ОДЗ.

$$\begin{cases} x - 1 > 0 \\ 2x - 5 > 0 \end{cases} \iff \begin{cases} x > 1 \\ x > 2{,}5 \end{cases} \iff x > 2{,}5$$

Шаг 2. Основание $0{,}5$, оно одно и то же слева и справа.

Шаг 3. Так как $0 < 0{,}5 < 1$, функция убывает — знак переворачивается, «$\ge$» становится «$\le$»:

$$x - 1 \le 2x - 5$$

Шаг 4. Решаем:

$$-1 + 5 \le 2x - x \iff x \ge 4$$

Шаг 5. Пересекаем: $[4; +\infty) \cap (2{,}5; +\infty) = [4; +\infty)$.

Проверим: $x = 4$: слева $\log_{0,5} 3 \approx -1{,}585$, справа $\log_{0,5} 3 \approx -1{,}585$, равенство ✅ (нестрогое неравенство выполняется). $x = 5$: слева $\log_{0,5} 4 = -2$, справа $\log_{0,5} 5 \approx -2{,}322$, и $-2 \ge -2{,}322$ ✅. $x = 3$: слева $\log_{0,5} 2 = -1$, справа $\log_{0,5} 1 = 0$, и $-1 \ge 0$ неверно ✅.

Ответ: $x \in [4; +\infty)$

📌 Сравни с Примером 1: там из «$>$» получилось «левое больше правого», здесь из «$\ge$» получилось «левое меньше правого». Единственная причина — основание.


Пример 3 (средний): реши $\log_2 (x^2 - 3x) \le 2$

Здесь справа число, а не логарифм.

Решение:

Шаг 1. ОДЗ. Под логарифмом квадратный трёхчлен:

$$x^2 - 3x > 0 \iff x(x - 3) > 0 \iff x < 0 \ \text{ или } \ x > 3$$

ОДЗ: $x \in (-\infty; 0) \cup (3; +\infty)$.

Шаг 2. Прячем число под логарифм: $2 = \log_2 4$.

$$\log_2 (x^2 - 3x) \le \log_2 4$$

Шаг 3. Основание $2 > 1$, знак сохраняется:

$$x^2 - 3x \le 4$$

Шаг 4. Решаем:

$$x^2 - 3x - 4 \le 0 \iff (x - 4)(x + 1) \le 0 \iff -1 \le x \le 4$$

Шаг 5. Пересекаем с ОДЗ. Отрезок $[-1; 4]$ пересекаем с $(-\infty; 0) \cup (3; +\infty)$:

  • $[-1; 4] \cap (-\infty; 0) = [-1; 0)$
  • $[-1; 4] \cap (3; +\infty) = (3; 4]$

Проверим: $x = -1$: под логарифмом $1 + 3 = 4$, $\log_2 4 = 2 \le 2$ ✅. $x = 4$: под логарифмом $16 - 12 = 4$, снова ровно $2$ ✅. $x = 2$ (не в ОДЗ): под логарифмом $4 - 6 = -2 < 0$, логарифма нет ✅ — правильно выкинуто.

Ответ: $x \in [-1; 0) \cup (3; 4]$

📌 Обрати внимание, как красиво ОДЗ разрезала отрезок на два куска. Если бы её не было, ответ $[-1; 4]$ содержал бы дыру $[0; 3]$, где выражение под логарифмом отрицательно или ноль.


Пример 4 (сложный): реши $\log_{1/3} (x + 1) + \log_{1/3} (x + 3) \ge -1$

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

Решение:

Шаг 1. ОДЗ.

$$\begin{cases} x + 1 > 0 \\ x + 3 > 0 \end{cases} \iff \begin{cases} x > -1 \\ x > -3 \end{cases} \iff x > -1$$

Шаг 2. Сворачиваем сумму:

$$\log_{1/3} \big((x+1)(x+3)\big) \ge -1$$

Шаг 3. Прячем правую часть под логарифм. Нужно найти такое $b$, что $\log_{1/3} b = -1$. Это $b = \left(\tfrac{1}{3}\right)^{-1} = 3$:

$$\log_{1/3} \big((x+1)(x+3)\big) \ge \log_{1/3} 3$$

Шаг 4. Основание $\tfrac{1}{3} < 1$ — знак переворачивается:

$$(x+1)(x+3) \le 3$$

Шаг 5. Раскрываем:

$$x^2 + 4x + 3 \le 3 \iff x^2 + 4x \le 0 \iff x(x + 4) \le 0 \iff -4 \le x \le 0$$

Шаг 6. Пересекаем с ОДЗ $x > -1$:

$$[-4; 0] \cap (-1; +\infty) = (-1; 0]$$

Проверим: $x = 0$: $\log_{1/3} 1 + \log_{1/3} 3 = 0 + (-1) = -1 \ge -1$ ✅ (граница входит). $x = -0{,}5$: $\log_{1/3} 0{,}5 + \log_{1/3} 2{,}5 = \log_{1/3} 1{,}25 \approx -0{,}203 \ge -1$ ✅. $x = 1$: $\log_{1/3} 2 + \log_{1/3} 4 = \log_{1/3} 8 \approx -1{,}893$, и это меньше $-1$ ✅ — не вошло.

Ответ: $x \in (-1; 0]$

📌 Здесь ОДЗ отрезала кусок $[-4; -1]$ — и это, кстати, ровно тот кусок, который возник из-за склейки двух логарифмов в один: произведение $(x+1)(x+3)$ положительно и при $x < -3$, хотя каждый множитель там отрицателен.

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

Приведение к одному основанию — это то, что в анализе данных называется приведением к общей шкале, и без него сравнение бессмысленно. Классический пример из ML: ты сравниваешь два эксперимента, но в одном логе loss посчитан в натуральных логарифмах (nats), а в другом — в двоичных (bits), потому что фреймворки разные. Числа $0{,}69$ и $1{,}00$ выглядят как разное качество, а на самом деле это одна и та же величина: $\ln 2 = 0{,}693$ nat $= 1$ bit. Пока не привёл к одному основанию через формулу перехода $\log_a x = \dfrac{\log_b x}{\log_b a}$ — любые выводы недействительны.

То же с перплексией и кросс-энтропией. Перплексия языковой модели — это $2^{H}$, где $H$ — кросс-энтропия в битах, или $e^{H}$, если $H$ в натах. Условие «перплексия меньше 20» после логарифмирования становится обычным логарифмическим неравенством, но только если ты аккуратно следишь за основанием. Перепутал — и порог сдвинулся на множитель $\ln 2 \approx 0{,}693$, то есть на 30%. В ML-эксперименте это разница между «модель прошла отбор» и «не прошла».


Замена переменной: когда логарифм встречается несколько раз

Интуиция

Посмотри на неравенство:

$$\log_2^2 x - 3 \log_2 x + 2 < 0$$

Запись $\log_2^2 x$ означает $(\log_2 x)^2$ — квадрат логарифма, а не логарифм квадрата (это разные вещи, и путать их — классика жанра). Что здесь на самом деле происходит? Есть одна повторяющаяся конструкция $\log_2 x$, и она входит в неравенство в первой и во второй степени. То есть перед нами обычный квадратный трёхчлен, просто вместо буквы $x$ там стоит целый логарифм.

Представь, что $\log_2 x$ — это чёрный ящик с надписью $t$. Тогда неравенство мгновенно превращается в $t^2 - 3t + 2 < 0$ — знакомую квадратичную задачу, которую ты решаешь за десять секунд. Решил, получил промежуток для $t$ — и теперь возвращаешься к $x$, раскрывая ящик.

И вот здесь самый важный момент всего раздела. Обратный переход — это снова неравенство, а не уравнение. В уравнениях замена давала $t = 1$ и $t = 2$, ты писал $\log_2 x = 1$, $\log_2 x = 2$ и получал два корня. Здесь ты получишь $1 < t < 2$, то есть двойное логарифмическое неравенство $1 < \log_2 x < 2$, которое надо решать по всем правилам этого урока — включая проверку основания на предмет переворота знака.

Многие на автомате «раскрывают» $t$ так же, как в уравнениях, и теряют половину смысла. Держи в голове: после обратной замены работа не заканчивается, она только начинается заново.

Определение: Заменой переменной в логарифмическом неравенстве называют введение новой переменной $t = \log_a x$ (или $t = \log_a f(x)$), после которого исходное неравенство становится алгебраическим относительно $t$. Решив его, выполняют обратный переход: каждое полученное для $t$ условие превращают обратно в логарифмическое неравенство относительно $x$.

Важное замечание про ОДЗ при замене: замена $t = \log_a x$ не накладывает никаких ограничений на $t$ — логарифм может принимать любое вещественное значение. А вот на $x$ ограничение остаётся прежним: $x > 0$. Так что ОДЗ по-прежнему выписываем в начале и учитываем в конце.

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

Пример 1 (простой): реши $\log_2^2 x - 3 \log_2 x + 2 < 0$

Решение:

Шаг 1. ОДЗ. $x > 0$.

Шаг 2. Замена. Пусть $t = \log_2 x$. Тогда:

$$t^2 - 3t + 2 < 0$$

Шаг 3. Решаем квадратное неравенство. Корни: $t = 1$ и $t = 2$ (по теореме Виета: сумма $3$, произведение $2$). Парабола ветвями вверх, между корнями отрицательна:

$$1 < t < 2$$

Шаг 4. Обратный переход. Возвращаем $t = \log_2 x$:

$$1 < \log_2 x < 2$$

Это двойное неравенство, то есть система из двух. Основание $2 > 1$ — оба знака сохраняются. Представим границы как логарифмы: $1 = \log_2 2$, $2 = \log_2 4$:

$$\log_2 2 < \log_2 x < \log_2 4 \iff 2 < x < 4$$

Шаг 5. Пересекаем с ОДЗ $x > 0$ — ничего не меняется.

Проверим: $x = 3$: $\log_2 3 \approx 1{,}585$, тогда $1{,}585^2 - 3 \cdot 1{,}585 + 2 = 2{,}512 - 4{,}755 + 2 = -0{,}243 < 0$ ✅. $x = 8$: $\log_2 8 = 3$, тогда $9 - 9 + 2 = 2 > 0$ ✅ — не вошло.

Ответ: $x \in (2; 4)$


Пример 2 (средний): реши $\lg^2 x - \lg x - 6 \ge 0$

Решение:

Шаг 1. ОДЗ. $x > 0$.

Шаг 2. Замена. $t = \lg x$ (десятичный логарифм, основание $10$):

$$t^2 - t - 6 \ge 0$$

Шаг 3. Раскладываем: $t^2 - t - 6 = (t - 3)(t + 2)$. Корни $t = 3$ и $t = -2$. Парабола ветвями вверх, неотрицательна вне корней:

$$t \le -2 \quad \text{или} \quad t \ge 3$$

Шаг 4. Обратный переход — по каждому куску отдельно.

Первый кусок: $\lg x \le -2$. Основание $10 > 1$, знак сохраняется, $-2 = \lg 10^{-2} = \lg 0{,}01$:

$$x \le 0{,}01$$

С учётом ОДЗ: $0 < x \le 0{,}01$.

Второй кусок: $\lg x \ge 3$, то есть $x \ge 10^3 = 1000$.

Шаг 5. Объединяем (это была совокупность, а не система!):

$$x \in (0; 0{,}01] \cup [1000; +\infty)$$

Проверим: $x = 0{,}001$: $\lg x = -3$, тогда $9 + 3 - 6 = 6 \ge 0$ ✅. $x = 10\,000$: $\lg x = 4$, тогда $16 - 4 - 6 = 6 \ge 0$ ✅. $x = 1$: $\lg x = 0$, тогда $0 - 0 - 6 = -6 < 0$ ✅ — не вошло.

Ответ: $x \in (0; 0{,}01] \cup [1000; +\infty)$

📌 Не забывай про ОДЗ на первом куске! Из $\lg x \le -2$ следует не «$x \le 0{,}01$», а именно «$0 < x \le 0{,}01$». Ноль и отрицательные числа отсекаются автоматически, но записать это надо явно.


Пример 3 (средний): реши $2\log_2^2 x - 5\log_2 x + 2 < 0$

Решение:

Шаг 1. ОДЗ. $x > 0$.

Шаг 2. Замена $t = \log_2 x$:

$$2t^2 - 5t + 2 < 0$$

Шаг 3. Дискриминант: $D = 25 - 16 = 9$, $\sqrt{D} = 3$. Корни:

$$t = \frac{5 \pm 3}{4} \implies t_1 = \frac{1}{2}, \quad t_2 = 2$$

Коэффициент при $t^2$ положителен, значит между корнями выражение отрицательно:

$$\frac{1}{2} < t < 2$$

Шаг 4. Обратный переход:

$$\frac{1}{2} < \log_2 x < 2$$

Основание $2 > 1$, знаки сохраняются. Границы: $\tfrac{1}{2} = \log_2 2^{1/2} = \log_2 \sqrt{2}$, $2 = \log_2 4$:

$$\sqrt{2} < x < 4$$

Шаг 5. ОДЗ выполнена автоматически.

Проверим: $x = 2$: $\log_2 2 = 1$, тогда $2 - 5 + 2 = -1 < 0$ ✅. $x = 1$: $\log_2 1 = 0$, тогда $0 - 0 + 2 = 2 > 0$ ✅ — не вошло. $x = 4$: $\log_2 4 = 2$, тогда $8 - 10 + 2 = 0$, не строго меньше нуля ✅ — граница выколота правильно.

Ответ: $x \in (\sqrt{2}; 4)$


Пример 4 (сложный): реши $\log_3^2 x - 4\log_3 x + 3 \ge 0$

Решение:

Шаг 1. ОДЗ. $x > 0$.

Шаг 2. Замена $t = \log_3 x$:

$$t^2 - 4t + 3 \ge 0$$

Шаг 3. Корни по Виета: сумма $4$, произведение $3$ — это $t = 1$ и $t = 3$. Неотрицательно вне корней:

$$t \le 1 \quad \text{или} \quad t \ge 3$$

Шаг 4. Обратный переход.

Первый кусок: $\log_3 x \le 1$. Основание $3 > 1$, знак сохраняется: $x \le 3$. С ОДЗ: $0 < x \le 3$.

Второй кусок: $\log_3 x \ge 3$, то есть $x \ge 27$.

Шаг 5. Объединяем:

$$x \in (0; 3] \cup [27; +\infty)$$

Проверим: $x = 1$: $t = 0$, значение $0 - 0 + 3 = 3 \ge 0$ ✅. $x = 81$: $t = 4$, значение $16 - 16 + 3 = 3 \ge 0$ ✅. $x = 9$: $t = 2$, значение $4 - 8 + 3 = -1 < 0$ ✅ — не вошло, и правда $9 \notin (0; 3] \cup [27; +\infty)$.

Ответ: $x \in (0; 3] \cup [27; +\infty)$


Пример 5 (сложный): реши $\log_2 x + \log_x 2 > 2$

Здесь замена спрятана: логарифмы по разным основаниям, но связанным.

Решение:

Шаг 1. ОДЗ. Логарифм $\log_2 x$ требует $x > 0$; логарифм $\log_x 2$ требует $x > 0$ и $x \ne 1$. Итого: $x \in (0; 1) \cup (1; +\infty)$.

Шаг 2. Связываем основания. По формуле перехода к новому основанию $\log_x 2 = \dfrac{1}{\log_2 x}$. Пусть $t = \log_2 x$; из ОДЗ следует $t \ne 0$. Неравенство:

$$t + \frac{1}{t} > 2$$

Шаг 3. Переносим всё влево и приводим к общему знаменателю (умножать на $t$ нельзя — знак неизвестен!):

$$t + \frac{1}{t} - 2 > 0 \iff \frac{t^2 - 2t + 1}{t} > 0 \iff \frac{(t - 1)^2}{t} > 0$$

Шаг 4. Числитель — полный квадрат, он неотрицателен всегда и равен нулю при $t = 1$. Значит дробь строго положительна тогда и только тогда, когда одновременно $t > 0$ и $t \ne 1$:

$$t > 0, \quad t \ne 1$$

Шаг 5. Обратный переход. $\log_2 x > 0$ при основании $2 > 1$ даёт $x > 1$. Условие $t \ne 1$ даёт $\log_2 x \ne 1$, то есть $x \ne 2$.

Шаг 6. Пересекаем с ОДЗ $(0;1) \cup (1; +\infty)$ — множество $x > 1$, $x \ne 2$ целиком в неё входит.

Проверим: $x = 4$: $\log_2 4 + \log_4 2 = 2 + 0{,}5 = 2{,}5 > 2$ ✅. $x = 2$: $1 + 1 = 2$, строго больше не выполняется ✅ — выколото верно. $x = 0{,}5$: $-1 + \log_{0,5} 2 = -1 + (-1) = -2$, не больше $2$ ✅.

Ответ: $x \in (1; 2) \cup (2; +\infty)$

📌 Полный квадрат в числителе — красивый и частый сюжет. Он даёт «проколотое» решение: всё множество, кроме одной точки. Если ты в шаге 4 небрежно сократишь $(t-1)^2$ и просто напишешь $t > 0$, точка $x = 2$ уедет в ответ незаконно.

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

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

Конкретный пример из практики: подбор гиперпараметров. Learning rate и коэффициент регуляризации никогда не перебирают в линейной сетке — их перебирают в логарифмической, то есть работают с $t = \lg \lambda$, а не с самим $\lambda$. Функция np.logspace(-5, -1, 20) — это в точности замена переменной: сетка равномерна по $t$, а не по $\lambda$. И все ограничения на диапазон поиска естественно формулируются как неравенства на $t$: «$-5 \le t \le -1$». Обратный переход к $\lambda$ — тот же самый шаг, что и в наших примерах.

Ещё один пример: логит. Вероятность $p$ живёт в отрезке $(0; 1)$, что неудобно — границы мешают. Логит $z = \ln \dfrac{p}{1 - p}$ растягивает этот отрезок на всю числовую прямую, и там работать проще. Любое условие на $p$ переводится в условие на $z$ ровно так же, как мы переводили условия на $x$ в условия на $t$. Разница только в том, что в ML эту замену делают навсегда — модель обучается в пространстве логитов, а вероятности получают на выходе.


Переменное основание: два случая или одно произведение

Интуиция

До сих пор основание было конкретным числом, и мы сразу знали, сохраняется знак или переворачивается. А что делать с неравенством вроде

$$\log_x 5 > 1$$

где основание — сама переменная? Мы не знаем, больше $x$ единицы или меньше. Значит, не знаем и что делать со знаком.

Есть два подхода, и оба рабочие.

Подход первый — честный разбор случаев. Раскалываем задачу на две: «а что если $x > 1$» и «а что если $0 < x < 1$». В каждом случае основание становится определённым, решаем как обычно, а в конце объединяем оба результата. Логика прозрачная, ошибиться сложно, но писанины много.

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

Правило (равносильный переход с переменным основанием): При условиях $a(x) > 0$, $a(x) \ne 1$, $f(x) > 0$, $g(x) > 0$ верно

$$\log_{a(x)} f(x) > \log_{a(x)} g(x) \iff \big(a(x) - 1\big)\big(f(x) - g(x)\big) > 0$$

Для знака «$<$» произведение берётся отрицательным, для нестрогих знаков — нестрогое сравнение с нулём.

Давай убедимся, что формула действительно кодирует оба случая. Пусть $a > 1$: тогда $a - 1 > 0$, и чтобы произведение было положительным, нужно $f - g > 0$, то есть $f > g$ — знак сохранился. Пусть $0 < a < 1$: тогда $a - 1 < 0$, и для положительного произведения нужно $f - g < 0$, то есть $f < g$ — знак перевернулся. Всё сходится.

Пользоваться этой формулой удобно, потому что дальше всё сводится к одному применению метода интервалов. Но забыть про ОДЗ она не позволяет: условия $a > 0$, $a \ne 1$, $f > 0$, $g > 0$ надо выписать отдельно, формула их не содержит.

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

Пример 1 (простой): реши $\log_x 5 > 1$ разбором двух случаев

Решение:

Шаг 1. ОДЗ. Основание переменное: $x > 0$ и $x \ne 1$. Под логарифмом число $5 > 0$ — дополнительных условий нет.

ОДЗ: $x \in (0; 1) \cup (1; +\infty)$.

Шаг 2. Прячем правую часть под логарифм: $1 = \log_x x$.

$$\log_x 5 > \log_x x$$

Шаг 3. Случай A: $x > 1$. Основание больше единицы, знак сохраняется:

$$5 > x$$

Вместе с условием случая: $1 < x < 5$.

Шаг 4. Случай B: $0 < x < 1$. Основание меньше единицы, знак переворачивается:

$$5 < x$$

Вместе с условием случая нужно $x < 1$ и $x > 5$ одновременно — таких $x$ нет. Случай B пуст.

Шаг 5. Объединяем: $(1; 5) \cup \varnothing = (1; 5)$.

Проверим: $x = 2$: $\log_2 5 \approx 2{,}32 > 1$ ✅. $x = 10$: $\log_{10} 5 \approx 0{,}699$, не больше $1$ ✅. $x = 0{,}5$: $\log_{0,5} 5 \approx -2{,}32$, не больше $1$ ✅.

Ответ: $x \in (1; 5)$

📌 Здравый смысл сходится: $\log_x 5 > 1$ означает «пятёрка больше основания в первой степени», и это возможно только когда основание растущее и меньше пяти.


Пример 2 (средний): реши $\log_x (x + 12) > 2$ через произведение

Решение:

Шаг 1. ОДЗ.

$$\begin{cases} x > 0 \\ x \ne 1 \\ x + 12 > 0 \end{cases}$$

Третье условие даёт $x > -12$ и при $x > 0$ выполняется автоматически. ОДЗ: $x \in (0; 1) \cup (1; +\infty)$.

Шаг 2. Правую часть — под логарифм: $2 = \log_x x^2$ (законно, ведь $x > 0$, $x \ne 1$):

$$\log_x (x + 12) > \log_x x^2$$

Шаг 3. Применяем формулу $(a - 1)(f - g) > 0$, где $a = x$, $f = x + 12$, $g = x^2$:

$$(x - 1)\big((x + 12) - x^2\big) > 0$$

Шаг 4. Раскладываем вторую скобку. Внутри неё $-x^2 + x + 12 = -(x^2 - x - 12) = -(x - 4)(x + 3)$. Подставляем:

$$-(x - 1)(x - 4)(x + 3) > 0 \iff (x - 1)(x - 4)(x + 3) < 0$$

Шаг 5. Метод интервалов. Нули: $x = -3$, $x = 1$, $x = 4$. Но нас интересует только область $x > 0$ (из ОДЗ), где множитель $x + 3$ всегда положителен. Значит знак произведения совпадает со знаком $(x - 1)(x - 4)$:

  • $0 < x < 1$: $(-)(-) = +$ — не подходит
  • $1 < x < 4$: $(+)(-) = -$ ✅
  • $x > 4$: $(+)(+) = +$ — не подходит

Шаг 6. Пересекаем с ОДЗ. Промежуток $(1; 4)$ целиком в ОДЗ.

Проверим: $x = 2$: $\log_2 14 = \tfrac{\ln 14}{\ln 2} \approx \tfrac{2{,}639}{0{,}693} \approx 3{,}81 > 2$ ✅. $x = 5$: $\log_5 17 \approx \tfrac{2{,}833}{1{,}609} \approx 1{,}76$, не больше $2$ ✅. $x = 0{,}5$: $\log_{0,5} 12{,}5 \approx -3{,}64$ ✅ — не подходит.

Ответ: $x \in (1; 4)$


Пример 3 (сложный): реши $\log_{x - 1} (x + 1) < 2$

Основание переменное и само является выражением — самая злая версия задачи.

Решение:

Шаг 1. ОДЗ. Разбираем аккуратно:

$$\begin{cases} x - 1 > 0 \\ x - 1 \ne 1 \\ x + 1 > 0 \end{cases} \iff \begin{cases} x > 1 \\ x \ne 2 \\ x > -1 \end{cases}$$

ОДЗ: $x \in (1; 2) \cup (2; +\infty)$.

Шаг 2. Правую часть — под логарифм: $2 = \log_{x-1} (x - 1)^2$:

$$\log_{x-1} (x + 1) < \log_{x-1} (x - 1)^2$$

Шаг 3. Формула $(a - 1)(f - g) < 0$, где $a = x - 1$, значит $a - 1 = x - 2$:

$$(x - 2)\big((x + 1) - (x - 1)^2\big) < 0$$

Шаг 4. Упрощаем вторую скобку:

$$(x + 1) - (x^2 - 2x + 1) = x + 1 - x^2 + 2x - 1 = -x^2 + 3x = x(3 - x)$$

Получаем:

$$(x - 2) \cdot x \cdot (3 - x) < 0$$

Шаг 5. Метод интервалов с учётом того, что в ОДЗ $x > 1$, поэтому множитель $x$ положителен и на знак не влияет. Остаётся:

$$(x - 2)(3 - x) < 0$$

Нули: $x = 2$ и $x = 3$. Разбираем промежутки внутри $x > 1$:

  • $1 < x < 2$: $(-)(+) = -$ ✅
  • $2 < x < 3$: $(+)(+) = +$ — не подходит
  • $x > 3$: $(+)(-) = -$ ✅

Шаг 6. Пересекаем с ОДЗ (точка $x = 2$ и так выколота):

$$x \in (1; 2) \cup (3; +\infty)$$

Проверим: $x = 1{,}5$: основание $0{,}5$, $\log_{0,5} 2{,}5 \approx -1{,}32 < 2$ ✅. $x = 2{,}5$: основание $1{,}5$, $\log_{1,5} 3{,}5 = \tfrac{1{,}253}{0{,}405} \approx 3{,}09$, не меньше $2$ ✅. $x = 4$: основание $3$, $\log_3 5 \approx 1{,}465 < 2$ ✅.

Ответ: $x \in (1; 2) \cup (3; +\infty)$

📌 Смотри, какой неочевидный ответ: два разорванных куска, между ними дыра. Разбором случаев ты бы получил то же самое, но за два прохода. Формула с произведением сэкономила половину работы.

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

Переменное основание — это ситуация, когда правило поведения системы зависит от самой системы. Звучит абстрактно, но в ML это встречается постоянно.

Простейший пример: адаптивные оптимизаторы. В Adam эффективный шаг для каждого веса делится на корень из накопленного квадрата градиента — то есть «скорость обучения» у каждого параметра своя и зависит от истории этого параметра. Анализируя сходимость такой схемы, ты неизбежно упираешься в выражения, где основание степени само зависит от переменной, и приходится разбирать случаи — «если накопленный градиент большой» и «если маленький». Ровно та же логика, что в примерах выше.

Второй пример: температура в softmax. Формула $p_i = \dfrac{\exp(z_i / T)}{\sum_j \exp(z_j / T)}$ при $T > 1$ сглаживает распределение, при $T < 1$ — заостряет. Единица — точка переключения поведения, и любой анализ вида «при какой температуре вероятность топ-класса превысит порог» распадается ровно на два случая относительно $T = 1$. Ты уже умеешь это делать: выписал условия, разбил на два случая или свернул в произведение $(T - 1)(\dots)$.


Метод интервалов и системы: собираем всё вместе

Интуиция

Метод интервалов ты знаешь с квадратных неравенств: находим нули, расставляем их на оси, определяем знак на каждом промежутке, забираем нужные. С логарифмами всё то же самое, только с двумя поправками.

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

Поправка вторая: нулями могут быть не только корни многочленов, но и точки, где логарифм обращается в ноль. Выражение $\log_a x$ равно нулю ровно при $x = 1$, независимо от основания. Выражение $\log_a x - c$ равно нулю при $x = a^c$. Эти точки надо честно отметить на оси.

С системами всё ещё проще: каждое неравенство системы решается независимо (со своей ОДЗ!), а потом все ответы пересекаются. Пересекаются, а не объединяются — система означает «и то, и другое одновременно». Совокупность (когда достаточно выполнения хотя бы одного условия) обозначается квадратной скобкой и требует объединения.

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

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

Пример 1 (простой): реши систему

$$\begin{cases} \log_2 (x - 2) < 2 \\ \log_3 (7 - x) > 1 \end{cases}$$

Решение:

Шаг 1. Первое неравенство. ОДЗ: $x - 2 > 0 \iff x > 2$. Основание $2 > 1$, знак сохраняется, $2 = \log_2 4$:

$$x - 2 < 4 \iff x < 6$$

С ОДЗ: $x \in (2; 6)$.

Шаг 2. Второе неравенство. ОДЗ: $7 - x > 0 \iff x < 7$. Основание $3 > 1$, знак сохраняется, $1 = \log_3 3$:

$$7 - x > 3 \iff x < 4$$

С ОДЗ: $x \in (-\infty; 4)$.

Шаг 3. Пересекаем:

$$(2; 6) \cap (-\infty; 4) = (2; 4)$$

Проверим: $x = 3$: первое даёт $\log_2 1 = 0 < 2$ ✅, второе $\log_3 4 \approx 1{,}26 > 1$ ✅. $x = 5$: первое $\log_2 3 \approx 1{,}58 < 2$ ✅, второе $\log_3 2 \approx 0{,}63$, не больше $1$ ❌ — точка правильно не вошла.

Ответ: $x \in (2; 4)$


Пример 2 (средний): реши $\dfrac{\log_3 x - 1}{x - 4} \le 0$

Решение:

Шаг 1. ОДЗ. Логарифм требует $x > 0$; знаменатель требует $x \ne 4$.

ОДЗ: $x \in (0; 4) \cup (4; +\infty)$.

Шаг 2. Находим нули числителя и знаменателя.

Числитель: $\log_3 x - 1 = 0 \iff \log_3 x = 1 \iff x = 3$.

Знаменатель: $x - 4 = 0 \iff x = 4$ (выколота).

Шаг 3. Определяем знак числителя на промежутках. Функция $\log_3 x$ возрастает, значит $\log_3 x - 1 < 0$ при $x < 3$ и $> 0$ при $x > 3$ (в пределах $x > 0$).

Шаг 4. Таблица знаков на разрешённой части оси:

  • $0 < x < 3$: числитель $-$, знаменатель $-$, дробь $+$ — не подходит
  • $x = 3$: числитель $0$, дробь $= 0$ ✅ (знак нестрогий)
  • $3 < x < 4$: числитель $+$, знаменатель $-$, дробь $-$ ✅
  • $x > 4$: числитель $+$, знаменатель $+$, дробь $+$ — не подходит

Шаг 5. Собираем: $x \in [3; 4)$.

Проверим: $x = 3{,}5$: числитель $\log_3 3{,}5 - 1 \approx 1{,}14 - 1 = 0{,}14 > 0$, знаменатель $-0{,}5$, дробь $\approx -0{,}28 \le 0$ ✅. $x = 2$: числитель $\log_3 2 - 1 \approx -0{,}37$, знаменатель $-2$, дробь $\approx 0{,}185 > 0$ ✅ — не вошло. $x = 9$: числитель $1$, знаменатель $5$, дробь $0{,}2 > 0$ ✅ — не вошло.

Ответ: $x \in [3; 4)$


Пример 3 (сложный): реши $\log_{0,5} (x^2 - 5x + 6) > -1$

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

Решение:

Шаг 1. ОДЗ.

$$x^2 - 5x + 6 > 0 \iff (x - 2)(x - 3) > 0 \iff x < 2 \ \text{ или } \ x > 3$$

ОДЗ: $x \in (-\infty; 2) \cup (3; +\infty)$.

Шаг 2. Правую часть — под логарифм. Нужно $b$, для которого $\log_{0,5} b = -1$: это $b = 0{,}5^{-1} = 2$.

$$\log_{0,5} (x^2 - 5x + 6) > \log_{0,5} 2$$

Шаг 3. Основание $0{,}5 < 1$ — знак переворачивается:

$$x^2 - 5x + 6 < 2$$

Шаг 4. Решаем:

$$x^2 - 5x + 4 < 0 \iff (x - 1)(x - 4) < 0 \iff 1 < x < 4$$

Шаг 5. Пересекаем с ОДЗ:

  • $(1; 4) \cap (-\infty; 2) = (1; 2)$
  • $(1; 4) \cap (3; +\infty) = (3; 4)$

Проверим: $x = 1{,}5$: под логарифмом $2{,}25 - 7{,}5 + 6 = 0{,}75$, $\log_{0,5} 0{,}75 \approx 0{,}415 > -1$ ✅. $x = 3{,}5$: под логарифмом $12{,}25 - 17{,}5 + 6 = 0{,}75$, снова $\approx 0{,}415 > -1$ ✅. $x = 2{,}5$: под логарифмом $6{,}25 - 12{,}5 + 6 = -0{,}25 < 0$ — логарифма нет ✅, точка не в ОДЗ. $x = 0$: под логарифмом $6$, $\log_{0,5} 6 \approx -2{,}585$, не больше $-1$ ✅ — не вошло.

Ответ: $x \in (1; 2) \cup (3; 4)$

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

Пересечение множеств — самая частая операция при работе с данными, и путать её с объединением стоит дорого. Когда ты пишешь фильтр df[(df.age > 30) & (df.income > 100000)], ты решаешь систему — берёшь пересечение. Заменил & на | — получил объединение, и выборка выросла в разы. Логика ровно та же, что в системе неравенств, и ошибка ровно та же, что «написал объединение вместо пересечения».

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


Логарифмические неравенства в машинном обучении

Интуиция

Логарифм в ML появляется не из любви к красоте, а из необходимости. Вероятности перемножаются (правдоподобие выборки — это произведение вероятностей), а произведение тысячи чисел меньше единицы мгновенно уходит в машинный ноль. Логарифм превращает произведение в сумму и вытаскивает вычисления из области, где числа с плавающей точкой перестают работать. Отсюда log_softmax, logsumexp, log-likelihood и всё остальное семейство.

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

Сюжет первый: порог на log-loss. Для одного примера кросс-энтропия равна $L = -\ln p$, где $p$ — вероятность правильного класса. Условие «loss ниже порога $\varepsilon$» — это $-\ln p < \varepsilon$, то есть неравенство относительно $p$.

Сюжет второй: число шагов при экспоненциальном затухании. Learning rate часто задают как $\eta_k = \eta_0 \gamma^k$, где $0 < \gamma < 1$. Вопрос «через сколько шагов шаг станет меньше $\varepsilon$» — это неравенство $\eta_0 \gamma^k < \varepsilon$, которое логарифмированием превращается в линейное относительно $k$. И вот тут главная засада: логарифм основания $\gamma < 1$ отрицателен, поэтому при делении на него знак переворачивается.

Сюжет третий: ограничения на вероятность через логит. Нейросеть выдаёт не вероятность, а логит $z$, из которого вероятность получают сигмоидой $p = \sigma(z) = \dfrac{1}{1 + e^{-z}}$. Обратное преобразование — это логарифм: $z = \ln \dfrac{p}{1 - p}$. Любое условие на $p$ переводится в условие на $z$ и обратно.

Определение: Логитом вероятности $p \in (0; 1)$ называется величина $z = \ln \dfrac{p}{1 - p}$. Логит — строго возрастающая функция от $p$, поэтому неравенства между вероятностями переходят в неравенства между логитами с сохранением знака.

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

Пример 1 (простой): при каких $p$ выполняется $-\ln p < 0{,}1$?

Решение:

Шаг 1. ОДЗ. Логарифм требует $p > 0$. Плюс $p$ — вероятность, значит $p \le 1$. Итого рабочая область: $p \in (0; 1]$.

Шаг 2. Умножаем обе части на $-1$ — знак переворачивается:

$$\ln p > -0{,}1$$

Шаг 3. Основание $e \approx 2{,}718 > 1$, знак сохраняется, $-0{,}1 = \ln e^{-0,1}$:

$$p > e^{-0,1}$$

Шаг 4. Считаем: $e^{-0,1} \approx 0{,}9048$.

Шаг 5. Пересекаем с областью $(0; 1]$:

$$p \in (0{,}9048; 1]$$

Проверим: $p = 0{,}95$: $-\ln 0{,}95 \approx 0{,}0513 < 0{,}1$ ✅. $p = 0{,}9$: $-\ln 0{,}9 \approx 0{,}1054$, не меньше $0{,}1$ ✅ — граница действительно чуть выше $0{,}9$.

Ответ: $p \in \left(e^{-0,1}; 1\right] \approx (0{,}905; 1]$

📌 Практический вывод: порог log-loss $0{,}1$ — это требование уверенности выше 90,5%. Величины $0{,}1$ и $90\%$ на глаз никак не связаны, а через логарифм связаны жёстко. Именно поэтому пороги на loss нельзя выбирать «на глазок», не пересчитав их в вероятности.


Пример 2 (средний): learning rate задан как $\eta_k = 0{,}01 \cdot 0{,}5^k$. Начиная с какого шага $\eta_k < 10^{-5}$?

Решение:

Шаг 1. Записываем условие:

$$0{,}01 \cdot 0{,}5^k < 10^{-5}$$

Шаг 2. Делим обе части на $0{,}01 > 0$ — знак сохраняется (делим на положительное!):

$$0{,}5^k < 10^{-3}$$

Шаг 3. Логарифмируем по основанию 10. Функция $\lg$ возрастает, знак сохраняется:

$$\lg\left(0{,}5^k\right) < \lg 10^{-3} \iff k \lg 0{,}5 < -3$$

Шаг 4. Ключевой момент. $\lg 0{,}5 = -\lg 2 \approx -0{,}30103$ — число отрицательное. Делим на него обе части, и знак переворачивается:

$$k > \frac{-3}{-0{,}30103} \iff k > 9{,}966$$

Шаг 5. Номер шага — целое число, значит $k \ge 10$.

Проверим: при $k = 10$: $0{,}5^{10} = \tfrac{1}{1024} \approx 0{,}0009766$, умножаем на $0{,}01$: $\eta_{10} \approx 9{,}77 \cdot 10^{-6} < 10^{-5}$ ✅. При $k = 9$: $0{,}5^9 \approx 0{,}001953$, $\eta_9 \approx 1{,}95 \cdot 10^{-5} > 10^{-5}$ ✅ — ещё не пробили порог.

Ответ: $k \ge 10$ (начиная с десятого шага)

📌 Обрати внимание на шаг 4. Именно здесь спотыкается большинство: делят на $\lg 0{,}5$ и оставляют знак, получая $k < 9{,}97$ — то есть ровно противоположный ответ. Проверка на конкретном числе ловит эту ошибку за секунду, поэтому в задачах на затухание всегда подставляй два соседних целых значения.


Пример 3 (сложный): при каких логитах $z$ вероятность $p = \sigma(z)$ лежит строго между $0{,}1$ и $0{,}9$?

Решение:

Шаг 1. Записываем условие через логит. Величина $z = \ln \dfrac{p}{1 - p}$ — возрастающая функция от $p$ на промежутке $(0; 1)$. Значит двойное неравенство по $p$ переходит в двойное неравенство по $z$ с сохранением порядка:

$$0{,}1 < p < 0{,}9 \iff \ln \frac{0{,}1}{0{,}9} < z < \ln \frac{0{,}9}{0{,}1}$$

Шаг 2. Считаем границы.

$$\ln \frac{0{,}9}{0{,}1} = \ln 9 \approx 2{,}197$$$$\ln \frac{0{,}1}{0{,}9} = \ln \frac{1}{9} = -\ln 9 \approx -2{,}197$$

Шаг 3. Получаем симметричный промежуток:

$$-\ln 9 < z < \ln 9 \iff |z| < \ln 9$$

Шаг 4. Проверим монотонность отдельно, чтобы шаг 1 не выглядел как фокус. Пусть $p_1 < p_2$, оба в $(0; 1)$. Тогда $\dfrac{p}{1-p}$ возрастает: числитель растёт, знаменатель убывает, оба положительны — дробь строго растёт. Натуральный логарифм от растущей положительной величины тоже растёт. Значит $z_1 < z_2$ ✅.

Проверим численно: $z = 2$: $\sigma(2) = \tfrac{1}{1 + e^{-2}} = \tfrac{1}{1{,}1353} \approx 0{,}881$ — между $0{,}1$ и $0{,}9$ ✅. $z = 3$: $\sigma(3) \approx 0{,}953$ — вне промежутка ✅, и правда $3 > 2{,}197$. $z = -2{,}5$: $\sigma(-2{,}5) \approx 0{,}076 < 0{,}1$ ✅ — вне.

Ответ: $z \in (-\ln 9; \ln 9) \approx (-2{,}197; 2{,}197)$

📌 Отсюда полезное практическое правило: «зона неуверенности модели» шириной от 10% до 90% — это логиты примерно от $-2{,}2$ до $+2{,}2$. Всё, что по модулю больше $2{,}2$, уже даёт уверенность выше 90%. Логит $\pm 4{,}6$ — это уже 99%. Это стоит помнить наизусть, когда смотришь на сырые выходы сети.


Пример 4 (сложный): перплексия языковой модели равна $\mathrm{PPL} = 2^{H}$, где $H = -\dfrac{1}{n}\sum \log_2 p_i$ — кросс-энтропия в битах. При каком среднем значении $\log_2 p_i$ перплексия окажется ниже 20?

Решение:

Шаг 1. Записываем условие:

$$2^{H} < 20$$

Шаг 2. Логарифмируем по основанию 2. Функция $\log_2$ возрастает, знак сохраняется:

$$H < \log_2 20$$

Шаг 3. Считаем правую часть. $\log_2 20 = \log_2 (4 \cdot 5) = 2 + \log_2 5 \approx 2 + 2{,}322 = 4{,}322$.

Шаг 4. Подставляем определение $H$:

$$-\frac{1}{n}\sum \log_2 p_i < 4{,}322$$

Шаг 5. Умножаем на $-1$ — знак переворачивается:

$$\frac{1}{n}\sum \log_2 p_i > -4{,}322$$

То есть среднее значение $\log_2 p_i$ должно быть больше $-\log_2 20 \approx -4{,}322$.

Шаг 6. Переведём в вероятности. Среднее логарифмов — это логарифм среднего геометрического: $\dfrac{1}{n}\sum \log_2 p_i = \log_2 \sqrt[n]{p_1 p_2 \cdots p_n}$. Значит условие равносильно

$$\log_2 \bar{p}_{\text{геом}} > -\log_2 20 \iff \bar{p}_{\text{геом}} > 2^{-\log_2 20} = \frac{1}{20} = 0{,}05$$

Проверим: если модель в среднем присваивает правильному токену вероятность $0{,}1$, то $\log_2 0{,}1 \approx -3{,}32 > -4{,}32$ ✅, и перплексия равна $2^{3,32} \approx 10 < 20$ ✅. А если вероятность $0{,}02$: $\log_2 0{,}02 \approx -5{,}64 < -4{,}32$ ❌, перплексия $2^{5,64} \approx 50 > 20$ ✅ — сходится.

Ответ: среднее $\log_2 p_i > -\log_2 20 \approx -4{,}32$, что соответствует среднегеометрической вероятности выше $0{,}05$

📌 Отсюда знаменитая интерпретация перплексии: «перплексия $N$» означает, что модель в среднем колеблется между $N$ равновероятными вариантами. Перплексия 20 — это как выбирать наугад из двадцати слов. Неравенство $\mathrm{PPL} < 20$ буквально переводится как «среднегеометрическая вероятность правильного токена выше $1/20$».

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

Все три сюжета объединяет одна мысль: логарифм — это шкала, и пороги на ней надо уметь переводить обратно в исходные величины. Инженер, который ставит if loss < 0.05: stop, не понимая, что это требование уверенности 95,1%, работает вслепую. Он не сможет объяснить, почему порог $0{,}05$, а не $0{,}03$, и не заметит, что для задачи с сотней классов такой порог недостижим в принципе.

И второй момент — знак. В ML логарифм почти всегда приходит с минусом (потому что вероятности меньше единицы и логарифмы отрицательны, а потери хочется видеть положительными). Каждый такой минус — это переворот неравенства. Каждое деление на $\ln \gamma$ при $\gamma < 1$ — ещё один переворот. Умение автоматически отслеживать эти перевороты — ровно тот навык, который ты сейчас тренируешь на школьных неравенствах, и он один в один переносится на чтение формул в статьях и на отладку собственных условий остановки.


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

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

Задание 1: Реши неравенство $\log_2 x > 3$.


Задание 2: Реши неравенство $\log_{1/3} x > 2$.


Задание 3: Реши неравенство $\log_5 (x - 1) \le 2$.


Задание 4: Реши неравенство $\log_{0,5} (2x + 1) \ge -1$.


Задание 5: Найди ОДЗ неравенства $\log_3 (x - 2) + \log_3 (5 - x) > 0$.


Задание 6: Реши неравенство $\log_3 (x + 2) > \log_3 (2x - 3)$.


Задание 7: Реши неравенство $\log_{1/2} (x - 1) > \log_{1/2} (3 - x)$.


Задание 8: Log-loss одного примера равен $L = -\ln p$, где $p$ — вероятность правильного класса. При каких $p$ выполняется $L < 0{,}7$?


Задание 9: Реши неравенство $\lg (x - 2) \le 0$.


Задание 10: Хеш-таблица эмбеддингов адресуется двадцатью битами, то есть должно выполняться $\log_2 n \le 20$, где $n$ — число элементов (натуральное). Найди все допустимые $n$.


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

Задание 11: Реши неравенство $\log_2 x + \log_2 (x - 3) \le 2$.


Задание 12: Реши неравенство $\log_{1/2} (x - 1) + \log_{1/2} (x + 1) \ge -3$.


Задание 13: Реши неравенство $\log_5^2 x - 4 \log_5 x + 3 \le 0$.


Задание 14: Признак $x > 0$ логарифмируют: $u = \lg x$. Значение считается выбросом, если $u^2 - 2u - 3 \ge 0$. При каких исходных $x$ признак попадает в выбросы?


Задание 15: Learning rate затухает по правилу $\eta_n = 0{,}1 \cdot 0{,}9^n$. Начиная с какого шага $n$ выполняется $\eta_n < 0{,}001$?


Задание 16: Реши неравенство $\log_3 (x^2 - 4x + 3) \le 1$.


Задание 17: Реши неравенство $\dfrac{\log_2 x - 1}{\log_2 x + 2} \ge 0$.


Задание 18: Валидационный loss убывает как $L_k = 2 \cdot 0{,}95^k$, где $k$ — номер эпохи. С какой эпохи выполняется $L_k < 0{,}5$?


Задание 19: Нейросеть выдаёт логит $z$, вероятность считается как $p = \dfrac{1}{1 + e^{-z}}$. При каких $z$ модель уверена больше чем на 90%, то есть $p > 0{,}9$?


Задание 20: Реши двойное неравенство $-1 < \log_3 (x - 2) < 2$.


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

Задание 21: Реши неравенство $\log_x 9 > 2$.


Задание 22: Реши неравенство $\log_x (5x - 6) > 2$.


Задание 23: Реши неравенство $\log_x (x + 2) < 2$ через переход к произведению.


Задание 24: Реши неравенство $\log_5 (x - 2) + \log_5 (x - 3) \le \log_5 12$ и объясни, какой лишний промежуток дала бы забытая ОДЗ.


Задание 25: Реши неравенство $\log_3 x + \log_x 3 \le -2$.


Задание 26: Кросс-энтропия в битах равна $H = -\log_2 p$. При каких $p$ выполняется $H < 0{,}5$ бита?


Задание 27: При каких логитах $z$ сигмоида даёт вероятность меньше 5%, то есть $\dfrac{1}{1 + e^{-z}} < 0{,}05$?


Задание 28: Реши неравенство $\dfrac{\lg x + 1}{\lg x - 2} < 0$.


Задание 29: Коэффициент регуляризации $\lambda$ ищут в логарифмической сетке. Он должен удовлетворять сразу двум условиям: $-4 \le \lg \lambda \le -1$ и $\lg\!\left(\lambda \cdot 10^{5}\right) > 2$. Найди допустимые $\lambda$.


Задание 30: Learning rate меняется по правилу $\eta_k = 0{,}5 \cdot 0{,}8^k$. На каких шагах $k$ (целых, начиная с нуля) выполняется двойное условие $0{,}001 < \eta_k < 0{,}01$?


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

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

Самая массовая ошибка всей темы. Рука на автомате пишет то же самое неравенство, что было под логарифмом, не глядя на основание.

Неправильно:

$$\log_{1/2} (x - 1) > 3 \implies x - 1 > \left(\tfrac12\right)^3 = \tfrac18 \implies x > 1{,}125$$

Правильно:

$$\log_{1/2} (x - 1) > 3 \implies x - 1 < \tfrac18 \implies x < 1{,}125$$

и с учётом ОДЗ $x > 1$ получаем $x \in (1; 1{,}125)$.

Почему важно: ответы не просто разные — они не пересекаются вообще. Неправильный вариант даёт луч, уходящий в бесконечность, правильный — узкий промежуток длиной $0{,}125$. Проверим на числе: $x = 2$ (из «неправильного» ответа) даёт $\log_{1/2} 1 = 0$, и $0 > 3$ — ложь. А $x = 1{,}05$ даёт $\log_{1/2} 0{,}05 \approx 4{,}32 > 3$ — истина. Ловится за десять секунд подстановкой одного числа, но только если ты вообще заподозрил проблему. Заведи привычку: прежде чем снять логарифм, вслух назови основание и сравни его с единицей.


Ошибка 2: забыли ОДЗ и понадеялись на проверку подстановкой

Неправильно:

$$\log_3 (x - 1) + \log_3 (x - 2) \le 1 \implies (x-1)(x-2) \le 3 \implies x^2 - 3x - 1 \le 0$$$$\implies x \in \left[\tfrac{3 - \sqrt{13}}{2}; \tfrac{3 + \sqrt{13}}{2}\right] \approx [-0{,}30; 3{,}30]$$

и на этом остановились: «потом подставлю и проверю».

Правильно: выписать ОДЗ первым действием — $x > 1$ и $x > 2$, то есть $x > 2$ — и пересечь:

$$x \in \left(2; \tfrac{3 + \sqrt{13}}{2}\right] \approx (2; 3{,}30]$$

Почему важно: проверять нечего. В ответе бесконечно много точек, поштучная подстановка физически невозможна, а одна случайная проверка ничего не доказывает. Возьми, например, $x = 3$ из «неправильного» ответа — там всё сойдётся, потому что тройка лежит в правильной части. А возьми $x = 0$ — и получишь логарифмы отрицательных чисел. В уравнениях подстановка была страховкой, здесь её нет: ОДЗ либо выписана до решения, либо ответ неверен.


Ошибка 3: склеили логарифмы и потеряли исходную ОДЗ

Неправильно: решая $\log_2 x + \log_2 (x + 3) > 2$, сразу написать $\log_2 \big(x(x+3)\big) > 2$ и определять ОДЗ уже по этому виду: $x(x+3) > 0 \iff x < -3$ или $x > 0$. В ответ тогда попадёт кусок $x < -3$.

Правильно: ОДЗ определяется по исходному неравенству:

$$\begin{cases} x > 0 \\ x + 3 > 0 \end{cases} \iff x > 0$$

и только после этого можно сворачивать логарифмы.

Почему важно: формула $\log_a m + \log_a n = \log_a(mn)$ верна лишь там, где определены обе части. Слева нужны $m > 0$ и $n > 0$; справа хватает $mn > 0$, что выполняется и при двух отрицательных множителях. Склейка втихую расширяет область определения. Правило простое: преобразования логарифмов делай после того, как ОДЗ уже записана. Это относится и к формуле $k \log_a m = \log_a m^k$: при чётном $k$ она тоже расширяет область.


Ошибка 4: после замены $t = \log_a x$ решают обратный переход как уравнение

Неправильно:

$$\log_2^2 x - 5\log_2 x + 6 < 0 \implies t^2 - 5t + 6 < 0 \implies 2 < t < 3 \implies x = 4, \ x = 8$$

то есть выписали граничные точки как ответ.

Правильно: обратный переход — это снова неравенство, и его надо решать:

$$2 < \log_2 x < 3 \implies \log_2 4 < \log_2 x < \log_2 8 \implies 4 < x < 8$$

Почему важно: замена не превращает неравенство в уравнение, она лишь упрощает его вид. Ответ по $t$ — это промежуток, и обратный переход должен дать промежуток по $x$, а не пару точек. И, что важнее, на обратном переходе снова работает правило знака: если бы основание было $\tfrac12$, из $2 < t < 3$ получилось бы $\tfrac18 < x < \tfrac14$ — промежуток в совершенно другом месте оси. Каждый обратный переход — это отдельное простейшее логарифмическое неравенство со своим анализом основания.


Ошибка 5: при переменном основании разобрали только один случай

Неправильно: решая $\log_x (x + 6) > 2$, автоматически предположить, что основание больше единицы, снять логарифм с сохранением знака и выдать $1 < x < 3$ — не проверив, что происходит при $0 < x < 1$.

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

$$(x - 1)\big((x + 6) - x^2\big) > 0$$

а потом решать методом интервалов с ОДЗ $x > 0$, $x \ne 1$.

Почему важно: иногда второй случай действительно пуст (как в задании 21) — и тогда «повезло». А иногда он даёт целый дополнительный промежуток, как в примере $\log_{x-1}(x+1) < 2$, где ответ распался на $(1; 2) \cup (3; +\infty)$. Ты не можешь знать заранее, повезёт или нет. Пропуск случая — это не «мелкая небрежность», а систематическая потеря половины ответа. Кстати, бывает и наоборот: ОДЗ может сама отсечь один из случаев (задание 22), и тогда разбор законно сокращается — но это надо увидеть, а не предположить.


Ошибка 6: умножили обе части на выражение с неизвестным знаком

Неправильно:

$$\frac{\log_3 x - 2}{\log_3 x + 1} > 0 \implies \log_3 x - 2 > 0 \implies x > 9$$

(домножили на знаменатель, как будто он положителен).

Правильно: решать методом интервалов через замену $t = \log_3 x$:

$$\frac{t - 2}{t + 1} > 0 \implies t < -1 \ \text{ или } \ t > 2 \implies 0 < x < \tfrac13 \ \text{ или } \ x > 9$$

Почему важно: дробь положительна не только когда оба множителя положительны, но и когда оба отрицательны — и второй случай даёт целый промежуток $\left(0; \tfrac13\right)$, который при «домножении» просто исчезает. Общее правило для любых неравенств: умножать и делить обе части можно только на выражение с известным знаком. Если знак неизвестен — переноси всё в одну сторону, приводи к общему знаменателю и применяй метод интервалов. Это же правило запрещает делить неравенство на $\lg 0{,}9$ без переворота знака — там знак известен, но он отрицательный.


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

Правило знака. При $a > 1$ переход $\log_a f \vee \log_a g \iff f \vee g$ сохраняет знак; при $0 < a < 1$ знак переворачивается. Это следствие монотонности: при $a > 1$ логарифм возрастает, при $0 < a < 1$ — убывает.

ОДЗ выписывается первым действием, по исходному виду неравенства, до всяких преобразований логарифмов. В конце решения множество-ответ пересекается с ОДЗ.

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

Преобразования логарифмов расширяют область определения. Склейка $\log_a m + \log_a n = \log_a(mn)$ и вынос чётной степени $\log_a m^{2k} = 2k\log_a |m|$ — типичные источники лишних промежутков в ответе.

Число прячется под логарифм по формуле $b = \log_a a^b$ — это стандартный первый ход, когда одна часть неравенства не логарифм.

Замена $t = \log_a x$ превращает задачу в алгебраическую. На $t$ никаких ограничений нет (логарифм принимает любые значения), а обратный переход — снова логарифмическое неравенство со своим анализом основания.

Переменное основание решается либо разбором двух случаев ($a > 1$ и $0 < a < 1$), либо равносильным переходом $\log_a f > \log_a g \iff (a - 1)(f - g) > 0$ при выполненной ОДЗ $a > 0$, $a \ne 1$, $f > 0$, $g > 0$.

Умножать и делить обе части можно только на выражение с известным знаком. Дробные неравенства решаются методом интервалов, а не домножением на знаменатель.

Система — пересечение, совокупность — объединение. Логарифмические условия, стоящие в одном выражении, всегда дают систему; ответы, полученные из разных кусков решения по $t$, — совокупность.

Логарифм положителен, когда основание и аргумент лежат по одну сторону от единицы, и отрицателен, когда по разные. Быстрая проверка знака без вычислений.

Деление на $\ln \gamma$ или $\lg \gamma$ при $0 < \gamma < 1$ переворачивает знак — этот логарифм отрицателен. Классическая ловушка в задачах на затухание learning rate и на число шагов.


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

Что было раньше. Урок 119 дал логарифмическую функцию: область определения $(0; +\infty)$, монотонность, зависящую от основания, вертикальная асимптота $x = 0$. Именно монотонность — та единственная теорема, на которой стоит весь сегодняшний урок; без неё «снимать логарифм» было бы незаконно. Урок 120 дал логарифмические уравнения: технику ОДЗ, приведение к одному основанию, замену переменной, потенцирование. Сегодня всё это работает почти так же, с одной принципиальной поправкой — знак и ОДЗ становятся не формальностью, а сутью дела. Ещё раньше, в уроках про свойства логарифмов, ты получил четыре формулы сворачивания-разворачивания, без которых ни одна задача этого урока не решается.

Что дальше. Следующий урок 122 — логарифмирование и потенцирование как парные операции — систематизирует то, что мы здесь применяли интуитивно: переход «от выражения к его логарифму» и обратно. Он же объяснит, почему логарифмирование обеих частей неравенства законно ровно тогда, когда обе части положительны. Дальше по курсу — показательные неравенства, где действует симметричное правило знака (основание больше или меньше единицы), и смешанные показательно-логарифмические системы. В уроке 133 появится производная, и с ней монотонность можно будет доказывать вычислением, а не подбором; но обрати внимание — весь этот урок мы обошлись без неё, опираясь только на определение возрастания и убывания. Это не случайно: строгие рассуждения о монотонности логарифма исторически появились задолго до анализа.

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

📊 В машинном обучении: пороги на кросс-энтропию и log-loss (условие ранней остановки), расписания learning rate с экспоненциальным затуханием и вопрос «сколько шагов до заданного значения», ограничения на вероятность через логит, логарифмическая сетка при подборе гиперпараметров.

📈 В data science: логарифмирование скошенных признаков и пороги, заданные в лог-шкале; фильтры вида «частота слова выше порога» в TF-IDF, где $\mathrm{idf} = \log \tfrac{N}{df}$; условия на перплексию языковых моделей.

🔊 В акустике и связи: уровень звука в децибелах $L = 10\lg \tfrac{I}{I_0}$, и любое требование «шум не выше 40 дБ» — это логарифмическое неравенство относительно интенсивности.

🧪 В химии: шкала pH $= -\lg[\mathrm{H}^+]$, и условия вида «раствор слабокислый: $5 < \mathrm{pH} < 7$» — двойное логарифмическое неравенство.

💾 В информатике: оценки сложности $O(\log n)$, глубина сбалансированного дерева, число бит для кодирования — условия вида $\log_2 n \le k$ появляются при расчёте размеров структур данных.


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

💡 Первое логарифмическое неравенство решили ради денег. В XVII веке главным заказчиком логарифмических вычислений были не астрономы, а банкиры: сложные проценты. Вопрос «через сколько лет вклад удвоится при ставке $r$» — это неравенство $(1 + r)^n \ge 2$, которое логарифмированием превращается в $n \ge \tfrac{\ln 2}{\ln(1 + r)}$. Отсюда родилось знаменитое «правило 72»: годы до удвоения $\approx 72 / (\text{процент})$. Это приближение работает, потому что $\ln 2 \approx 0{,}693$, и при малых $r$ верно $\ln(1+r) \approx r$; отношение даёт $69{,}3/(\text{процент})$, а 72 выбрали, потому что оно делится нацело на 2, 3, 4, 6, 8, 9 и 12 — удобно считать в уме.

💡 Шкала Рихтера скрывает логарифмическое неравенство в новостях. Когда сообщают «землетрясение магнитудой выше 6», это условие $\lg \tfrac{A}{A_0} > 6$, то есть амплитуда колебаний превышает эталонную в миллион раз. Разница между магнитудой 6 и 7 — не «на единицу сильнее», а в десять раз по амплитуде и примерно в 32 раза по выделенной энергии. Логарифмическая шкала маскирует эту разницу настолько эффективно, что публика систематически недооценивает опасность.

💡 Логит придумали для биологии, а не для нейросетей. Термин «logit» ввёл Джозеф Берксон в 1944 году, работая над анализом биологических испытаний — доза лекарства против доли выживших. Ему нужно было преобразование, растягивающее отрезок $(0; 1)$ на всю прямую, и он взял $\ln \tfrac{p}{1-p}$. Через полвека эта же функция стала выходным слоем практически каждого классификатора, а обратная к ней сигмоида — первой функцией активации нейросетей. Условие «модель уверена выше 95%» и сегодня решается как неравенство ровно по берксоновской формуле.

💡 Неравенство $\ln x \le x - 1$ — фундамент половины машинного обучения. Это простое неравенство, верное при всех $x > 0$ с равенством только при $x = 1$, лежит в основе доказательства того, что расстояние Кульбака — Лейблера неотрицательно. А из неотрицательности KL-дивергенции следует, что минимизация кросс-энтропии действительно приближает предсказанное распределение к истинному. То есть вся идея обучения классификатора по log-loss опирается на школьное логарифмическое неравенство.

💡 Компьютер решает логарифмические неравенства не через логарифмы. В библиотеках вроде SciPy условия вида $\log p < c$ внутри переписывают как $p < e^c$ и работают с экспонентой — не из математической красоты, а из численной устойчивости: логарифм около нуля уходит в $-\infty$ и теряет точность, тогда как экспонента ведёт себя гладко. Это ровно тот же приём, что мы делаем вручную, «снимая логарифм», просто выполненный из соображений точности вычислений.


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

1. Ритуал трёх вопросов перед снятием логарифма

Прежде чем написать следующую строчку, ответь себе на три вопроса: (а) Какое основание? (б) Оно больше или меньше единицы? (в) Выписана ли ОДЗ? Три секунды на ритуал экономят половину ошибок в теме. Если основание переменное, вопрос (б) автоматически означает «разбираем два случая или пишем произведение».


2. Единица — универсальный ориентир

Логарифм равен нулю ровно при аргументе $1$, при любом основании. Логарифм положителен, когда основание и аргумент по одну сторону от единицы, отрицателен — когда по разные. Это позволяет за секунду прикинуть знак любого логарифма без калькулятора: $\log_{0,3} 0{,}1 > 0$ (оба меньше единицы), $\log_{0,3} 5 < 0$ (по разные стороны), $\log_7 2 > 0$ (оба больше единицы).


3. Переворачивай основание, а не голову

Если основание меньше единицы и путаница со знаком мешает, воспользуйся тождеством $\log_{1/a} x = -\log_a x$. Неравенство $\log_{1/3} f(x) > c$ переписывается как $-\log_3 f(x) > c$, то есть $\log_3 f(x) < -c$ — и дальше ты работаешь с привычным основанием больше единицы. Переворот знака произойдёт автоматически при умножении на $-1$, и его труднее забыть, чем «правило про основание».


4. Проверяй ответ двумя точками: изнутри и снаружи

Полностью проверить множество нельзя, но частично — можно и нужно. Возьми одну точку из полученного ответа и одну точку рядом с границей, но снаружи. Первая должна давать верное неравенство, вторая — неверное. Это ловит и перевёрнутый знак, и промах с границей. Особенно полезно в задачах на затухание: подставь два соседних целых $k$ и убедись, что порог пробивается именно между ними.


5. В задачах на «сколько шагов» помни: логарифм числа меньше единицы отрицателен

Неравенство $\gamma^k < \varepsilon$ при $0 < \gamma < 1$ после логарифмирования даёт $k \lg \gamma < \lg \varepsilon$, и деление на $\lg \gamma < 0$ переворачивает знак: $k > \tfrac{\lg \varepsilon}{\lg \gamma}$. Мнемоника: чем больше шагов, тем меньше значение, поэтому ответ обязан быть вида «$k$ больше чего-то», а не «меньше». Если получилось наоборот — где-то потерян переворот.


6. Рисуй ось до вычислений

Начерти числовую прямую, сразу заштрихуй то, что запрещено ОДЗ, и отмечай точки по мере их появления. Когда в конце нужно пересечь два-три множества, картинка делает это за тебя, а формальная запись «$[-1; 4] \cap ((-\infty; 0) \cup (3; +\infty))$» без картинки почти гарантированно даст ошибку. Ось особенно спасает в задачах, где ОДЗ разрезает ответ на два разорванных куска.


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

Для прикидок в ML полезно помнить готовые пары: логит $0$ — вероятность $0{,}5$; логит $\pm 2{,}2$ — это $0{,}9$ и $0{,}1$; логит $\pm 4{,}6$ — это $0{,}99$ и $0{,}01$; логит $\pm 6{,}9$ — это $0{,}999$. Все они получены из $\ln \tfrac{p}{1-p}$: $\ln 9 \approx 2{,}197$, $\ln 99 \approx 4{,}595$, $\ln 999 \approx 6{,}907$. С этими четырьмя парами ты читаешь сырые выходы сети без калькулятора.


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

И ещё одна мысль напоследок. Обрати внимание, что мы ни разу не воспользовались производной, хотя постоянно говорили о монотонности. Возрастание и убывание логарифма мы брали прямо из определения функции и её связи с показательной. Это полезная привычка: сначала понять поведение функции по её природе, и только потом, когда появится аппарат анализа, подтвердить понимание вычислением. Дальше — урок про логарифмирование и потенцирование, где переход «выражение ↔ его логарифм» станет отдельным инструментом, а оттуда прямая дорога к показательным неравенствам, в которых ты узнаешь ровно ту же логику знака, только зеркально отражённую. 🚀

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

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

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