Consideremos que un conjunto de números que se pueden escribir de la forma $b^{x}$ (para alguna base):
$$A = \{ a_1, ..., a_n\}$$
por ejemplo tal vez $\{ 2^{-2000}, 2^{-2002}, 2^{-2500}\}$ . Supongamos también que podemos calcular los números indirectamente porque conocemos sus exponentes (es decir, estamos en el espacio logarítmico). Quiero calcular:
$$ \alpha_i = \frac{ a_i}{\sum^n_{i=1} a_i}$$
sin tropezar con problemas numéricos (el problema numérico surge porque el original $a_i$ son tan pequeños que el numerador y el denominador están tan próximos a cero que cualquier objeto de cálculo razonable [con precisión acotada $\epsilon$ ] tiene un error al intentar calcular el cociente anterior, es decir, intenta calcular aproximadamente $\frac{0}{0}$ y, por tanto, un error).
Una forma que me dijeron de hacerlo es "reescalando" los números. En el sentido, podemos reescalar A de tal manera que el mayor tiene magnitud 1 y, a continuación, realizar el cálculo para $\alpha_i$ . La corrección matemática del cálculo de alfa es obvia (con reescalado), ya que el término max divide arriba y abajo (se anula y la proporción se calcula correctamente).
Dejemos que la de mayor magnitud se denote por $a^* = argmax_{a \in A}\{a\} $ . Matemáticamente, esto implicaría calcular un nuevo conjunto a escala $A'$ como sigue:
$$ A' = \{ \frac{a_1}{ a^*} , ..., \frac{a_n}{ a^*} \} = \{ a'_1 , ..., a'_n \}$$
mi pregunta es, ¿por qué elegimos dividir por el mayor $a^*$ y no el más pequeño? Otra forma de ver esto podría ser, si todos se pueden escribir como un exponente, estamos eligiendo el que tiene el exponente más positivo. ¿Cuál es el problema de elegir el exponente más negativo. (obviamente, no calcularíamos la división directamente y en su lugar calcularíamos la diferencia de los exponentes, para evitar el problema potencial de desbordamiento, es decir, trabajar en logspace y por lo tanto los exponentes directamente, de modo que no tengamos el problema de desbordamiento al hacer $\frac{a_i}{ a^*}$ ).
Mi intuición me dice que en realidad deberíamos dividir por el más pequeño, ya que es el que podría ser demasiado pequeño para nuestros cálculos (y por lo tanto el que queremos normalizar). Considerémoslo así, digamos que escribimos todos los números en $A$ es la forma exponencial, es decir $a_i = 2^{e_i}$ . Supongamos que $e_i \leq 0$ . A continuación, para resolver el problema que podemos hacer:
$$ 2^{e_i - y}$$
donde queremos hacer $e_i - y$ menos negativo (para que la exponenciación no nos lleve a cerca de cero). Para ello queremos $-y$ muy positiva. Así que en este objetivo elegimos $y$ para ser el exponente más negativo que podemos tener. Por lo tanto, elegimos el exponente más pequeño que corresponde a la más pequeña $a_i$ . Eso es lo que tiene sentido para mi. ¿Pero elegir el máximo también funciona? Si es así, ¿por qué funciona?
En el $A = \{ 2^{-2000}, 2^{-2002}, 2^{-2500}\}$ y $A' = \{ 1, 2^{-2}, 2^{-500}\}$ y por lo tanto, si la precisión de nuestro ordenador es $2^{-1023}$ a $2^{1023}$ parece que este truco funciona. Sin embargo, no estaba seguro de si este truco funcionaría siempre o en qué condiciones funcionaría o por qué elegir el más grande era una buena idea y no el más pequeño.