🧮 Computational Mathematics

Inicio · Parte 02 — Álgebra y funciones

051 — Logaritmos y sus propiedades

basico clase 11 de 20 4 horas demostración logarithm_laws

El logaritmo convierte productos en sumas, y por eso toda verosimilitud se calcula en escala logarítmica.

Fórmulas

log(ab) = log a + log b
log(a/b) = log a − log b
log(aⁿ) = n log a
log_b(a) = ln a / ln b

Desarrollo

El logaritmo se inventó, literalmente, para convertir multiplicaciones en sumas. Napier publicó sus tablas en 1614 con ese propósito explícito: antes de las calculadoras, multiplicar dos números de seis cifras era costoso y sumar sus logaritmos no. Esa misma propiedad, cuatro siglos después, es la razón por la que el logaritmo está en el centro de la estadística y del machine learning.

El motivo es de precisión, no de velocidad. Multiplicar diez mil probabilidades —cada una menor que 1— produce un número tan pequeño que hace underflow a cero en float64 (clase 033). Sumar diez mil logaritmos no tiene ese problema. Por eso la verosimilitud se maximiza siempre como log-verosimilitud (clase 215) y por eso la pérdida de un clasificador es cross-entropy, que es una suma de logaritmos (clase 263).

Las tres leyes se deducen directamente de las de exponentes, porque el logaritmo es su función inversa. log(ab) = log a + log b es exactamente aᵐ·aⁿ = aᵐ⁺ⁿ leído al revés. El cambio de base, log_b(a) = ln a / ln b, permite calcular cualquier logaritmo con uno solo implementado.

Numéricamente hay dos precauciones. El dominio es x > 0, y log(0) es −inf: por eso toda implementación de cross-entropy añade un epsilon. Y log(1 + x) para x pequeño sufre cancelación, de ahí que exista log1p (clase 040).

Ejemplo trabajado

Las tres leyes verificadas con a = 12, b = 5.

log(12·5) = log(60) = 4.094345
log 12 + log 5 = 2.484907 + 1.609438 = 4.094345    ✓

log(12/5) = log(2.4) = 0.875469
log 12 − log 5 = 2.484907 − 1.609438 = 0.875469    ✓

log(12³) = log(1728) = 7.454720
3·log 12 = 3 · 2.484907 = 7.454720                 ✓

Cambio de base:
  log₂(12) = ln 12 / ln 2 = 2.484907/0.693147 = 3.584963
  math.log2(12) = 3.584963                          ✓

Qué calcula el laboratorio

Las tres leyes del logaritmo verificadas numéricamente.

python classes/part-02-algebra-y-funciones/051-logaritmos-y-sus-propiedades/lab.py
compmath run 051

Salidas del laboratorio (9)

Muestra de la ejecución real

{
  "log(a*b)": 4.0943445622221,
  "log(a)+log(b)": 4.0943445622221,
  "ley_producto": true,
  "log(a/b)": 0.8754687373538999,
  "log(a)-log(b)": 0.8754687373539001,
  "log(a^3)": 7.454719949364001
}

Errores comunes

Dónde se usa

Log-verosimilitud, cross-entropy, entropía, escalas logarítmicas (decibelios, pH, magnitud sísmica), perplejidad de un modelo de lenguaje y leyes de escala.

Idea rectora de la parte

Una ecuación restringe; una función asigna. No son lo mismo.

Error a evitar

Aplicar log a valores no positivos sin declarar el dominio.

Conexión con IA

Una red neuronal es una composición de funciones parametrizadas. La sigmoide, la softmax y la log-verosimilitud son álgebra de exponenciales y logaritmos.

Bibliografía de la clase

Archivos de la clase