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

Свойства логарифмов

Свойства логарифмов 📊

Представь: ты обучаешь нейросеть и видишь в коде функцию потерь — loss = -sum(y * log(p)). Или смотришь на формулу информационной энтропии Шеннона: H = -Σ p·log(p). Или просто пытаешься понять, почему в TensorFlow loss падает не линейно, а как-то странно — сначала быстро, потом всё медленнее.

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

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

В уроке ты узнаешь:

🎯 Что такое логарифм и как его “читать” глазами
🎯 Все ключевые свойства с доказательствами (не страшными!)
🎯 Почему логарифмы — это язык ML: loss functions, entropy, normalization
🎯 Как свойства помогают упрощать сложные выражения
🎯 30 заданий от простых до прикладных (с решениями)


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

Начало XVII века. Астрономы — Тихо Браге, Кеплер — вычисляют орбиты планет. Вручную. Умножение двенадцатизначных чисел занимает часы, и ошибки неизбежны. Астрономы буквально умирали раньше времени от перегрузки — это не метафора, это медицинский факт той эпохи.

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

Лет через 400 мир снова изобрёл то же самое, только в другом контексте. В машинном обучении логарифмы появились по той же причине: перемножение вероятностей (крошечных чисел вроде 0.0001 × 0.0003 × 0.00002) приводит к численному underflow — компьютер теряет точность. Решение? Перейти к логарифмам вероятностей и складывать их. Log-likelihood, cross-entropy, KL-divergence — всё это прямые наследники таблиц Непера.


Что такое логарифм: быстрое напоминание

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

Интуиция: логарифм — это “показатель степени”

Задай себе вопрос: в какую степень нужно возвести 2, чтобы получить 8?

2^? = 8
2^3 = 8  →  ? = 3

Вот это и есть логарифм: log₂(8) = 3.

Читается: “логарифм восьми по основанию два равен трём”.

Смысл: 2 нужно возвести в степень 3, чтобы получить 8.

Определение: log_a(b) = c тогда и только тогда, когда a^c = b где a > 0, a ≠ 1, b > 0

Ключевая связь:

$$\log_a(b) = c \iff a^c = b$$

Это не просто формула — это определение, из которого вытекают все свойства. Запомни эту двустороннюю стрелку: каждый раз, когда видишь логарифм, ты можешь “перевернуть” его в показательную запись.

Специальные случаи, которые нужно знать сразу

Выражение Результат Почему
log_a(1) 0 Потому что a^0 = 1
log_a(a) 1 Потому что a^1 = a
log_a(a^n) n Потому что a^n = a^n
a^(log_a(b)) b Обратное действие

📌 Самый важный факт: логарифм и показательная функция — это взаимно обратные операции. Как умножение и деление.


Натуральный и десятичный логарифм

Перед свойствами — ещё один момент, который часто путает.

Натуральный логарифм ln(x) = log_e(x), где e ≈ 2.718...

Это не просто “удобное основание”. Число e — это скорость непрерывного роста. Именно поэтому в ML везде используют ln: производные функций с ln получаются красивыми, а функция потерь cross-entropy технически считается именно через натуральный логарифм.

Десятичный логарифм lg(x) = log₁₀(x)

Используется в технике, акустике (децибелы), шкалах pH. В ML встречается реже.

💡 Правило: в ML-коде, когда видишь torch.log(x) или np.log(x) — это всегда натуральный логарифм ln(x).


Свойство 1: Логарифм произведения

Интуиция

Вернёмся к Неперу. Он хотел заменить умножение на сложение. Свойство произведения — это именно оно.

Представь, что у тебя есть два числа: 100 и 1000. Их произведение — 100 000.

log₁₀(100) = 2      (потому что 10² = 100)
log₁₀(1000) = 3     (потому что 10³ = 1000)
log₁₀(100 000) = 5  (потому что 10⁵ = 100 000)

Смотри: 2 + 3 = 5. Логарифм произведения = сумма логарифмов!

Строгое определение

Свойство 1 (произведение): $$\log_a(M \cdot N) = \log_a(M) + \log_a(N)$$ при условии M > 0, N > 0, a > 0, a ≠ 1

Доказательство (не страшное!):

Пусть log_a(M) = p и log_a(N) = q.

По определению: a^p = M и a^q = N.

Тогда:

M · N = a^p · a^q = a^(p+q)

Применяем определение логарифма к этому равенству:

log_a(M · N) = p + q = log_a(M) + log_a(N)

Готово. ✅


Примеры

Пример 1 (простой): Вычисли log₂(4 · 8)

Решение:

Шаг 1: Применяем свойство произведения:

log₂(4 · 8) = log₂(4) + log₂(8)

Шаг 2: Вычисляем каждый логарифм:

log₂(4) = 2  (так как 2² = 4)
log₂(8) = 3  (так как 2³ = 8)

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

log₂(4 · 8) = 2 + 3 = 5

Проверка: log₂(32) = 5? Да, 2⁵ = 32 = 4 · 8. ✅

Ответ: 5


Пример 2 (средний): Вычисли log₃(81 · 27)

Решение:

log₃(81 · 27) = log₃(81) + log₃(27)
              = log₃(3⁴) + log₃(3³)
              = 4 + 3
              = 7

Проверка: 3⁷ = 2187 = 81 · 27. Можно проверить: 81 · 27 = 81 · 27 = 2187. ✅

Ответ: 7


Пример 3 (ML-пример): Почему в cross-entropy используется сумма логарифмов?

Допустим, модель предсказывает вероятности для трёх независимых объектов: - Объект 1: p₁ = 0.9 - Объект 2: p₂ = 0.8 - Объект 3: p₃ = 0.7

Совместная вероятность (все предсказания верны одновременно):

P = p₁ · p₂ · p₃ = 0.9 · 0.8 · 0.7 = 0.504

Проблема: на реальных датасетах с тысячами объектов:

P = 0.9 × 0.8 × 0.7 × ... × 0.6  (1000 множителей)
  ≈ число, настолько маленькое, что float64 округлит его до 0

Решение — перейти к логарифму:

log(P) = log(p₁ · p₂ · p₃) = log(p₁) + log(p₂) + log(p₃)
       = log(0.9) + log(0.8) + log(0.7)
       = -0.105 + (-0.223) + (-0.357)
       = -0.685

Вместо умножения маленьких чисел — складываем отрицательные числа. Никакого underflow, никакой потери точности. Именно поэтому в PyTorch пишут torch.log(probs).sum().

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

Это свойство — основа log-likelihood в статистике и cross-entropy loss в ML. Когда ты максимизируешь правдоподобие (likelihood), ты работаешь с логарифмом произведения вероятностей — и превращаешь его в сумму, с которой удобно работать градиентному спуску.


Свойство 2: Логарифм частного

Интуиция

Если произведение = сумма логарифмов, то деление = разность. Это следует из того, что деление — это умножение на обратное число.

Строгое определение

Свойство 2 (частное): $$\log_a\left(\frac{M}{N}\right) = \log_a(M) - \log_a(N)$$ при условии M > 0, N > 0, a > 0, a ≠ 1

Доказательство:

log_a(M/N) = log_a(M · N⁻¹)
           = log_a(M) + log_a(N⁻¹)   [свойство произведения]
           = log_a(M) + (-1)·log_a(N)  [сейчас докажем это]
           = log_a(M) - log_a(N)

Примеры

Пример 1 (простой): Вычисли log₂(64/8)

Решение:

log₂(64/8) = log₂(64) - log₂(8)
           = 6 - 3
           = 3

Проверка: 64/8 = 8, log₂(8) = 3. ✅

Ответ: 3


Пример 2 (ML-пример): KL-дивергенция

KL-дивергенция (мера “расстояния” между двумя распределениями) записывается как:

$$D_{KL}(P | Q) = \sum_x P(x) \cdot \log\left(\frac{P(x)}{Q(x)}\right)$$

Свойство частного позволяет раскрыть это:

$$D_{KL}(P | Q) = \sum_x P(x) \cdot [\log P(x) - \log Q(x)]$$

$$= \sum_x P(x) \log P(x) - \sum_x P(x) \log Q(x)$$

$$= -H(P) + H(P, Q)$$

где H(P) — энтропия Шеннона, а H(P,Q) — кросс-энтропия. Без свойства частного эту связь было бы сложно увидеть.


Свойство 3: Логарифм степени (выносим показатель)

Интуиция

Если log_a(M · N) = log_a(M) + log_a(N), то что будет с log_a(M · M · M) = log_a(M³)?

log_a(M³) = log_a(M · M · M) = log_a(M) + log_a(M) + log_a(M) = 3 · log_a(M)

Показатель степени просто “вылезает” вперёд!

Строгое определение

Свойство 3 (степень): $$\log_a(M^n) = n \cdot \log_a(M)$$ при условии M > 0, a > 0, a ≠ 1, n ∈ ℝ

Важно: n может быть любым числом — целым, дробным, отрицательным.


Примеры

Пример 1 (простой): Вычисли log₃(81)

Решение:

log₃(81) = log₃(3⁴) = 4 · log₃(3) = 4 · 1 = 4

Ответ: 4


Пример 2 (средний): Упрости log₂(√32)

Решение:

Шаг 1: Корень — это степень 12:

log₂(√32) = log₂(32^(1/2))

Шаг 2: Применяем свойство степени:

= (1/2) · log₂(32)

Шаг 3: 32 = 2⁵, значит log₂(32) = 5:

= (1/2) · 5 = 2.5

Ответ: 2.5


Пример 3 (ML-пример): Почему softmax + log работает именно так?

В нейросетях для классификации используется softmax + cross-entropy. Числовой трюк (log-sum-exp):

$$\log\left(\sum_i e^{x_i}\right) = \log\left(e^c \cdot \sum_i e^{x_i - c}\right) = c + \log\left(\sum_i e^{x_i - c}\right)$$

Здесь log(e^c) = c · log(e) = c · 1 = c — это прямое применение свойства степени, где основание логарифма и степени совпадают. Без этого свойства log-sum-exp trick был бы непонятен.


Пример 4 (сложный): Вычисли log₅(∛(625))

Решение:

Шаг 1: Кубический корень — степень 13:

log₅(∛625) = log₅(625^(1/3))

Шаг 2: 625 = 5⁴:

= log₅((5⁴)^(1/3)) = log₅(5^(4/3))

Шаг 3: Применяем свойство:

= (4/3) · log₅(5) = (4/3) · 1 = 4/3

Ответ: 43 ≈ 1.333


Свойство 4: Логарифм корня

Это частный случай свойства степени, но его удобно выделить отдельно.

Свойство 4 (корень): $$\log_a(\sqrt[n]{M}) = \frac{1}{n} \cdot \log_a(M)$$

Почему? Потому что √[n]{M} = M^(1/n), и применяем свойство степени.

Пример

Вычисли log₄(√4)

log₄(√4) = log₄(4^(1/2)) = (1/2) · log₄(4) = (1/2) · 1 = 1/2

Проверка: 4^(1/2) = 2, log₄(2) = 1/2. ✅


Свойство 5: Формула смены основания

Интуиция

Это самое “технически полезное” свойство. Оно говорит: не важно, какое основание у логарифма — любое можно выразить через любое другое.

Представь: у тебя есть калькулятор, который умеет считать только ln (натуральный логарифм). Как вычислить log₂(100)? Используешь формулу смены основания.

Строгое определение

Свойство 5 (смена основания): $$\log_a(b) = \frac{\log_c(b)}{\log_c(a)}$$ для любого c > 0, c ≠ 1

Самый частый случай — перейти к натуральному логарифму:

$$\log_a(b) = \frac{\ln(b)}{\ln(a)}$$

Доказательство

Пусть log_a(b) = x. Тогда a^x = b.

Возьмём логарифм с основанием c от обеих частей:

log_c(a^x) = log_c(b)
x · log_c(a) = log_c(b)   [свойство степени]
x = log_c(b) / log_c(a)

Поскольку x = log_a(b), получаем формулу. ✅


Примеры

Пример 1 (простой): Вычисли log₄(8)

Решение через смену основания к основанию 2:

log₄(8) = log₂(8) / log₂(4) = 3 / 2 = 1.5

Проверка: 4^1.5 = (2²)^1.5 = 2³ = 8. ✅

Ответ: 1.5


Пример 2 (средний): Вычисли log₃(7) с точностью до 4 знаков

Решение:

log₃(7) = ln(7) / ln(3) = 1.9459 / 1.0986 ≈ 1.7712

Ответ: ≈ 1.7712


Пример 3 (ML-пример): В информационной теории часто переходят от log₂ к ln

Энтропия Шеннона в битах: H = -Σ p · log₂(p)

В ML обычно используют натуральный логарифм (натуральная энтропия в натах):

H_nat = -Σ p · ln(p)

Связь: H_nat = H_bits · ln(2), потому что:

log₂(p) = ln(p) / ln(2)

Вот почему в разных источниках формулы cross-entropy могут отличаться константой — это просто разные основания логарифма. Физически — то же самое.


Полезное следствие: log_a(b) · log_b(a) = 1

Из формулы смены основания:

$$\log_a(b) \cdot \log_b(a) = \frac{\ln b}{\ln a} \cdot \frac{\ln a}{\ln b} = 1$$

Значит: log_a(b) = 1 / log_b(a).

Пример: log₂(8) · log₈(2) = 3 · (1/3) = 1. ✅


Свойство 6: Логарифм единицы и основания

Это самые простые свойства, но их нужно знать автоматически:

$$\log_a(1) = 0$$ (потому что a⁰ = 1)

$$\log_a(a) = 1$$ (потому что a¹ = a)

$$\log_a(a^n) = n$$ (следует из определения)

$$a^{\log_a(b)} = b$$ (обратная функция)

Последнее особенно важно в ML. Когда ты пишешь exp(log(x)) — ты просто получаешь x обратно. Это используется в трюке log-sum-exp и в операциях со стабильным softmax.


Все свойства на одной странице

Свойство произведения:  log_a(M·N) = log_a(M) + log_a(N)
Свойство частного:      log_a(M/N) = log_a(M) - log_a(N)
Свойство степени:       log_a(M^n) = n · log_a(M)
Свойство корня:         log_a(ⁿ√M) = (1/n) · log_a(M)
Смена основания:        log_a(b)   = ln(b) / ln(a)
Логарифм единицы:       log_a(1)   = 0
Логарифм основания:     log_a(a)   = 1

Комбинирование свойств: разбираем сложные выражения

Реальная работа с логарифмами — это умение применять несколько свойств последовательно.

Пример (разбор по шагам): Упрости

$$\log_2\left(\frac{8 \cdot \sqrt{4}}{2}\right)$$

Решение:

Шаг 1: Разбиваем свойством частного:

= log₂(8 · √4) - log₂(2)

Шаг 2: Разбиваем числитель свойством произведения:

= log₂(8) + log₂(√4) - log₂(2)

Шаг 3: Применяем свойство корня:

= log₂(8) + (1/2)·log₂(4) - log₂(2)

Шаг 4: Вычисляем каждый логарифм:

log₂(8) = 3,  log₂(4) = 2,  log₂(2) = 1

Шаг 5: Подставляем:

= 3 + (1/2)·2 - 1 = 3 + 1 - 1 = 3

Ответ: 3


Пример (ML-пример): Упрости формулу log-likelihood

Допустим, у нас нормальное распределение, и мы хотим записать log-likelihood для выборки x₁, x₂, ..., xₙ:

$$\ell(\mu, \sigma) = \log \prod_{i=1}^{n} \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{(x_i - \mu)^2}{2\sigma^2}}$$

Шаг 1: Логарифм произведения = сумма логарифмов: $$= \sum_{i=1}^{n} \log\left(\frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{(x_i - \mu)^2}{2\sigma^2}}\right)$$

Шаг 2: Логарифм произведения двух множителей: $$= \sum_{i=1}^{n} \left[\log\left(\frac{1}{\sigma\sqrt{2\pi}}\right) + \log\left(e^{-\frac{(x_i - \mu)^2}{2\sigma^2}}\right)\right]$$

Шаг 3: Свойство степени (и log(e^x) = x): $$= \sum_{i=1}^{n} \left[-\log(\sigma\sqrt{2\pi}) - \frac{(x_i - \mu)^2}{2\sigma^2}\right]$$

Шаг 4: Выносим константы: $$= -n\log(\sigma\sqrt{2\pi}) - \frac{1}{2\sigma^2}\sum_{i=1}^{n}(x_i - \mu)^2$$

Всё! Из страшного произведения получилась приятная сумма, которую легко дифференцировать по μ и σ. Это — именно то, что делают алгоритмы типа EM и MLE под капотом.


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

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

Задание 1. Вычисли: log₂(16)


Задание 2. Вычисли: log₃(243)


Задание 3. Вычисли: log₁₀(1000)


Задание 4. Вычисли: log₅(1)


Задание 5. Вычисли: log₇(7)


Задание 6. Упрости: log₂(8) + log₂(4)


Задание 7. Упрости: log₃(27) - log₃(9)


Задание 8. Вычисли: log₂(√8)


Задание 9. Вычисли: log₄(64)


Задание 10. Вычисли: log₉(27)


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

Задание 11. Вычисли: 2·log₅(25) + log₅(5)


Задание 12. Упрости: log₂(48) - log₂(3)


Задание 13. Упрости: log₆(4) + log₆(9)


Задание 14. Вычисли: log₂(∛32)


Задание 15. Упрости: log₃(√27) + log₃(9)


Задание 16. Упрости: log₂(12) - log₂(3) + log₂(8)


Задание 17 (прикладное). В нейросетевом классификаторе вероятности трёх классов: p₁ = 1/2, p₂ = 1/4, p₃ = 1/4. Вычисли энтропию Шеннона: H = -Σ pᵢ · log₂(pᵢ).


Задание 18 (прикладное). Звук интенсивностью I = 10⁻⁴ Вт/м² — насколько это громко в децибелах? Формула: dB = 10 · log₁₀(I / I₀), где I₀ = 10⁻¹² Вт/м².


Задание 19. Вычисли log₆(6⁵)


Задание 20. Упрости: log₅(500) - log₅(4)


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

Задание 21. Докажи, что log_a(b) · log_b(c) = log_a(c)


Задание 22. Вычисли: log₂(3) · log₃(4) · log₄(8)


Задание 23. Упрости: log₂(x³) - 3·log₂(x) + 2·log₂(y)


Задание 24. Упрости: log₃(x²y) - log₃(xy²) + log₃(y)


Задание 25 (прикладное). В Word2Vec embeddings расстояние между векторами измеряется через косинусную схожесть. Допустим, ты хочешь нормализовать схожесть с помощью log: score = log(1 + cos_sim). Если cos_sim = 0.9, cos_sim = 0.5, cos_sim = 0.1, вычисли разницу между максимальным и минимальным score. Используй натуральный логарифм.


Задание 26. Найди значение: log₂(log₃(log₄(64)))


Задание 27 (прикладное). Cross-entropy loss для бинарной классификации:

L = -(y·ln(p) + (1-y)·ln(1-p))

Если y = 1 (правильный класс) и p = 0.9, вычисли loss. Затем вычисли, насколько больше loss при p = 0.5. Используй свойства логарифмов, где возможно.


Задание 28. Упрости:

$$\frac{\log_8(27)}{\log_8(9)}$$


Задание 29 (прикладное). В процессе обучения нейросети loss убывает по формуле L(t) = L₀ · e^(-kt). Если начальный loss L₀ = 2.3, а через 100 эпох L(100) = 0.5, найди коэффициент убывания k.


Задание 30 (прикладное). Сравни без калькулятора: что больше — log₂(5) или log₃(7)?


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

Ошибка 1: “Логарифм суммы = сумма логарифмов”

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

log(a + b) = log(a) + log(b)   ← ЭТО ЛОЖЬ

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

log(a · b) = log(a) + log(b)   ← это верно
log(a + b) ≠ log(a) + log(b)   ← это неверно

Пример ошибки: log₂(4 + 4) ≠ log₂(4) + log₂(4)

log₂(8) = 3,   но   log₂(4) + log₂(4) = 2 + 2 = 4.  Разные числа!

Почему важно: эта ошибка уничтожает правильность расчётов в любом контексте.


Ошибка 2: “Выносим показатель без учёта знака”

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

log(1/x²) = 2·log(x)

Правильно:

log(1/x²) = log(x⁻²) = -2·log(x)

Знак минус пропал при раскрытии 1/x² = x⁻².


Ошибка 3: “log(a)/log(b) = log(a/b)”

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

log(8)/log(4) = log(8/4) = log(2)   ← ЭТО ЛОЖЬ

Правильно:

log₁₀(8)/log₁₀(4) = log₄(8) = 3/2   [формула смены основания наоборот]

Деление логарифмов — это смена основания, а не логарифм частного.


Ошибка 4: Логарифм от отрицательного числа

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

log(-9) = 2·log(-3)   ← ЭТО ЛОЖЬ

Правильно: логарифм определён только для положительных аргументов. log(-9) не существует в вещественных числах.

В ML это важно: если нейросеть выдаёт вероятности, в код нужно добавлять clip(p, 1e-7, 1) перед log(p), иначе log(0) = -∞ или log(отрицательного) — ошибка.


Ошибка 5: Путаница основания и аргумента

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

log₃(5) = log₅(3)   ← ЭТО ЛОЖЬ (в общем случае)

Правильно:

log₃(5) = 1/log₅(3)   [из формулы: log_a(b)·log_b(a) = 1]

Ошибка 6: “log_a(0) = 0”

Неправильно: log_a(0) не существует (уходит в -∞).

Правильно: log_a(1) = 0. Нулю соответствует не нуль, а единица!

В ML: именно поэтому cross-entropy добавляет epsilon = 1e-7 к вероятностям — защита от log(0) = -∞.


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

📝 Ключевые понятия

Определение: log_a(b) = ca^c = b. Логарифм — это показатель степени.

Свойство произведения: log_a(M·N) = log_a(M) + log_a(N) — умножение превращается в сложение. Основа log-likelihood.

Свойство частного: log_a(M/N) = log_a(M) - log_a(N) — деление превращается в вычитание. Основа KL-divergence.

Свойство степени: log_a(Mⁿ) = n·log_a(M) — показатель “выходит” вперёд. Используется везде в упрощениях.

Свойство корня: log_a(ⁿ√M) = (1/n)·log_a(M) — частный случай степени с n = 1/n.

Смена основания: log_a(b) = ln(b)/ln(a) — любой логарифм выражается через натуральный. В коде: np.log(b) / np.log(a).

Ноль и единица: log_a(1) = 0, log_a(a) = 1 — запомни автоматически.

Цепочка: log_a(b)·log_b(c) = log_a(c) — телескопическое свойство.

Обратность: a^(log_a(b)) = b — логарифм и экспонента обратны друг другу.

В ML: torch.log(x) = натуральный логарифм; перед log всегда клипай значения, чтобы избежать log(0).


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

Что нужно было знать до этого урока: - Степени и корни — свойство степени напрямую вытекает из правил работы со степенями - Определение логарифма — без этого свойства — просто магические формулы - Показательная функция — логарифм — это её обратная функция

Что изучить дальше: - Логарифмические уравнения — научимся решать уравнения с логарифмами (используя все свойства этого урока) - Логарифмические неравенства — здесь важна монотонность: при a > 1 логарифм возрастает, при 0 < a < 1 — убывает - Производная логарифма(ln x)' = 1/x — фундамент для понимания градиентного спуска

Где это нужно в жизни:

💻 В программировании: - math.log(x), np.log(x), torch.log(x) — натуральный логарифм - Log-scale для осей на графиках (matplotlib: plt.yscale('log')) — когда данные меняются на порядки - Binary search работает за O(log n) — логарифм в основе алгоритмической сложности

🤖 В ML/AI: - Cross-entropy loss: L = -Σ yᵢ·log(pᵢ) — стандартная функция потерь для классификации - Log-likelihood: максимизация правдоподобия через суммирование логарифмов вероятностей - Entropy & KL-divergence: H = -Σ p·log(p) — мера неопределённости в распределении - Softmax numerical stability: log-sum-exp trick использует ln(eᵃ) = a - Word2Vec, BERT, GPT — везде в loss функциях логарифмы вероятностей

📊 В Data Science: - Log-трансформация признаков — если распределение сильно скошено, log(x) его нормализует - Шкала децибел для аудио (log₁₀) - pH в химииpH = -log₁₀[H⁺] - Shaper ratio, log-returns — логарифмическая доходность в финансах

🔬 В науке: - Шкала Рихтера для землетрясений — логарифмическая - Звёздная величина в астрономии — логарифмическая - Информационная теория Шеннона — основана на логарифмах


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

1. Быстрая оценка логарифма

Нужно прикинуть log₂(100) без калькулятора?

2^6 = 64,  2^7 = 128
64 < 100 < 128  →  6 < log₂(100) < 7
100 ближе к 128, значит ≈ 6.6

Точный ответ: log₂(100) ≈ 6.644. Оценка 6.6 — очень близко!

2. Трюк для log_a(b), когда a и b — степени одного числа

Если a = 2^m и b = 2^n, то:

log_a(b) = log_{2^m}(2^n) = n/m

Пример: log₈(32) = log_{2³}(2⁵) = 5/3. Очень быстро!

3. Смена основания через ln в коде

Когда нужен log₂(x) в Python:

import math
log2_x = math.log(x) / math.log(2)
# или просто:
log2_x = math.log2(x)
# или в numpy:
import numpy as np
log2_x = np.log2(x)

4. Численная стабильность: log-sum-exp

В ML нельзя просто писать log(exp(a) + exp(b)) — получишь overflow. Трюк:

# НЕСТАБИЛЬНО:
result = np.log(np.exp(a) + np.exp(b))

# СТАБИЛЬНО (log-sum-exp):
c = max(a, b)
result = c + np.log(np.exp(a - c) + np.exp(b - c))

Математически одно и то же, но без overflow.

5. Мнемоника для свойства произведения

Лог произведения = сумма Логов” — акроним ЛПрСЛ, или запомни через фразу:

“Умножаешь внутри — складываешь снаружи”

6. Знак перед логарифмом от дроби 0 < x < 1

Если аргумент от 0 до 1 (например, вероятность), то при основании a > 1:

0 < p < 1  →  log(p) < 0

Именно поэтому в cross-entropy стоит минус: -Σ p·log(p) — чтобы loss был положительным!


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

💡 Слово “логарифм” придумал сам Непер — от греческих слов logos (соотношение) и arithmos (число). Буквально: “число соотношений”.

💡 Число e появилось через логарифмы — Эйлер открыл константу e ≈ 2.718, изучая непреровный рост. Натуральный логарифм ln исторически первичен по отношению к десятичному.

💡 Логарифмическая линейка — главный вычислительный инструмент инженеров с 1620-х по 1970-е годы. На ней были нанесены логарифмические шкалы, которые превращали умножение в сложение. Инженеры NASA, проектировавшие Аполлон-11, использовали логарифмические линейки.

💡 Самореференс в ML: логарифмы используются для обучения нейросетей, которые потом сами могут решать математические задачи с логарифмами. Такие дела.


💡 Совет: Лучший способ освоить логарифмы — начни замечать их в коде, который ты читаешь. Открой любой ML-репозиторий на GitHub и найди torch.log или np.log. Спроси себя: зачем здесь логарифм? Что он делает с числами? Через неделю такого наблюдения свойства логарифмов станут частью твоей интуиции.

Следующий шаг → Переходи к логарифмическим уравнениям: там ты будешь использовать все эти свойства, чтобы “раскрывать” уравнения и находить неизвестные. Именно там начинается настоящая работа с логарифмами.

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

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

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