OpenBetaMatemática

← Temas

Exponenciales y logaritmos

Exponencial y logaritmo son funciones inversas, y entre las dos hacen un solo truco que vale oro: la exponencial convierte sumas en productos (ex+y=exeye^{x+y} = e^x e^y) y el logaritmo convierte productos en sumas (log(xy)=logx+logy\log(xy) = \log x + \log y). Ese cambio de operación es la razón por la que aparecen en todos lados.

Leyes de los exponentes

Todas salen de una: ama^m es multiplicar aa por sí mismo mm veces, así que sumar exponentes es concatenar productos.

aman=am+n,aman=amn,(am)n=amn,(ab)n=anbn.a^m a^n = a^{m+n}, \quad \frac{a^m}{a^n} = a^{m-n}, \quad (a^m)^n = a^{mn}, \quad (ab)^n = a^n b^n.

Las definiciones "raras" no son convenciones arbitrarias: se eligen para que la ley am+n=amana^{m+n} = a^m a^n siga valiendo. Por eso a0=1a^0 = 1 (para que ana0=ana^{n}a^{0}=a^n), an=1ana^{-n} = \tfrac{1}{a^n}, y a1/n=ana^{1/n} = \sqrt[n]{a}.

Propiedades del logaritmo

logb\log_b es la inversa de bxb^x: logby=x    bx=y\log_b y = x \iff b^x = y. Cada ley de exponentes se refleja en una ley de logaritmos (definidas solo para argumento >0> 0):

log(xy)=logx+logy,logxy=logxlogy,log(xp)=plogx,\log(xy) = \log x + \log y, \quad \log\frac{x}{y} = \log x - \log y, \quad \log(x^p) = p\,\log x, logbx=lnxlnb(cambio de base).\log_b x = \frac{\ln x}{\ln b} \quad (\text{cambio de base}).

De dónde sale la estrella. Escribí x=bux = b^u, y=bvy = b^v (o sea u=logbxu = \log_b x, v=logbyv = \log_b y). Entonces xy=bubv=bu+vxy = b^u b^v = b^{u+v}, así que logb(xy)=u+v=logbx+logby\log_b(xy) = u + v = \log_b x + \log_b y. La propiedad producto→suma del log es, literalmente, la ley aman=am+na^m a^n = a^{m+n} leída a través de la inversa.

La primera es la estrella, y se ve mejor que se lee: en una escala logarítmica, multiplicar es sumar distancias.

El logaritmo convierte × en + — interactivo12351020501002005001000a=4b=6ab=24log alog b
log(a·b) = log a + log b  →  log(24) = 0.6 + 0.78 = 1.38

En una escala logarítmica, multiplicar es sumar distancias: la posición de ab es exactamente la de a más la de b. Esa es la razón de fondo por la que se maximiza la log-verosimilitud: un producto de densidades ∏ pᵢ se vuelve una suma Σ log pᵢ —más fácil de derivar y, sobre todo, sin underflow (mil factores de 0.01 dan 10⁻²⁰⁰⁰, que es cero en coma flotante; su suma de logaritmos, en cambio, es un número común).

De productos a sumas: la log-verosimilitud

Acá está el uso que justifica todo. Cuando nn datos son independientes, su verosimilitud es un producto,

L(θ)=i=1np(xi;θ),L(\theta) = \prod_{i=1}^{n} p(x_i; \theta),

y maximizar esto a mano es horrible: derivar un producto de nn factores con la regla del producto es inviable. El logaritmo lo arregla. Como log\log es estrictamente creciente, maximizar LL y maximizar logL\log L dan el mismo θ^\hat\theta; pero el log convierte el producto en suma:

(θ)=logL(θ)=i=1nlogp(xi;θ).\ell(\theta) = \log L(\theta) = \sum_{i=1}^{n} \log p(x_i; \theta).

Ahora derivar es sumar derivadas, (θ)=iθlogp(xi;θ)\ell'(\theta) = \sum_i \partial_\theta \log p(x_i;\theta) (la score), y resolver (θ)=0\ell'(\theta) = 0 es tratable. Hay además una razón numérica brutal: un producto de muchas probabilidades desaparece por underflow —mil factores de 0,010{,}01 dan 10200010^{-2000}, que en coma flotante es exactamente 00—, mientras que su suma de logaritmos es un número perfectamente representable. Siempre se trabaja en log.

Log-sum-exp

El compañero inevitable: cuando hay que normalizar (softmax, la evidencia de un modelo, la función de partición) aparece

LSE(x1,,xn)=logi=1nexi.\operatorname{LSE}(x_1, \dots, x_n) = \log \sum_{i=1}^{n} e^{x_i}.

Calcularlo ingenuamente vuelve a romper: si algún xix_i es grande, exie^{x_i} desborda a infinito. El arreglo es factorizar el máximo m=maxixim = \max_i x_i:

LSE(x)=m+logi=1nexim.\operatorname{LSE}(x) = m + \log \sum_{i=1}^{n} e^{\,x_i - m}.

Ahora todos los exponentes son 0\le 0, así que ningún término pasa de 11 —nada desborda— y el resultado es idéntico. Probalo subiendo un xix_i por encima de 709709:

Log-sum-exp: estable y suave — interactivox1=24%x2=584%x3=311%pesos softmax = e^(xᵢ−m) / Σ
ingenuo: log Σ e^xᵢ
5.17
estable: m + log Σ e^(xᵢ−m)
5.17

LSE(x) = log Σ eˣⁱ aparece en cada normalización (softmax, evidencia, partición). El problema: con xᵢ grandes, e^xᵢ desborda a infinito (arriba de ~709 en float64) y el cálculo ingenuo muere. El truco: factorizar el máximo m, LSE = m + log Σ e^(xᵢ−m) —todos los exponentes quedan ≤ 0, nada desborda, y el resultado es idéntico. Subí un xᵢ por encima de 709 y mirá morir al ingenuo. Además, LSE es un máximo suave: queda entre max y max + log n, y los pesos softmax son justo los e^(xᵢ−m) renormalizados.

Dos lecturas extra: LSE es un máximo suave —siempre entre maxixi\max_i x_i y maxixi+logn\max_i x_i + \log n—, y su gradiente es exactamente el softmax exijexj\dfrac{e^{x_i}}{\sum_j e^{x_j}}, los pesos que ves en el gráfico.

Recall activo

Resolvé sin mirar:

  1. Simplificá log(a2b)logb\log(a^2 b) - \log b.
  2. Escribí logi=1nf(xi)\log\prod_{i=1}^{n} f(x_i) como suma.
  3. Estabilizá log(e1000+e1001)\log(e^{1000} + e^{1001}) con LSE (sin calcular e1000e^{1000}).
  4. ¿Por qué a0=1a^0 = 1? (la razón, no solo el valor)

Soluciones: (1) 2loga2\log a; (2) i=1nlogf(xi)\sum_{i=1}^{n} \log f(x_i); (3) a=1001a^* = 1001, da 1001+log(e1+1)1001,311001 + \log(e^{-1} + 1) \approx 1001{,}31; (4) para que ana0=an+0=ana^n a^0 = a^{n+0} = a^n siga valiendo, a0a^0 debe ser el neutro 11.

Lo que sigue

La log-verosimilitud nos dejó sumas i\sum_i por todos lados. La próxima lección las toma en serio: sumatorias y series —manipular índices, telescoping, la serie geométrica y el teorema del binomio.