Phase 00 - Lesson 20

Logaritmos

This lesson includes a graded coding exercise that runs in your browser, unlocked with lifetime access.

Un logaritmo es un conteo. Cuenta cuantas veces duplicaste, empezando desde 1. Esa es toda la idea, y de ahi viene el nombre "1.58-bit".

Tipo: Aprender Lenguajes: Python Requisitos previos: Operaciones Repetidas y el Giro del Conteo (00-16), Potencias y Exponentes (00-17), Raices y Cuadrados (00-19) Tiempo: ~60 minutos

Objetivos de Aprendizaje

  • Leer log2(x) como "cuantas veces duplico, empezando desde 1, para llegar a x?"
  • Calcular los logs enteros contando duplicaciones en una escalera
  • Explicar por que log2(3) es cerca de 1.585, el numero exacto detras de "1.58-bit ternario"
  • Conectar las tres vistas: cuenta las duplicaciones, "2 elevado a que", y log2
  • Relacionar el logaritmo con la perplejidad, exp(entropia cruzada)

El Concepto

Este es el pilar de toda la fase. Ve despacio. Construiremos el logaritmo de la forma en que realmente encaja, luego lo conectaremos con la vista del libro de texto al final.

Un logaritmo es un conteo de duplicaciones

Olvida "logaritmo" por un segundo. Vuelve a la escalera de duplicaciones que construiste en la leccion 00-16:

inicio:  1
duplica: 1 -> 2     (1 duplicacion)
duplica: 2 -> 4     (2 duplicaciones)
duplica: 4 -> 8     (3 duplicaciones)
duplica: 8 -> 16    (4 duplicaciones)

Ahora la unica pregunta que define esta leccion:

Empezando desde 1, cuantas veces duplico para llegar a este numero?

Ese conteo ES el logaritmo en base 2. Escrito log2:

log2(2)  = 1     (1 -> 2 es una duplicacion)
log2(4)  = 2     (1 -> 2 -> 4 son dos duplicaciones)
log2(8)  = 3     (1 -> 2 -> 4 -> 8 son tres duplicaciones)
log2(16) = 4     (cuatro duplicaciones)

Para encontrar log2(8), no calculas nada sofisticado. Subes la escalera desde 1, duplicando, y cuentas tus escalones hasta llegar a 8. Tres escalones. log2(8) = 3. Listo.

ERROR COMUN 1 (el mas frecuente)

Dividir por 2 una vez es UNA operacion. Un logaritmo CUENTA cuantas duplicaciones.

Un estudiante al que se le pregunta log2(8) a menudo calcula 8 / 2 = 4 y responde 4. Eso es incorrecto, y vale la pena ver exactamente por que. 8 / 2 = 4 deshace una sola duplicacion: te lleva un escalon HACIA ABAJO en la escalera, de 8 a 4. Pero el logaritmo no es "que es un escalon abajo". Es "cuantos escalones en total para volver a 1". Desde 8 bajas 8 -> 4 -> 2 -> 1, que son tres escalones. Asi que log2(8) = 3, no 4. Una division es un solo movimiento; un logaritmo es un conteo de movimientos. Mantenlos separados.

ERROR COMUN 2 (la base frente al conteo)

La base es la cosa que duplicas. El logaritmo es el conteo. No devuelvas la base.

Al preguntar log10(100), un estudiante respondio 10. El 10 es la base (la cosa que se repite), no la respuesta. La pregunta es "cuantas veces multiplico por 10, empezando desde 1, para llegar a 100?":

1 -> 10 -> 100     eso son DOS escalones

Asi que log10(100) = 2. No 10, no 100. La respuesta de un logaritmo es siempre el pequeno numero de conteo, nunca la base y nunca el gran objetivo.

ERROR COMUN 3 (por que log2(3) NO es 1.5)

Este es el importante, porque produce el numero firma del proyecto.

3 no esta en la escalera de duplicaciones. Queda entre 2 (una duplicacion) y 4 (dos duplicaciones). Asi que log2(3) esta entre 1 y 2. La tentacion es adivinar el medio, 1.5, porque 3 es el medio de 2 y 4. Esa suposicion es incorrecta, y aqui esta exactamente por que.

La escala del exponente no se mueve sumando, se mueve multiplicando. El exponente del punto medio 1.5 no llega al medio aritmetico de 2 y 4. De la leccion 00-19 sabes que es 2^1.5 realmente:

2^1.5 = 2 x sqrt(2) = 2 x 1.414 = 2.83

Asi que el exponente 1.5 llega a 2.83, no a 3. Para llegar a 3 necesitas ir un poco MAS ALLA de 1.5. El valor verdadero es:

log2(3) = 1.585

Verifica la direccion: 2^1.585 es un poco mas que 2^1.5 = 2.83, subiendo hacia 3. La respuesta esta justo despues del punto medio, exactamente como predice la escala multiplicativa. Ese 1.585 es el "1.58-bit" del formato ternario de NeuroGrid.

El cemento de las tres vistas

Estas tres frases dicen exactamente lo mismo. Cuando puedes alternar entre ellas libremente, dominas el logaritmo:

cuenta las duplicaciones de 1 a 8   =   "2 elevado a QUE da 8"   =   log2(8)
        3                                       3                          3
  • Cuenta las duplicaciones es como lo calculas a mano (esta leccion).
  • "2 elevado a que" es la vista del inverso de un exponente (la leccion 00-17 ejecuto el exponente hacia adelante; el log lo ejecuta hacia atras).
  • log2 es el simbolo que leeras en cada articulo.

Mismo numero, tres disfraces.

Una nota honesta sobre el decimal

Puedes obtener las respuestas enteras (log2(8) = 3) puramente contando. La parte DECIMAL (log2(3) = 1.585) necesita los exponentes fraccionarios y raices de la leccion 00-19, por eso esa leccion vino primero. En el codigo simplemente llamaras math.log2; a mano, siempre puedes indicar el rango entero ("entre 1 y 2, un poco mas alla del medio, asi que cerca de 1.585").

Construyelo

python phases/00-setup-and-tooling/20-logarithms/code/logs.py

Recuerdo activo

Produce la respuesta. Lo mas facil primero, para asegurar una victoria antes de la dificil.

  1. log2(4) = ? (cuenta las duplicaciones desde 1)
  2. log2(8) = ? (NO dividas 8 por 2; cuenta los escalones)
  3. log10(1000) = ? (cuantas veces multiplicas por 10 desde 1?)
  4. log2(3) esta mas cerca de 1.5 o de 1.6, y por que?

Respuestas: 2; 3; 3; mas cerca de 1.6 (es 1.585), porque el exponente 1.5 solo llega a 2.83, asi que debes ir un poco mas alla de 1.5 para llegar a 3.

Por que esto importa para la IA

Dos de los numeros mas importantes de todo este curriculo son logaritmos. log2(3) = 1.585 es el piso de bits-por-peso para un valor ternario (tres opciones: -1, 0, +1), el foso exacto del proyecto y el origen del nombre "1.58-bit". La perplejidad, el numero de calidad destacado de cualquier modelo de lenguaje, es exp(entropia cruzada), el log inverso que deshace el log natural escondido dentro de la perdida de entropia cruzada. Si los logs estan confusos, estos son trivia memorizada; cuando los logs son un conteo de duplicaciones, son obvios.

0 lifetime access. Curriculum based on AI Engineering from Scratch by Rohit Ghumare (MIT, used under attribution).