Traducir a binario con los dedos

En los números binarios existen patrones sorprendentes con aplicaciones fascinantes; exploraremos uno de ellos aquí y su aplicación en la IA.

3 de noviembre de 2024

Sistema binario

El sistema binario es un sistema de numeración en base 2, lo que significa que usa solo dos dígitos: 0 y 1. En contraste con el sistema decimal (base 10), que tiene diez dígitos (0-9), el sistema binario representa todos los valores posibles mediante combinaciones de estos dos dígitos.

Este tiene infinidad de aplicaciones muy importantes en el mundo de la computación y la informática, en este artículo veremos uno bastante interesante.


¿Alguna vez has tenido la necesidad de convertir un número a binario rápidamente y de repente olvidaste cómo hacerlo?

Para empezar a hablar de este patrón, te daré este "hack" para hacerlo.

DecimalBinario
00000
10001
20010
30011
40100
50101
60110
70111
81000
91001
101010

La tabla de arriba son los primeros 10 números en binario, como sabes, en binario, cada posición representa una potencia de 2. De derecha a izquierda, las posiciones valen 202^0, 212^1, 222^2, 232^3, y así sucesivamente.

Tabla de binarios

Si te fijas detalladamente, este patrón se repite igualmente de manera vertical de derecha a izquierda. Empezando por 0, los números tienen un salto una cantidad de 2n2^n, para la primera columna de derecha a izquierda van en 0, 1, 0, 1, 0, ..., es decir 202^0; luego en la segunda columna van de 0, 0, 1, 1, 0, ..., es decir, 212^1; en la tercera columna van de 0, 0, 0, 0, 1, ..., es decir, 222^2; y así sucesivamente. Conociendo este patrón, es mucho más sencillo encontrar cualquier binario.

Este patrón es muy importante por ejemplo, en el mundo de las redes neuronales, específicamente con los Transformers.

Transformers

Los transformers son un tipo avanzado de arquitectura de red neuronal, originalmente diseñada para procesar y comprender secuencias de datos, como el lenguaje natural. Esta arquitectura revolucionó el campo de la Procesamiento del Lenguaje Natural (NLP) y otras áreas de la IA debido a su capacidad para manejar grandes cantidades de datos de forma eficiente, superando limitaciones de modelos previos como los RNN (Redes Neuronales Recurrentes) y LSTM (Long Short-Term Memory).


Anteriormente, las RNN tenían una forma de posicionamiento absoluto que por decirlo de alguna forma, era poco deficiente, por lo que los transformers mejoran esto con algo llamado "Positional Encoding".

Positional Encoding

Los transformers hacen este mismo uso del posicionamiento absoluto pero con binarios, y mirando el patrón anterior donde el 0 y 1 alternan de posición crean una onda que puede ser más eficiente al momento del posicionamiento, donde los primeros patrones debido a tener una mayor frecuencia, estas ondas de igual manera vibran a una onda alta, lo contrario con las siguientes. Lo que se resume con la fórmula sen(pos/i)sen(pos/i), aunque en los transformers es más complejo con combinaciones de senos y cosenos.

Ondas en Binario

Toda esta información fue inspirada del vídeo ¿Por qué estas REDES NEURONALES son tan POTENTES? 🤔 | TRANSFORMERS Parte 2, donde explican a mayor profundidad la manera en cómo funcionan los Transformers .

También, en este artículo se profundiza aún más sobre este tema Transformer Architecture: The Positional Encoding.